Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

techniken:datenaustausch

Dies ist eine alte Version des Dokuments!




Datenaustausch zwischen Arduino und Computer

Wie kommt ein Steuerkommando vom PC zum Arduino?

Dafür gibt es einige verschiedene Ansätze, die wir hier behandeln wollen.

Kabel(los?)

Wenn der Arduino mit dem PC über ein USB-Kabel verbunden ist, könnt Ihr Daten ganz einfach über die Serielle Schnittstelle an den Arduino senden. Ansonsten könnt Ihr eines unserer WLAN-Module verwenden.

Daten von Processing an den Arduino mit der Seriellen Schnittstelle übertragen

Je nach dem, was Ihr machen wollt, bieten sich dazu 3 unterschiedliche Ansätze an:

Flexibel: Mit der Library ArduPar

Datenempfang mit der Library ArduPar (von Github)

Falls Ihr verschiedene unterschiedliche Werte und Kommandos übertragen wollt, die Ihr in eurem Arduinoprogramm auseinander halten müsst, dann bietet sich die Verwendung einer Library an, die sich darum kümmert.

Felix hat zu diesem Zweck die Library ArduPar geschrieben. Ihr könnt sie als .zip-Datei herunterladen und in euer Arduino/libraries Verzeichnis entpacken. Weil GitHub an den Verzeichnisnamen immer noch ein „-master“ anhängt, müsst ihr das Verzeichnis danach noch in „ArduPar“ (ohne „-master“) umbenennen. Die Library hat auch noch besonders cooles Feature: Sie unterstützt neben der Seriellen Schnittstelle auch WLAN.

Auf dem Arduino

Schaut euch mal das Beispiel ArduPar/simpleIntSetting an, um zu sehen, wie es funktioniert.

ArduPar basiert auf der Idee von einstellbaren „Parametern“. Jeder Parameter hat:

  • einen aktuellen Wert (also z.B. „2“)
  • einen Namen, unter dem man ihn erreichen kann (also z.B. someInt)
  • einen Wertebereich (also z.B. Minimalwert von 0 und Maximalwert von 10)

Um einen Parameter zu erstellen und zu benutzen müsst ihr:

  1. Den Parameter deklarieren (so wie jede andere Variable auch): Im Beispiel IntArduPar someIntSetting;
  2. Den Parameter initialisieren (im Setup): Im Beispiel:
      someIntSetting.setup(
          F("someInt"),          // Der Parameternamen muss in einem F("") eingeschlossen werden.
          0,                       // Der Minimalwert
          10                       // Der Maximalwert
        );
  3. Daten von der Seriellen Schnittstelle empfangen. Das Kommando updateParametersFromStream(&Serial,10); aus dem Beispiel wartet 10ms lang auf neue Kommandos und bringt die aktuellen Werte der Parameter auf den neuesten Stand.
  4. Den aktuellen Wert des Parameters auslesen und etwas damit machen. Der aktuelle Wert steht im .value Feld des Parameters. Im Beispiel gibt die Zeile Serial.println(someIntSetting.value); den aktuellen Wert aus.

Auf dem Computer (Serial Monitor)

Als ersten Test könnt Ihr mal den Serial Monitor aufmachen. Wenn Ihr in das kleine Feld ganz oben etwas eintragt und „senden“ drückt, geht dieser Text an den Arduino. Die Library erwartet Kommandos im Format Parametername Wert.

Gebt also z.B. someInt 5 ein, um den Wert von someInt auf 5 zu setzen.

Auf dem Computer (Processing)

Die gleichen Kommandos, die ihr über den Serial Monitor eingegeben habt, könnt ihr auch aus Processing verschicken.

Einfach nur Zahlen

Serial.parseInt() liest die nächste ganze Zahl, gibt 0 zurück wenn timeout. (Beispiel communication/ReadASCIIString in Arduino)

Einfach nur Kommandos

Einzelne Buchstaben senden und dann mit switch case verarbeiten (Beispiel „libraries/Serial/SimpleWrite“ in Processing)

techniken/datenaustausch.1387365942.txt.gz · Zuletzt geändert: 2016/01/21 12:45 (Externe Bearbeitung)