Schlagwort-Archive: Raspberry Pi

Raspberry Pi Zero

Heute war der Raspberry Pi Zero, vor wenigen Tagen bestellt bei Pimoroni (UK). im Briefkasten.

20160521_134433

Im Pibow Zero Case kann sich der Raspberry Pi Zero durchaus sehen lassen.

20160521_140002_000

Als nächstes werde ich auch diesen Raspberry Pi mit dem PREEMPT_RT Patch versehen, um ihn echtzeitfähig zu machen. Auf die Ergebnisse bin ich gespannt.

Echtzeitfähiger Raspberry Pi

In vielen Bereichen der Steuerungstechnik wird echtzeitfähiges Verhalten der eingesetzten Rechner erwartet. Für Mikrocontroller, die ohne Betriebssystem (bare metal) arbeiten, ist das in der Regel kaum ein Problem. Will man auf ein Betriebssystem nicht verzichten, dann stehen zahlreiche Echtzeit-Betriebssysteme (RTOS) zur Verfügung.

Für Linux-Devices gibt es verschiedene Möglichkeiten, Echtzeitfähigkeit sicher zu stellen. Im White Paper „LINUX und Echtzeit – Eine Übersicht prinzipieller Lösungsansätze“ werden unterschiedliche Möglichkeiten dazu aufgezeigt. Der PREEMPT_RT Patch des Mainline-Linux-Kernels ist der favorisierte und durch die Linux-Community getragene Ansatz.

Die Schritte zum Aufsetzen eines PREEMPT_RT Kernels für den Raspberry Pi  sind auf einer separaten Webseite dokumentiert.

An dieser Stelle werden die Ergebnisse der Latenzzeitmessung mit dem Programm cyclictest für Raspbian Jessie und den Kernel mit  PREEMPT_RT Patch verglichen:

Linux raspberrypi 4.4.9+ #884 Fri May 6 17:25:37 BST 2016 armv6l GNU/Linux

$ sudo ./cyclictest -l50000000 -m -n -a0 -t1 -p99 -i400 -h400 –q

hist
# Total: 049929616
# Min Latencies: 00014
# Avg Latencies: 00033
# Max Latencies: 03978
# Histogram Overflows: 70384

Die mittlere Latenzzeit beträgt 33 µs, wobei 70384 der insgesamt 50 Mio Messungen oberhalb von 400 µs liegen und die maximale Latenzzeit sogar 3978 µs beträgt.

Linux raspbberypi 4.1.15-rt15 #1 PREEMPT RT Tue May 17 17:19.15 CEST 2016 armv6l GNU/Linux

$ sudo ./cyclictest -l50000000 -m -n -a0 -t1 -p99 -i400 -h400 –q

rthist
# Total: 050000000
# Min Latencies: 00015
# Avg Latencies: 00027
# Max Latencies: 00146
# Histogram Overflows: 00000

Die mittlere Latenzzeit beträgt 27 µs und die maximale Latenzzeit nur 146 µs.

Fazit

Durch den Einsatz des PREEMPT_RT Patchs auf den Kernel werden die Latenzzeiten deutlich reduziert und Determinismus des zeitlichen Verhaltens erreicht.

Für den hier untersuchten Raspberry Pi wurde die maximale Latenzzeit von fast 4 ms auf weniger als 150 µs reduziert.

JSON-Daten im Shell-Script filtern

Das JSON-Format dient an vielen Stellen als lesbares Format zum Datenaustausch zwischen unterschiedlichen Anwendungsprogrammen. JSON-Dateien sind einfache Textdateien, die sich in jedem Texteditor öffnen lassen. Bei grösseren Dateien kann jedoch die Übersicht schnell verloren gehen.

Bei Anfragen an Webserver werden die Daten häufig im JSON-Format zur Verfügung gestellt. Es dient praktisch als Alternative zu XML.

Um nun in einem Shell-Script auf die Daten einfach zugreifen zu können, bietet sich der Einsatz eines JSON-Prozessors für die Kommandozeile an.

Unter Debian, und damit auch für den Raspberry Pi, steht das Paket jq zur Verfügung. Die Installation kann folgendermaßen vorgenommen werden:

sudo apt-get install jq

Zur Vertiefung zu Installation und Anwendung sei auf das Howto und die jq-Website verwiesen.

RPi-Monitor

Xavier Berger veröffentlichte den RPi-Monitor V.2.10 im Januar 2016.

Hatte ich bei der Installation für den Banana Pi noch einige Handarbeit zu leisten. Gibt es hier eine sehr gute Installationsanleitung für den Raspberry Pi.

Die folgenden Screenshots zeigen die aktuelle Situation für einen Raspberry Pi 2 auf dem die Sensordaten eines Wettersensors ASH2200 erfasst und zu ThingSpeak gesendet werden () nach ca. einem Tag Laufzeit.

RPi-Monitor1

RPi-Monitor2

RPi-Monitor3

UNIXBench Raspberry Pi 2 Modell B

Der Raspberry Pi 2 Modell B bietet eine erhebliche Leistungssteigerung gegenüber seinen Single-Core-Vorgängern. Neben einem Broadcom BCM2836 900 MHz ARM Cortex-A7 Quad-Core-Prozessor mit VideoCore IV Dual-Core-GPU verfügt der Raspberry Pi 2 Modell B nun auch über 1 GB RAM-Speicher. Der Betriebssystemkern wurde aktualisiert, um die neueste ARM Cortex-A7-Technologie voll auszuschöpfen.

Ich habe Raspbian Jessie installiert und über raspi-config 900 MHz Taktfrequenz (Medium) eingestellt, um den UNIXBench zum Test laufen zu lassen.

Für den Raspberry Pi und andere Linux-Devices sind Ergebnisse von UNIXBench’s zusammengestellt, die mit den hier gewonnenen Ergebnissen raspberrypi-2016-02-10-02 (PDF) ergänzt werden können.

Eine deutliche Leistungssteigerung ist bereits im Single Core Betrieb zu verzeichnen.