ein paar Leute im Forum verwenden ja den Cubietruck – für die könnte das interessant sein (oder auch nicht):
Worum es geht
WiringPi bzw. eine Portierung davon. wiring ist eine Software zum Ansprechen der gpios des Arduino und WiringPi bietet ähnliches am Raspberry Pi. Jemand hat dann das ganze auf ein Cubieboard (1 und/oder 2) portiert (oder neu geschrieben?) und WiringCB genannt.
In einem italienischen (?) Forum habe ich dann von einer Portierung namens WiringCT auf den Cubietruck gelesen, bei der allerdings viele Dinge nicht funktioniert haben.
Im nicht mehr existierenden Cubieboard Forum hat sich ein Mitglied namens gkoala der Software erbarmt und auf Basis von WiringBP, einer Version für den Banana Pi Pro, tatsächlich eine hervorragend funktionierende Variante für den Cubietruck hervorgebracht und zur Verfügung gestellt.
Das Kompilieren und Installieren war immer eine etwas mühsame Angelegenheit, weil es ein Quellcodearchiv mit mehreren build-Skripten mit sudo-Befehlen drin, Makefiles, einer setup.py für den python-Teil und ein paar Fehler enthält, aber nachdem man diese Hürde gemeistert hat, läuft es nach allem was ich sagen kann problemlos.
Jedenfall habe ich daraus nun ein paar Debianpakete gezimmert, die ich natürlich auch herausrücke (deshalb dieser Thread), wenn jemand Interesse hat.
die Pakete
Getestet habe ich die Pakete auf einem, nach der Anleitung im offiziellen Debian Wiki [1], installierten stretch. Weil die Software direkt auf »/dev/mem« zugreift ist der Kernelparameter »iomem=relaxed« notwendig. Die einzelnen Pakete sind
- wiringpi_2-1.deb
Das Paket enthält das Kommandozeilentool »gpio« und die C Bibliothek. Dieses Paket habe ich mit dpkg-deb gepackt, deshalb kann ich nur das Binärpaket und das unveränderte Quellcodearchiv von gkoala anbieten und kein Debian-Quellcodepaket, das auch den Code für die folgenden beiden Pakete enthält.
- python-wiringpi2_1.0.10-1_armhf.deb
- python-wiringpi2-dbgsym_1.0.10-1_armhf.deb
Zum Download kann ich es nirgends anbieten, aber alles zusammen ist weniger als 1 MB gross, sollte sich also recht einfach per Mail verschicken lassen.
ein Beispiel
Ein Beispiel zur Verwendung habe ich auch noch. Mit »gpio« lassen sich die gpio-Pins aus der Kommandozeile manipuluieren und es kann auch eine Übersicht über den Zustand anzeigen
Code: Alles auswählen
# gpio readall
+-----+-----+---------+------+---+--CubieTruck--+---+--+---------+-----+-----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| | | 0v | | | 1 || 2 | | | 3.3v | | |
| | | AVCC | | | 3 || 4 | | | RESET | | |
| 0 | 8 | PC19 | IN | 0 | 5 || 6 | 0 | IN | PC21 | 9 | 1 |
| 2 | 10 | PC20 | IN | 0 | 7 || 8 | 0 | IN | PC22 | 11 | 3 |
| 4 | 12 | PB14 | IN | 0 | 9 || 10 | 0 | IN | PB16 | 13 | 5 |
| 6 | 14 | PB15 | IN | 0 | 11 || 12 | 0 | IN | PG17 | 15 | 7 |
| | | 0v | | | 13 || 14 | | | 0v | | |
| 8 | 16 | PI20 | IN | 0 | 15 || 16 | 0 | IN | PI14 | 17 | 9 |
| 10 | 18 | PI21 | IN | 0 | 17 || 18 | 0 | IN | PI15 | 19 | 11 |
| 12 | 20 | PI3PWM1 | ALT5 | 0 | 19 || 20 | 0 | IN | PB3 | 21 | 13 |
| 14 | 22 | PB2PWM0 | ALT5 | 0 | 21 || 22 | 0 | ALT5 | PB4 | 23 | 15 |
| 16 | 24 | PB18 | ALT5 | 0 | 23 || 24 | | | LINEINL | | |
| 17 | 25 | PB19 | ALT5 | 0 | 25 || 26 | | | LINEINR | | |
| | | CVBS | | | 27 || 28 | | | LRADC0 | | |
| | | 5v | | | 29 || 30 | | | LRADC1 | | |
| | | 3.3v | | | 31 || 32 | | | 3.3v | | |
| 18 | 26 | PG0 | IN | 0 | 33 || 34 | 0 | IN | PG3 | 27 | 19 |
| 20 | 28 | PG2 | IN | 0 | 35 || 36 | 0 | IN | PG1 | 29 | 21 |
| 22 | 0 | PG4 | IN | 0 | 37 || 38 | 0 | IN | PG5 | 1 | 23 |
| 24 | 2 | PG6 | IN | 0 | 39 || 40 | 0 | IN | PG7 | 3 | 25 |
| 26 | 4 | PG8 | IN | 0 | 41 || 42 | 0 | IN | PG9 | 5 | 27 |
| 28 | 6 | PG10 | IN | 0 | 43 || 44 | 0 | IN | PG11 | 7 | 29 |
| | | 0v | | | 45 || 46 | | | 0v | | |
| | | XP | | | 47 || 48 | | | TVIN0 | | |
| | | XN | | | 49 || 50 | | | TVIN1 | | |
| | | YP | | | 51 || 52 | | | TVIN2 | | |
| | | XN-BT | | | 53 || 54 | | | TVIN3 | | |
| 30 | 30 | LED gr | OUT | 0 | 55 || 56 | 0 | OUT | LED wh | 31 | 31 |
| 32 | 32 | LED or | OUT | 0 | 57 || 58 | 0 | OUT | LED bl | 33 | 33 |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
+-----+-----+---------+------+---+--CubieTruck--+------+---------+-----+-----+
Für python habe ich aber ein Beispiel parat. Mit einer led.py mit diesem Inhalt 40081 kann man die vier LEDs des Cubietruck nacheinander pulsieren lassen
Code: Alles auswählen
# python led.py
Ich hoffe es ist ok, wenn ich das hier in einem eigenen Thread poste (für einen Wiki-Artikel hätte ich mir mehr Mühe geben müssen).
[1] https://wiki.debian.org/InstallingDebianOn/Allwinner