Kleinstrechner-Vergleichstest: Raspberry Pi Zero gegen Orange Pi Zero

Seite 4: GPIO-Leistung und Einsatzoptionen für Zeros

Inhaltsverzeichnis

Für einen weiteren Vergleichstest werfen wir noch einen Blick auf die Möglichkeiten und Grenzen der beiden Prozessrechner im Bereich der GPIO-Signalausgabe. Als Erstes kommt der Raspberry Pi Zero W zum Einsatz, auf dem wir per SSH-Verbindung folgendes C-Beispielprogramm ablegen:

#include <wiringPi.h>
int main (void)
{
wiringPiSetup () ;
pinMode (7, OUTPUT) ;
for (;;)
{
digitalWrite (7, HIGH) ;
digitalWrite (7, LOW) ;
}
return 0 ;
}

Die Interaktion mit externer Hardware erfolgt am Rasberry Pi im Allgemeinen über die WiringPi-API, die sich vom Design her an der gleichnamigen Programmierschnittstelle der Arduino-Boards orientiert. Wichtig ist an diesem Beispiel die Kompilation, die durch Einbindung einer zusätzlichen Bibliothek zu erfolgen hat:

pi@raspberrypi:~ $ gcc runthis.c -lwiringPi
pi@raspberrypi:~ $ ./a.out

Die von der Bibliothek verwendeten Pin-Nummern sind am Zero physikalisch. Das folgende Bild zeigt die auf den Ausgabe-Pins erscheinende Wellenform.

Die fundamentale Wellenform liegt beim Raspberry Pi Zero im Bereich von 6.33 MHz.

Die Hardware-Kommunikation erfolgt im Orange Pi-Ökosystem ebenfalls im Stil von Wiring. Die Bibliothek steht hier allerdings nicht schlüsselfertig zur Verfügung, sondern muss nach den auf GitHub bereitstehenden Anweisungen kompiliert werden.

Interessanterweise lässt sich die Kompilation der Beispielprogramme dann durch das -l-Flag lwiringPi bewerkstelligen, auch der Name der zu inkludierenden Header bleibt identisch.

Änderungen sind bei der Beschreibung der Pins erforderlich. Möchten Sie abermals den physikalisch siebten Pin entscheiden, so müssen Sie Pin-ID Nummer zwei verwenden. Informationen über die Korrelation liefert das Programm gpio readall.

An dieser Stelle können wir auch diese Version des Programms zur Ausführung freigeben. Das folgende Bild zeigt, dass das GPIO-Subsystem (wohl aufgrund weniger starker Optimierungen der Bibliothek) etwas gemächlicher arbeitet.

Am OrangePi Zero liegt die Fundamentale bei 1.1 MHz, die Stabilität ist befriedigend.

Als zweiten Test wollen wir die Netzwerk-Übertragungsfähigkeit testen. Hierzu benötigen wir einen zweiten Rechner – im Test wurde ein ThinkPad T430 verwendet. Installieren Sie auf beiden Maschinen iperf, was unter Debian nach folgendem Schema erfolgt:

pi@raspberrypi:~ $ sudo apt-get install iperf
Reading package lists... Done

Das ThinkPad soll als Maschine mit mehr Rechenpower die Rolle des Servers einnehmen. Gestartet wird der Testserver über ein Terminalfenster:

tamhan@tamhan-thinkpad:~$ iperf -s

Wechseln Sie danach auf den Raspberry Pi Zero W und befehligen Sie nach folgendem Schema einen Benchmark-Lauf. Die IP-Adresse ist dabei die IP-Adresse des ThinkPads, die Sie an ihre lokalen Gegebenheiten anpassen müssen:

pi@raspberrypi:~ $ iperf -c 192.168.2.75
------------------------------------------------------------
Client connecting to 192.168.2.75, TCP port 5001
TCP window size: 70.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.2.156 port 52252 connected with 192.168.2.75 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 31.6 MBytes 26.4 Mbits/sec

Die hier durchgeführten Benchmark-Werte blieben im Allgemeinen konstant. Der langsamste Wert im Test war 24,8. Am Raspberry Pi ist die Arbeit insofern bequem, als sich das WLAN über eine grafische Benutzerschnittstelle einrichten lässt. Am Orange Pi wird stattdessen das semigrafische Programm nmtui genutzt. Beachten Sie, dass es während der Einrichtung eine Änderung aller IP-Adressen durchführen kann, weshalb vorhandene SSH-Verbindungen verloren gehen.

Als weiterer Test bietet sich ein Netzwerkbenchmark an. Trotz der Verfügbarkeit eines Gigabit-Netzwerks ist der Test auf 100 MBit beschränkt, weil die Netzwerkkarte des Orange Pi Zero nicht gigabitfähig ist:

root@orangepizero:~# iperf -c 192.168.1.67
. . .
[ 3] local 192.168.1.77 port 48712 connected with 192.168.1.67 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 113 MBytes 94.5 Mbits/sec

Als Nächstes folgte eine Gruppe von Scan-Läufen aus derselben Position, an der sich vorher der Raspberry Pi Zero W befand:

root@orangepizero:~# iperf -c 192.168.2.75
. . .
[ 3] local 192.168.2.21 port 45894 connected with 192.168.2.75 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-11.1 sec 8.38 MBytes 6.30 Mbits/sec

Trotz der Stubbel-Antenne des Orange Pi Zero sind seine erreichten WLAN-Leistungsdaten wesentlich schlechter.

Bei den Einsatzszenarien von Raspberry Pi Zero und Orange Pi Zero scheint vor allem der Formfaktor ein entscheidendes Auswahlkriterium zu sein. Immer dann, wenn bei einem MSR- oder Maker-Projekt der verfügbare Platz knapp bemessen ist, wird die Wahl auf einen der beiden Kandidaten fallen.

Ob Modellauto, intelligente Drohne oder ein Nistkasten mit Video-Überwachung – der Fantasie sind hier keine Grenzen gesetzt. Das Web ist voll mit Anregungen und Youtube voll mit einschlägigen Tutorials, die zum Nachbau oder zu Erweiterungen anregen.

Der bei beiden Kleinstcomputern vorhandene GPIO-Port und weitere Standard-Schnittstellen erlauben den Zugriff auf allerhand nützliche Peripherie. Das Spiel mit Sensoren und Aktoren beherrschen sowohl Raspberry Pi Zero als auch Orange Pi Zero nahezu perfekt und das noch, ohne viel Platz und Strom in Anspruch zu nehmen. Selbst Akku-Betrieb und Solarzellen zur Stromversorgung sind eine Option.