Eine Anfrage eines Lesers, danke Thomas S., hat mich mal wieder angespornt ein wenig mit dem BananaPi M2-Ultra zu spielen. Für die neuen Leser hier, GPIO (General Purpose Input Output) sind die Pins der Platine auf dem Ultra. Diese haben verschiedene Funktionen, wie man unten auf dem Bild erkennen kann.
Bildquelle: https://bananapi.gitbooks.io
Um diese GPIO's benutzen zu können braucht es folgende Sachen.
System - Download , benutzt habe ich "2016-11-29-debian-8-jessie-lite-beta2-bpi-m2u-sd-emmc.img.zip"
uname -a
Linux bpi-iot-ros-ai 3.10.65-BPI-M2U-Kernel #5 SMP Tue Nov 29 03:11:02 UTC 2016 armv7l GNU/Linux
Das System auf eine SD-Karte bügeln, dann damit booten, danach
apt-get update && apt-get upgrade
Zur Benutzung der GPIO's gibt es eine Library namens Wiring Pi. Diese ist original vom Entwickler für die Raspberry's geschrieben worden. Da diese nicht auf dem BananaPi M2-Ultra läuft, gibt es von Sinovoip eine angepasste Version. Diese findet man unter https://github.com/BPI-SINOVOIP/WiringPi/
Ok, wir installieren es mal. Wir holen uns das Paket mal ab.
wget https://github.com/BPI-SINOVOIP/WiringPi/archive/master.zip
Danach auspacken.
unzip master.zip
Danach Verzeichnis wechseln.
cd WiringPi-master/
Danach bauen wir uns die Library.
./build
Es gab ein paar Meldungen, aber am Ende scheint es zu funktionieren. Wir testen mal die Version.
root@bpi-iot-ros-ai:~/test3/WiringPi-master# gpio -v
gpio version: 2.44
Copyright (c) 2012-2017 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty
Raspberry Pi Details:
Type: Banana Pi M2 Ultra[R40], Revision: 01, Memory: 2048MB, Maker: BPI-Sinovoip
* Device tree is enabled.
*--> sun8iw11p1
* Root or sudo required for GPIO access.
Jetzt die erste Merkwürdigkeit, wenn man einen readall macht
root@bpi-iot-ros-ai:~# gpio readall
Oops - unable to determine board type... model: 28
findet er keine passende Boardunterstützung. Beim Original BPi kommt dann folgendes
Sehr praktisch, weil man da alles schön ablesen kann. Jetzt war ich etwas verwirrt, ob das überhaupt läuft!? Ok, schauen wir mal...
Die dazugehörige Schaltung
Bildquelle: https://www.elektronik-kompendium.de/sites/raspberry-pi/2006051.htm
Pinbelegung:
CON1-P01 - VCC-3V3
CON1-P06 - GND
CON1-P16 - GPIO 23
Der Widerstand hat 10kOhm. Für Funktion usw. lest bitte den erstklassigen Beitrag des Elektronik Kompendium!
Und nun das Ergebnis, zwischen 0 und 1 habe ich den Schalter geschlossen.
root@bpi-iot-ros-ai:~# gpio -g read 24
0
root@bpi-iot-ros-ai:~# gpio -g read 24
1
root@bpi-iot-ros-ai:~# gpio -g read 24
0
root@bpi-iot-ros-ai:~# gpio -g read 24
1
root@bpi-iot-ros-ai:~# gpio -g read 24
0
Fertig - funktioniert.
Fazit:
Warum geht readall nicht, das macht das Leben so viel einfacher - vor allen Dingen für Anfänger. Leider hapert es beim Ultra immer noch an einer vernünftigen Unterstützung. Wer solche Dinge gerne ausprobiert, greift lieber zum originalen BPi oder zu einem Raspberry, da funktioniert es wenigstens.