In dieser Anleitung geht es darum, wie man am einfachsten die PINs am GPIO Board definiert, die Eingänge und Ausgänge setzt, bzw. wie ihr sehen könnt, wo 3,3 Volt Spannung, 5 Volt Spannung und die Masse abgegriffen werden kann. Als kleines Ad-On binden wir dann genau diese Board auch noch in Python ein, damit diese unter der Programmiersprache angesprochen werden können. Python deshalb, da dies meiner Meinung nach die einfachste Art und Weise ist um eigene Programme am Raspberry Pi zu schreiben. Zum einen ist der Funktionsumfang wirklich riesig und zum anderen ist die Sprache sehr einfach zu verstehen und zu schreiben.
Um diese Aufgabenstellung zu erledigen würde es mehrere Ansätze geben. Ich habe sehr gute Erfahrungen mit dem Tool WiringPi gemacht, welches ersten sehr gut gepflegt wird und zweitens alle derzeit verfügbaren Boards unterstützt. D.h. ihr könnt dieses HowTo auf den Raspberry Pi 1 und Pi2 anwenden und auf alle Modelle die es darunter gibt.
Wir installieren uns WiringPi.
Für folgende Schritte sind Root Rechte notwendig. Entweder ihr löst dies mit den entsprechenden Nutzer oder setzt vor alle Befehle ein „sudo“ davor!
apt-get install git-core
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build
So den ersten Schritt hätten wir nun schon erledigt!
Jetzt sollten wir natürlich wissen, wo sich welche Ports mit welchen Eigenschaften sich befinden:
Hier hilft uns folgende Übersicht weiter:
Erste Zeichnung – das erste Raspi Modell
Zweite Zeichnung – die Revision 2 des Raspberry Pi
Dritte Zeichnung – Das Modell B+ und der Pi 2 B
So, jetzt wissen wir, welche Ports welche Belegung haben. Wie im Diagramm sehr gut zu sehen ist, sind alle Board sehr ähnlich gehalten.
Mit diesem Wissen können wir nun natürlich rein theoretisch auch schon die erste Interaktion auslösen!
Wir benötigen hierfür lediglich eine LED, welche die 3,3 Volt des Raspberry Pis unterstützt! (Alternativ mit Widerstand arbeiten)
INFO:
Egal ob ein Eingang oder Ausgang definiert wurde. Es wird immer mit 3,3 Volt gearbeitet. Wichtig ist dies vor allem beim Eingang – denn legt ihr hier 5 Volt an, kann der Raspberry Pi einen Schaden erleiden.
Um die LED zu betreiben, suchen wir uns nun 2 PINs aus, welche uns Masse (Ground) und die 3,3 V liefern werden.
–> 6 –> Gound
–> 7 –> 3,3 V –> GPIO04
INFO:
Die oberen Reihen sind immer die äußeren Ports!
D.h. 2,4,6,8 usw. befinden sich am Rand des Raspberry Pi!
Wenn ihr eine LED (längeres Beinchen ist Plus!) nun mit diesen zwei Punkten verbunden habt, müssen wir jetzt den Ausgangsport definieren!
gpio -g mode 4 out
Damit wurde nun der 4er Port als Ausgang definiert!
Und mit folgenden Befehl geben wir nun Spannung auf den Port!
gpio -g mode 4 1
Die LED sollte nun leuchten! Damit die LED wieder erlischt benötigt ihr folgenden Befehl:
gpio -g mode 4 0
TIPP:
Wenn ihr prüfen wollt, ob alle Einstellungen richtig durchgeführt worden sind, könnt ihr diese mit folgenden Befehl quer checken:
gpio -g readall
Dieser Befehl gibt Euch eine Tabelle aus in der die Belegung ersichtlich ist.
So, Teil 1 hätten wir nun erledigt!
Folgt nun die Anbindung an Python:
apt-get install python-dev python-rpi.gpio
Jetzt ist die Python Unterstützung gegeben!
Um diese zu testen, gehen wir wie folgt vor!
Wir erzeugen zuerst ein Python File:
nano testfile.py
Und nun schalten wir unsere LED wieder ein nach 5 Sekunden wieder aus!
Dafür kopiert ihr folgende Zeilen in das gerade erzeugte File:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT)
for x in range(0,10):
time.sleep(5)
GPIO.output(4,1)
time.sleep(5)
GPIO.output(4,0)
Dieses File startet ihr nun mit folgenden Befehl an:
python testfile.py
Jetzt sollte die LED 10 mal an und aus gehen mit einer Pause von jeweils 5 Sekunden.
Sollte dies der Fall sein, haben wir die GPIO Ports sauber konfiguriert und in Python eingebunden.
Dann wünsche ich Euch viel Spaß bei der Umsetzung Eurer Projekte.
Tags:
- variable definieren pi
- wo ist gpio 1 am rasberry 3
- nano v3 eingänge definieren
- wiringpi pin 8 eingang
- raspberry gpio als ausgang definieren
Gibt „git clone git://git.drogon.net/wiringPi“ nicht mehr ?