Donnerstag, 13. August 2015

FIRMATA

In diesem Artikel geht es um das Firmata Protokoll. Das Firmata Protokoll ist ein Protokoll, über welches man mit "Fernsteuerungsbefehlen", die man über die serielle Verbindung sendet, den Arduino steuern kann. Dadurch bekommt der Arduino nur die Befehle zum Schalten der Pins, und das eigentliche Programm wird auf einem leistungsfähigeren PC ausgeführt.


Um überhaupt das Firmata Protokoll zu verwenden, muss man dem Arduino zunächst mitteilen, was die, über die serielle Verbindung gesendeten, Befehle bedeuten. Dazu gibt es einen "StandardFirmataSketch" für den Arduino. Dieser  Übersetzt die Firmatabefehle in "normalen" Arduino Code. Dieser Sketch ist bereits bei der Arduino IDE dabei. Ihr findet ihn unter Datei > Beispiele > Firmata > StandardFirmata_2_2_forUNO_0_3. Nachdem ihr ihn auf euren Arduino Uno hochgeladen habt ist euer Arduino fertig vorbereitet. Da die Firmata Befehle immer in Echtzeit gesendet werden, muss euer Arduino immer mit eurem PC verbunden sein.

Nun könnt ihr an euren Arduino live Befehle senden. Dabei hat man jedoch weit mehr Möglichkeiten, wenn man die Befehle nicht manuell über die serielle Konsole sendet, sondern man mittels der Programmiersprache Processing ein PC Programm erstellt. Dieses kann dann Anweisungen "live" an euren Arduino senden. Ich habe bereits ein paar Tutorials über Processing mit dem Arduino geschrieben: Installation der IDE und erster Test, Beispielprogramm(steuern einer LED am PC), ...

Um den Arduino mittels Firmata in Processing zu verwenden gibt es zwei Processing Bibliotheken cc.arduino und die normale Serial Bibliothek von Processing. Die cc.arduino Bibliothek könnt ihr hier herunterladen. Nun müsst ihr die .zip Datei in den libraries Ordner eures Processing Ordners entpacken. Zum einfachen Einstieg gibt es Beispielsketche zur Firmataverwendung. Diese findet ihr unter dem Menüpunkt Datei > Beispiele > ContributedLibraries > arduino.

Ein einfaches Beispiel ist der Output Sketch. Dieser hat 14 Buttons, über welche man die digital Pins des Arduino steuern kann. Wie ihr im Code sehen könnt sind die Befehle die Selben, wie in der Arduino IDE. Man muss jedoch vor jedem Befehl immer das serielle Objekt mitangeben: arduino.digitalWrite(13, Arduino.HIGH); .

Wie ihr seht ist es mittels dem Firmata Protokoll einfacher seinen Arduino mittels Processing zu steuern, da man dadurch nicht alle "Befehle" neu definieren muss, was man ohne das Firmataprotokoll tun müsste. Da man den Arduino mit Processing auf einem PC steuert, hat man auch die größeren Möglichkeiten eines PC, etwa die Verwendung des Internets.

Keine Kommentare:

Kommentar veröffentlichen