Rasperry Pi mit Arduino
Einführung
Es ist möglich, (mehrere) Arduinos mit einem Rasperry Pi zu koppeln. Es gibt dafür mehrere Wege, die hier vorgestellt werden.
Arduino über Raspberry Pi programmieren
Man kann die Arduino IDE auch auf dem Raspi installieren. Je nach Version der unterstützten IDE und/oder Arduino-Board muss die Programmierung auch über einen externen Rechner geschehen.
$ sudo apt-get update $ sudo apt-get install arduino
Damit der Raspi über das USB-Kabel mit dem Arduino "sprechen" kann, muss die serielle Konsole deaktiviert werden. Wenn man die serielle Konsole für andere Zwecke brauchen möchte, muss der Arduino extern programmiert werden. Die Kommunikation mit dem Arduino ist aber auch über I2C möglich.
Kommunikation zwischen Arduino und Raspi
serieller Monitor
In der Arduino-IDE kann man Nachrichten der seriellen Schnittstelle anzeigen. Dies geschieht über die Lupe auf der rechten Seite der Werkzeugleiste.
void setup() { Serial.begin(9600); } // end setup void loop() { Serial.println("Hallo Welt"); delay(1000); } // end loop
PyFirmata
Diese Bibliothek erlaubt die Verbindung ohne eigenen Code für den Arduino zu entwickeln, sondern man sendet einfach den Code vom Raspi auf den Arduino. Dazu wird zuerst über die IDE des Arduino der entsprechende Sketch geladen (File -> Examples -> Firmata -> StandardFirmata). Anschliessend wartet der Arduino auf Befehle vom Raspi.
Auf dem Raspi muss zuerst die PySerial-Bibliothek installiert werden. Danach kann PiFirmata von Git installiert werden.
$ sudo agt-get install git # Falls Git noch nicht installiert wurde $ git clone https://github.com/tino/pyFirmata.git $ cd pyFirmata $ sudo python setup.py install
Anschliessend kann man testen, ob das Programm auf dem Arduino die eingebaute LED aufblinken lässt:
import pyfirmata, time board = pyfirmata.Arduino('dev/ttyACMo') # Kommunikation über diese serielle Schnittstelle pin13 = board.get_pin('d:13:o') # Den digitalen Pin 13 als Output schalten pin13.write(1) sleep(2) pin13.write(0) board.exit()