PC-Programm in C++/C# -> USB -> Arduino

#2499186
Lesenswert?

Hi,
wie stelle ich es an um mit einem Arduino Uno mit einem Programm per USB 
zu kommunizieren? Ich fand bis jetzt nur Code der eine COM-Schnittstelle 
bedient, jedoch nichts darüber wie das USB-Gedöns eines entsprechenden 
ATMega, FTDI o.ähnl. gehandhabt werden muß. Mit nem USB-PIC 18F4550 hab 
ich das mittels vorgefertigtem Framework für C# gelöst, So etwas stelle 
ich mir auch für AVR vor. Oder benötige so etwas für den Arduino 
nicht...? Hab im Moment etwas die Übersicht verloren.
#2499235
Lesenswert?

Joachim ... schrieb:
> Geht das denn 'einfach so'...?

Sicher.
Das ist ja das schöne an den FTDI.
An beiden Endpunkten kann man so tun, als ob das eine stink normale 
Serielle Verbindung wäre. Den Mittelteil zwischen den Endpunkten 
erledigen der PC-Treiber und der FTDI Chip, so dass man als 
Programmierer mit den Komplexitäten von USB überhaupt nicht in Berührung 
kommt.
Auf PC Seite hat man einen virtuellen COM-Port, der vom Treiber auf USB 
umgesetzt wird und auf µC Seite hat man einen FTDI, aus dem die Signale 
schon aufbereitet für einen UART Baustein wieder rauskommen.
#2499251
Lesenswert?

Hm. Vermutlich habe ich die einzelnen OSI-Layer nicht sauber genug 
getrennt...
Das heißt, ich müßte mich auf die Suche nach einem entsprechenden 
Treiber/DLL oder ähnl. für den Arduino machen... bzw. befindet der sich 
vielleicht  schon auf der Festplatte durch das installieren der 
Arduino-Umgebung.
Irgendwie blick ich's heut' nicht so recht;-)

Werd mal weiter graben.
#2499259
Lesenswert?

Joachim ... schrieb:

> Treiber/DLL oder ähnl. für den Arduino machen... bzw. befindet der sich
> vielleicht  schon auf der Festplatte durch das installieren der
> Arduino-Umgebung.

Höchst wahrscheinlich hast du den schon lange.

Sieh doch einfach mal im Gerätemanager bei angestecktem Arduino noch, ob 
du einen virtuellen COM-Port hast. Ziehst du den Arduino vom PC ab, dann 
verschwindet der COM-Port im Gerätemanager. Steckst du ihn an, dann ist 
er wieder da.

Dauert keine 2 Minuten und du weißt, was Sache ist.
Gast #2499613
Lesenswert?

Beim Arduino sind entsprechende Treiber dabei. Da wird deine 
USB-Schnittstelle auf den COM-Port gemapped.In der Powershell z.B. 
funktioniert folgender Code (COM3 ist der Arduino-Port).

$port= new-Object System.IO.Ports.SerialPort COM3,9600,None,8,one
$port.Open()
$port.Write([byte]0xFE,0,1) // hier halt was du senden willst
$port.Close()

Das kannst Du Dir ja in C/C++ Code umdenken. Also einfach Serial 
aufmachen...

(Siehe z.B. hier 
http://www.beefrankly.org/blog/2011/12/10/arduino-1-0-and-sparkfun-serial-lcd/ 
)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren