PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Arduino Uno als Pc Interface?



robots4-ever
04.07.2012, 15:05
Hallo zusammen,

ich habe eine kleine Frage. Und zwar wie oben im Titel beschrieben wollte ich fragen ob es geht ein Arduino Uno als Interface am PC anzuschließen und vom Pc aus mit C++ zu steuer, also das der Computer das Programm durchläuft und das Arduino Board diese das ausführt.



Danke schon mal

Tom.

Torrentula
04.07.2012, 15:16
Du musst schon zwei Programme schreiben, sonst kann der ATmega auf dem Arduino ja nichts machen ;)

Du kannst in C++ ein Programm schreiben, dass die Befehle über die serielle Schnittstelle (der Arduino verhält sich ja aufgrund des Treibers wie ein serielles Interface) und dann hast du auf dem Arduino ein Programm laufen welches eben per Interrupt die Befehls-Strings empfängt, auswertet und dann die gewünschte Aktion ausführt.

robots4-ever
04.07.2012, 15:33
Also für doofe, ich muss ein Programm in C++ für den Computer schreiben das Befehle an das Arduino sendet und ein Programm für den Ardurino der dann diese Befehle auf das Arduino übersetzt und ausführt Richtig?

oberallgeier
04.07.2012, 15:38
... Arduino Uno ... vom Pc aus mit C++ zu steuer ...Klar, das geht, und es geht auch in beide Richtungen - der PC kann Daten vom Controller erhalten. Dass auf beiden, PC und µC, Programme laufen müssen, die "sich verstehen können" wurde ja oben schon gesagt.

Würde denn für Deine Zwecke nicht ne Art Befehlsliste genügen, bei der Du dem Controller verschiedene Befehle sendest? Ich habe so etwas mit ner ausgedienten TV-Fernsteuerung gemacht (klick für Video), (http://www.youtube.com/watch?v=jgm9DhS7vS4) dabei habe ich schon mal 38 verschiedene Befehlsmöglichkeiten, wenn ich für jeden Befehl nur eine Taste nehme. Wenn ich bestimmte Tastenfolgen abfrage, bekomme ich eine Unzahl Möglichkeiten. Und das Ganze ist natürlich drahtlos!

robots4-ever
04.07.2012, 15:42
Eine einfache Befehlslist würde mir reiche ich will ja nur die Out und Inputs benutzen ´.

oberallgeier
04.07.2012, 15:51
Eine einfache Befehlslist würde mir reiche ...Na prima, dann such Dir ne Fernsteuerung, vorzugsweise mit RC-5-Code, denn RC-5 ist ja in verschiedenen Bibliotheken schon verfügbar. Wenn Du es selbst schreibst, kannst Du auch andere Codes nehmen.

Viel Erfolg

robots4-ever
04.07.2012, 15:58
dann such Dir ne Fernsteuerung
was meinst du damit?

oberallgeier
04.07.2012, 16:08
was meinst du damit?Jetzt bin ich etwas verblüfft. #-o Kennst Du keine TV-Fernsteuerung? Ist im verlinkten Video zu sehen! Läuft mit ner IR-Diode. Empfangen wird das Signal von nem IR-Empfänger und vom Controller ausgewertet.

robots4-ever
04.07.2012, 16:11
Ja ich kenne eine Tv-Fernsteuerung aber ich möchte gerne das Arduino als interface vom Pc aus anteuern.

Torrentula
04.07.2012, 19:49
Das prinzip ist dasselbe ;)

Du kannst über die serielle Schnittstelle (ja für den PC ist das wegen des Treibers eine serielle Schnittstelle, obwohl er per USB angeschlossen wird) kannst du eine Abfolge von Zeichen senden. Der Arduino empfängt diese Zeichen und wertet dann diesen String (mehrere Zeichen die ein 'Wort' bilden) aus und führt die entsprechende Aktion aus.

Ein Beispiel:
Dein Befehl sieht in der Syntax so aus: *XXXXX#

Die software auf dem PC kann nun, wenn sie den Pin 3 auf HIGH setzen möchte, dieses senden (z.B.): *PIN3H#

Das Programm auf dem Arduino muss nun diese Zeichen (der Befehl wird Zeichenweise übertragen) zusammensetzen und dann in einer Referenztabelle schauen was der Befehl zu bedeuten hat.

ingon
05.07.2012, 06:32
Hallo,
da gibt es schon eine mitgelieferte Lösung. Schau dir mal Firmata an. Auf deren Seite: http://firmata.org/wiki/Main_Page (http://firmata.org/wiki/Main_Page)gibt es ein Beispiel in C++.
Also Firmata aus der Arduino IDE flashen und das Beispiel Programm auf den PC und du kannst die I/Os schalten.

Gruß Ingo
PS: auf meiner Webseite gibt es auch ein kleines Beispiel in Java (http://www.hotcar.de/arduino-in-java-fernsteuern-firmata-processing-eclipse-swt/)

robots4-ever
05.07.2012, 19:14
gut
aber da ich mich nur mit den "grund" begriffen von c++ auskenne ist meine frage was brauche ich für liberys und so damit ich diese realisieren kann?