circuits
  • Registrieren

Article Index

Ein Merkmal, dass den Raspberry Pi von ähnlichen Projekten unterscheidet, ist die Möglichkeit Ein- und Ausgangssignale über extra dafür vorgesehene Stiftleisten auszuwerten. Dabei kann jeder einzelne Pin angesteuert oder auch mehrere Pins zu Schnittstellen zusammengefasst werden. Das Prinzip nennt sich General Purpose Input / Output (GPIO), einfach übersetzt Allzweck Ein- / Ausgabe. Der Treiber für die GPIOs ist in dem von uns verwendeten Rasbian bereits integriert. Wir werden hier anfänglich kurz auf die Grundlagen eingehen um uns ein Bild zu machen, wie Raspbian mit den GPIOs umgeht. Das mag zu Anfang etwas kompliziert aussehen aber wir werden merken, dass mit den entsprechenden Hilfsmitteln alles ganz einfach wird.

Das Betriebssystem Raspbian stellt die GPIOs in so genannten virtuellen Dateien dar. Übrigens macht es das nicht nur mit den GPIOs, sondern auch mit der Masse der anderen Hardware. Es gibt also fast für jede verbaute Komponente eine virtuelle Datei. Das Gute daran ist, man findet also jedes Gerät in irgendeiner Form im Dateiverzeichnis. Und das kann man relativ schnell über beliebige Dateimanager oder auch über die Kommandozeile erreichen.

Wenn wir jetzt schon experimentieren wollen wäre es gut, den Raspberry Pi hochzufahren. Raspbian erlaubt eine Menge an Befehlen in der Konsolenansicht, da wir aber nicht alle Linuxkenner sind machen wir es uns einfach und nutzen die grafische Oberfläche. Haben wir in der Konfiguration eingestellt, dass nicht grafisch gestartet wird, starten wir diese nach dem Anmelden mit:

startx

Wir öffnen den mitglieferten Dateiexplorer und finden unter Extras den Eintrag "Als Administrator anzeigen", das machen wir mal, weil uns dann auch wirklich alle Dateien angezeigt werden. Das Verzeichnis für die GPIOs befindet sich unter /sys/class/gpio. Nach dem Start befinden sich dort nur die Dateien "export" und "unexport". Dem System wurde also noch nicht mitgeteilt, dass wir die GPIOs ansteuern möchten. Um einen GPIO verfügbar zu machen, muss die dementsprechende Nummer in die Datei "export" geschrieben werden.


GPIO aktivieren

Um das zu tun öffenen wir die mitgelieferte Administratorkonsole. Wir nehmen diese, weil Sie uns die direkte Befehlseingabe mit den Rechten eines Administrators erlaubt. Berechtigungen sind unter Linuxsystemen ein weites Thema, welches uns noch des Öfteren begegnen wird.

Jetzt teilen wir dem System mit, dass wir den GPIO2 nutzen wollen. Dazu tippen wir in die Konsole folgenden Befehl, abgeschlossen wird eine Befehlseingabe immer mit der Eingabetaste:

echo "2" > /sys/class/gpio/export

Damit wird GPIO2 aktiviert. Wenn wir anschließend mit dem Dateiexplorer in das Verzeichnis /sys/class/gpio gehen sehen wir, dass ein Verzeichnis "gpio2″ erstellt worden ist.
In diesem Ordner gibt es eine Datei mit dem Namen "Direction" und eine mit dem Namen "Value". Diese Dateien steuern den GPIO-Pin.


GPIO als Ausgang nutzen

Um nun die Funktion zu testen, sollten wir die folgende Testschaltung aufbauen. Die Steckerleiste des Raspberry Pi ist in der Abbildung vergrößert in grün dargestellt.

LED an GPIO

Wir verbinden also den GPIO2 des Raspberry Pi mit dem Pluspol der Diode und die Masse (0V, man könnte auch Minuspol sagen, wäre aber nicht ganz richtig) mit der Masseleiste des Experimentierboaords. Mit dem Widerstand (620 Ohm ergeben einen Strom von 5mA) verbinden wir die Masse mit dem Minuspol der LED. Und fertig!

Jetzt wollen wir mal testen wie so ein GPIO funktioniert. Dazu wollen wir dem GPIO erst mal sagen was er überhaupt ist. Er kann nähmlich sowohl Ausgang als auch Eingang sein. Wir wollen, dass die LED leuchtet, also machen wir aus GPIO2 einen Ausgang. Dazu tippen wir in die Konsole:

echo "out" > /sys/class/gpio/gpio2/direction

Das ist der Linuxbefehl, um ein "out" in die Datei direction zu schreiben. Jetzt weiß der GPIO2 das er als Ausgang zu funktionieren hat. Der Ausgang liegt zur Zeit auf 0 Volt, unsere LED leuchtet nicht. Um das zu erreichen tippen wir:

echo "1" > /sys/class/gpio/gpio2/value

Genau, das ist der Linuxbefehl, um eine 1 in die Datei value zu schreiben. Unsere LED sollte nun leuchten.


GPIO als Eingang nutzen

Jetzt haben wir einen Ausgang am GPIO programmiert. Versuchen wir nun mal einen Eingang. Wir nehmen mal den GPIO3 und sagen ihm er soll ein Eingang sein. Also als erstes sorgen wir dafür, dass der GPIO3 weiß, dass er benutzt werden soll.

echo "3" > /sys/class/gpio/export

Dann teilen wir ihm mit dass er ein Eingang ist:

echo "in" > /sys/class/gpio/gpio3/direction

Und nun fragen wir ihn ab:

cat /sys/class/gpio/gpio3/value

Und es wird eine 1 angezeigt. Warum das denn? Weil der Pin des GPIO3 noch in der Luft hängt, also einen so genannten hochohmigen Eingang hat und den als Zustand an, also 1 interpretiert. Um ihn auf 0 zu bekommen verbinden wir ihn einfach mit Masse und geben das gleiche Kommando nochmal ein. Halt! Nicht gleich los tippen. Kommandos im Terminal können wir leicht wiederholen, indem wir die Pfeiltasten benutzen. Einfach mal ausprobieren. Es wird je nach Pfeil vorwärts und rükwärts geblättert. Ist der richtige Befehl da, einfach mit Enter bestätigen. Der um ein Kabel erweiterte Aufbau könnte dann so aussehen:

GPIO auf Masse

Hier wird einfach nur das Kabel in das Experimentierboard gesteckt. Zum Testen reicht das. Später nehmen wir natürlich einen Schalter für solche Aufgaben.

Add comment

Security code
Refresh

Shopping Cart

0 Products - 0,00 EUR
Go to cart

Newest products

miniUSB Verbindungskabel 15cm (Code: MINIUSB15CM)
0,65 EUR
Raspberry Pi 3 Modell B+ (Code: RASPI3BPLUS)
36,50 EUR
3D Druck Gehäuse NanoPi NEO AIR (Code: GEHNANOPINEOAIR)
5,50 EUR
3D Druck Gehäuse NanoPi NEO (Code: GEHNANOPINEO)
4,50 EUR
NanoHat Proto (Code: NANOHATPROTO)
7,45 EUR