Benutzer-Werkzeuge

Webseiten-Werkzeuge


techniken:datenaustausch

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

techniken:datenaustausch [2013/12/13 17:05]
fbonowski [Flexibel mit Library: ArduPar (von Github)]
techniken:datenaustausch [2016/01/21 12:45]
Zeile 1: Zeile 1:
-====== 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 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 [[https://​github.com/​Zapalot/​ArduPar|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: 
-  - Den Parameter deklarieren (so wie jede andere Variable auch): Im Beispiel ''​IntArduPar someIntSetting;''​ 
-  - Den Parameter initialisieren (im Setup): Im Beispiel:<​code> ​ someIntSetting.setup( 
-      F("​someInt"​), ​         // Der Parameternamen muss in einem F(""​) eingeschlossen werden. 
-      0,                       // Der Minimalwert 
-      10                       // Der Maximalwert 
-    );</​code>​ 
-  - 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. 
-  - 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.txt · Zuletzt geändert: 2016/01/21 12:45 (Externe Bearbeitung)