Verständnisfrage Kommunikation zwischen PC und Arduino

Hallo zusammen

Ich habe mir vor kurzer Zeit das Arduino Starter Set gekauft und arbeite mich momentan durch die Einsteigerprojekte. Das läuft soweit ganz gut, doch auf eine Frage habe ich bisher weder im Einsteigerbuch noch via Google-Suche oder hier im Forum eine Antwort gefunden, die ich wirklich verstanden habe: Wie genau kann mein PC mit meinem Arduino kommunizieren?

Als ich eines der Anfängerprojekte ausprobiert habe, ist mir aufgefallen, dass das gesamte in der Arduino IDE geschriebene und aufs Board "hochgeladene" Programm auf dem Arduino-Board selbst gespeichert ist, dass ich das USB kabel also nur noch als Stromquelle brauche und gar nicht mehr zur Übermittlung von Daten. Bisher ist das okay, aber ich stelle mir vor, dass ich nächstens etwas programmieren möchte, dass sich vor allem am PC abspielt, dann aber hin und wieder Befehle ans Arduino sendet. Ich stelle mir zum Beispiel vor, ein ganz kleines Multiple-Choice-Frage-Antwort-Spiel in Java zu programmieren (dies würde ungefähr meinen Java-Anfängerkenntnissen entsprechen). Bei einer richtigen Antwort soll via Arduino eine grüne LED aufleuchten, bei einer Falschen eine Rote. Es wäre nun sehr hilfreich, wenn mir jemand erklären könnte, wie die Kommunikation zwischen PC und Arduino abläuft, respektive wie man sie realisieren kann. Wie gesagt, meine Vorkentnisse sind sehr beschränkt, deshalb ist dies für mich momentan noch ein Buch mit sieben Siegeln :wink:

Ich würde mich sehr über eure Hilfe freuen
Liebe Grüsse
Silas

Wäre da ein Raspberry nicht besser geeignet? Java App auf dem Raspi und Befehle auch auf dem Raspi ausführen.

Die USB- Schnittstelle emuliert die serielle Schnittstelle. Du kannst Daten oder Befehle über die serielle Schnittstelle aus dem Prgramm am PC zum Arduino senden. Am Arduino liest Du es aus der seriellen Schnittstelle aus.
Grüße Uwe

uwefed:
Die USB- Schnittstelle emuliert die serielle Schnittstelle. Du kannst Daten oder Befehle über die serielle Schnittstelle aus dem Prgramm am PC zum Arduino senden. Am Arduino liest Du es aus der seriellen Schnittstelle aus.
Grüße Uwe

Okay, klingt vielversprechend, danke für die Antwort! Aber wie gesagt, ich bin wirklich ein Anfänger, der sich da erstes Grundwissen aneignen möchte. Ich kann mir gerade nicht vorstellen, wie ich nun vorgehen muss... Bräuchte fast eine Art Schritt-für-Schritt-Tutorial :D. Wie sendet man Daten über die Serielle Schnittstelle, oder besser gesagt, was heisst das überhaupt? Du siehst, ich beginne wirklich bei null. Wenn das etwas zu umfangreich wird, gibt es iregendeine Seite oder etwas, wo ich mich da langsam und deteilliert hereinarbeiten kann? Es muss auch nicht zwingend kostenlos sein..

skorpi08:
Wäre da ein Raspberry nicht besser geeignet? Java App auf dem Raspi und Befehle auch auf dem Raspi ausführen.

Wie ich Google entnehme, ist Raspberry auch ein (wohl eher einfach zu verwendender?) Mikroprozessor und ich werde mich diesbezüglich gerne weiter informieren, danke! Aber wenn ich etwas durchs Internet gehe, scheint es ja nicht unmöglich zu sein, das mit einem Arduino zu realisieren. Da ich das Teil bereits habe und damit auch schon das eine oder andere Experiment versucht habe, würde ich es gerne erstmal mit diesem Gerät versuchen.

Gruss
Silas

http://www.hotcar.de/arduino-in-java-fernsteuern-firmata-processing-eclipse-swt/

Schau dir mal Serial an

Die andere Seite ist nicht auf den Serial Monitor in der Arduino IDE beschränkt, das kann auch irgend ein anderes Programm sein.
Kann auch von dir (auch in Java) für den PC geschrieben sein.

Im Java Core ist javax.comm dafür vorgesehen, "alle Welt" (auch der Serial Monitor der Arduino IDE) verwendet stattdessen aber
RXTX. Wenn du Arduino auf deinem PC installiert hast, ist dort schon RXTXComm.jar (und rxtxSerial.dll) zu finden, was du in deinen Java Programmen verwenden könntest.
Nachtrag: Verwende der Einfachheit halber ( wie Arduino ) eine 32 bit JVM.

Die PC-Seite ist bei weitem das Schwierigere an deiner Idee.
Ein Arduino, der Serial.read() aufruft und bei jedem 'R' die rote LED einschaltet, bei 'G' die grüne und bei '0' beide wieder ausmacht, und alles andere ignoriert, ist "trivial"

Edit: Sorry, die erforderliche native Code Komponente heisst rxtxSerial.dll

Perfekt, genau nach sowas habe ich gesucht, danke! Damit sollte sich mein Projekt problemlos realisieren und erweitern lassen.

Vielen Dank für eure Hilfe
Silas