Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

techniken:osc

Datenaustausch via OSC mit Arduino und Processing

Das OSC-Protokoll wurde ursprünglich entwickelt, um Sythesizer und andere elektronische Musikinstrumente über ein Netzwerk kontrollieren - wegen seiner universellen Einsetzbarkeit hat es sich jedoch zu einem weitverbreiteten Standard „zum Kommunizieren von allem Möglichen“.

Besonderer Vorteil: Es gibt Libraries für so ziemlich jede Platform und Programmiersprache und fertige Apps für das Senden von Nachrichten vom Handy aus (z.B. das kommerzielle TouchOSC).

Grundsätzliches

Eine OSC-Nachricht enthält zwei grundsätzliche Informationen:

  1. Die OSC-Adresse: Ein kurzer vom Sender festgelegter und dem Empfänger bekannter Text, den der Empfänger verwenden kann, um die Nachricht einer bestimmten Einstellung oder Funktion zuzuordnen. Umlaute und Sonderzeichen sollten vermieden werden. (z.B. „/motorSpeeds“ vs. „/radarDirection“)
  2. Ein oder mehrere Argumente. Mit ihnen kann der Sender dem Empfänger Zahlen oder andere Informationen mitteilen. Also z.B. „wie schnell“ oder „wohin“. Üblicherweise packt der Sender die Argumente eines nach dem anderen in die Nachricht, bevor er sie abschickt. Dem Empfänger liegen dann die Argumente in der gleichen Reihenfolge vor, in der sie der Nachricht hinzugefügt wurden. Zusätzlich wird automatisch übertragen, welchen Typ die Argumente haben (also z.B. „Integer“ oder „Float“).

Einrichtung unter Arduino

Damit euer Arduino-Programm mit OSC-Nachrichten etwas anfangen kann, müssen diese zuerst in ihre Adresse und Argumente zerlegt werden. Dafür gibt es eine sehr bequeme (und leider auch etwas „fette“) Library, die ich für euch so angepasst habe, dass sie mit einem über die Serielle Schnittstelle angebundenem WiFly-Modul funktioniert:

https://github.com/Zapalot/ArdOscForSerial

Wieder gilt:

  1. Herunterladen: Link „Download .zip“ auf der rechten Seite.
  2. Entpacken.
  3. Umbenennen: Die der Ordner aus den .zip Dateien, die Ihr von GitHub bekommt, haben immer noch ein -master im Dateinamen, den ihr duch Umbenennen entfernen müsst. Also den Ordner ArdOscForSerial-master in ArdOscForSerial umbenennen.
  4. Verschieben: Der Ordner mit der Library muss ins Arduino library Verzeichnis: (Das liegt bei den meisten unter Dokumente/Arduino/libraries)

Wie das Senden und Empfangen von OSC-Nachrichtem vom Arduino aus funktioniert, seht ihr in den Beispielen der Library.

WICHTIG: Ihr müsst aufpassen, dass ihr die Argumente einer OSC-Nachricht auch als den Typen rausholt, als der sie geschickt wurde - sonst passieren u.U. seltsame Dinge…

Einrichtung unter Processing

Eine Library zum verschicken von OSC-Nachrichten (über WLAN oder Netzwerk) unter Processing gibt es hier: http://www.sojamo.de/libraries/oscP5/. Unter Processing läuft die Installation etwas unkomplizierter übers Menü: Sketch/Import Library/Add Library/oscP5.

Schaut euch das Beispiel Contributed Libraries/oscP5/oscP5message an. Damit der Code aus dem Beispiel funktioniert, müssend dort noch die IP Adresse und der Port der Wifly eingetragen werden, damit die Nachrichten auch an den richtigen Empfänger gehen.

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