PC-Programm mit Arduino kommunizieren lassen

Hallo zusammen

Ich habe mir vor einigen Tagen das Arduino Starter Kit (mit Arduino Uno Mikroprozessor und etlichen Bauteilen) gekauft und arbeite mich gerade durch die 15 Einsteiger-Projekte. Nun habe ich aber bereits eine Idee, die ich nächstens mal umsetzen möchte. Grundsätzlich möchte ich ein Programm schreiben, eine Art Spiel, das sich vor allem am PC abspielt, also mit Tastatureingaben, GUI etc, es sollte aber auch mit am Arduino angeschlossenen Motoren, LEDs und Sensoren kommunizieren können.

Nun meine Frage: Arduino ist ja quasi eine eigene Sprache, abgeleitet von C/C++. Wie gehe ich am besten vor, wenn ich ein vollwertiges Programm schreiben möchte, das mir Arduino kommunizieren kann? Am einfachsten wäre für mich beispielsweise ein Java-Programm, da ich dort bereits einige Grundkenntnisse besitze. Diesbezüglich bin ich auf die RXTX Library gestossen, aber ich finde dazu kaum brauchbare Informationen und Tutorials, das scheint mir nicht der richtige Weg zu sein… Was würdet ihr mir empfehlen?

Vielen Dank schon mal
Gruss Silas

Hallo Silas,

Nun meine Frage: Arduino ist ja quasi eine eigene Sprache,
abgeleitet von C/C++. Wie gehe ich am besten vor, wenn ich ein
vollwertiges Programm schreiben möchte, das mir Arduino
kommunizieren kann? Am einfachsten wäre für mich
beispielsweise ein Java-Programm, da ich dort bereits einige
Grundkenntnisse besitze.

Du musst dir halt ein Übertragungsprotokoll einfallen lassen!

Also z.B. einen Befehl um den Motor zu Starten und den mit einer bestimmten Drehzahl laufen zu lassen.
WAS du da so brauchst, wissen wir nicht, das hängt von deinem Problem ab.

Dann schreibst du für den Arduino ein Programm, welches diese Befehle dekodiert und ausführt.

Auf dem PC schreibst du ein Programm, welches diese Befehle zusammenstellt und sendet.

Das hat absolut nichts mit den verwendeten Programmiersprachen zu tun.

Hier wäre z.B. ein wie verbreiteter Befehlssatz für Drucker:
http://support.epson.ru/products/manuals/000350/part…

Und hier noch welche für Terminals:
http://www-user.tu-chemnitz.de/~heha/hs_freeware/ter…

MfG Peter(TOO)

Hallo Peter

Danke für deine Antwort. Trotzdem ist mir noch nicht ganz alles klar, wie gesagt, ich bin eine absoluter Einsteiger was Arduino angeht :wink:

Also mal angenommen ich schreibe eine kleine Java-Anwendung, die den Befehl ausgibt, einen Motor zu starten. Jetzt schreibe ich für das Arduino den entsprechenden Code, der diesen Befehl ausführen kann. Wie gelangt dieser Befehl jetzt zu meinem Arduino?

Gruss Silas

Hallo Silas,

Also mal angenommen ich schreibe eine kleine Java-Anwendung,
die den Befehl ausgibt, einen Motor zu starten. Jetzt schreibe
ich für das Arduino den entsprechenden Code, der diesen Befehl
ausführen kann. Wie gelangt dieser Befehl jetzt zu meinem
Arduino?

Das kommt drauf an, wie du deinen Arduino mit deinem PC verbindest.

Grundsätzlich über USB, wobei du diese Verbindung softwaremässig wie eine Serielle ansteuerst.
Je nach Ausrüstung kannst du auch über eine normale Serielle-Schnittstelle oder Bluetooth oder Netzwerk oder SPI oder IIC oder was sonst noch vorhanden ist gehen.

MfG Peter(TOO)

Hallo,

ich bin da zwar auch noch in der theoretischen „Überlegensphase“ etwas ähnliches als Vater-Sohn-Lernspielzeug anzuschaffen (den in Teilen Arduino kompatiblen Olimex Maximite, der dann mit Basic programmierbar ist), aber soweit ich mich da inzwischen in die Doku eingelesen habe, sieht es so aus, dass Du (unter anderen Sprachen für den normalen Arduino vermutlich in entsprechenden Bibliotheken bereits fertig gekapselt verfügbar), zunächst mal auf dem kleinen Teil bestimmte Pins als Schnittstelle eines bestimmten Typs definierst, und dann diese Schnittstelle wie eine Datei öffnest, und danach Werte in diese Datei schreibst/aus ihr lesen kannst. Das kann in einer Schleife geschehen oder Interrupt gesteuert.

Auf Seiten des PC muss die korrespondierende Schnittstelle geöffnet und dann ebenfalls in sie geschrieben/aus ihr gelesen werden.

D.h. Du kannst z.B. in einem kleinen PC-Programm in einer Schleife auf einen Tastendruck warten, diesen auswerten, und dann je nach gedrückter Taste den zugeordneten Buchstaben in die Schnittstellendatei schreiben, und auf der anderen Seite in einer Schleife den Schnittstellenpuffer auslesen, und dann je nach dort gefundenem Buchstaben dann bestimmte Befehlssequenzen ansteuern, die dann die gewünschten Aktionen auslösen.

Gruß vom Wiz

Hallo silu,

grundsätzlich kannst du jedes Programm nutzen, daß eine Kommunikation per serieller Schnittstelle unterstützt.

Die Programmiersprache Processing

http://de.wikipedia.org/wiki/Processing

eignet sich sehr gut. Im Netz oder der Fachliteratur findest du diverse Beispiele, es gibt sogar entsprechende Bibliotheken.

Hab Spaß!

fribbe