Startseite
  • Registrieren

Beitragsseiten

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.

Kommentare   

-1 #30 Jörg Neumann 2015-03-30 16:29
zitiere gerhard:
Installiert ist PCManFM 1.2.3.
"Extras" finde ich nicht und damit auch den Eintrag "Als Administrator anzeigen" auch nicht.
Kann mir jemand helfen?


Klar kann Dir jemand helfen! Leider kommt man bei den Änderungen die es beim Raspberry Pi gibt kaum noch mit den Anleitungen hinterher. Die Funktion gibt es nicht mehr. Es gibt aber die Möglichkeit jedes Programm mit dem Vorsatz gksu als root laufen zu lassen. Entweder im Hauptmenü »Ausführen« wählen oder die Tastenkombinati on Alt + F2 nutzen eine Konsole (Terminal öffnen)und eintippen:
gksu pcmanfm
Zitieren
-2 #29 gerhard 2015-03-30 15:52
Ich habe RaspberryPi + und versuche seine Geheimnisse zu verstehen.
Schon beim Dateiexplorer scheitere ich mit der Anleitung. Installiert ist PCManFM 1.2.3.
"Extras" finde ich nicht und damit auch den Eintrag "Als Administrator anzeigen" auch nicht.
Kann mir jemand helfen?
Zitieren
+1 #28 Felix 2014-12-22 17:43
Cool wirklich gute Erklärung jetzt hab ichs endlich verstanden Perfekt für Anfänger erklärt :-)
Zitieren
-7 #27 Jörg 2013-09-16 14:21
zitiere Christian:
Hm, irgendwie hab ich da noch etwas falsch verstanden. Du schreibst etwas von GPIO3, aber auf dem Schaubild sehe ich keinen GPIO3. Die neue Verbindung ist auf dem GPIO1.

Was Du nicht wissen kannst und ich streng geheim gehalten habe: Die Anleitung ist von mir für die Rev. 2 des Raspberry Pi, das Bild ist das Anschlussfeld der Rev. 1. Ich überarbeite sowieso gerade alle Anleitungen um die neuesten Erkenntnisse einfließen zu lassen, da ändere ich das dann gleich. Sorry für die Verwirrung.
Zitieren
-4 #26 Christian 2013-09-16 13:49
Hm, irgendwie hab ich da noch etwas falsch verstanden. Du schreibst etwas von GPIO3, auber auf dem Schaubild sehe ich keinen GPIO3. Die neue Verbindung ist auf dem GPIO1.
Wo hab ich da nicht richtig hingesehen?
Zitieren
-5 #25 Jörg 2013-09-11 19:16
Normalerweise kannst Du die GPIOs je nach Anschluss mit 8 / 12 mA (source / sink) belasten. Danach bricht die Spannung zusammen, die an den GPIOs 3,3 V beträgt. Also ist direkt maximal eine LED drin. Für größeres brauchst Du Transistoren oder Schaltkreise. Die GPIOs sind nur Steuerein- / Ausgänge.
Zitieren
-3 #24 Tom 2013-09-11 18:49
Hallo,

Toll erklärt alles. Gerade für einen Anfänger wie micht top. Vllt. suche ich falsch oder habe was überlesen, aber wieviel Volt bzw. Ampere gibt den der hier verwedendete GPIO 2 raus?

Danke für deine Mühe && Gruß Tom
Zitieren
-4 #23 Leon 2013-06-05 14:27
Zitat:

1. Die LED leuchtet von vorne herein bis man: echo "out" > /sys/class/gpio/gpio2/direction
eingibt

2.echo /sys/class/gpio /gpio3/value gibt nur "/sys/class/gpio /gpio3/value"
den Wert bekommt man statt dessen über:
cat /sys/class/gpio /gpio3/value
Stimmt soweit, auf einem "normalen" Debian funktioniert dass nur mit cat.
Das TUtorial scheint sehr gut zu sein, obwohl ich bei der ersten Schaltung immer scheitere..^^
Zitieren
-3 #22 Jan 2013-04-21 00:22
Also ich habe gerade mal alle Schritte auf einem jungfäulichen Raspbian Wheezy (2013-02-09) gemacht und dabei fiel mir folgendes auf:

1. Die LED leuchtet von vorne herein bis man: echo "out" > /sys/class/gpio/gpio2/direction
eingibt

2.echo /sys/class/gpio /gpio3/value gibt nur "/sys/class/gpio /gpio3/value"
den Wert bekommt man statt dessen über:
cat /sys/class/gpio /gpio3/value
Zitieren
-1 #21 Jörg Neumann 2013-03-18 13:15
zitiere Ru Wolf:
in dem Befehl:
echo "2″ > /sys/class/gpio/export
wird das falsche Anführungszeichen verwendet

Danke für den Hinweis, ist geändert!
Zitieren

Warenkorb

0 Produkte - 0,00 EUR
Zum Warenkorb

Deutsches Raspberry Pi Forum

Neue Produkte

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