Metainformationen zur Seite
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
computer:raspberrypi:mit_arduino_koppeln [2013/07/22 21:27] ristigl |
computer:raspberrypi:mit_arduino_koppeln [2018/03/16 21:11] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== RaspberryPi mit Arduino koppeln ====== | ====== RaspberryPi mit Arduino koppeln ====== | ||
+ | Um den Arduino mit dem Raspberry Pi zu verbinden muss man lediglich die TX-Leitung des Pis mit der RX-Leitung des Arduinos und jeweils die Masseleitung miteinander verbinden. | ||
- | Arduino: | + | {{ :computer:raspberrypi:serielle_kommunikation_steckplatine.png |}} |
- | <code> | + | |
+ | ===== Arduino ===== | ||
+ | Auf der Arduino-Seite reicht folgendes kleines Programm aus, um Daten zu empfangen, die an der seriellen Schnittstelle ankommen (dabei darf die Datenleitung während des Programmierens **nicht** mit dem Pi verbunden sein!): | ||
+ | |||
+ | <code cpp> | ||
int i = 0; // for incoming serial data | int i = 0; // for incoming serial data | ||
void setup() { | void setup() { | ||
- | Serial.begin(9600); // opens serial port, sets data rate to 9600 bps | + | Serial.begin(9600); // opens serial port, sets data rate to 9600 bps |
} | } | ||
Zeile 17: | Zeile 22: | ||
- | Raspberry Pi: | + | ===== Raspberry Pi ===== |
+ | Zuerst muss man die serielle Schnittstelle für die eigene Nutzung freischaufeln (zuvor diente die Schnittstelle, um dort Terminals zu betreiben.) | ||
<code> | <code> | ||
sudo nano /etc/inittab | sudo nano /etc/inittab | ||
Zeile 37: | Zeile 43: | ||
folgende Zeilen auskommentieren: | folgende Zeilen auskommentieren: | ||
<code> | <code> | ||
- | console=ttyAMA0,115200 und kgdboc=ttyAMA0,115200 | + | ... |
+ | console=ttyAMA0,115200 | ||
+ | ... | ||
+ | kgdboc=ttyAMA0,115200 | ||
+ | ... | ||
+ | </code> | ||
+ | |||
+ | Für das Programm braucht man noch Python-Bibliotheken, die man schnell installiert: | ||
+ | <code> | ||
+ | apt-get install python-pip | ||
+ | pip install pyserial | ||
+ | </code> | ||
+ | |||
+ | Anschließend den Raspberry Pi neu starten: | ||
+ | <code> | ||
+ | sudo reboot | ||
+ | </code> | ||
+ | |||
+ | |||
+ | Das nachfolgende Programm übergibt abwechselnd 0 und 255 an den Arduino: | ||
+ | <code python> | ||
+ | import serial | ||
+ | import time | ||
+ | |||
+ | delay = 0.5 | ||
+ | comunicacion = serial.Serial('/dev/ttyAMA0',9600) | ||
+ | comunicacion.close() | ||
+ | comunicacion.open() | ||
+ | |||
+ | while True: | ||
+ | comunicacion.write(chr(0)) | ||
+ | time.sleep(delay) | ||
+ | comunicacion.write(chr(255)) | ||
+ | time.sleep(delay) | ||
</code> | </code> | ||