• Schwierigkeitsgrad: Fortgeschrittener

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.

gpio pic.jpg

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

pulldown.gif

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.