GPIO KREATIV NUTZEN
Bereits beim Auspacken des Banana Pi fÀllt die 26- oder 40-polige Sockelleiste auf. Das Rastermaà von einem Zehntelzoll (2,54 mm), das auch SCSI- oder IDE-Kabel verwenden, ist in der Elektronikszene sehr beliebt. Und bereits die Verwendung »echter« Stecksockel deutet an, dass diese Pins ganz bewusst Ihnen, dem Nutzer, bereitgestellt werden! Machen Sie etwas daraus!
Sogenanntes General Purpose Input Output â kurz GPIO â ist bei integrierten oder eingebetteten Systemen nicht ungewöhnlich. Viele ChipsĂ€tze sehen bis zu 100 Pins dafĂŒr vor. In Ihrem DSL-Router dienen die GPIO-Pins beispielsweise dazu, den Tastendruck des Reset- oder WPS-Buttons abzufangen oder LEDs blinken zu lassen. In anderen FĂ€llen werden andere Chips ĂŒber langsame Bussysteme angeschlossen und kommunizieren mit dem Linux-System ĂŒber simple Protokolle. Busse und Protokolle variieren: Mal können ĂŒber 1.000 GerĂ€te auf einem Bus mit 1 MBit pro Sekunde kommunizieren, mal benötigt ein Bus drei Datenleitungen (Senden, Empfangen, Takt) und eine Steuerleitung fĂŒr jeden Client fĂŒr ein paar Hundert kBit pro Sekunde. Gelegentlich ist sogenanntes »Bitbanging« â am besten mit »Bittrommeln« zu ĂŒbersetzen â erforderlich, um ein paar Tausend Bit pro Sekunde ĂŒber die Leitung zu bringen.
Allen gemeinsam ist, dass GPIO einerseits relativ robust hinsichtlich der verwendeten Spannungen ausgelegt ist und andererseits gegenĂŒber Störungen tolerant arbeitet. Kurzum: GPIO ist ideal fĂŒr eigene Elektronikversuche und recht fehlertolerant, wenn ein paar wenige Regeln beachtet werden.
Protokolle im GPIO
Auf den nĂ€chsten Seiten und in schematischen Darstellungen werden Sie immer wieder mit den Busprotokollen UART, I2C oder SPI konfrontiert werden. Stehen diese Bezeichnungen an Pins, bedeutet es, dass hier diese Protokolle in Hardware (und damit schnell!) implementiert sind. Sollten Sie nur eine LED blinken oder einen Schalter auswerten lassen, greifen Sie daher besser auf einen anderen Pin zurĂŒck, wenn eine gewisse Wahrscheinlichkeit besteht, dass Sie das betreffende Protokoll fĂŒr andere Bausteine benötigen.
Pinbelegung der Banana Pi
In den folgenden Abschnitten werden Sie mit den GPIO-Pins des Banana Pi konfrontiert sein. Perfide dabei ist, dass es verschiedene Enumerationsmethoden gibt. Es dominieren »physikalische«, wobei die Pins einfach in ihrer Lage in der Platine durchgezĂ€hlt werden: Links sind die ungeraden, rechts die geraden. Es geht also von links oben mit Pin 1 ĂŒber Pin 2, der beim Banana Pi M1 die Ecke kennzeichnet, nach rechts unten zu Pin 26. Etwas gemeiner sind die logischen Bezeichnungen, weil ab und an mal ein Port von Hardwarerevision zu Hardwarerevision seinen Namen wechselt.
Hier nun eine ultimative Tabelle der GPIO-Ports des Banana Pi M1. Pin 2 liegt in der rechten oberen Ecke neben der Ăse, Pin 26 auĂen und neben der gelben Composite-Videobuchse:
Achtung beim R1!
Pin 1 liegt auĂen nahe der Ăse. Das bedeutet, dass fĂŒr Raspberry Pi oder Banana Pi M1 entworfene Aufsteckplatinen nach auĂen zeigend aufgesteckt werden mĂŒssen.
Software installieren
Bananian bringt noch keine Software zum Ansteuern der GPIO-Pins mit, die muss nachinstalliert werden. Allerdings liegt sie nur als Quellcode vor, daher mĂŒssen Sie die benötigten Programme selbst ĂŒbersetzen. Installieren Sie zunĂ€chst die zum Kompilieren benötigten Pakete mittels apt-get:
apt-get install build-essential python2.7 python-setuptools python-dev git sudo
Nun wechseln Sie in den Ordner /usr/src und laden mittels git die Quellcodes herunter. Der beschriebene Befehl verwendet den Zweig (Branch, daher -b) der 26-poligen Banana Pi M1 und R1, fĂŒr die 40-poligen Banana Pro und M1+ mĂŒssen Sie bananapro verwenden:
cd /usr/src
git clone https://github.com/LeMaker/WiringBP.git -b bananapi
git clone https://github.com/LeMaker/RPi.GPIO_BP -b bananapi
Als Erstes kompilieren und installieren Sie WiringBP:
cd /usr/src/WiringBP
bash build
War die Installation erfolgreich, installieren Sie das GPIO-Modul fĂŒr Python:
cd /usr/src/RPi.GPIO_BP
python setup.py config
python setup.py build
python setup.py install
Testen Sie anschlieĂend mit dem Befehl
gpio readall
ob auf die GPIO-Pins zugegriffen werden kann. In unserem Beispiel werden bereits die Pins RX und TX der in der GPIO-Leiste vorhandenen zweiten seriellen Schnittstelle benutzt. Drucken Sie sich die Tabelle am besten als Spickzettel aus, denn Sie werden auf verschiedene Programmierbeispiele stoĂen, die teils die physikalische Notation (Nummerierung in der Sockelleiste) und teils die GPIO-Bezeichnung benutzen.
Start mit Steckbrett und LED
FĂŒr den Aufbau einfacher Schaltungen empfehlen wir ein Steckbrett, bei dem oben und unten Schienen quer fĂŒr Masse und Versorgungsspannung vorhanden und senkrecht jeweils fĂŒnf Steckpunkte durchkontaktiert sind. FĂŒr den Aufbau von Schaltungen auf dem Steckbrett benötigen Sie sogenannte Jumperkabel, groĂe Versender haben BĂŒndel mit 40 StĂŒck fĂŒr wenige Euro im Programm.
FĂŒr den Anschluss des Banana Pi ans Steckbrett sind sogenannte »male-female jumpers« praktisch â Jumperkabel, die auf einer Seite eine Buchse besitzen. Sollen verhĂ€ltnismĂ€Ăig viele der GPIO-Pins benutzt werden, ist die Verwendung von BrĂŒcken wie der Allnet-Breakoutplatine (113079) praktisch.
FĂŒr die Fotos verwenden wir, wo es sinnvoll ist, das etwas kompaktere »Raspi GPIO shield 1.0«, das allerdings nicht alle GPIO-Pins auf das Steckbrett fĂŒhrt. Sinnvolle Alternativen sind sogenannte U- oder T-Cobbler. Achten Sie beim Kauf darauf, dass möglichst wenige Löcher des Steckbretts verdeckt und damit nutzlos werden.
LEDs sind praktisch
FĂŒr Tests verwenden wir gern LEDs. Leuchtdioden sind mittlerweile billig und hinreichend robust. Einfache 2,5-mm- oder 5-mm-LEDs nehmen zudem nur wenige MilliampĂš...