Sie sind auf Seite 1von 92

Robotik: Vier-Achsen-Roboter mit Messereport: Hingucker auf der

professioneller Technik ansteuern Make Munich und Embedded World

05-06/2019 • April / Mai 2019

Home Improvement
TV-Streaming, E-Ink-Infoscreen, Raumklima überwachen

Anydesk
Unkomplizierter Fernzugriff auf
den RasPi von jedem OS aus

I2C-Praxis
Spannungen exakt messen mit
dem A/D-Wandler MCP3424

Sonic Pi 3
MIDI- und OSC-Nachrichten
ereignisgesteuert verarbeiten

Witty Pi Mini
Real Time Clock und Zeitsteuerung
als kompakter pHAT für alle Raspberry-Pi-Modelle

WWW.RASPBERRY-PI-GEEK.DE EUR 9,99


Deutschland
A EUR 11,00 - BeNeLux EUR 11,50
CH sfr 16,00 - E / I EUR 12,90 4 198554 709992 06
Editorial

Keep calm …

Jörg Luther
Chefredakteur

Sehr geehrte Leserinnen und Leser,

nach der Abgabe einer RasPi-Geek-Aus- wohl auf die Verfügbarkeit und die Preise zwangsläufig die Lieferkette vom Spedi-
gabe in die Druckerei dauert es exakt des Mini-Rechners und des zahlreichen teur bis zum Endkunden hochwandern.
14 Tage, bis das Heft am Kiosk liegt. Zubehörs auswirkt, das die Raspberry Pi Aber Hand aufs Herz: Würden Sie bei
­Möglicherweise kennen Sie also, wenn Foundation anbietet. Ihrem nächsten Projekt auf einen Rasp­
Sie diese Zeilen lesen, schon die Antwort Fürs Erste lässt sich da aber weitgehend berry Pi verzichten, wenn er ein paar
auf eine Frage, die ich mir bei Tippen am Entwarnung geben, auch ohne zu wis- Euro teurer käme? Ich nehme an, die
21. März noch stelle: Kommt der harte sen, wann und wie das Brexit-Drama ­Reaktion auf diese Frage fällt bei Ihnen
Brexit am 29.03., oder wird er auf Mitte ­endet. Zum einen haben sich die großen ebenso aus wie bei mir und besteht in
Mai (vor den Europa-Wahlen) oder gar Anbieter hierzulande in weiser Voraus- ­einem energischen Kopfschütteln. Inso-
bis Juni verschoben? Finden UK und EU sicht mit großen Mengen an RasPis aller fern bleibt uns nichts anderes übrig, als
sogar noch eine Einigung, die ein unge- Modelle und passendem Zubehör ein­ abzuwarten und uns ins Unvermeidliche
regeltes Ausscheiden des Vereinigten gedeckt, um nicht in Lieferengpässe zu zu fügen. Keep calm and carry on, wie
­Königreichs aus der Union verhindert? laufen. Zum anderen fallen die SBCs zoll- der Brite sagt …
Zwar betreffen diese Fragen letztlich technisch in die Rubrik der „automati-
jeden Europäer, doch gerade wir Rasp- schen Datenverarbeitungsmaschinen“, Herzliche Grüße,
berry-Anwender sehen da mit besonde- die bei der Einfuhr in die EU aus Dritt-
rem Interesse hin. Schließlich wurde staaten regelmäßig mit null Prozent ver-
­unser Lieblingsrechner nicht nur auf den zollt werden. Der Wermutstropfen: Das
britischen Inseln erfunden, sondern wird gilt nur für die Mini-Rechner selbst, nicht
dort auch gefertigt: Sony baut jeden aber für Zubehör wie etwa die RasPi-Cam
­Monat rund 50 000 der Single-Board- oder einen DVB-T-µHAT.
Computer in einer Fabrik im südwalisi- Zudem könnten sich bei einem harten
schen Pencoed, zwischen Cardiff und Brexit die Transportkosten für die RasPis
Swansea. Und so stellt sich just zum erhöhen, etwa wenn die Lkw bei der
7. Geburtstag des Raspberry Pi die bange dann notwendigen Zollabfertigung in
Frage, wie sich der Brexit, insbesondere Calais stundenlang warten müssten.
in der harten Variante ohne Abkommen, „Deutsche Speditionen und Logistik­
unternehmen werden durch Grenzkon­
trollen und damit verbundene Wartezei-
ten, höhere Kosten und enorme Hürden
durch Zollabfertigung und Nachweis-
pflichten belastet“, fürchtet da der Deut-
sche Speditions- und Logistikverband.
Die entstehenden Mehrkosten würden

05-06/2019 www.raspberry-pi-geek.de 3
05-06

12 Alle zwei Jahre trifft sich die Maker-


Szene zur Make Munich. Dieses
22 Anydesk bietet seine Fernsteue-
rungssoftware auch für den RasPi
an. Ähnlich wie Teamviewer erlaubt sie den 26 Kurz nach Erscheinen von Kodi
18.0 legt auch das LibreELEC-Pro-
Jahr platzte das Treffen aus allen Nähten, zur Fernzugriff auf den Desktop von anderen jekt mit der Version 9.0 ein neues Major-
bekannten Zenith-Halle kam als Veranstal- Rechnern aus, verursacht dabei jedoch er- Release vor. Wir testen, wie sich die neuen
tungsort der Kohlebunker nebenan hinzu. heblich weniger Kompatibilitätsprobleme. Funktionen auf dem RasPi schlagen.

Aktuelles Report Software

Angetestet �������������������������������������������� 6 Make Munich 2019���������������������������� 12 Anydesk���������������������������������������������� 22


Transparent auf Archive zugreifen mit Ob 3D-Druck, Mini-Rechner oder analoge Die von dem in Stuttgart und Berlin an­
Avfs 1.0.6, Angriffe aus dem Internet abweh- Projekte – auf der Make Munich im März sässigen Unternehmen Anydesk entwickelte
ren mit Denyhosts 3.1, statische Bildgalerien fanden Besucher aller Alterklassen die gleichnamige Remote-Desktop-Lösung
erzeugen mit Fgallery 1.8.2, Prozesse auf passenden Aussteller. Bei zahlreichen Work- steht für den privaten Einsatz kostenfrei zur
mehrere CPU-Cores verteilen mit Splitjob 2.2. shops, Vorträgen und Diskussionen kamen Verfügung. Es gibt die Software in Ver­sionen
alle Besucher auf ihre Kosten. für Linux (auch auf dem RasPi), FreeBSD, Mac
Ausgepackt�������������������������������������������� 8 und Windows. Im Gegensatz zu Teamviewer
Alternative Stromversorgung Pimoroni Embedded World 2019���������������������� 16 sind auch unterschiedliche Generationen der
Wide-Input Shim, Embedded-RasPi-Variante Die Embedded World behandelt verschie- Anwendung untereinander kompatibel.
Compute Module CM3+, Mini-Lautsprecher dene Schwerpunktthemen. Da sind zum
Buzzer für Info- und Warntöne, Kabel-TV- einen das Internet der Dinge, verteilte Intel-
Tuner Xbox One Digital TV Tuner. ligenz und E-Mobility. Zum anderen spielen
Multimedia
natürlich auch Punkte wie die Sicherheit in
LibreELEC 9.0�������������������������������������� 26
elektronischen Systemen und Energieeffizi-
enz eine entscheidende Rolle. Im Test müssen sich Kodi 18.0 und LibreELEC
18.0 in der Praxis beweisen. Wir prüfen, wie
sich Netflix, Amazon Prime Video und Retro-
Games auf dem Mediacenter schlagen.

66 Da der RasPi auf eine Echtzeituhr und auch ein


BIOS verzichtet, lässt er sich nicht ohne Weiteres
zeitgesteuert aufwecken. Die notwendigen Zusatzkom-
ponenten sind zwar nicht teuer, erfordern aber Elektro-
nik- und Lötkenntnisse. Der Witty Pi Mini füllt die Lücke.

4 www.raspberry-pi-geek.de 05-06/2019
42 E-Ink-Displays behalten auch
ohne Strom ihre Anzeige − ideal
60 Sie haben eine wichtige Präsen­
für Infos, die Sie immer im Blick haben
wollen. Mit wenigen Befehlen laden Sie
die passende Anwendung samt komplet-
tationsdatei zu Hause vergessen?
Kein Problem: Mit der Pintexx Pinbox grei-
fen Sie mühelos auf den heimischen Rech-
80 Unser I2C-Workshop stellt diesmal
den A/D-Wandler MCP3424 vor,
der Bastlern aufgrund seinerw seiner pfiffi-
tem Applikationsserver auf einen RasPi. ner zu und laden sie herunter. gen Konstruktion das Leben einfach macht.

Hacks Open Hardware Know-how

Robotik mit PiXtend�������������������������� 34 Pintexx Pinbox������������������������������������ 60 Sonic Pi (Teil 4) ���������������������������������� 72


Mit einem Raspberry Pi, dem Controller-­ Das Aufsetzen zuverlässiger und sicherer Mit der Version 3.0 hat Sonic Pi einen großen
Modul PiXtend und der professionellen Ent- Remote-Desktop-Lösungen erfordert einiges Satz nach vorn gemacht. Ging es vorher
wicklungsumgebung von Codesys steuern Know-how. Die auf einem Raspberry Pi allein darum, aus Codezeilen Musik zu ma-
Sie mühelos einen 4-Achsen-­Roboterarm an basierende Appliance Pinbox von Pintexx chen, gelingt nun auch die Kommunikation
und automatisieren dessen Bewegungen. reduziert den entsprechenden Konfigura­ über Netzwerke und MIDI-Leitungen sowie
tionsaufwand auf ein Minimum. das Verarbeiten externer Audiosignale.
E-Ink-Infoscreen �������������������������������� 42
Ein maßgeschneiderter Infoscreen auf Rasp­ Witty Pi Mini �������������������������������������� 66 I2C-Workshop (Teil 25) ���������������������� 80
berry-Pi-Basis mit stromsparendem E-Ink- Dem Raspberry Pi fehlt eine interne Echtzeit- Der A/D-Wandler MCP3424 mit vier Eingän-
Display zeigt Termine, Bilder, Mitteilungen uhr, die das System zeitgesteuert aufwecken gen und 18 Bit Genauigkeit hilft bei vielen
und Wetterinformationen an. Die Steuerung und zum Stromsparen wieder schlafenlegen Basteleien. Insbesondere exakte Spannungs-
übernimmt eine Java-Spring-Boot-Anwen- könnte. In Form des µHAT Witty Pi Mini von messungen macht er besonders einfach.
dung mit komplettem Applikationsserver. UUGear rüsten Sie solch einen ­Wecker leicht
und kostengünstig nach.
Thermo-Hygrometer�������������������������� 50
Sie kennen das Problem: Während der Heiz­
periode brennen oft die Augen, die Haut
fängt an zu spannen. Ursache dafür ist eine
zu trockene Raumluft. Um die Luftfeuchtig-
keit und Raumtemperatur zu überwachen,
gibt es Thermo-Hygrometer: Mehrere Sen-
soren senden ihre Daten an einen RasPi, der
die Informationen aufbereitet und über ein
Service
Node-RED-Dashboard präsentiert.
Editorial ������������������������������������������������ 3

Geek Bazar������������������������������������������ 86

Impressum������������������������������������������ 89

Vorschau/Autoren/Inserenten���������� 90

05-06/2019 5
Aktuelles Angetestet

Archivar Komprimierte Archive sparen zwar Spei-


cherplatz, doch der Zugriff auf den Inhalt
die Programme Avfsd, Mountavfs und
Unmountavfs. Mit Mountavfs binden Sie
von ZIP- oder Tar-Dateien gelingt nur mit einen Verzeichnisbaum des lokalen Sys-
Über Avfs 1.0.6 greifen Sie
den jeweiligen Tools und nicht transpa- tems unter $HOME/.avfs ein. Im Hinter-
transparent auf die Inhalte von rent. Hier schafft „A Virtual File System“ grund startet Mountavfs den Dienst
Archivdateien zu. oder kurz Avfs Abhilfe. Das Programm er- ­Avfsd, der den virtuellen Verzeichnis-
möglicht den transparenten Zugriff auf baum verwaltet. Darin navigieren Sie wie
Inhalte mit beliebigen Applikationen. gewohnt und greifen mit beliebigen
Dazu unterstützt die Software verschie- Tools auf die enthaltenen Dateien zu. Mit
dene Möglichkeiten. Die einfachste da- dem Befehl cd Archiv#/ wechseln Sie in
von liegt in der Kombination von Avfs mit eine komprimierte Datei und bewegen
FUSE. Letzteres integriert Dateisysteme sich darin wie in einem Verzeichnis. Die
im Userspace und stellt dazu die entspre- Inhalte des Archiv kopieren Sie mit Bord-
chenden Schnittstelle bereit. Das Reposi- mittel. Neben dem Einbinden von Archi-
tory von Raspbian ent- ven bietet Avfs die Möglichkeit, entfernte
hält eine stabile FUSE- Verzeichnisse via HTTP, FTP oder SSH ein-
Version, die Sie mit weni- zubinden. Einige einfache Beispiele fin-
gen Handgriffen installie- den Sie in der Datei README des Quellar-
ren. Die im Repository chivs. Für das Einbinden von Verzeichnis-
enthaltene Avfs-Version sen via SSH benötigen Sie außerdem
ist dagegen etwas älter; ­einen Schlüssel ohne Passwort. Alles in
hier empfiehlt sich der allem fällt die mit Avfs gelieferte Doku-
Einsatz der aktuellen, mentation etwas dürftig aus, Sie sollten
korrigierten Version. Bei Experimentierfreude mitbringen.
Bedarf kompilieren Sie
das Tool schnell aus den Lizenz: GPLv2 nn

Quellen und erhalten so Quelle: http://​­avf.​­sourceforge.​­net

Bilderbuch Möchten Sie online Bilder präsentieren,


dazu aber keine komplexe Installation
aus und sortiert sie basierend auf dem
Zeitstempel. Dabei skaliert es die Vor-
Mit Fgallery 1.8.2 erzeugen pflegen, finden Sie in Fgallery das pas- schaubilder automatisch passend. Das
sende Werkzeug. Es erzeugt einfache, sta- Zielverzeichnis verschieben Sie in den
Sie ressourcenschonende tische Web-Galerien; auf eine Datenbank Dokumentenordner eines Webservers.
statische Bildergalerien. als Backend-Speicher können Sie verzich- Bei Design und Layout greift Fgallery auf
ten. Der statische Ansatz sorgt für einen ein Standarddesign zurück, das im Unter-
minimalen Ressourcenbedarf – ideal für verzeichnis views/ liegt. Dort finden sich
den Einsatz auf dem RasPi. Zur Navigati- auch die notwendigen CSS-Dateien so-
on integriert die Software beim Erstellen wie der Javascript-Code und die Symbole
auf Javascript basierende Steuerelemen- für die Navigationselemente. Das Stan-
te in die Galerie, mit denen Sie durch die darddesign eignet sich als Vor­lage für
Seiten der Alben blät- ­eigene Entwürfe. Im Standardlayout zeigt
tern. Um eine neue Ga- das Programm das aktuelle Bild in der
lerie zu erzeugen, geben Fenstermitte an, am Rand platziert es
Sie beim Programmauf- eine Leiste mit den Thumbnails der fol-
ruf das Quellverzeichnis genden Bilder. Mit dem Parameter ‑f
mit den Bildern sowie ­optimieren Sie den Zuschnitt der Thumb-
ein Zielverzeichnis und nails bei Portraits auf das Gesichtsfeld,
einen Namen für die mit ‑j teilen Sie das Erzeugen der Galerie
­fertige Galerie an. Beim auf mehrere Prozessorkerne auf.
Anlegen des Zielver-
zeichnisses richtet das Lizenz: GPLv2 n

Programm die Bilder Quelle: https://​­www.​­thregr.​­org/​­~wavexx/​


­automatisch einheitlich ­software/​­fgallery/

6 www.raspberry-pi-geek.de 05-06/2019
Angetestet Aktuelles

Der RasPi 3 verfügt über vier mit 1,4 GHz


getaktete Prozessorkerne – da liegt es
ten als Single-Thread ab. Für das parallele
Verarbeiten unterteilt Splitjob die einge-
CLI-Turbo
nahe, die Arbeitslast bei der Datenverar- henden Daten in 1 MByte große Blöcke,
Das pfiffige Splitjob 2.2
beitung entsprechend zu verteilen. Aller- die es weiterleitet; mit ‑b variieren Sie die
dings unterstützen viele Tools von Haus Blockgröße. Schlägt das Verarbeiten eines
verteilt Aufgaben auf
aus keine Parallelisierung. Hier hilft Split- Blocks fehl, startet Splitjob drei weitere mehrere Prozessorkerne.
job weiter: Es verteilt die zu verarbeiten- Versuche. Bleiben diese ebenfalls erfolg-
den Daten auf mehrere Prozesse und fügt los, fährt es mit dem nächsten Block fort.
dann das Ergebnis wieder zusammen. Die Anzahl der erneuten Versuche passen
Dazu erzeugt es Queues, auf die es die Sie mit dem Parameter ‑r an. Als letzten
eingehenden Daten verteilt und über die Parameter übergeben Sie das auszufüh-
Standardeingabe an die laufenden Pro- rende Programm. Das
zesse weiterleitet. Da es diese selbst star- Tool unterstützt dabei
tet, behält Splitjob dabei stets den Über- nur einfache Konso-
blick. Eine Konfiguration benötigt es lenprogramme, die
nicht, alle Einstellungen erfolgen über keinerlei Parameter
Kommandozeilenparameter beim Aufruf. oder Eingaben benöti-
So legt der Parameter ‑j fest, wie viele gen. Mit Programmen,
Prozesse das Tool erzeugt. Geben Sie die eine grafische
nichts vor, startet das Programm nur ei- Oberfläche haben,
nen einzigen Prozess und arbeitet die Da- funktioniert das Ganze
nicht. Die Webseite
Lizenz: BSD n
des Entwicklers zeigt
Quelle: http://​­splitjob.​­sourceforge.​­net/
einige Beispiele.

Mit seinem minimalen Ressourcenbedarf


eignet sich der RasPi ideal als Heim-Ser-
aus. Verbindungen zum Root-Account
blockiert es bereits nach dem ersten
Schutzwall
ver, der sich auch aus dem Internet errei- Fehlschlag. Alle Grenzwerte dürfen Sie in
Mithilfe von Denyhosts 3.1
chen lässt. Dabei schützt ein Tools wie der Konfiguration nach Belieben anpas-
Denyhosts vor Angriffen: Das Python-­ sen. Die IP-Adressen potenzieller Ein-
identifizieren Sie Attacken und
Programm überwacht die Log-Dateien dringlinge hinterlegt Denyhosts in der sperren den Angreifer aus.
und sperrt potenzielle Angreifer aus. Es Datei /etc/hosts.deny. Standardmäßig
wurde ursprünglich zum Schutz von SSH- sperrt es nur den Zugriff auf den SSH-
Zugängen entwickelt, eignet sich aber Port; alternativ blockieren Sie alle Verbin-
auch, um andere Dienste zu schützen. dungen von diesen Remote-Systemen
Eine ältere Version findet sich im Rasp­ oder setzen eine entsprechende Firewall-­
bian-Repository, das aktuelle Release mit Regel. Die Sperre behält
vielen neuen Funktionen gibt es nur auf Denyhosts mehrere Tage
der Projektseite. In der mitgelieferten bei, sofern Sie in der Konfi-
Konfigurationsdatei, die Sie als Grund­ guration nichts anderes an-
lage nutzen können, legen Sie fest, wel- geben. Sie können darüber
che Log-Dateien das Tool auf ungültige hinaus den Administrator
Anmeldeversuche überwacht und nach des gesperrten Systems
wie vielen Fehlanmeldungen das Pro- ­automatisiert via E-Mail von
gramm ein entferntes System blockiert. der Sperrung informieren.
Standardmäßig liegt der Wert bei 10, bei Wollen Sie sich lediglich
Anmeldeversuchen an einem nicht exis- ­einen Überblick über mög-
tenten Benutzerkonto sperrt das Tool den liche Angriffe verschaffen,
Eindringling schon nach fünf Versuchen starten Sie Deny­hosts als
Dienst, der stündlich eine Übersicht aller Dateien zum Artikel
Lizenz: ISC n Angreifer erzeugt. Daraus wählen Sie bei herunterladen unter
Quelle: https://​­sourceforge.​­net/​­projects/​ Bedarf Remote-Systeme aus, die Sie sper-
­denyhost/ www.​­raspi-geek.de/dl/42285
ren möchten. (agr/jlu) n

05-06/2019 www.raspberry-pi-geek.de 7
Aktuelles Ausgepackt

Kabeldings Der neue DVB-T-µHat war großes Thema


des letzten Hefts. Wer aber einen Kabel-
Reboot sollten Sie anhand der Meldun-
gen im Logfile sehen, dass das System
anschluss hat, braucht eine Alternative. den Baustein erkennt und die Firmware
Der Xbox One Digital TV Tuner
­Microsoft offeriert in Form des Xbox One lädt. Die Konfiguration von Tvheadend
verhilft dem Raspberry Pi Digital TV Tuner einen günstigen USB-­ erfolgt dann analog wie im letzten Heft
zu DVB-C-Empfang. Tuner, der nur die Hälfte des TV-HATs im Detail beschrieben, nur mit den Fre-
kostet – für vergleichbare Geräte etwa quenzen des Kabel-Providers.
von Hauppauge wandert das Vierfache Der Doppel-Tuner beherrscht auch
über den Ladentisch. Brandaktuelle Ver- DVB-T2, aber nicht gleichzeitig mit DVB-
sionen von LibreELEC unterstützen den C. Im Betrieb unterscheidet sich der Stick
Tuner schon, doch Raspbian braucht nicht von denen anderer Hersteller. Falls
diesbezüglich noch etwas Nachhilfe: Der Sie allerdings Zusatzfunktionen wie ei-
Treiber liegt erst seit Kernel 4.18 bei. nen IR-Empfänger mit Fernbedienung
Möchten Sie den Tuner schon jetzt benötigen, dann ist dieses minimalisti-
nutzen, wechseln Sie mit BRANCH=next sche Modell nicht die erste Wahl.
sudo rpi‑update auf den neuen Kernel
(Version 4.19). Die Firmware holen Sie aus Xbox One Digital TV Tuner
dem Armbian-Repository und kopieren Preis: 11 bis 13 Euro 

sie nach /lib/firmware/. Nach einem Bezugsquelle: Amazon

Stromversorger Normalerweise erhält der RasPi seinen


Strom über den Micro-USB-Anschluss an
Als Alternative bieten sich Buchsen mit
extralangen Pins an. Bei der Recherche
Der Wide-Input Shim von der Seite der Platine. Das passt nicht zu fand sich keine Version mit 2 mal 6 Pins.
jedem Projekt. Doch der Mini-PC lässt Verklebt man aber zwei 1-mal-6-Exemp-
Pimoroni eröffnet neue Möglich- sich auch über Pin 2 mit 5 Volt versorgen. lare und verlötet sie mit dem Shim, erhält
keiten der Stromversorgung. Diese Zuleitung nutzt der Wide-Input man einen mobilen Shim, der trotzdem
Shim von Pimoroni. An dessen Eingang keine Pins blockiert. Ein Zusatzfunktion
über die Hohlbuchse darf die Spannung ist der Anschluss für GND, VCC und einen
zwischen 3 und 16 V liegen. Die Platine Enable-Pin (im Bild im Vordergrund). Der
stellt bei einer Eingangsspannung zwi- VCC-Pin bietet sich als Alternative zur
schen 5 V und 16 V maximal 2 A bereit; Hohlbuchse für den Stromanschluss an.
unterhalb von 5 V fällt die maximale Verbinden Sie den Enable-Pin mit GND,
Stromstärke von 1,5 A bei 4 V auf 1 A bei schaltet die Platine den Strom ab. An VCC
3 V. Die Hohlbuchse hat zwar den eher liegt dieselbe Spannung an, die über das
unüblichen Durchmesser von 3,5 mm, Netzteil fließt. Wollen Sie darüber weite-
doch ein Adapter auf das weitverbreitete re Bauteile versorgen, müssen Sie Sicher-
5,5-mm-Format liegt bei. Ein Kabel mit heitsvorkehrungen einbauen.
verzinnten Enden gibt es als Dreingabe. Das Umwandeln der Eingangsspan-
Die Parallelversorgung des RasPi über nung auf die 5 V, die der RasPi benötigt,
Hohlbuchse und Micro-USB ist nicht erfolgt im gemessenen Bereich von 3 bis
sinnvoll und bei einem Pi Zero ohne 12 V sehr genau und selbst unter Last
Rückspeiseschutz sogar gefährlich. stabil. Ebenso primärseitig lässt sich mit
Für die Montage löten haushaltsüblichen Messgeräten kein Un-
Sie den Shim entweder terschied in der Leistungsaufnahme zu
direkt auf den GPIO- herkömmlichen USB-Netzteilen mit 5 V
Header, oder Sie ver- feststellen. Insgesamt ist die Platine eine
wenden die mitgeliefer- willkommene Ergänzung und erweitert
te Buchse, was auch die möglichen Einsatzgebiete des Rasp­
­einen Wechsel des Bau- berry Pi beträchtlich.
teils zwischen mehreren
RasPis gestattet. Sie ver- Wide-Input Shim
lieren dann aber die Preis: 11,50 Euro 

wichtigen oberen Pins. Bezugsquelle: Pimoroni

8 www.raspberry-pi-geek.de 05-06/2019
Aktuelles Ausgepackt

Krachmacher Keines der Raspberry-Pi-Modelle verfügt


über ­einen eingebauten Lautsprecher.
rung in der Mitte und Masse rechts. Für
Verwirrung sorgte zuerst, dass es n
­ ötig
Der externe Lautsprecher Buzzer Zwar bieten die größeren RasPis zumin- war, den Steuer-Pin auf Low zu ziehen,
dest ­einen analogen Audioausgang, um den Buzzer zu aktivieren. Für das
ermöglicht die Ausgabe von aber für die bloße Ausgabe von Info- An- und Ausschalten genügt das GPIO-
Info- und Warntönen. und Warntönen wäre der Anschluss Kommando aus dem Paket wiringpi,
­eines externen Lautsprechers absoluter ­alternativ verwenden Sie eine andere
Overkill. Zum Glück rüsten Sie einen Programmiersprache Ihrer Wahl.
Buzzer für wenig Geld nach; manche Wer genau hinschaut, findet auf der
Ausrüster führen solche Hardware unter GPIO-Leiste des Raspberry Pi keine drei
dem deutschen Namen Sum- Pins, die VCC, GPIO und GND nebenein-
mer. Die Bauteile gibt es in akti- ander bieten. Trotzdem ist es möglich,
ven und passiven Varianten. Ein den Buzzer rechts auf eine Streifenraster-
aktives Exemplar ist die bessere platine zu löten und dann direkt auf die
Wahl, da Sie sich nicht selbst GPIO-Leiste aufzustecken. Statt an ein
um das Generieren des Tons zu 3,3V-Pin kommt dann der VCC-Anschluss
kümmern brauchen. einfach an einen normalen GPIO-Pin,
Die Komponenten gibt es in dessen Pegel auf High steht. Die Pins des
diversen Varianten, deren An- RasPi liefern ausreichend Strom für einen
schlüsse erfahrungsgemäß nicht lauten Ton. Der Buzzer bietet damit ein
immer korrekt beschriftet sind. perfekte Ergänzung zum Pi-Stop, den wir
Im Gegensatz zu einer LED neh- in der letzten Ausgabe vorgestellt haben.
men die robusten Buzzer aber
einen falschen Anschluss nicht Buzzer
gleich übel. Das Exemplar des Preis: 1,25 Euro n

Autors hat VCC links, die Steue- Bezugsquelle: Pollin

Rechenkärtchen Beim neuen Compute Module CM3+


handelt es sich nicht um eine Innovati-
weise mit 4 GByte Flash, beim neuen Mo-
dul wählen Sie zwischen Modellen ohne,
on, sondern um schlichte Modellpflege. mit 8, mit 16 und mit 32 GByte Speicher.
Das Compute-Modul CM3+
Es dürfte das letzte Produkt aus der in- Die 4 GByte des alten CM3 genügten so
schließt den Zyklus der dritten zwischen angestaubten dritten RasPi- gerade für den Betrieb einer grafischen
RasPi-Generation ab. Generation darstellen. Das CM3+ ver- Oberfläche, mit den CM3+-Varianten ge-
wendet denselben Prozessor wie der lingt selbst die parallele Installation meh-
­RasPi 3B+, allerdings ohne den Chip für rerer Raspbian-Systeme. Auch Updates
WLAN und Bluetooth. Die Rechenmodu- für das Betriebssystem sind damit einfa-
le wenden sich seit jeher an industrielle cher möglich – gerade bei Embedded-
Fertiger und nicht an Heimanwender, Komponenten wie den Compute-Modu-
wenngleich es das ein oder andere les ein gewichtiges Argument.
Produkt in diesen Markt ge- Der Betrieb erfordert neben einem
schafft hat. Die Abbil- ­aktuellen Raspbian auch ein Upgrade
dung zeigt das CM3+ des Rpiboot-Werkzeugs. Damit gestartet,
in einem Produkt von meldet sich das CM3+ als Massenspei-
Western Digital. cher, und die Installation von Raspbian
Dank der neuen CPU, oder anderen Systemen funktioniert wie
die aus thermischen auf eine klassische Micro-SD-Karte. Bei
Gründen etwas niedriger tak- den Abmessungen und den elektroni-
tet als im RasPi 3B+, ist das Modul schen Schnittstellen gibt es keinen Un-
schneller als der abgekündigter Vorgän- terschied zum Vorgänger. (cla/jlu) n
ger. Einen gewichtigeren Grund zum
Wechsel stellt aber die Verfügbarkeit von Compute-Modul CM3+
Preis: 28 bis 45 Euro nn
Varianten mit mehr Flash-Speicher dar:
Das alte CM3 gab es ohne beziehungs- Bezugsquelle: Reichelt

10 www.raspberry-pi-geek.de 05-06/2019
Report Make Munich 2019

Make Munich 2019 – buntes Treffen der Maker-Szene

Erneut gewachsen

© Computec Media
Ob 3D-Druck, Mini-PC oder Wenn die Make Munich ruft, folgen etwa Fahrräder aus Bambus oder ein Pro-
die Maker: Wie bereits in den letzten jekt, das sich mit dem Aufbereiten von
analoge Projekte – auf der ­Jahren waren die zwei Tage Anfang März Plastik beschäftigte und es damit sogar
prall gefüllt mit Vorträgen, Workshops in die Abendnachrichten des Bayeri-
Make Munich Anfang März und Diskussionen. Neben lokalen Maker- schen Fernsehens schaffte  .1
Gruppen präsentierten auf der Ausstel- Solche Projekte waren jedoch eindeu-
fanden Besucher aller Alters- lungsfläche sowohl Firmen als auch freie tig in der Minderheit: Gefühlt lief an min-
Projekte ihre Produkte und Entwürfe. destens jedem zweiten Stand ein 3D-
klassen die passenden Aus- Passend zum Anlass stammte das Bier Drucker. Wer also für eine eigene An-
statt von einer industriellen Großbraue- schaffung Informationen und Anregun-
steller. Bernhard Bablok rei von einer kleinen Münchner Bier­ gen brauchte, schöpfte hier bei Bedarf
manufaktur. aus dem geballten Wissen der Maker. Bei
Das Wetter meinte es zumindest am vielen Projekten stand allerdings der 3D-
ersten Tag gut mit den Veranstaltern, Druck nicht im Zentrum, sondern war ein
und so war die Zenith-Halle schon früh selbstverständliches Werkzeug.
gut gefüllt. Diese Halle war der Maker- Ebenso verhielt es sich mit dem Ras-
Szene vorbehalten, während Allnet – pberry Pi: Während auf den britischen
­neben Siemens einer der Hauptsponso- ­Inseln am selben Wochenende diverse
ren – mit seiner Hausmesse den größten Gruppen mit großen Partys dessen sieb-
Teil des Kohlebunkers nebenan füllte. ten Geburtstag feierten, blieb es um den
README Auf der restlichen Fläche blieb Platz für Mini-PC in der Münchener Messehalle
diverse Workshops, etwa einem von überraschend ruhig. Der RasPi war an
Alle zwei Jahre trifft sich die Maker-Szene in
­Watterot zum Thema Löten. vielen Ständen präsent und an manchen
München. Dieses Jahr platzte das Treffen sogar käuflich zu erwerben, zählt aber
aus allen Nähten, zur bekannten Zenith- Nicht nur Elektronik ­inzwischen eindeutig zum Maker-Main-
Halle kam als Veranstaltungsort noch der stream – niemand verliert mehr große
Obwohl die Elektronik im Mittelpunkt Worte darüber, dass der Mini-Rechner
Kohlebunker nebenan hinzu.
stand, gab es viele alternative Themen, eine Maschine steuert.

12 www.raspberry-pi-geek.de 05-06/2019
Make Munich 2019 Report

1 Neben der Elektronik fanden sich auf der Make Munich 2019 auch Projekte, die sich
mit Themen wie Umweltschutz oder alternativen Transportmitteln beschäftigten.

2 Das System Brick-R-Knowledge ermög-


Mehr MINT Lektionen. Ergänzend veranstaltet Allnet licht es, Schaltkreise wie Lego-Steine zu-
passende Schulungen für Pädagogen. sammenzusetzen, was insbesondere bei
Das liegt vielleicht am Stellenwert des Für eine etwas andere Zielgruppe gibt der Jugend gut ankam.
Raspberry Pi in UK, denn dort entstand es das Brick-R-Knowledge-System. Damit
er ja gezielt für die Ausbildung von Kin- lassen sich Schaltkreise ganz in Lego-­
dern. Damit sieht es in Deutschland eher Manier einfach zusammenstecken – hier
mau aus: Ärgerlicherweise reicht die waren Kinder ebenfalls fasziniert bei der
­Fantasie deutscher Politiker beim inzwi- 2
Arbeit  .
schen fast schon berüchtigten Digital-
pakt Schule nicht über Begriffe wie Lap- Highlights
top und Tablet hinaus.
Dabei war die Zenith-Halle voll mit Die Bandbreite der vorgestellten Projekte
Kindern, und jeder Stand, an dem sie fiel immens aus, sodass eine umfassende
selbst Hand anlegen konnten, war heiß
umkämpft. Die Palette an Angeboten
reichte dabei von der Entwicklung eines
eigenen 3D-Modells am PC bis zu ersten
Erfahrungen mit dem Lötkolben im ent-
sprechenden Workshop. Einen großen
Anteil daran hatten diverse Maker-Grup-
pen aus den Regionen München und
Nürnberg: Sie bieten ohnehin regel­
mäßig Workshops für Kinder, Jugendli-
che und Erwachsene an. Wer sich dafür
interessiert, findet recht zuverlässig
regio­nale Angebote in der Nähe – oft
hilft da schon eine Google-Suche nach
dem Stichwort „FabLab“.
Der große IT-Distributor Allnet bietet
inzwischen im MINT-Bereich einige inter-
essante Produkte an. So offeriert das
­Unternehmen fertige Arduino-Boxen für
Schulklassen samt Zugang zu einer
­Online-Plattform mit Anleitungen und 3 Projekte wie dieser Cocktailmixer erfordern einen finanzstarken Partner.

05-06/2019 www.raspberry-pi-geek.de 13
Report Make Munich 2019

4 Die PCB-CNC-Fräse fand bei den


­Besuchern der Make Munich 2019 Würdigung schwerfällt. Der Aufwand, Weitere Impressionen von der Make
großen Anklang. den einzelne Firmen treiben, hing zusätz- ­Munich 2019 finden Sie bei Interesse auf
lich von deren finanziellen Möglichkeiten der Webseite der Veranstaltung unter
ab. Siemens etwa präsentierte einen voll- ­https://make‑munich.​­de.
3
automatischen Cocktailmixer  – solche
Übungsprojekte des eigenen Nachwuch- Fazit
ses bringen jedoch nur große Firmen auf
die Bühne. Der Besuch einer Maker-Messe lohnt sich
Ein typisches Beispiel vom anderen für jede Altersgruppe. Viele Projekte zei-
Ende der Skala lieferte eine kleine Grup- gen, wie mit ein wenig Fantasie und den
pe aus Italien, die ihre im Eigenbau ent- heute verfügbaren Techniken Produkte
standene PCB-CNC-Fräse „The Ant Com- im Selbstbau entstehen, die früher einen
4
pact PCB Maker“ präsentierten  . Hier hohen Betrag gekostet hätten. Der einzi-
kam regelmäßig die Frage auf, wo es das ge Wermutstropfen: Die Make Munich
Gerät zu kaufen gebe. Für das Selbstbau- findet nur alle zwei Jahre statt – aber
projekt stellen die Mitglieder aber ledig- mehr wäre für die Veranstalter derzeit
lich alle technischen Unterlagen sowie nicht zu stemmen. (agr) n
Videos mit Anleitungen im Internet be-
reit. Alles ist sehr professionell gemacht,
dahinter stecken viele Stunden persön­ Der Autor
lichen Einsatzes.
Bernhard Bablok arbeitet bei der Allianz
Sehr viel Anklang fand auch der Technology SE als SAP-HR-Entwickler. Hört
­äußerst professionell gestaltete Auftritt er nicht Musik oder ist mit dem Rad oder
einer Schülerfirma, die 3D-Druck-Dienst- zu Fuß unterwegs, beschäftigt er sich mit
leistungen anbietet. Mittlerweile arbeitet Themen rund um Linux, Programmierung
diese Gruppe sogar an einem eigenen und Mini-Rechner.
3D-­Drucker.

14 www.raspberry-pi-geek.de 05-06/2019
Report Embedded World 2019

© NürnbergMesse GmbH
Funkmodule, Displays und Besuch auf der Embedded World 2019

Eingebettet
Analysegeräte für den Rasp­
berry Pi: Auf der Embedded
World präsentieren sich zahl-
reiche Unternehmen inter­
Ende Februar präsentierten mehr als auf einem Raspberry Pi 3, der in einem
essierten Elektronikbastlern 1000 Aussteller ihre Produkte und Dienst- stabilen Industriegehäuse steckt. Die
leistungen auf der Embedded World. Wie Spannungsversorgung wie auch die IOs
und Entwicklern. Martin Mohr auch die letzten Jahre fand die Ausstel- sind für den Betrieb in Industrieanlagen
lung auf dem Messegelände in Nürnberg ausgelegt, das komplette Gerät arbeitet
statt. Schon 2018 strömten mehr als mit Pegeln von 24 Volt.
30 000 Besucher in die Hallen, für dieses Der emPC-A/​RPI3 verfügt über je vier
Jahr erwarteten die Veranstalter ein wei- galvanisch getrennte digitale Ein- und
teres Plus an Interessenten. Ausgänge. Eine RS232-Schnittstelle und
Unter den Ausstellern fanden sich alle ein CAN-Bus-Adapter ergänzen die Port-
bekannten Hersteller von elektronischen Auswahl. Als Betriebssysteme stehen
Bauelementen, Modulen und Komplett- Raspbian sowie Windows 10 IoT Core zur
systemen wieder. Auch viele Produzenten Auswahl, zum Erstellen von Programmen
von Software-Lösungen und Entwick- lassen sich beliebige Programmierspra-
lungswerkzeugen für Embedded-Syste- chen verwenden. Alternativ dazu läuft
README me zeigten ihre neuesten Produkte. Im auch die Codesys-Laufzeitumgebung auf
Folgenden geben wir Ihnen einen klei- dem industrietauglichen Mini-Rechner.
Auf der Nürnberger Embedded World
nen Überblick jener Aussteller, die aus
drehte sich 2019 alles um das Internet der
der Menge der Stände herausstachen. Hilscher
Dinge, verteilte Intelligenz und E-Mobility.
Aber auch die Sicherheit in elektronischen Janztec Bei der Integration des Raspberry Pi in
Systemen und Energieeffizienz spielten bei ein Industriegehäuse geht die Firma
Auf dem Stand von Janztec war der ­Hilscher noch einen Schritt weiter: Der
den Ausstellern eine entscheidende Rolle.
1
emPC-A/​RPI3  zu sehen  . Er basiert NetPi  bietet eine zum RasPi 3 kompa-

16 www.raspberry-pi-geek.de 05-06/2019
Embedded World 2019 Report

tible Architektur, die ausgewählte Kom-


ponenten des Originals verwendet, an-
sonsten aber eine neu entwickelte und
2
robuster ausgelegte Platine besitzt  .
Dadurch ergibt sich bei voller Kompati­
bilität zum Original eine wesentlich ver-
besserte Betriebssicherheit.
Der NetPi lässt sich mit diversen Mo-
dulen erweitern, es gibt aber auch die
Option, eigene Module zu entwickeln.
Als Betriebssystem verwendet der NetPi
ein gehärtetes Linux, das eine Docker-­
Infrastruktur bereitstellt: Alle Anwendun-
gen laufen in sicheren Containern. Das
schottet das Kernbetriebssystem kom-
plett von der Anwendungslogik ab.
1 Der Janztec emPC-A/​RPI3: Ein robuster RaPi im Industriegehäuse. (Quelle: Janztec)
Würth
Würth hat sich als Hersteller von Schrau- Mit auf dem Board befinden sich Senso- LoRa: Long Range. Proprietäre Funküber­
ben einen Namen gemacht, es gibt mit ren für Temperatur, Luftfeuchtigkeit, Luft- tragungstechnologie auf Basis des spezi-
Würth Elektronik aber noch eine moder- druck und Bewegung. Würth Elektronik ellen Modulationsverfahrens Chirp Spread
nere Facette des Unternehmens. Auf garantiert langfristigen Support, was Spectrum (CSS). LoRa entstand beim fran-
dem Stand war mit dem Amber Pi  ­industriellen Anwendern entgegenkom- zösischen Unternehmen Cycleo, inzwischen
auch ein Long-Range-Modul (kurz LoRa) men soll. Mit dem vorhandenen SDK las-
liegen die Rechte allerdings beim kalifor-
3
für den Raspberry Pi zu finden  . Die sen sich relativ leicht eigene Programme
nischen Unternehmen Semtech. Das produ-
Reichweite des Funkmoduls beträgt bis für das Amber-Pi-Modul erstellen.
ziert selbst LoRa-Chips, vergibt aber auch
zu 10 Kilometer, allerdings dann mit sehr
Lizenzen an andere Hersteller.
geringen Datenraten. Traco
Bei Traco , einem bekannten Hersteller
professioneller Gleichspannungswand-
ler, ist für Elektronikbastler vor allem die
4
TSR-Baureihe interessant  . Die kleinen
Wandler eignen sich als Alternative zu
­linearen Spannungsreglern und besitzen Was genau ist Embedded?
einen extrem guten Wirkungsgrad von
Üblicherweise spricht man von einem
bis zu 97 Prozent. Daher benötigen sie in
­Embedded-System (deutsch: eingebet­
der Regel keine Kühlkörper oder gar eine tetes System), wenn eine Hard- und Soft-
aktive Kühlung. ware-Lösung sich so in ein Gerät integrie-
Bastler sollten sich auch die DC-Netz- ren, dass der Anwender nichts von dem
teile aus der TIW-Baureihe ansehen. integrierten Computer spürt. Anschauliche
­Eigentlich für den Einbau in Unterputz­ Beispiele für solche Systeme liefern etwa
dosen oder Möbel gedacht, eignen sie der Dash-Button von Amazon, Set-Top-­
sich auch sehr gut für Testaufbauten. Die Boxen für den TV-Empfang oder auch
komplett gekapselten und kurzschluss- smarte Assistenten wie Google Home. Sie
festen Geräte wandeln die Netzspannung alle verstecken einen technisch sehr kom-
auf 3,3 bis 24 Volt herunter. Sie kosten plexen Ablauf in einem leicht zu bedie-
zwar etwas mehr als ähnliche Netzteile, nenden Gerät. Ein geringer Energiebedarf
gelten dafür aber als äußerst robust und ist für ein Embedded System ebenso wich-
tig wie eine hohe CPU-Leistung. Daher
langlebig. Zudem erzeugen sie keine
kommen in eingebetteten Rechnersyste-
Störungen in der Versorgungsspannung
men überwiegend hochmoderne Mikro-
2 Der Industrie-Raspberry NetPi von und sparen aufgrund des guten Wir­
controller zum Einsatz.
­Hilscher. (Quelle: Hilscher) kungs­grads eine Menge Energie.

05-06/2019 www.raspberry-pi-geek.de 17
Report Embedded World 2019

4 Guter Wirkungsgrad: die ­DC-DC-Wandler der TSR-Reihe von Traco. (Quelle: Traco)

3 Würth kann mehr als Schrauben: Sony runden Oberflächen verbauen. Ein mög-
Das LoRa-Modul Amber Pi von Würth liches Einsatzgebiet wären gefühlvolle
­Elektronik. (Quelle: Würth Elektronik) Sony trat auf der Embedded World Greifer für Roboter, die schon vor dem
mit dem kompakten IoT-Entwickler- Kontakt mit einem Werkstück ihre Ge-
board Spresense  auf, das auf einem schwindigkeit verringern, um dann mit
CXD6502-Mikroprozessor aufsetzt  . 5 definiertem Druck zuzugreifen.
Die integrierte CPU basiert auf einem
ARM Cortex M4F mit sechs Kernen. Das Codesys
Board versteht von der Arduino-Entwick-
lungsumgebung erzeugten Code, für Codesys  zählt zu den führenden Her-
komplexere Anwendungen steht jedoch stellern von Software für Industriesteue-
auch ein spezielles SDK bereit. Auf dem rungen. Die hauseigene Entwicklungs-
Messestand demonstrierte das Unter- umgebung unterstützt Steuerungen von
nehmen, wie einfach und schnell sich über 400 Herstellern, auch der Raspberry
mit dem Spresense und einem Kamera- Pi bleibt hier nicht außen vor. Codesys
modul eine Gestenerkennung bauen bietet zudem eine vollständige Unter-
TIPP lässt; als Beispiel wurde das bekannte stützung des KNX-Standards für die Ge-
Spiel „Schere, Stein, Papier“ implemen- bäudeautomation. In Kooperation mit
Falls Sie sich für einen Besuch auf der
tiert. Das Spresense verfügt über die ABB wurden ein Konfigurator für E/​A-­
­Embedded World interessieren – sie fin-
­üblichen Schnittstellen wie GPIO, SPI, I2C, Kanäle, ein KNXnet/​IP-Protokollstack
det 2020 vom 25. bis 27. Februar statt –,
I2S und UART. Darüber hinaus bringt es ­sowie eine Datenaustauschfunktion mit
hat der Autor zwei kleine Tipps für Sie:
einen integrierten GPS-Empfänger mit. dem ETS5-Konfigurationssystem spezi­
Viele Aussteller vergeben Freikarten und
fiziert, entwickelt und integriert.
möchten dafür oft nur Ihre E-Mail-Adresse.
Außerdem sollten Sie sich besser selbst Tacterion
verpflegen, denn die Gastronomie auf Demmel
Auch kleine und eher unbekannte Aus-
dem Messegelände ist keine Offenbarung
steller fanden sich auf der Messe. So ent- Das JoC-Modul (Java on Chip) der Wiener
und die Preise stehen in keinem Verhältnis
wickelt das junge Unternehmen Tacte­ Firma Demmel  bietet Entwicklern die
zum dürftigen Angebot. Teilweise bieten
rion  Sensoren, die sowohl kapazitiv Möglichkeit, Programme für den Mikro-
auch einzelne Messestände ihren ­Gästen
kleine Snacks an. Ein Getränk ­bekommen
arbeiten (also Annäherung detektieren) 6
controller in Java zu schreiben  . Das
als auch den Anpressdruck messen. Die schließt im Vergleich zu C oder C++ eini-
Sie üblicherweise an jedem Stand, wenn
als flexible Folien ausgeführten Sensoren ge typische Fehlerquellen vornherein
Sie ein nettes Gespräch beginnen.
lassen sich auch auf gekrümmten oder aus, wie etwa die komplizierte Pointer-

18 www.raspberry-pi-geek.de 05-06/2019
Embedded World 2019 Report

5 Kompakt und leistungsfähig: Sonys


Arithmetik. Dabei bietet die IDE alle ein plattformübergreifendes Entwick- Spresense-Entwicklerboard für IoT-­
Funktionen, die man von einer guten lungstool für Embedded-System-Anwen- Anwendungen. (Quelle: Sony)
­Java-Entwicklungsumgebung erwartet. dungen, das dem Entwickler einen Groß-
Das System erlaubt dabei, den Code teil der Konfigurationsarbeit abnimmt,
­remote auf dem Mikrocontroller zu de- sodass er sich auf die Lösung der eigent-
buggen. Der Mikrocontroller selbst ver- 7
lichen Probleme konzentrieren kann  .
fügt über umfangreiche I/​O-Schnittstel- CDP stellt Module für unterschiedliche
len (SPI, I2C, A/​D, D/​A, PWM, RS232 und Plattformen bereit, die sich einfach per
mehr), das JoC lässt sich leicht mit zu- GUI konfigurieren und miteinander ver-
sätzlichen Shields erweitern. binden lassen. Selbst Datenverbindungen
zwischen Modulen unterschiedlicher
Hersteller gelingen dabei per Mausklick.
CDP Studio
Dazu unterstützt das System die in der
Das norwegische Unternehmen CDP IoT-Welt üblichen Standardprotokolle
Technologies zeigte mit CDP Studio  wie MQTT in vollem Umfang.
Report Embedded World 2019

STMicroelectronics vorbeizuschauen –
dort findet sich für praktisch alle denkba-
ren Anwendungen ein passender Chip.
Möchten Sie sich mit einer Technologie
intensiver beschäftigen, gibt es auch für
wenig Geld ein entsprechendes Starter-
oder Discovery-Kit. Stellvertretend seien
hier das STM32L4R9-Discovery-Kit mit
­einem runden Touch-Display, das Blue-
Coin-Starter-Kit mit vielen Sensoren und
integriertem Bluetooth-Baustein ­sowie
das STM32F723-Discovery-Kit mit Audio-
und Videofunktionen genannt.

Fazit
Für alle, die sich etwas intensiver mit
­Elektronik beschäftigen, ist die Embed-
ded World dank vieler interessanter Pro-
6 Gut erweiterbar: Das Java-on-Chip- dukte ein wahres Mekka. An den Stän-
Modul von Demmel bietet zahlreiche I/​O- STMicroelectronics den der Unternehmen finden sich kom-
Schnittstellen und lässt sich bei Bedarf petente Mitarbeiter, die ausführliche In-
­unkompliziert über Shields ausbauen. Besonders großer Andrang herrschte am formationen zu den Exponaten liefern.
(Quelle: Demmel) Messestand von STMicroelectronics . Oft haben die Hersteller außerdem
Das lag nicht zuletzt daran, dass sich je- ­Demo-Boards vorrätig, die man bei
der Besucher ein kostenloses Starter-Kit Inter­esse direkt mitnehmen kann. Das
seiner Wahl aussuchen durfte. kompakte Nürnberger Messegelände
Das Unternehmen war mit zahlreichen ­erspart zwar lange Wege zwischen den
unterschiedlichen Lösungen vertreten. Messehallen, doch wenn Sie sich aus-
Suchen Sie nach einer konkreten Lösung führlich informieren wollen, sollten Sie
für ein Elektronikpro­blem, lohnt es sich trotzdem mehr als einen Tag für den
in jedem Fall, auf der Homepage von Messebesuch einplanen. (cla) n

Weitere Infos und


interessante Links
www.​­raspi-geek.de/qr/42681 7 Plattformübergreifendes Entwicklungswerkzeug mit vielfältigen Möglichkeiten:
Die Beispielseite der CDP-Studio-Anwendung. (Quelle: CDP Technologies)

20 www.raspberry-pi-geek.de 05-06/2019
Software Anydesk

Den Raspberry Pi mit Anydesk fernsteuern

So nah und
doch so fern

© olegdudko, 123RF
Der RasPi kommt häufig als Sowohl Administratoren als auch en­ Anydesk
gagierte Heimanwender, die Freunden
Server oder Steuerrechner für oder Kollegen bei Problemen mit dem Die von dem in Stuttgart und Berlin
PC helfen möchten, nutzen dazu oft Re­ ­ansässigen Unternehmen Anydesk ent­
spezielle Zwecke zum Ein- mote-Desktop-Lösungen. Das zu diesem wickelte gleichnamige Remote-Desktop-
Zweck häufig verwendete Programm Lösung steht für den privaten Einsatz
satz. Mit Anydesk erhalten Teamviewer  krankt dabei an mehre­ kostenfrei zur Verfügung. Es gibt die
ren Stellen, die vor allem in heterogenen, Software in Versionen für Linux (auch
Sie dazu eine Steuersoftware gewachsenen IT-Infrastrukturen Proble­ auf dem Raspberry Pi), FreeBSD, Mac
me bereiten. So sind die einzelnen Ver­ und Windows . Für den kommerziellen
mit grafischer Oberfläche. sionen der Software untereinander nicht Einsatz fallen Lizenzkosten an, wobei
kompatibel, sodass auf allen beteiligten Anydesk dafür verschiedene Lizenz­
Erik Bärwaldt
Rechnern stets dieselbe Version der modelle anbietet.
­Applikation installiert sein muss. Die RasPi-Variante lässt sich nahtlos
Der Einsatz älterer Varianten auf aktu­ in das Raspbian-System integrieren. Sie
README ellen Distributionen scheitert zudem oft weist mit der aktuellen Versionsnummer
wegen veralteter Abhängigkeiten, es be­ 2.9.4 zwar nicht denselben Stand auf wie
Der kommerzielle Anbieter Anydesk bietet
steht quasi ein Update-Zwang. Doch es die Linux-Variante (4.0.1), das spielt aber
seine Fernsteuerungssoftware für den pri-
geht auch anders: Das Programm Any­ keine Rolle: Die unterschiedlichen Ver­
vaten Gebrauch kostenfrei an, auch für den desk  möchte diese Defizite bei der sionen arbeiten auch plattformübergrei­
RasPi. Anydesk erlaubt ähnlich wie Team- Fernsteuerung und Fernwartung von fend tadellos zusammen.
viewer einen Fernzugriff via GUI, weist aller- Rechnern vermeiden. Zudem gibt es Anydesk zeichnet sich durch mehrere
dings erheblich weniger Kompatibilitätspro- auch eine Version für den Raspberry Pi, Innovationen aus: So enthält es mit
über die sich der Mini-Rechner fernsteu­ DeskRT einen eigenen Video-Codec, der
bleme mit verschiedenen Versionen auf als
ern lässt. Welche Anwendungsszenarien sich durch eine hohe Effizienz auch bei
der bekanntere Konkurrent.
sich daraus ergeben, klärt unser Test. geringen Bandbreiten auszeichnet. So

22 www.raspberry-pi-geek.de 05-06/2019
Anydesk Software

erreicht er Bildwiederholraten von 60 fps


schon bei mittlerer Bandbreite. Zudem
optimierten die Entwickler die Latenz­
zeiten vor allem im LAN-Umfeld, sodass
dort Verzögerungen von maximal 16 Mil­
lisekunden auftreten. Die Software arbei­
tet bereits bei Transfergeschwindigkeiten
von 100 kbit/​s flüssig – vor allem in länd­
lichen Gegenden ohne flächendecken­
des Breitbandnetz ein Vorteil im Ver­
gleich zum Mitbewerb.
Ein besonderes Augenmerk legten die
Entwickler auf das Thema Sicherheit: So
verschlüsselt Anydesk die aufgebauten
Verbindungen stets mit dem TLS-Proto­
koll und dem asymmetrischen RSA2048-
Verfahren. Außerdem lässt sich durch
Whitelists der Zugriff auf bestimmte
Computersys­teme einschränken. Die 1 Im Startfenster blendet Anydesk automatisch die ID-Nummer ein, mit der sich die
kostenpflichtige Enterprise-Variante er­ ­Gegenseite authentifizieren muss, um eine Verbindung zu etablieren.
laubt es zudem, ­einen eigenen Anydesk-
Server aufzusetzen und somit eine autar­
ke Infrastruktur auch ohne Internet-Ver­ Nach einem beherzten Klick auf Instal­ Grundkonfiguration vorzunehmen.
bindung zu eta­blieren. lieren richtet der Assistent das Programm Dazu klicken Sie oben rechts im Pro­
zügig ein. Anschließend finden Sie im grammfenster auf das Liniensymbol und
Erste Schritte Menü unter dem Punkt Internet den Star­ wählen im aufklappenden Kontextmenü
1
ter für ­AnyDesk  . Settings. Im Auswahlfeld Language stel­
Anydesk steht nicht in den Raspbian-­ Das Fenster zeigt im oberen Bereich len Sie die Sprache ein. Um den Wechsel
Repositories bereit, Sie müssen die Soft­ eine neunstellige Teilnehmernummer für zu aktivieren, starten Sie das Programm
ware von der Webseite des Anbieters den Raspberry Pi an. Bevor Sie aber eine neu. Nach einem erneuten Klick auf das
­herunterladen. Nach einem Klick auf den Verbindung herstellen, empfiehlt es sich, Liniensymbol und der Auswahl von Ein­
Dateinamen blendet Raspbian eine An­ die Bedienoberfläche auf die deutsche stellungen öffnen Sie die Grundkonfigu­
frage ein, ob es die Datei installieren soll. Lokalisierung umzustellen und eine ration erneut.
Unter Sicherheit lassen sich einige Zu­
griffsrechte auf dem eigenen Bildschirm
durch den Partner definieren, etwa der
unbeaufsichtigte Zugriff auf den RasPi. In
der Kategorie Privatsphäre legen Sie fest,
welcher Benutzername und welches Bild
beim Herstellen einer Verbindung auf
dem entfernten PC erscheinen.
Unter Darstellung passen Sie den Dar­
stellungsmodus an die Qualität der Netz­
verbindung an. Hier legen Sie auch fest,
ob der Bildschirm in voller Größe oder
skaliert angezeigt wird. Letzteres redu­
ziert die zu übertragenden Datenmen­
gen zuweilen deutlich  . 2
Verbindungen
Um mit Anydesk eine Verbindung zu ei­
nem entfernten PC aufzubauen, geben
2 Der Anydesk-Einstellungsdialog bietet zwar nicht viele, aber alle wichtigen Optionen. Sie im unteren Eingabefeld die neunstel­

05-06/2019 www.raspberry-pi-geek.de 23
Software Anydesk

3 Der Pixel-Desktop des Raspberry Pi Desktop samt dem geöffnetem Menü auf einem entfernten Rechner. Über die Reiter oben wech-
seln Sie zwischen verschiedenen Sessions.

lige ID-Nummer des Zielrechners an. Dabei erscheint im Programmfenster von ner nicht in externen Fenstern erschei­
Nach einem anschließenden Klick auf Anydesk ein neuer Reiter, in dem Sie den nen, sondern in den jeweiligen Reitern
Verbinden nimmt die Software Kontakt Desktop des entfernten Systems sehen. innerhalb des Anydesk-Fensters, wech­
auf und informiert Sie darüber in einem Mit einem Klick auf Neue Sitzung in der seln Sie mit einem Klick zwischen den
eingeblendeten Fenster. Auf dem Ziel­ Reiterstruktur des Anydesk-Fensters unterschiedlichen Desktops  .3
rechner erscheint währenddessen eine wechseln Sie wieder in den Startbild­ Die Sitzung beendet entweder der
Anfrage an den Nutzer, über die er die schirm zurück, um dort beispielsweise Partner am entfernten Computersystem,
Verbindung legitimieren muss. Bestätigt eine Verbindung zu einem weiteren ent­ indem er im Steuerfenster auf den But­
er mit Annehmen, erhalten Sie Zugriff auf fernten Computer aufzubauen. Da die ton Abbrechen klickt, oder Sie schließen
den entfernten Rechner. einzelnen Desktops der entfernten Rech­ dazu den entsprechenden Reiter.

Im Test
Im Testbetrieb gab es mit dem Steuern
des RasPi 3 Modell B von einem entfern­
ten Rechner aus über das WLAN keinerlei
4 Soll der RasPi andere Probleme. Der Kleinrechner ließ sich na­
Computer fernsteuern, hezu in Echtzeit aus der Ferne dirigieren.
erreicht er seine Leis- Deutlich anders sah es aus, wenn der
tungsgrenze. Nach Her- ­Mini-Rechner seinerseits das Steuern
stellerangaben liegt das ­anderer Computer übernehmen sollte:
in erster Linie an der Die jeweilige Verbindung baute er zwar
fehlenden Grafikbe- schnell auf, bei der Anzeige des Remote-
schleunigung. Bildschirms traten allerdings enorme

24 www.raspberry-pi-geek.de 05-06/2019
Anydesk Software

L­ atenzen auf. Das machte ein sinnvolles uns, dass die schlechte Leistung des
Steuern nahezu unmöglich. Rasp­berry Pi als Steuerrechner an der Dateien zum Artikel
Hinzu kam, dass die CPU des Rasp­ fehlenden Grafikbeschleunigung liegt. herunterladen unter
berry Pi bei Aktivitäten im Anydesk-Fens­ Das Problem will Anydesk möglicher­ www.​­raspi-geek.de/dl/42733
ter auf dem entfernten Desktop ständig weise in einer der kommenden Versio­
unter Volllast arbeitete. Das führte zur 4
nen beheben  .
starker Hitzeentwicklung und daraus
­resultierenden thermischen Problemen. Fazit
Auf dem Desktop erschien dementspre­
chend ständig eine Temperaturwarnung. Anydesk eignet sich bestens, um einen
Erst nach einer Neukonfiguration, bei der Raspberry Pi aus der Ferne anzusteuern,
der LAN-Anschluss zur Datenübertragung etwa wenn der Einplatinencomputer als
zum Zuge kam, verbesserten sich die Re­ Medien-Server oder als Steuerung für
aktionszeiten; sie blieben aber dennoch heimische IoT-Geräte dient. In diesen
sehr unbefriedigend. Szenarien arbeitet Anydesk nahezu ohne
Auch bei der neuesten Variante, dem Latenzen, sodass man tatsächlich den
Raspberry Pi 3B+, änderten sich die Eindruck hat, direkt vor dem RasPi zu
­Latenzzeiten nur unwesentlich. In allen ­sitzen. Für das Ansteuern anderer Com­
Konfigurationsvariationen zeigte sich puter aus der Ferne via Anydesk eignet
eine nahezu vollständige Auslastung der sich der Raspberry Pi dagegen derzeit
CPU mit entsprechend schlechten Reak­ nicht: Hohe Latenzen und eine bedenk­ Weitere Infos und
tionszeiten auf dem Desktop des ent­ lich hohe Systemauslastung machen das interessante Links
fernten Rechners im Anydesk-Fenster. System in solchen Anwendungsfällen
www.​­raspi-geek.de/qr/42733
Der Hersteller der Software erläuterte ­nahezu unbedienbar. (tle) n

Über 100 Schulungsthemen aus allen


Bereichen freier Software. Höchstes Niveau.
Foto: jochentack.com

Wunderschön. Hilfsbereite, offene


Atmosphäre. So fühlt sich OpenSource an.
www.LINUXHOTEL.de

05-06/2019 www.raspberry-pi-geek.de 25
Multimedia Kodi 18.0 und LibreELEC 9.0

Mit Kodi 18.0 und LibreELEC 9.0 Netflix und Co. streamen

Popcorn-Kino

© Przemyslaw Koch, 123RF


Dank Kodi 18.0 unterstützt Eine der häufigsten Aufgaben für den nux. Kurz nach der Freigabe von
Raspberry Pi stellt nach wie vor der Ein- Kodi 18.0, von den Entwicklern „Leia“ ge-
­LibreELEC 9.0 jetzt die von satz als Mediacenter dar. Der Mini-Rech- tauft, präsentiert auch das LibreELEC-
ner macht dabei in Kombination mit der Projekt mit der Version 9.0.0 die neueste
vielen Streaming-Diensten ­Mediacenter-Software Kodi jede „dum- Auflage seiner Distribution. Wir sehen
me“ Glotze zum Smart-TV. Auf dem uns im Folgenden an, was sich bei bei-
genutzte DRM-Verschlüsse- ­lassen sich dann Inhalte von lokal an­ den Projekten getan hat.
geschlossenen Datenträgern, aus dem
lung. Die Integration von Intra­net oder per Streaming aus dem Neues bei Kodi 18.0
großen weiten Netz abspielen.
Netflix und Amazon erfordert Solche Funktionen beherrschen zwar Mit Kodi 18.0 „Leia“ liefert das Mediacen-
inzwischen selbst die einfachsten mo- ter-Projekt das erste Major-Release seit
allerdings Handarbeit.
dernen Fernseher, doch mit entspre- Februar 2017 ab . Das 36-köpfige Ent-
Christoph Langner chenden Hardware-Upgrades und er- wicklerteam spricht von annähernd
weiterter Konfiguration nimmt der Me- 10 000 Commits mit einer Million neuer
diacenter-RasPi auch Fernsehsendungen und ähnlich vielen eingesparten Code-
auf oder streamt sie ins Netzwerk, so- Zeilen. Im Zug dieser Arbeiten bekam
README dass Sie b­ equem am PC oder Smartpho- das Mediacenter ganz neue Funktionen
ne fernsehen können. spendiert: So lassen sich nun klassische
Nur kurz nach dem Release von Kodi 18.0
Als Basis vieler Mediacenter-RasPis Video-Games direkt über Kodi starten
legt auch das LibreELEC-Projekt mit der Ver- dient die Kodi-Distribution LibreELEC. und zocken. Kodi selbst führt die Spiele
sion 9.0 ein neues Major-Release vor. Wir Das für den Raspberry Pi und auch ande- allerdings nicht aus: Sie als Nutzer müs-
testen, wie sich die neuen Funktionen auf re SBCs sowie für den PC verfügbare Be- sen dazu selbst die Emulatoren, Games
dem Raspberry Pi schlagen, beispielsweise
triebssystem setzt unter der Haube auf und ROMs bereitstellen.
ein „just enough operating system“, also Kodi 18 greift dabei auf die Libretro-
Retro-Games und Streaming-Dienste.
auf ein auf das Nötigste abgespecktes Li- Bibliothek  des Projekts RetroArch 

26 www.raspberry-pi-geek.de 05-06/2019
Kodi 18.0 und LibreELEC 9.0 Multimedia

1
zurück  . Viele Emulatoren wie etwa
Mame  unterstützen die Bibliothek
­inzwischen direkt. Zusätzlich lassen sich
spieletypische Eingabegeräte wie Joy-
sticks, Gamepads und andere Controller
ins System einbinden. Auf diesem Weg
steht einer gepflegten Spielerunde mit
einem Jump’n’Run-Klassiker wie Super
Mario Bros. oder Giana Sisters nichts im
Weg, so Sie denn über die entsprechen-
den Titel verfügen.
Als vielseitige Ergänzung zur eigenen
Videosammlung liefern heutzutage
Strea­ming-Dienste wie Netflix oder
Amazon Prime Video Filme und Serien in
digitaler Form direkt ins Wohnzimmer.
Mit Zattoo gibt es auch einen Anbieter,
der dasselbe mit dem TV-Programm 1 Kodi integriert mit der Version 18.0 Retro-Spiele. Dazu unterstützt das System diverse
macht – auf diese Weise empfangen Sie Emulatoren, vom Amiga und C64 bis hin zu Spielekonsolen.
auch ohne Kabelzugang oder Satelliten-
anlage digitales Fernsehen.
Zum Schutz vor unlizenzierten Kopien
verschlüsseln solche Dienste ihre Inhalte
jedoch. Kodi 18 weiß nun mit diesen
DRM-Routinen umzugehen; allerdings
hängt die Kompatibilität wesentlich von
der eingesetzten Hardware und dem
­Betriebssystem ab.
Auch um den Musikplayer und das
Verwalten der Musikbibliothek kümmer-
2
ten sich die Entwickler in Kodi 18  : Die
indexierten Titel lassen sich nun flexibler
organisieren. So gibt es beispielsweise
die Möglichkeit, Lieder nach der Quelle
oder dem Geschlecht des Künstlers zu
filtern. Die verbesserte API erlaubt einen
schnelleren Zugriff auf die Inhalte der
Musiksammlung, wodurch besonders
Nutzer einer Kodi-App auf dem Smart- 2 Mit der neuen Kodi-Version fällt es leichter, durch die Musikdatenbank zu stöbern.
phone oder Tablet profitieren. Auch der API-Zugriff auf die Musiksammlung wurde optimiert.
Speziell Besitzer eines ausgewachse-
nen Mediacenter-PCs werden sich über
den verbesserten Videoplayer freuen: Neues in LibreELEC 9.0 DRM: Digital Rights Management, wörtlich:
Er verarbeitet Inhalte in 4K- und 8K-Auf-
digitale Rechteverwaltung. Euphemismus
lösung sowie HDR-Filme schneller und LibreELEC strickt um Kodi herum ein voll-
besser. Der Mediaplayer hat gegenüber ständig lauffähiges System. Das im Zuge für technische Verfahren zur Kontrolle der
anderen Funktionen nun Vorrang bei Zu- der neuen Kodi-Version vorgestellte Lib- Nutzung und Verbreitung digitaler Medien.
griffen auf die CPU und GPU, um Inhalte reELEC 9.0  setzt auf den Kodi-18.x- Von Kritikern im Deutschen treffender auch
möglichst ruckelfrei wiedergeben zu Zweig auf und integriert die von dessen als digitale Rechteminderung apostrophiert.
können. Verfügt das Gerät, auf dem Sie Entwicklern präsentierten neuen Funkti-
Kodi 18 einsetzen, über Radioempfang, onen wie den DRM-Support für Netflix
zeigt es nun via RDS Senderinformatio- und Co. sowie den Retro-Player zum Aus- RDS: Radio Data System. Ermöglicht beim
nen an, wie man es beispielsweise vom führen von Konsolenspielen (ein entspre- analogen UKW-Rundfunk das Übermitteln
Autoradio her kennt. chendes Addon vorausgesetzt). Unter digitaler Zusatzinformationen.

05-06/2019 www.raspberry-pi-geek.de 27
Multimedia Kodi 18.0 und LibreELEC 9.0

3 Für die Installation von LibreELEC auf


einer für den Raspberry Pi gedachten
­SD-Karte verwenden Sie am besten den
USB-SD Creator. Das Programm gibt es für 4 Aktivieren Sie über den Einrichtungsassistenten den SSH-Zugang, fordert
Linux, Mac OS X und Windows. ­LibreELEC 9.0 Sie umgehend auf, das Standardpasswort zu ändern.

der Haube des zügig nachgeschobenen ELEC-Systeme direkt im Internet, etwa


Updates LibreELEC 9.0.1 MR kommt der wenn deren Betreiber über ein VPN ei-
Kernel 4.19.23 zum Einsatz. nen Tunnel ins Netz gräbt.
Als Mediacenter gehören LibreELEC- Zu den Neuerungen von LibreELEC 9.0
Installationen zu den Systemen, die viele gehört deshalb ein Interface zum Än-
Anwender nach dem Grundsatz „einmal dern des SSH-Passworts, das schon beim
installiert, für immer ignoriert“ betreiben; Einrichtungsassistenten erscheint. Alter-
an die Sicherheit denken nur wenige. nativ erledigen Sie das später über das
Oft werden nicht einmal Updates einge- Zahnrad-Menü, in dem Sie sich von Lib-
spielt, geschweige denn die Standard- reELEC über Dienste und SSH bis zum
passwörter geändert. Infolgedessen lan- SSH-Passwort hangeln  .4
den immer wieder ungeschützte Libre­ Zudem sorgt eine grundlegende
­Konfiguration der Iptables-Firewall für
­zusätzliche Sicherheit. Im Home-Modus
LibreELEC installieren blockt LibreELEC eingehende Verbindun-
gen, die nicht aus dem lokalen Netz kom-
Zur Installation von LibreELEC auf einem dann Write das heruntergeladene Image
men, und sichert so die angebotenen
Single-Board-Computer wie dem Rasp­ 3
auf die SD-Karte  . Die stecken Sie in
Dienste wie SSH, Samba und Web vor un-
berry Pi empfiehlt sich der LibreELEC den Raspberry Pi und booten das System.
erwünschten Zugriffen. Sollten veraltete
­USB-SD Creator  . Das für Linux, Mac Daraufhin empfängt Sie ein Einrichtungs-
Addons wiederholt Probleme beim Start
OS X und Windows angebotene Pro- assistent, der Sie durch die wichtigsten
des Systems verursachen, sorgt nun ein
gramm bereitet die dafür benötigte Spei- Konfigurationsschritte leitet. Dafür stecken
Safe Mode für Abhilfe. Das System startet
cherkarte in vier einfachen Schritten vor. Sie am besten eine Tastatur an den RasPi,
dann mit der Grundkon­figuration, sodass
Zuerst wählen Sie die gewünschte Version eine Maus brauchen Sie dagegen nicht
sich störende Erweiterungen und Einstel-
(meist Raspberry Pi 2 and 3) und laden zwingend. Im ersten Schritt stellen Sie die
lungen deaktivieren lassen.
dann mit einem Klick auf Download die Lokalisierung auf German um. Danach
Die Rubrik Spiele bleibt anfangs noch
entsprechende Variante aus dem Netz. Im vergeben Sie einen Rechnernamen und
leer. Zu Demonstrationszwecken lassen
dritten Schritt bestimmen Sie den Daten- richten die Netzwerkverbindung ein; das
sich jedoch recht leicht zwei Games in­
träger, auf dem der Assistent das Image WLAN eines RasPi 3 wird von Haus aus
stallieren. Sie öffnen dazu Zum Addon-
installieren soll. Hier lohnt sich ein akri- unterstützt. Anschließend aktivieren Sie je
Browser… | Offline-Spiele und rüsten
bisches Vorgehen, denn sämtliche Daten nach Bedarf die Netzwerkdienste SSH und
dann 2048 sowie Mr.Boom (Bomberman)
auf dem Massenspeicher gehen bei dieser Samba. Für SSH erfragt der Assistent dabei
ähnlich wie die anderen Addons nach.
Aktion verloren. Zu guter Letzt schreibt automatisch ein neues Passwort.
Die entsprechenden Spiele-Engines,

28 www.raspberry-pi-geek.de 05-06/2019
Kodi 18.0 und LibreELEC 9.0 Multimedia

dazu zählen DOS (DOSBox), ScummVM


und Commodore – C64 (VICE C64), zieht
das System automatisch mit.
Sobald Sie ein Gamepad am USB-Port
einstecken, registriert LibreELEC das
neue Gerät automatisch und bietet an,
es zu kon­figurieren. Alternativ initialisie-
ren Sie das Eingabegerät über das Zahn-
rad-Menü und die Optionen System | Ein-
gabe | Peripheriegeräte sowie Angeschlos-
sene Controller konfigurieren. Schritt für
Schritt lassen sich dann die Tasten des
5
Gamepads (in Abbildung  ein älteres
Rumblepad von Logitech) mit den für
Konsolen typischen Tasten wie [A], [B],
[X] und [Y] verdrahten.
Im Test mit einem Raspberry Pi 3
­funktionierte dann allerdings nur das 5 Verbinden Sie ein Gamepad mit dem System, öffnet Kodi automatisch einen
sehr einfach gehaltene Spiel 2048  . 6 ­Assistenten zur Konfiguration des neuen Eingabegeräts für Spiele.
Das spaßigere und mit mehr Action ge-
ladene Mr.Boom (Bomberman) führt der
RasPi zwar aus, doch der Bildschirm Kodi integriert den Ordner danach ins PVR: Personal Video Recorder. Gängige Be-
bleibt schwarz. Erst nach einem Druck Menü Spiele. Wählen Sie ihn an, erscheint zeichnung für digitale Videorekorder mit
auf [Esc] erscheint ein Menü zum Been- ein Dateimanager, über den Sie das Spiel einem Massenspeicher statt eines Bandlauf-
den des Spiels, das dann auch im Hinter- als Disk-Image (etwa im Format D64) werks und intelligenten Zusatzfunktionen.
grund das Spiel selbst anzeigt. oder Programmdatei (im Format P00)
auswählen . Während des Spiels leitet
C64-Spiele unter LibreELEC Vice alle Tastatureingaben an den Emu-
7
lator durch  . Einzig [Esc] interagiert
Als Praxistest installieren wir den Emu­ noch mit Kodi: Über das entsprechende
lator Commodore – C64 (VICE C64) via Menü können Sie das Spiel Pausieren /
­Addons | Aus Repository installieren | Alle Fortsetzen, Zurücksetzen, Verlassen oder
Repositories | Spiele-Addons | Emulato- individuelle Einstellungen vornehmen.
ren). Er erscheint danach in der Haup- Andere Neuigkeiten von Kodi 18.0
tebene unter Spiele als eigenständige und LibreELEC 9.0 brauchen hingegen
­Erweiterung. Wählen Sie jedoch direkt noch ein wenig Zeit zum Reifen. Das Zat-
das Addon an, landen Sie auf dem für too-Addon etwa lässt sich zwar aus den
den C64 typischen hellblauen Prompt – Repositories aktivieren und nimmt auch
nur Insider wissen, dass es nun den Be- die Login-Daten entgegen. Die TV-Sekti-
fehl LOAD":*",8,1 zu tippen gilt. on, unter der sich das Zattoo-Addon als
Einfacher funktioniert es, wenn Sie PVR-Dienst dann einsortiert, bleibt aller-
sich ein Spiel über eine Sammlung wie dings weiterhin leer. Auch für Netflix bie-
die GameBase64 Collection  besorgen. tet Kodi/​LibreELEC noch keine Lösung,
Die heruntergeladene ZIP-Datei über­ die out of the box funktioniert.
tragen Sie dann per Samba (oder die
Windows-Netzwerkumgebung) auf den Netflix
LibreELEC-RasPi und entpacken sie dort,
zum Beispiel im Ordner Downloads/. Für Netflix unter LibreELEC müssen Sie
Wählen Sie nun Spiele aus dem Haupt- zuerst das entsprechende Repository
menü aus, erscheint der Bibliotheks­ ­aktivieren. Laden Sie dazu die Datei 6 LibreELEC liefert von Haus aus zwei
manager. Über Spiele hinzufügen… | ­ epository.netflix‑1.0.1.zip aus
r Spiele mit: Das einfache 2048 sowie das
Durchsuchen | Root-Dateisystem wählen dem Kodinerds-Repository herunter  Multiplayer-Game Bomberman, das aller-
Sie dann den Ordner mit den hochgela- und kopieren Sie sie über das Netzwerk dings im Test auf einem Raspberry Pi 3
denen Games aus. auf den Kodi-RasPi. Über Zahnrad-Menü | nicht funktionierte.

05-06/2019 www.raspberry-pi-geek.de 29
Multimedia Kodi 18.0 und LibreELEC 9.0

7 Der Praxistest funktioniert: Hier spie-


len wir den C64-Klassiker Giana Sisters mit Addons | Aus ZIP-Datei installieren lässt der Widevine-CDM-Bibliothek, die es für
einem Gamepad auf einem Raspberry Pi 3 sich die Paketquelle dann aus dem das Entschlüsseln der DRM-geschützten
Modell B+. Home-Ordner heraus aktivieren. Even­ Videostreams benötigt . Aus rechtli-
tuell müssen Sie zuvor noch die Installa- chen Gründen darf LibreELEC die Biblio-
tion von Addons aus unbekannten Quel- thek nicht direkt ins System integrieren
len erlauben, eine entsprechende Ab­ oder in den eigenen Paketquellen vor-
frage erscheint automatisch. halten. Stattdessen springt ein Assistent
Anschließend lässt sich das Netflix-­
Addon im Zahnrad-Menü via Addons |
Aus Repository installieren | Netflix Addon Zwei Plugins für Amazon
Repository | Video-Addons einspielen. In
Im Repository von Sandmann79 befinden
den Einstellungen des Addons müssen
sich mit Amazon und Amazon VOD zwei
Sie sowohl das Login als auch das Pass-
für den Streaming-Dienst von Amazon ge-
wort zu Ihrem Netflix-Account eintragen.
eignete Addons. Der Unterschied zwischen
Starten Sie Netflix aus dem Addon-Menü
den beiden Varianten liegt darin, dass das
heraus, können Sie schon durch die digi-
Amazon-Addon (ohne VOD) eine lokale
tale Videothek des Anbieters stöbern  .8 Datenbank führt, während Amazon VOD
Sobald Sie allerdings ein Video abspie-
alle Titel und Menüs immer frisch von
len, kommt es zu Fehlermeldungen:
Amazon lädt. Die datenbankgestützte Ver-
Das System verlangt nach dem Addon
sion bietet den Vorteil, dass das Stöbern
InputStream Adaptive, das Sie im Addon-
durch die Amazon-Videos nach dem ini­
Mana­ger unter Videoplayer InputStream
tialen Befüllen zügiger vonstattengeht.
Dateien zum Artikel Addons finden.
­Allerdings gilt es, die Datenbank regel­
herunterladen unter Damit aber noch nicht genug: Beim
mäßig aufzufrischen, was bei der VOD-
nächsten Versuch, ein Netflix-Video
www.​­raspi-geek.de/dl/42674 Version automatisch geschieht .
­abzuspielen, reklamiert Kodi das Fehlen

30 www.raspberry-pi-geek.de 05-06/2019
Kodi 18.0 und LibreELEC 9.0 Multimedia

ein, der ein passendes Image des Google-


Betriebssystems Chrome OS  herunter-
lädt und die ARM-Version der Bibliothek
aus dem Image extrahiert. Der Vorgang
dauert auf einem RasPi 3B+ in etwa eine
Viertelstunde und benötigt 2 GByte frei-
en Speicherplatz.
Nach dieser Aktion spielt LibreELEC
dann endlich Netflix-Videos ab. Die
­Rechenkapazität des aktuell schnellsten
RasPi-Modells 3B+ reicht jedoch nicht
aus, um die Videos in Full HD (also 1080p)
abzuspielen: Die Wiedergabe stockt
­regelmäßig oder setzt zwischendurch
komplett aus. Aus dem Player ­he­raus
lässt sich die Auflösung der Wiedergabe
jedoch nicht ändern, das gelingt nur
über die Konfiguration des InputStream- 8 Die Entwickler betonen in der Ankündigung von Kodi 18.0, dass das Mediacenter nun
Adaptive-Addons. Stellen Sie dort so- Streaming-Dienste wie Netflix unterstützt. Deren Integration erfordert jedoch nach wie
wohl unter Max. Resolution general vor viel Handarbeit.
­decoder als auch unter Max. Resolution
secure ­decoder den Wert 720p ein. Damit
spielen die Netflix-­Videos auf dem RasPi 3
9
dann so gut wie ruckelfrei  .

Amazon Prime Video


Amazon Prime ist nun ebenfalls etwas
besser in LibreELEC integriert, wenn
auch die Praxis zeigt, dass es noch viel
Handarbeit braucht. Genauso wie das
Netflix-Addon benötigt auch das Ama-
zon-Pendant die InputStream-Erweite-
rung sowie die Widevine-Bibliothek. Im
Folgenden gehen wir davon aus, dass
Sie bereits mit Netflix experimentiert
und beide Erweiterungen schon instal-
liert haben.
Auch beim Einrichten des Amazon-
Addons gilt es wieder, eine ganze Reihe 9 Nach der Installation des Netflix-Addons sowie der InputStream-Erweiterung und der
von Zwischenschritten zu beachten: Widevine-Bibliothek für das Entschlüsseln der Streams spielt das System Netflix-Filme
­Aktivieren Sie ­zuerst über das Zahnrad- zuverlässig ab.
Menü unter ­Addons | Aus Repository ins-
tallieren | Alle Repositories | Addon-Repo-
sitory die Kodi­nerds Add-ons. Über dieses die Integration von Videodiensten wie
Repository organisiert die deutschspra- eben Netflix und Amazon basiert. Über
chige Kodi­nerds-Community  ihre Ent- das zusätzliche Repository lässt sich
wicklungsarbeit. dann schließlich unter Aus Repository in­
Aus dieser Paketquelle lässt sich nun stallieren | Sandmann79s Repository |
via Addons | Aus Repository installieren | ­Video-Addons das gewünschte Addon
Kodinerds Add-ons | Addon-Repository Amazon einspielen (siehe Kasten Zwei
das Sandmann79s Repository aktivieren. Plugins für Amazon).
Hinter dem Pseudonym Sandmann79 Auch beim Amazon-Addon gilt es,
steckt ein Entwickler, auf dessen Arbeit wieder die Zugangsdaten aus Login und

05-06/2019 www.raspberry-pi-geek.de 31
Multimedia Kodi 18.0 und LibreELEC 9.0

0 Auch Amazon Prime Video lässt sich in LibreELEC integrieren, mit ähnlich hohem Aufwand wie das Pendant von Netflix. Amazon
­begrenzt die Qualität der Streams allerdings auf (immerhin ruckelfreie) 540p.

Passwort einzugeben. Die speichert das flix, Amazon und Konsorten öffnet. Die
System allerdings nicht ab, sondern er- Situation rund um die Entschlüsselungs-
stellt ein individuelles Token, das in Zu- routine Widevine erinnert allerdings ein
kunft zur Authentifizierung gegenüber wenig an den Umstand, Video-DVDs mit-
Amazon dient. Wie auch das Netflix-Add­ hilfe der Libdvdcss  unter Linux wie-
on listet Kodi die Amazon-Erweiterung derzugeben. Technisch geht es, doch es
unter Addons auf. Nach dem Start lässt gibt weder offiziellen Support noch ge-
sich die Videosammlung des Online-Ver- hen Installation und Konfiguration leicht
sandhändlers durchstöbern. Die Wieder- von der Hand.
gabe erfolgt bei Amazon im Gegensatz Mit der Integration von Spielen ar­
zu Netflix stets ruckelfrei – allerdings beitet Kodi weiter konsequent daran, die
auch nur mit 540p und ohne Möglich- Software zu einer umfassenden digita-
keit zum Erhöhen der Auflösung  . 0 len Unterhaltungsplattform auszubauen.
In der Praxis fällt es gar nicht schwer, alte
Fazit Retro-Games aus C64-Zeiten zum Laufen
zu bekommen. Es fehlt allerdings noch
Auf den ersten Blick erscheint Kodi 18.0 an einer Dokumentation der neuen
gegenüber seinem Vorgänger als nur Funktionen. Optimal wäre zusätzlich
­behutsames Update ohne viele Änderun- eine Kooperation mit einer Spieledaten-
gen. Erst wer genauer hinsieht, bemerkt, bank, sodass sich die Games-Klassiker
dass sich unter der Haube mit dem In- mit wenigen Klicks installieren lassen.
Weitere Infos und putStream-Addon gewaltig etwas getan Aufgrund der oft nicht gerade einfachen
interessante Links hat. So lassen sich nun per DRM ver- rechtlichen Lage und unklarer Urheber-
www.​­raspi-geek.de/qr/42674
schlüsselte Streams wieder­geben, was rechte bleibt ein solcher Komfort jedoch
die Tür zu Streaming-Diensten wie Net­ wohl eher Utopie. (cla) n

32 www.raspberry-pi-geek.de 05-06/2019
Hacks Robotik mit PiXtend

© alphaspirit, 123RF
Mit einem RasPi und dem 4-Achsen-Roboterarm mit PiXtend ansteuern

Sanft berührt
Controllermodul PiXtend
­lassen sich mühelos Roboter-
arme ansteuern und deren
Bewegung automatisieren. In der Zeichentrickserie „Pinky und der einem Roboter? Dieser Artikel beschreibt,
Brain“ versuchen jede Nacht zwei Labor­ wie Sie mit einem RasPi, dem PiXtend
Martin Mohr mäuse die Weltherrschaft zu erlangen. und der Steuersoftware von Codesys
Die meisten erinnern sich vermutlich da­ ­einen Roboterarm programmieren.
ran, wie schwierig sich das für Brain ge­ Zum Einsatz kommt der 4-Achsen-­
staltet – besonders mit einem Partner wie Roboterarm von Sainsmart  mit einem
Pinky, mit dem es vermutlich nie klappen guten Preis-Leistungs-Verhältnis und
wird. Wir müssen also nach einer besse­ großem Arbeitsbereich. Um ihn zu be­
README ren Alternative suchen: Wie wäre es mit wegen, nutzen wir einfache Modellbau­
Man nehme einen RasPi, einen PiXtend-
Controller, einen Roboterarm und ein paar
Beschriftung der Motoren
Servomotoren: Schon besitzt man eine
Beschriftung PiXtend-Anschluss Funktion
­formidable Grundlage, um sich in die Ro­
boter-Programmierung einzuarbeiten. Die M1 PWM2A Greifer öffnen und schließen
Codesys-Software liefert dafür die digitale M2 PWM1B Greifer drehen
Grundlage, als Programmiersprache kommt M3 PWM0B Arm ein- und ausfahren
das Pascal-ähnliche ST (Strukturierter Text) M4 PWM0A Arm heben und senken
zum Einsatz.
M5 PWM1A Arm in der Basis drehen

34 www.raspberry-pi-geek.de 05-06/2019
Robotik mit PiXtend Hacks

servos. Damit der Roboter auch Gegen­


stände bewegen kann, ­bekommt er zu­
sätzlich einen einfachen Greifer . Die
Webseite Thingiverse.com stellt dafür
eine Vorlage  für 3D-Drucker bereit,
mit der sich der Greifer ausdrucken lässt,
alternativ gibt es ihn bei Amazon zu kau­
fen . Auch den Greifer treibt ein Modell­
bauservo an, der zum Ansteuern ein
PWM-Signal benötigt. Der Kasten Funk­
tionsweise von Modellbauservos be­
schreibt, wie diese Motoren arbeiten.
Um nicht den Überblick zu verlieren,
beschriften Sie die einzelnen Motoren
am besten. Die Tabelle Beschriftung der
Motoren zeigt eine entsprechende Über­
1
sicht. In Abbildung  sehen Sie den Ro­
boter mit Greifer. Der zugehörige Schalt­
plan 2 zeigt, wie Sie die einzelnen Mo­
toren anschließen. Beachten Sie, dass
Modellbauservos eine Betriebsspannung 1 Der komplette, einsatzfertige Roboterarm. Der Greifer stammt aus einem 3D-Drucker.
von maximal 6 Volt vertragen.

Steuerung Funktionsweise von Modellbauservos


Wie erwähnt übernimmt ein PiXtend das Wenn wir in diesem Beitrag von Servo­ nik gleicht kontinuierlich die Ist- mit der
Ansteuern der Motoren. Falls Sie diese motoren sprechen, meinen wir kleine Soll-Position ab und steuert den Motor so
Steuerung noch nicht kennen, werfen handliche Kästchen aus dem Modellbau- an, dass die Differenz der beiden mög-
Sie einen Blick in den Kasten PiXtend im bedarf, nicht etwa industrielle Servomo- lichst klein ausfällt. In der Praxis gelingt es
Überblick. Der Kasten PiXtend: Techni­ toren, wie sie in den großen Robotern aus manchmal nicht, die Differenz null zu er-
sche Daten fasst die technischen Einzel­ dem Automobilbau stecken. Bei Modell- reichen. Dann fängt der Servo zu brum-
heiten zusammen. bauservos handelt es sich streng genom- men an. Im Inneren des Servos befindet
Wir verwenden hier das PiXtend V2 -L-. men gar nicht um Motoren, sondern eher sich ein Getriebe, das die Drehbewe-
Es verfügt über eine Vielzahl an Schnitt­ um Stellglieder. In dem kleinen Kasten ist gungen des Motors übersetzt.
zwar auch ein Motor verbaut, doch das, Die wichtigsten Kennwerte von Servos
stellen, die es erlauben, fast jedes Geek-
was den Servo ausmacht, sind die zusätz- umfassen die maximale Winkeldifferenz
Projekt in die Tat umzusetzen. Bevor wir
lichen Elektronikkomponenten. des Hebels, die Kraft, die er aufbringt, und
uns mit der Programmierung des Robo­
ters auseinandersetzen, gilt es, die Code­ Die in unserem Projekt verwendeten seine Stellgeschwindigkeit. Dass ein Servo
sys-Software auf dem PiXtend und auf ­Servos steuern Sie über ein PWM-Signal mit echten Kugellagern und Metallgetriebe
­einem Windows-PC zu installieren. Bis­ an. Das Kürzel PWM steht für Pulsweiten- länger hält als ein Vollplastikservo mit
modulation. Stellen Sie sich ein Rechteck- Gleitlagern, versteht sich von selbst. Die
lang liegt ärgerlicherweise keine Linux-
signal mit einer konstanten Frequenz vor. Unterschiede in der Qualität machen sich
Version des Programms vor.
Nun verändern Sie das Verhältnis zwi- auch im Preis bemerkbar.
Die komplette Software – Programme
schen Puls (eingeschaltet) und Pause Nachdem Sie nun wissen, wie ein Servo
und Packages für Codesys inklusive der
(ausgeschaltet) – mehr hat Pulsweitenmo- arbeitet, sollten Sie noch einen genaueren
Beispielapplikation – finden Sie auf der
dulation nicht zu bedeuten. Blick auf das PWM-Signal werfen. Es be-
Webseite des PiXtend-Herstellers . Zu­
Per PWM lassen sich Informationen in der sitzt immer eine Frequenz von 50 Hz, das
nächst benötigen Sie das Codesys Deve­
Pulslänge kodieren. Bei unseren Servo­ entspricht einer Signallänge von 20 Milli-
lopment System V3, das kostenlos zum
motoren bedeutet das, dass die Länge des sekunden. Viele Servos lassen sich auch
Download bereitsteht ; die Installation
Signals angibt, welche Winkelposition der mit einer kürzeren Signallänge ansteuern,
übernimmt ein Assistent. Damit die IDE
Servohebel annehmen soll. Damit das beispielsweise 10 Millisekunden. Der Puls-
mit dem PiXtend zusammenarbeitet,
funktioniert, befindet sich im Inneren der länge beträgt 1 bis 2 Millisekunden. Die
müssen Sie noch zwei zusätzliche Packa­
Servos ein Positionsgeber, der meldet, wo Winkelposition des Servos hängt von der
ges  auf dem Rechner installieren .
Nach dem Herunterladen der D ­ ateien ge­
der Hebel gerade steht. Eine Regelelektro- Pulslänge des Signals ab  . 3

05-06/2019 www.raspberry-pi-geek.de 35
Hacks Robotik mit PiXtend

nügt ein Klick darauf, damit der Codesys- Erster Test


Package-Manager sie installiert.
Für das PiXtend selbst benötigen Sie Nach Abschluss der Vorarbeiten bereiten
ebenfalls die passende Software, die als Sie den ersten Test vor. Als Grundlage da­
vorbereitetes SD-Card-Image  vorliegt. für dient ein Demoprojekt , mit dem
Eine ausführliche Beschreibung zum Ein­ Sie die PWM-Ausgänge des PiXtend ein­
richten der kompletten Software finden zeln ansteuern. Es stellt eine grafische
Sie in der Anleitung des PiXtend . Oberfläche bereit, die Sie unter der IP-

PiXtend im Überblick
Beim PiXtend V2 -L- handelt es sich um
ein professionelles Erweiterungsboard
für den RasPi. Es verfügt über industrie-
kompatible I/​O -Ports und viele zusätzliche
Schnittstellen, die dem Raspberry Pi fehlen.
Dazu zählen neben analogen Ein- und
Ausgängen auch die Relaisausgänge mit
einer sehr hohen Schaltleistung.
Zur Programmierung stehen eine ganze
Reihe von Alternativen bereit. Die Linux-
Tools umfassen einige Kommandozeilen-
programme, mit denen sich die Funktio­
nen des PiXtend aufrufen lassen. Damit
erstellen Sie auf einfache Weise Skripte,
die die Steuerung übernehmen. FHEM ist
eine weitverbreitete, auf Linux basierende
Hausautomationssoftware. Die PiXtend
Python Library stellt eine API bereit, die
es gestattet, einfach auf die Schnittstellen
des PiXtend zuzugreifen. Open PLC, eine
quelloffene SPS-Software, kommt oft an
Hochschulen zum Einsatz. Mit dem IoT-
Entwicklungswerkzeug Node-RED lassen
sich komplexe Abläufe in einem Web­
front­end einfach grafisch darstellen. Der 2 Der Schaltplan zeigt die Verkabelung der Servomotoren mit dem PiXtend.
PiXtend-Hersteller Codesys liefert eine
IDE zum Erstellen von Programmen für
­Industriesteuerungen, die viele Hersteller
von Steuerungen verwenden. Erlernen Sie
den Umgang mit dieser Programmier­
umgebung, können Sie für fast alle auf
dem Markt befindlichen Steuerungen
­Programme erstellen.
Das hier eingesetzte PiXtend-Board ist
nur eine von vielen PiXtend-Varianten.
Auf der Webseite des Herstellers finden
Sie ausführliche Informationen zu den
­unterschiedlichen Typen  . Während sich
das PiXtend V1 sehr gut für die Aus- und
Weiterbildung eignet, zielen die V2-Varian-
ten eher auf den professionellen Einsatz
in Anlagen ab. 3 Die Funktionsweise des PWM-Steuersignals: kurzer Impuls – kleiner Schritt des
­Servomotors, langer Impuls – großer Schritt.

36 www.raspberry-pi-geek.de 05-06/2019
Robotik mit PiXtend Hacks

Adresse des Raspberry Pi aufrufen. Alter­


nativ bedienen Sie das Frontend aus der
4
Codesys IDE heraus  , die für sämtliche
Funktionen des PiXtend Testmöglichkei­
ten bereitstellt.
Um den Roboter in Betrieb zu neh­
men, benötigen wir zunächst den Pro­
grammteil zum Ansteuern der PWM-­
5
Ausgänge  . Achten Sie darauf, dass
diese auf Servo Mode stehen. Zur Inbe­
triebnahme aktivieren Sie die einzelnen
PWM-Ausgänge nacheinander, mit dem
Schieberegler geben Sie eine Position für
den Servo vor. Die Reglerwerte erlauben
dabei eine Einstellung zwischen 0 und
16 000. Im ungünstigsten Fall macht der
Servo schnelle, unkontrollierte Bewegun­
gen. Daher stellen Sie die Regler für die
PWM-Signale vor dem Aktivieren auf die
Mittelstellung.
Nun gilt es, herauszufinden, welche
Werte der Maximal- und der Mittelpositi­
on des Servos entsprechen – diese Werte
variieren von Modell zu Modell. Notieren
Sie sich die End- und Mittelwerte. Sie 4 Das Codesys-Demoprojekt eröffnet eine ganze Reihe verschiedener Möglichkeiten,
können sich auch Markierungen im Ar­ auf die Steuerung des PiXtend zuzugreifen.
beitsbereich des Roboters machen: Da­
mit fällt das Programmieren später leich­
ter. Mithilfe des Demoprojekts lassen Bei den ersten Tests tritt mitunter ein Servos aus irgendeinem Grund (Blockie­
sich Werte für alle Positionen ermitteln, weiteres Problem mit sehr unangeneh­ rung oder Überlast) so viel Strom aus der
die der Roboter später einnehmen soll. men Nebeneffekten auf: Zieht einer der Spannungsversorgung, dass sie zusam­
menbricht, arbeitet die Regelelektronik
der restlichen Motoren ebenfalls nicht
PiXtend: Technische Daten mehr korrekt. Alle Servos bewegen sich
plötzlich unkontrolliert und chaotisch
• 16 digitale Eingänge (3,3 V/​5 V/​12 V/​24 V)
hin und her. Um sie zu stoppen, deakti­
• 12 digitale Ausgänge (max. 30 V, je 0,5 A)
vieren Sie alle PWM-Ausgänge. Anschlie­
• 6 PWM-/​Servo-Ausgänge (6 x 16 Bit)
ßend aktivieren Sie die Servos einzeln
• 4 Relais (max. 230 V, 6 A) wieder, um das Problem einzugrenzen.
• 4 Spannungseingänge (0 bis 5 V/​0 bis 10 V), Ein Labornetzteil mit eingebauter
• 2 Stromeingänge (0 bis 20 mA) Stromüberwachung hilft bei der Fehler­
• 2 analoge Spannungsausgänge (0 bis 10 V) suche enorm. Ein Indiz dafür, dass etwas
• 4 GPIOs (5 V) nicht stimmt, liefert das tiefe Brummen,
das die Servos erzeugen, wenn sie eine
• Serielle Schnittstelle: RS232, RS485 (CAN)
Position nicht erreichen können. Auch
• Echtzeituhr (RTC) mit Batteriepufferung
ein Dauerstrom von mehr als 600 Milli­
• bis zu 4 DHT11-/​DHT22-/​AM2302-Sensoren (Temperatur und Luftfeuchtigkeit)
ampere bei fester Servoposition weist
• Onboard-Spannungsregler auf einen Fehler hin. Beim Bewegen flie­
• Eingang 12 bis 24 V DC (max. 30 V) ßen mitunter aber auch höhere Ströme.
• Ausgang 5 V DC / 2,4 A (versorgt PiXtend V2 ‑L-, Raspberry Pi und U
­ SB-Geräte) Sobald der Motor steht, sollte er so gut
• Retain-/​Persistent-Speicher: 64 Bytes Flash EEPROM wie keinen Strom mehr aufnehmen.
• ausgelegt für die Raspberry-Pi-Modelle B+/​2B/​3B/​3B+
Nach dem Durchspielen der hier be­
schriebenen Tests geht es an das erste
• Zulassung: CE, RoHS
richtige Programm.

05-06/2019 www.raspberry-pi-geek.de 37
Hacks Robotik mit PiXtend

Roboterarm in Aktion Listing 2


Dateien zum Artikel
herunterladen unter Um dem Roboterarm Leben einzuhau­ 01 /
/ Initialization of PiXtend
www.​­raspi-geek.de/dl/42457 chen, teilen Sie ihm über eine Schritt­ V2 ‑L‑
kette mit, wann er eine bestimmte Positi­ 02 I
F NOT xInit THEN
on anfahren soll. Die hier verwirklichte 03  RPI_GPIO_OUT24 := TRUE;
Schrittkette arbeitet rein zeitgesteuert 04  xInit := TRUE;
und wird entsprechend ohne Einflüsse 05 END_IF
von außen abgearbeitet, immer eine Po­ 06 
sition nach der anderen. Der vorherge­ 07 /
/ put your program code
hende Test gab ja schon mal Aufschluss here...
darüber, welche Werte zu bestimmten 08 
Positionen des Roboterarms gehören. 09 I
F byDigitalInputs0.0 AND lock
Für das Programm kommt die häufig = FALSE THEN
in Industriesteuerungen verwendete, 10  lock := TRUE;
Pascal-ähnliche Programmiersprache ST 11 END_IF
(Strukturierter Text) zum Einsatz. Das
12 
Steuerprogramm nutzt ein zweidimensio­
13 I
F lock THEN
nales Array, um den Ablauf zu speichern.
14  // activate PWM Channels
Eine Dimension enthält die Nummer des
15  byPWM0Ctrl0.3 := TRUE;
aktuellen Schritts, die zweite die fünf
16  byPWM0Ctrl0.4 := TRUE;
17  byPWM1Ctrl0.3 := TRUE;
Listing 1 18  byPWM1Ctrl0.4 := TRUE;
19  byPWM2Ctrl0.3 := TRUE;
VAR
xInit :BOOL; // init flag 20  // Write Values to PWM
lock :BOOL :=FALSE; Output
step :UINT :=1; 21  wPWM0A :=steps[step,1];
timer :TON; 22  wPWM0B :=steps[step,2];
END_VAR 23  wPWM1A :=steps[step,3];
24  wPWM1B :=steps[step,4];
VAR constant 25  wPWM2A :=steps[step,5];
Steps : ARRAY [1..19, 1..6] OF UINT := [ 26  timer(PT:=DINT_TO_
// M4, M3, M5, M2, M1 TIME(steps[step,6])*1000);
12000, 8000, 6500, 8000, 8000, 2, 27  timer.in := TRUE ;
12000, 3000, 6500, 8000, 1000, 2,
28  IF timer.Q THEN
12000, 3000, 10000, 8000, 1000, 2,
29  step := step +1;
6000, 3000, 10000, 13000, 1000, 2,
30  timer.IN:= FALSE;
6000, 7000, 10000, 13000, 1000, 2,
6000, 7000, 10000, 13000, 12000, 2, 31  IF step=21 THEN
6000, 3000, 10000, 13000, 12000, 1, 32  lock:=FALSE;
6000, 3000, 9000, 13000, 12000, 1, 33  step:=1;
6000, 3000, 8000, 13000, 12000, 1, 34  END_IF
6000, 3000, 7000, 13000, 12000, 1, 35  END_IF
6000, 3000, 6000, 13000, 12000, 1, 36 END_IF
6000, 3000, 5000, 13000, 12000, 1, 37 
6000, 3000, 4000, 13000, 12000, 1,
38 I
F NOT lock THEN
6000, 3000, 3000, 13000, 12000, 1,
39  byPWM0Ctrl0.3 := FALSE;
6000, 7000, 3000, 13000, 12000, 1,
40  byPWM0Ctrl0.4 := FALSE;
6000, 7000, 3000, 13000, 1000, 1,
41  byPWM1Ctrl0.3 := FALSE;
12000, 3000, 3000, 13000, 1000, 1,
12000, 3000, 6500, 13000, 1000, 1, 42  byPWM1Ctrl0.4 := FALSE;
12000, 8000, 6500, 8000, 8000, 2]; 43  byPWM2Ctrl0.3 := FALSE;
END_VAR 44 END_IF

38 www.raspberry-pi-geek.de 05-06/2019
Robotik mit PiXtend Hacks

Werte der einzelnen Servos sowie einen


Wert für die Zeit, die der Roboter benö­
tigt, um die Position zu erreichen.
Listing 1 zeigt die Variablen, die das
Programm verwendet. xInit initialisiert
den Controller im PiXtend und darf nicht
gelöscht werden. Die Variable lock ver­
hindert, dass die Schrittkette mehrfach
startet; timer realisiert die Zeitverzöge­
rung; step speichert den aktuellen
Schritt, in dem sich die Kette befindet.
Das Array zur Steuerung ist als Kon­
stante definiert, weil sich die Werte wäh­
rend der Laufzeit nicht ändern. Möchten
Sie Änderungen an einer der Konstanten
vornehmen, müssen Sie darauf achten,
das Programm mit der Option Mit Down-
load einloggen in das PiXtend zu laden:
Andernfalls aktualisiert die Software
6
­diese Konstanten nicht  .
Das eigentliche Programm in Listing 2
beginnt erst hinter dem Kommentar 5 Mit dem Demoprojekt von Codesys lassen sich vorab die ver­
­// put your program code here... schiedenen Winkelstellungen der Servomotoren ausprobieren.
ab Zeile 7. Den Code davor benötigt das

05-06/2019 www.raspberry-pi-geek.de 39
Hacks Robotik mit PiXtend

Programm, um die Kommunikation te. Nach dem Abarbeiten aller Schritte


Weitere Infos und
­zwischen dem PiXtend und dem Rasp­ wechselt lock wieder auf FALSE, step
interessante Links
berry Pi aufzubauen. Als Erstes fragen Sie ­erhält den Wert 1. Die Schrittkette steht
www.​­raspi-geek.de/qr/42457 den Start-Button-Eingang DI0 ab (Zei­ dann für den nächsten Durchlauf bereit.
le 9). Hier verwendet der Code das Alias Der letzte If-Block ab Zeile 38 deakti­
für das komplette Eingabe-Byte. Die Zahl viert die PWM-Ausgänge nach dem Be­
nach dem Punkt gibt an, welches Bit Sie enden der Schrittkette wieder. Das schal­
abfragen möchten. Wird der Button ge­ tet die Servos komplett ab, womit sie so
drückt und die Variable lock steht auf gut wie keinen Strom mehr benötigen.
false (inaktive Schrittkette), dann schal­ Ein Youtube-Video  zeigt den Robo­
tet die Variable lock auf TRUE, und die terarm in Aktion. Dabei fallen die teilwei­
Schrittkette beginnt zu laufen. se etwas ruckeligen Bewegungsabläufe
Im nächsten If-Block ab Zeile 13 fragt auf. Das liegt daran, dass Servos stets
der Code die Variable lock ab. Steht sie versuchen, die neue Position mit maxi­
auf TRUE, wird der Block abgearbeitet. maler Geschwindigkeit zu erreichen. Eine
Zunächst aktiviert der Code dann die Möglichkeit, dieses Ruckeln zu vermin­
PWM-Ausgänge des PiXtend. Danach dern, besteht darin, die Änderungen der
lädt die Sequenz die Werte für den aktu­ Werte in den PWM-Registern gering zu
ellen Schritt in die Steuerregister der halten. Das erkennt man ansatzweise in
PWM-Ausgänge. Der Roboter bewegt jener Szene des Videos, in der der Arm
sich nun in diese Position. eine Maus transportiert: Das erfolgt mit
Gleichzeitig mit dem Laden der Regis­ einigen kleinen Schritten, damit der Arm
ter wird timer mit der Wartezeit aus dem sie nicht wegschleudert.
Array beladen und gestartet. Nach dem Um die Servos generell behutsamer
Ablauf von timer erhöht sich die Variable anzusteuern, müsste man das Programm
step um 1, und der timer wird deakti­ so gestalten, dass es sich mit kleinen
viert. Anschließend beginnt alles von Schritten an die Zielpositionen annähert.
vorn, für den nächsten Schritt in der Ket­ Das gestaltet sich allerdings etwas auf­
wendiger und würde den Rahmen dieses
Artikels sprengen, wäre aber sicher eine
gute Programmierübung für einen ver­
regneten Sonntagnachmittag.

Fazit
Dieses kleine Projekt zeigt an einem ver­
gleichsweise einfachen Beispiel, wie Sie
mit dem PiXtend einen kleinen Modell­
roboter ansteuern. Es lässt etwa dazu
verwenden, um etwa Auszubildenden
die Grundlagen der Robotik näherzu­
bringen. Das Verwenden der Program­
miersprache ST hat den Vorteil, dass fast
alle Industriesteuerungen den resultie­
renden Code verstehen.
Das PiXtend V2 -L- zielt ganz klar auf
den professionellen Anwender in der
­Industrie ab, bleibt aber preislich so im
Rahmen, dass es sich durchaus für ambi­
tionierte Privatprojekte eignet. Alternativ
übernehmen auch die kleineren Brüder
des PiXtend V2 -L- den Job. Eine Auswahl
6 Ändern Sie Konstanten, müssen Sie sich über den Punkt Mit Download einloggen weiterer Modelle finden Sie auf der Seite
­anmelden, da die Software sonst die Modifikationen nicht übernimmt. des Herstellers . (tle)­ n

40 www.raspberry-pi-geek.de 05-06/2019
Hacks E-Ink-Infoscreen

© Anke Dietzen
Ein maßgeschneiderter  Infoscreen mit zwei stromsparenden E-Ink-Displays

Auf einen Blick


­Infoscreen auf RasPi-Basis
mit stromsparendem E-Ink-
Display zeigt Termine, Bilder,
Mitteilungen und Wetter­ E-Book-Reader mit E-Ink-Displays wie Kasten E-Ink-Displays: Grundlagen. Seit
der Kindle oder der Tolino erfreuen sich ein paar Jahren liegen die E-Ink-Displays
informationen an. großer Beliebtheit, und selbst Super- auch preislich in einer Region, die sie für
märkte zeichnen inzwischen ihre Preise Hobbybastler interessant machen.
Anke Dietzen mit kleinen E-Ink-Displays aus. Dieser
Bildschirmtyp zeichnet sich durch eine Der Infoscreen
wie gedruckt wirkende, präzise Optik
aus und lässt sich selbst im Sonnen- Die Idee war, zwei in einem Bilderrahmen
schein gut lesen. Zudem behalten die montierte E-Ink-Displays als Infoscreen zu
Displays auch ohne Leistungsaufnahme nutzen . Ein dreifarbiges 7,5-Zoll-Exem-
das zuletzt angezeigte Bild in der An­ plar soll Fotos anzeigen, die in vergange-
zeige. Strom benötigen Sie nur zum Än- nen Jahren im aktuellen Monat geknipst
dern des Anzeigeinhalts, entsprechend 1
wurden  . Daneben lassen sich auf den
README niedrig fällt der Verbrauch aus. Displays auch kurze Mitteilungen darstel-
Allerdings eignen sie sich eher für die len: Ein 4,2 Zoll großer Bildschirm zeigt
E-Ink-Displays behalten auch ohne Strom
Anzeige von statischem Inhalt, da eine die Wettervorhersage und weist auf an-
ihre Anzeige – ideal für Informationen, die
sofort ersichtlich sein sollen. Mit nur drei
Änderung des Seiteninhalts je nach Mo- stehende Termine hin  . 2
dell durchaus mehrere Sekunden dauern Es kommen zwei Displays des Herstel-
­Befehlen (Klonen des Repositorys, Bauen kann. Für die Wiedergabe dynamischer, lers Waveshare zum Einsatz, die der an-
und Starten) laden Sie die Spring-Boot-An- sich schnell verändernder Informationen steuernde Raspberry Pi über das SPI-Pro-
wendung mit komplettem Applikationsserver wie Animationen eignen sie sich also 3
tokoll  anspricht  . Der Raspberry Pi
auf einen zur Steuerung dienenden RasPi prinzipbedingt nur wenig. Weitere grund­ bietet zwei Pins für den SPI-Chip-Select,
herunter, wo Sie sie bauen und starten. legende Informationen zur Technik von CS0 und CS1, an denen jeweils ein Display
E-Ink-Displays finden Sie bei Interesse im hängt. Die Pins für MOSI und CLK teilen

42 www.raspberry-pi-geek.de 05-06/2019
E-Ink-Infoscreen Hacks

E-Ink-Displays: Grundlagen
E-Ink-Displays  bestehen aus Millionen
kleiner Mikrokapseln, jede ungefähr so
groß wie der Durchmesser eines mensch­
lichen Haars. Diese Kapseln enthalten eine
farblose Flüssigkeit mit darin gelösten, ne-
gativ geladenen weißen und positiv gela-
denen schwarzen Pigmenten. Die Kapseln
sind in kleinen Waben organisiert, die
quasi die Pixel des Displays darstellen.
Zur Ansteuerung jedes Pixels dienen zwei
Elektroden, eine am Boden und eine wei-
tere durchsichtige auf dem Pixel. Durch
das Anlegen einer Spannung zwischen
diesen Elektroden lässt sich ein elektri-
sches Feld erzeugen. Je nach Polarität
zieht das Feld die weißen oder die schwar-
zen Pigmente an die Oberfläche, sodass
das Pixel für den Betrachter dann weiß
1 Das 7,5-Zoll-E-Ink-Display von Waveshare kann auch neben schwarzen und weißen oder schwarz erscheint. Bei dreifarbigen
­Pixeln auch gelbe Bildpunkte darstellen und kommt für Bilder zum Einsatz. Displays kommen Pigmente einer dritten
Farbe hinzu. Durch geschickte Wahl der
Pigmente kommt dann bei einer bestimm-
sich die Bildschirme. Die Leitung vom Schwarz-Weiß-Anteile des Bilds eine ten Spannung jeweils nur eine Farbe an
Display zum Raspberry Pi (MISO) kommt zweite monochrome Bitmap für die die Oberfläche.
nicht zum Einsatz. ­farbigen Anteile. Wichtig ist es, das Dis- Zwar lassen sich die Pixel durch das Anle-
Des Weiteren benötigt jedes Display play nach jeder Aktualisierung zuverläs- gen einer veränderten Spannung einzeln
noch Pins für 3,3 Volt Spannung, Ground sig wieder in den Sleep-Modus zu ver- ändern, doch Schmutzeffekte machen es
und frei konfigurierbare Pins für Reset, setzen, um zu vermeiden, dass dauer- von Zeit zu Zeit notwendig, das Display
Busy und DC (Data/​Command Selection). haft Spannung anliegt. wieder in einen neutralen Grundzustand
zu bringen. Dazu schaltet man das Display
Waveshare bietet seine E-Ink-Bildschirme Das Ansteuern der E-Ink-Bildschirme
mehrfach abwechselnd von vollständig
mit oder ohne Raspberry-Pi-HAT an. Grei- übernimmt ein auf der Rückseite des
schwarz auf vollständig weiß. Dieses „Blin-
fen Sie für eines der Displays zur Variante ­Bilderrahmens montierter Raspberry Pi.
ken“ war für ältere E-Book-Reader typisch.
mit HAT, erspart Ihnen das beim vorge- Auf ihm läuft ein Application Server, der
stellten Aufbau das Löten.
Die Waveshare-Displays bringen einen
programmierbaren Controller mit, des-
sen Logik der von Waveshare zur Verfü-
gung gestellte Demo-Code verdeutlicht.
Vor der Anzeige eines Bilds müssen Sie
den Bildschirm erst einmal aufwecken
und initialisieren. Der Waveshare-Demo-
Code erwartet als Format für das anzu-
zeigende Bild eine monochrome Bitmap.
Eine solche lässt sich beispielsweise über
das Bildbearbeitungsprogramm Gimp
sehr einfach aus einer mehrfarbigen Bit-
map erzeugen.
Nach dem Einlesen der Bitmap über-
nimmt der Demo-Code die Transformati-
on des Bilds in das interne Format des
Displays. Bei den dreifarbigen Bildschir-
men erwartet der Waveshare-Code ne-
ben der monochromen Bitmap für die 2 Das 4,2-Zoll-E-Ink-Display zeigt Wetterinformationen und Termine in Schwarz-Weiß.

05-06/2019 www.raspberry-pi-geek.de 43
Hacks E-Ink-Infoscreen

REST-Schnittstelle: Gängige Architektur für


Exkurs: Partielle Aktualisierung
die zustandslose Kommunikation von Clients
und Servern im World Wide Web. REST Partielle Aktualisierung (partial refresh) sierung des Displays müssen Sie auf alle
­(Representational State Transfer) wird oft bedeutet, dass sich nicht, wie sonst üblich, Fälle in regelmäßigen Abständen vorneh-
das gesamte Display mit dem typischen men, um ein Einbrennen zu verhindern,
für Webservices eingesetzt und verwendet
„Blinken“ aktualisiert. Stattdessen ändert also das irreversible Stehenbleiben von
die standardisierten HTTP-Befehle, wie
etwa GET, POST, PUT und DELETE.
sich nur ein Teil des Displays ohne „Blin- Fragmenten auf dem Display  . 4
ken“. Das ermöglicht beispielsweise kleine Die kleineren zweifarbigen Waveshare-Dis-
Animationen. plays unterstützen eine partielle Aktualisie-
Allerdings kann man nach einer partiellen rung, so auch der hier eingesetzte 4,2-Zoll-
Aktualisierung des Displays bei genauerem Bildschirm . Da der Display-Controller
Hinsehen oft noch einen Schatten der vor- bei der Programmierung eine große Frei-
her angezeigten Grafik erkennen. Diese heit bietet, können Sie auch selbst mit den
Schatten (Ghosting) lassen sich durch ein Spannungen experimentieren. Dabei
vollständiges Aktualisieren des Displays sollten Sie jedoch Vorsicht walten lassen,
entfernen. Eine solche vollständige Aktuali- um dauerhafte Schäden zu vermeiden.

eine REST-Schnittstelle anbietet. So lässt Software


sich der RasPi auf einfachem Weg steu-
ern, etwa über einen Webbrowser oder Für den E-Ink-Infoscreen wollen wir via
über einen Eintrag in die Crontab. Webbrowser (REST-Schnittstelle) Nach-
Informationen zu Bildern, Wetter und richten eingeben und in der Datenbank
Nachrichten hält eine Datenbank vor, als auf dem RasPi speichern (addMessage()).
Programmiersprache kommt Java zum Über einen zweiten REST-Service (re­
Einsatz. Da Waveshare keine Treiber-Soft- freshDisplay) werden die Nachrichten
ware für Java zur Verfügung stellt, stand aus der Datenbank ausgelesen und auf
Dateien zum Artikel als erster Schritt das Portieren der Trei­ dem 4,2 Zoll großen Waveshare-Display
herunterladen unter ber­logik nach Java an. Sie finden den angezeigt. Hat man die entsprechende
entsprechenden Code im Github-Repo Basis erst einmal geschaffen, lässt sich
www.​­raspi-geek.de/dl/42359
zum Projekt . die Anwendung leicht erweitern, um
­andere Informationen zu speichern und
anzuzeigen. Das Projekt verwendet kei-
ne partielle Aktualisierung der Bildschir-
me, sondern frischt immer die gesamte
Anzeige auf.
Dank der Plattformunabhängigkeit von
Java lässt sich die Anwendung testweise
auf dem lokalen Entwicklungsrechner
starten, um den REST-Service und die
­Datenbank zu testen. Auch die Image-
Generierung lässt sich über eine lokale
Testklasse ausprobieren, was Zeit spart
und die Displays schont. Als Software
kommt Spring Boot zum Einsatz – eine
gute Gelegenheit, diese in der Ära von
Microservices populäre Technik einmal
auszuprobieren (siehe Kasten Spring und
3 Der Übersicht­ Spring Boot). Gebaut wird die Anwen-
lichkeit halber zeigen dung mit Maven (siehe Kasten Maven).
wir hier zwei RasPis, Man könnte einwenden, für so ein klei-
das Projekt funktioniert nes Projekt sei das Verwenden eines Ap-
aber ebenso gut auch plication Servers überdimensioniert. Das
mit nur einem. mag sein, doch andererseits schenkt

44 www.raspberry-pi-geek.de 05-06/2019
E-Ink-Infoscreen Hacks

wie für die Spring-Boot-Starter-Pakete


Maven
für Datenbankzugriffe (spring-boot-star-
ter-data-jpa) und REST- Webtechniken Bei Maven handelt es sich um ein Build-
(spring-boot-starter-web). Management-Tool, das typischerweise für
Als Datenbank kommt eine H2-Daten- Java-Anwendungen zum Einsatz kommt.
bank zum Einsatz, deren Fähigkeiten für Anhand der Angaben in Mavens Konfigu-
den Zweck völlig ausreichen. Möchten rationsdatei pom.xml, die unter anderem
Sie diese Datenbank gegen eine andere die Abhängigkeiten des Projekts enthält,
austauschen, müssen Sie dazu lediglich übernimmt Maven das Bauen, Installieren
die Dependency in der pom.xml austau- und Ausrollen der Anwendung.
schen. Eclipse als frei verfügbare Ent- Sowohl Spring Boot als auch Maven bauen
wicklungsumgebung bietet Unterstüt- dabei auf das Paradigma „Konvention vor
zung für Java und Maven. Konfiguration“, um die Komplexität zu ver-
Für das Bauen des Demo-Projekts ringern: Das Einhalten gewisser Vorgaben,
brauchen Sie noch ein Java-JDK, Git und wie beispielsweise einer vorgeschriebenen
Maven. Demo bedeutet in diesem Zu- Datei­struktur, ersetzt eine kompliziertere
sammenhang, dass wir zu Demonstrati- Konfigurierbarkeit.
onszwecken und um den Code nicht un-
nötig aufzublähen im Folgenden nur das
4 Vollständiges Aktualisieren vergessen: 4,2-Zoll-Display ansteuern.
E-Ink-Display mit eingebrannter Anzeige. Den kompletten Code zum Demo-Pro-
jekt  finden Sie auf Github und klonen
ihn über die Kommandozeile (Listing 1).
Spring Boot mit seinen Starter-Paketen Anschließend liegt im aktuellen Verzeich-
einem viel an Funktionalität, die man nis ein neuer Ordner namens eInkDemo/
sonst selbst einbinden müsste: Es ge- mit allen Quelldateien. Die Java-Klassen
nügt, die gewünschten Abhängigkeiten in ihrer Paketstruktur befinden sich unter
in Mavens pom.xml anzugeben. So gibt src/main/java/.
es in dieser Datei neben Einträgen für
Spring Boot auch solche für das Display, Nachrichten ablegen
den Datenbanktreiber, für Swagger so-
In Listing 2 teilt die Annotation @Rest­
Controller über der Spring-Bean-Klasse
Swagger: Ein Open-Source-Framework rund
Spring und Spring Boot RestApi dem Spring-Container mit, dass
ein an dieser Stelle REST-Service definiert um REST-Services. In diesem Projekt dient
Beim ebenso mächtigen wie weitverbrei- es dazu, die REST-Services über eine HTML-
wird. Die Annotationen über den Metho-
teten Open-Source-Java-Framework
den (beispielsweise addMessage()) die- Seite aufzurufen, was das Implementieren
Spring steht die Entkopplung von App­li­
kationskomponenten im Vordergrund;
ser Klasse definieren die einzelnen REST- eines REST-Clients erspart.
­sogenannte Spring Beans enthalten die Services. Die Annotation @ApiOperation
Programmierlogik. Der Spring-Container stammt von Swagger und dient der Be-
H2-Datenbank: Ein in Java geschriebenes
verwaltet die vom Entwickler erstellten schreibung des REST-Services auf der
relationales Datenbankmanagementsystem,
Spring Beans und übernimmt deren Er- von Swagger erstellten Internet-Seite,
zeugung. Als Entwickler geben Sie ledig- dem REST-Client. das entweder im selben Prozess wie die
lich an, welche Spring Beans Sie benöti- Zur Trennung von Schnittstellen- und Java-Anwendung oder auch als eigenstän-
gen, woraufhin der Spring-Container das Business-Logik nimmt die REST-Schnitt- diger Server laufen kann. Relativ leichtge-
gewünschte Bean zur Laufzeit injiziert stelle die Aufrufe lediglich entgegen und wichtig, kommt es oft bei Tests zum Einsatz.
(Dependency ­Injection). Das vermeidet leitet sie an den DisplayService (Lis-
Abhängigkeiten zwischen Beans und ting 3) weiter. Den als @Service definier-
bringt diverse Vorteile mit sich, zu denen Annotation: Sprachelement, über das sich
eine geringere Komplexität sowie bessere Metadaten in Java-Quelltexte einbinden
Möglichkeiten zum Testen zählen. Mit ­lassen. Annotationen beginnen mit einem
Listing 1
Spring Boot erstellen Sie auf einfachem
Klammeraffen (@), gefolgt vom Namen.
Weg eine auf Spring basierende Anwen- $ git clone https://github.com/
­Optional kann in runden Klammern eine
dung inklusive Application Server. ankesreich/eInkDemo.git
kommaseparierte Parameterliste folgen.

05-06/2019 www.raspberry-pi-geek.de 45
Hacks E-Ink-Infoscreen

Swing: Ein seit 1998 in der Java-Runtime ten DisplayService nutzt die Klasse Auswahl an geerbten Datenbankoperati-
enthaltenes GUI-Toolkit. Es gehört zu den ­RestApi, indem sie intern eine Member- onen zu Verfügung. Mit der Methode
Variable des Typs DisplayService defi- ­ aveAndFlush() lässt sich die Nachricht
s
Java Foundation Classes (JFC), einer Samm-
niert, die sie mit @Autowired annotiert. in die Datenbank schreiben (Listing 3).
lung von Bibliotheken für grafische Benutzer- Der DisplayService übernimmt alle Hier passiert viel „Magie“ im Hinter-
schnittstellen, mit denen es auch interagiert. ­Datenbankzugriffe und das Ansteuern grund von Spring und dem Spring-Con-
des Displays. tainer. Das nimmt dem Programmierer
Auch die Datenbanktabelle Message die handwerklichen Aspekte ab, sodass
müssen Sie nicht selbst anlegen – dazu er sich ganz auf das Implementieren der
genügt es, die Java-Klasse Message (Lis- Business-Logik konzentrieren kann.
ting 4) mit @Entity zu annotieren. Die
Member-Variablen von Message entspre- Display-Refresh
chen den (ebenfalls über Annotationen
definierten) Datenbankspalten. Auch Java Swing generiert die monochrome
beim Datenbankzugriff hilft Spring: Das Bitmap für die Anzeige am Display. Zwar
mit @Repository annotierte Interface ist Swing schon etwas in die Jahre ge-
MessageRepository (Listing 5) stellt be- kommen, gehört aber zum Standardum-
reits eine für das Projekt ausreichende fang von Java und reicht für den Zweck
völlig aus. Im mit Swing erstellten Panel
sorgen diverse Layout-Manager dafür,
Listing 2 dass bei dynamisch erzeugten unter-
@RestController schiedlich langen Texten auch die For-
public class RestApi {
matierung und die „Verteilung übriger
@Autowired
­Pixel“ funktionieren. Auch Grafiken las-
sen sich ins Panel integrieren.
DisplayService displayService;
Analog addMessage() definiert die
­Anwendung einen REST-Service, der mit-
@ApiOperation(value = "Stores the message in the database.") hilfe des DisplayService die Nachricht
@PostMapping("/addMessage") aus der Datenbank holt, die Image-Ge-
nerierung veranlasst und den Refresh
void addMessage( des Displays mit der erzeugten Bitmap-
@RequestParam(required=true) String author, Datei einleitet.
@RequestParam(required=true) String text Auch bei der Java-Repräsentation des
) { Displays selbst handelt es sich um eine
Spring-Komponente, die Sie mit @Auto­
displayService.saveMessageInDb(author, text);
wired im DisplayService verdrahten.
}
Spring muss noch wissen, wie es diesen
[...]
zu erzeugen hat: Die Klasse Display­
} Factory bietet eine mit @Create anno-
tierte Methode, die das übernimmt. Je
nachdem, ob die Software lokal auf dem
Listing 3 Entwicklungsrechner oder auf dem Rasp­
@Service berry Pi läuft, aktualisiert sie das Display
public class DisplayService { und versetzt es gegebenenfalls anschlie-
@Autowired ßend in den Sleep-Modus.
MessageRepository messageRepository;
Bauen und Start
public void saveMessageInDb(String author, String text) {
Sie bauen die Anwendung im Verzeich-
Message message = new Message(author, new Date(), text);
nis eInkDemo/ mithilfe des Kommandos
messageRepository.saveAndFlush(message);
mvn clean install. Maven lädt alle be-
}
nötigten Bibliotheken in sein Repository,
[...]
was beim ersten Aufruf eine Weile dau-
} ern kann. Über die Targets clean und

46 www.raspberry-pi-geek.de 05-06/2019
E-Ink-Infoscreen Hacks

install erstellt das Build-Management-


Listing 4
Tool im Verzeichnis target/ die Datei
eInkDemo‑0.0.1‑SNAPSHOT.jar. Sie ent- @Entity
hält die komplette Anwendung inklusive @Table(name = "MESSAGE")
Application Server und Datenbank. public class Message {
Auf dem Raspberry Pi müssen Sie @Id
­gegebenenfalls noch das SPI-Protokoll in @GeneratedValue
der RasPi-Konfiguration unter interfacing private Long id;
options aktivieren und das Display wie in
3
der Pin-Belegung  für das 4,2-Zoll-Dis- @Column(nullable = false, updatable = true, length = 100)
play beschrieben anschließen.
private String message;
Auf dem lokalen Entwicklungsrechner
lautet das Profil (spring.profiles.ac­
@Column(nullable = false, updatable = true, length = 100)
tive) zum Start local, auf dem Rasp­
private String author;
berry Pi startet die Anwendung mit dem
Profil raspi (Listing 6). Die Datei eInk­
Demo‑0.0.1‑SNAPSHOT.jar muss im Ver- @Column(nullable = false)
zeichnis des Aufrufers liegen. Das zur @Temporal(TemporalType.TIMESTAMP)
Image-Generierung verwendete Java private Date creationDate;
Swing benötigt auf dem Raspberry Pi
­einen laufenden X-Server. Damit die public Message(String author, Date creationDate, String text) {
­Anwendung headless ohne grafische this.author = author;
Oberfläche läuft, müssen Sie noch ein this.creationDate = creationDate;
paar Schritte erledigen .
this.text = text;
Beim Hochfahren wird im selben Pro-
}
zess auch die Datenbank gestartet und
[...]
ein neues Schema erstellt. Das Verhalten
lässt sich über ein Property (spring.jpa. }

hibernate.ddl‑auto) ausschalten.

Nachrichten Schnittstelle addMessage() im Webbrow- dem Sie die Anwendung gestartet ha-
ser. Die Oberfläche und das Auflisten der ben, ersetzen Sie localhost durch den
Unter http://​­localhost:8080/​­einkdemo/​ Services übernimmt Swagger. Arbeiten fraglichen Rechnernamen oder die IP-
­swagger‑ui.​­html erreichen Sie die REST- Sie nicht auf demselben Rechner, auf Adressen. Unter /addMessage geben Sie

Listing 5
@Repository

public interface
MessageRepository extends
JpaRepository<Message, Long> {

Listing 6

$ java
‑Djava.awt.headless=false ‑jar
‑Dspring.profiles.active=raspi
eInkDemo‑0.0.1‑SNAPSHOT.jar
‑‑debug 5 Nachrichten für den E-Ink-Infoscreen geben Sie per Webbrowser von einem beliebi-
gen Endgerät aus ein. Das klappt, wie hier zu sehen, auch vom Smartphone aus.

05-06/2019 www.raspberry-pi-geek.de 47
Hacks E-Ink-Infoscreen

Ein Aufruf des REST-Services refresh­


Display aktualisiert den E-Ink-Bild-
schirm, und die zuvor als Message ein­
gegebene Nachricht erscheint . 7
Ausblick
Mit Node-RED  ließe sich die Anwen-
dung auf relativ unkomplizierte Weise er-
weitern, sodass Sie beispielsweise Mittei-
lungen auch per E-Mail an das Display
schicken könnten. Wollen Sie auch Mit-
6 Über die auf dem Raspberry Pi gestartete H2-Konsole prüfen Sie bei Bedarf, ob Ihre teilungen von außerhalb des lokalen
Nachrichten auch wirklich in der Datenbank ankommen. Netzes zulassen, aber dazu nicht gleich
die REST-Schnittstelle ins Internet stellen,
dann parsen Sie die E-Mails einfach mit
Nachricht und Autor ein; der Server sollte Node-RED und rufen den REST-Service
die Eingabe mit dem HTTP-Statuscode addMessage() auf.
200 (OK) bestätigen. Aber auch optisch ließe sich nachlegen:
Haben Sie auf dem Raspberry Pi die Waveshare bietet mittlerweile 6 und
H2-Konsole gestartet, dann können Sie 9,7 Zoll große E-Ink-Displays an, die mit
sich nun im Webbrowser unter http://​ einer Refresh-Rate von unter einer Se-
­localhost:8080/​­einkdemo/​­h2‑console kunde aufwarten, 16-Bit-Graustufen un-
selbst davon überzeugen, dass die Nach- terstützen und sich somit besonders für
richt auch in der Datenbank angekom- die Anzeige von Grafiken eignen. (jlu) n
6
men ist . Es erscheint ein Anmelde­
dialog, bei dem Sie nur noch die Daten-
bank-URL auf jdbc:h2:mem:testdb än- Die Autorin
dern müssen. Ein Blick beziehungsweise
Die Münchnerin Anke Dietzen arbeitet
Klick auf die Tabelle MESSAGE verrät Ih- als Java-Entwicklerin, der Infoscreen ist
nen anschließend, ob der zuvor eingege- ihr ­erstes Raspberry-Pi-Projekt.
bene Datensatz sein Ziel erreicht hat.

Weitere Infos und


interessante Links
www.​­raspi-geek.de/qr/42359 7 Nach einem Aufruf des REST-Services refreshDisplay erscheint die frisch eingege-
bene Nachricht auf dem E-Ink-Display.

48 www.raspberry-pi-geek.de 05-06/2019
Hacks Thermo-Hygrometer

WLAN-Sensor zum Überwachen


von Luftfeuchtigkeit und Temperatur

Prima Klima

©Oleg Doroshin, 123RF


In Museen ist es Pflicht, zu Sicher kennen Sie das Problem: Wäh- finden Sie in RPG 01-02/​2019 . Als
rend der Heizperiode brennen Ihnen öf- MQTT-Server kommt Mosquitto zum Ein-
Hause nützlich: das perma- ter die Augen, die Haut fängt an zu span- satz, den Sie mit den Kommandos aus
nen. Die Ursache: zu trockene Raumluft. den ersten drei Zeilen von Listing 1 in­
nente Prüfen und zentrale Um die Luftfeuchtigkeit und Raumtem- stallieren. Um seinen Status abzurufen
peratur zu überwachen, gibt es Thermo- und ihn zu starten beziehungsweise zu
Erfassen der Feuchtigkeit Hygrometer. Diese meist stationär aufge- stoppen, verwenden Sie die Kommandos
stellten Geräte lassen sich in der Regel aus den Zeilen 4 bis 6.
und Temperatur in Räumen. nur vor Ort ablesen. Um den Server auf seine Funktions­
Wir bauen in diesem Artikel ein Ther- fähigkeit zu testen, öffnen Sie drei Termi-
Martin Mohr mo-Hygrometer, das sich mit dem WLAN nalverbindungen zum RasPi. In zwei da-
verbindet und seine Messwerte über ei- von starten Sie je einen Mosquitto-Sub­
nen MQTT-Server auf einem Node-RED- scriber, der sich für Nachrichten des To-
Dashboard darstellt. Es klingt anfangs gar pics raspberry interessiert (Listing 1, Zei-
nicht so kompliziert, ein eigenes Funk- le 7). Im dritten Terminal starten Sie ei-
Thermo-Hygrometer zu bauen. Setzt man nen Publisher, der unter dem Topic rasp­
README sich aber erst einmal näher mit dem The- berry eine Nachricht sendet (Zeile 8).
ma auseinander, stellt man schnell fest, Nach dem Versand der Nachricht
Um im Haus den Überblick zu behalten,
dass es bis zum fertigen Projekt einer ­erscheint diese in den zwei Subscriber-­
wie warm und feucht es wo ist, benötigt Menge einzelner Schritte bedarf. Terminals. Alternativ lassen sich auch mit
man entsprechende Sensoren. Die senden der Chrome-App MQTTBox  Nachrich-
im Idealfall regelmäßig Daten an eine zen- MQTT ten senden beziehungsweise empfan-
trale Instanz, die die Informationen sam- 1
gen  . Der MQTT-Server arbeitet auf
Der MQTT-Server läuft, ebenso wie Node- Port 1883. Weitere Informationen zu
melt, verwaltet und aufbereitet. Genau so
RED, auf dem Raspberry Pi. Eine detaillier- dem Messenger-Protokoll finden Sie bei
ein Projekt realisiert der vorliegende Artikel.
te Installationsanleitung zu Node-RED Interesse im Kasten MQTT.

50 www.raspberry-pi-geek.de 05-06/2019
Thermo-Hygrometer Hacks

1 Ein typisches Beispiel für eine MQTT-Nachrichtenübertragung mit verschiedenen Clients.

Der Sensor Zur Programmierung des ESP8266 nen zwei 1,5-Volt-Batterien; der Konden-
kommt ein USB-to-Serial-Modul zum Ein- sator C1 in der Schaltung hält dabei die
2
Abbildung  zeigt den Schaltplan des satz, das Sie über eine Stiftleiste auf die Betriebsspannung des ESP8266 stabil.
Sensors. Die Bauteile verlöten Sie dazu Testplatine stecken. Das ermöglicht es, Die LED an GPIO14 dient zu Testzwe-
auf einer Prototypen-Platine oder ste- das Modul leicht wieder zu entfernen, cken. Richten Sie besonderes ­Augenmerk
cken sie in Sockelleisten. Ein ESP8266-­ um damit weitere Sensoren zu program- auf den Anschluss GPIO16: Daran hängt
Mikrocontroller stellt den zentralen Bau- mieren. Als Spannungsversorgung die- intern der Timer, der den ESP8266 wieder
stein des Sensors dar, er verfügt über
eine eingebaute WLAN-Schnittstelle.
Zum Messen von Temperatur und Luft- MQTT
feuchtigkeit kommt der geeichte digitale
Die Abkürzung MQTT steht für Message nenten gleichzeitig online sein, um Nach-
Sensor AM2321 zum Einsatz, der sich
Queue Telemetry Transport, was frei über- richten zu übertragen. Damit die Nachrich-
über die I2C-Schnittstelle einfach ausle-
setzt etwa warteschlangenorientierte ten nicht ungeordnet hin und her wan-
sen lässt. Sie schließen den Sensor über Nachrichtenübertragung für entfernte dern, gibt es bei MQTT in einer Baum-
GPIO4 und GPIO5 an den ESP8266 an. Messeinrichtungen bedeutet. Das Proto- struktur aufgebaute Topics, also Nachrich-
koll wurde schon 1999 für das Überwa- tenkanäle, die bestimmte Typen von Über-
chen von Öl-Pipelines entwickelt, kommt tragungen bündeln.
Listing 1 aber auch heute noch für verteiltes Mes- Ein solches Topic könnte beispielsweise
01 $
 sudo apt update sen im Profibereich zum Einsatz. Aktuell Gebäude/Etage/Raum/Sensor/Tem­
02 
$ sudo apt upgrade trifft man das MQTT-Protokoll immer öfter peratur heißen. Innerhalb der Topics
03 
$ sudo apt install mosquitto im IoT-Umfeld an, da es sich durch seine dürfen Sie Wildcards verwenden. Möchten
mosquitto‑clients geringe Netzbelastung und sparsamen Sie etwa die Werte aller Temperatur­
04 
$ sudo service mosquitto CPU-Verbrauch besonders gut für solche sensoren im Gebäude erhalten, melden
status Anwendungen eignet. Sie sich in diesem Beispiel für das Topic
05 
$ sudo service mosquitto stop Das MQTT-Protokoll unterscheidet zwi- Gebäude/+/+/Sensor/Temperatur an.
06 
$ sudo service mosquitto start schen drei Komponenten: einem Nach- Für sehr viele Programmiersprachen gibt
07 
$ mosquitto_sub ‑h localhost richtenerzeuger (Publisher), einem Nach- es bereits MQTT-Bibliotheken. Der Service
‑v ‑t raspberry richtenempfänger (Subscriber) und einem arbeitet standardmäßig über den TCP-
08 
$ mosquitto_pub ‑h localhost ­Broker, der die Kommunikation zwischen Port 1883. Weitere Informationen zum
‑t raspberry ‑m "Raspi talks Publisher und Subscriber entkoppelt. Es MQTT-Protokoll erhalten Sie auf der offizi-
MQTT!" müssen also nicht immer alle Kompo­ elle Homepage des Projekts .

05-06/2019 www.raspberry-pi-geek.de 51
Hacks Thermo-Hygrometer

2 Der Schaltplan des Thermo-Hygrosensors. Die Herzstücke der Schaltung bilden der Sensor AM2321 und der Mikrocontroller ESP8266.

aus dem Tiefschlaf weckt, damit er einen Arduino IDE


aktuellen Messwert übermittelt. R7 und
R8 dienen als Pullup-Wider­stände für den Um Programme für den ESP8266 zu
I2C-Bus. Sie sorgen dafür, dass sich auf ­schreiben, benötigen Sie noch eine ent-
den Leitungen SDA und SCL saubere Sig- sprechende Entwicklungsumgebung.
nalpegel einstellen. Alle weiteren Bau­ Dafür bietet sich die Arduino IDE an, die
teile – vier 10K-Widerstände und zwei Sie über die Homepage des Projekts her-
Jumper – benötigen wir zum Program- unterladen . Wählen Sie dort die für
mieren und zum Betrieb des ESP8266. Ihr Betriebssystem passende Version aus
Der ESP8266 ist auf einer Adapterplati- und installieren Sie sie. Um die Entwick-
ne verlötet, die über eine Stiftleiste auf lungsumgebung zu starten, wechseln
3
der Basisplatine steckt  . Manche Ad- Sie in das Installationsverzeichnis und
apterplatinen bringen schon von Haus geben auf der Kommandozeile den Be-
aus einige der zum Betrieb nötigen Wi- fehl ./­arduino ein.
derstände mit. Die Tabelle Teileliste für Danach gilt es, die IDE für den ESP8266
den Sensor fasst die zum Aufbau benö- anzupassen. Als Erstes tragen Sie unter
tigten Bauteile zusammen. Datei | Voreinstellungen | Zusätzliche
Listing 2
void setup() {
pinMode(14, OUTPUT); Teileliste für den Sensor
} Bauteil Bezugsquelle
USB-to-Serial-
void loop() { https://​­www.​­amazon.​­de/​­gp/​­product/​­B00YMDN2Z6/
Adapter
digitalWrite(14, HIGH);
ESP8266 https://​­ex‑store.​­de/​ESP8266‑ESP‑012‑Version‑12‑WIFI‑Wlan2Serial
delay(1000);
digitalWrite(14, LOW); https://​­ex‑store.​­de/​Adapter‑Platine‑fuer‑ESP8266‑ESP‑07‑und‑ESP‑12‑Stift-
ESP-Adapter
delay(1000); leiste
} AM2321 https://​­ex‑store.​­de/​AM2321‑Digitaler‑Temperatur‑und‑Feuchtigkeits‑Sensor

52 www.raspberry-pi-geek.de 05-06/2019
Thermo-Hygrometer Hacks

Boardverwalter-URL’s die URL http://​


­arduino.​­esp8266.​­com/​­stable/​­package_
esp8266com_index.​­json ein. Damit ver-
anlassen Sie die Entwicklungsumge-
bung, die für den ESP8266 nötigen Para-
meter in die Liste der Board-Manager
aufzunehmen.
Danach starten Sie die Installation des
Bord-Managers für den Mikrocontroller
unter Werkzeuge | Board | Boardverwal-
ter… und suchen nach ESP8266. Hier
wählen Sie das Generic ESP8266 Modul
unter Werkzeuge | Board aus. Um Pro-
gramme in den ESP8266 hochzuladen,
müssen Sie noch den USB-to-Serial-­
Adapter mit Ihrem Rechner verbinden.

Testprogramm
Das Testprogramm aus Listing 2 dient
dazu, prinzipiell festzustellen, ob sich
Programme in den ESP8266 laden lassen.
Es bringt die an GPIO14 angeschlossene 3 Die drei komplett aufgebauten MQTT-Sensoren: Sie übermitteln per WLAN im
LED zum Blinken. Um das Programm ­Minutenabstand die Luftfeuchtigkeit und die Temperatur an den MQTT-Server.
hochzuladen und zu starten genügt es,
den ESP8266 in den Flash-Modus zu
schalten. Schließen Sie dafür die Jumper bewerkstelligen, verwenden Sie eine Sensorprogramm
JP1 und JP2 und drücken Sie dann den ­Bibliothek, die Sie installieren, indem Sie
Reset-Taster. Nun klicken Sie in der IDE auf den Menüpunkt Sketch | Bibliothek Listing 3 zeigt das Programm für den
oben links auf den Button zum Hoch­ einbinden | Bibliotheken verwalten kli- Sensor. Vereinfacht beschrieben stellt der
laden, also das Icon mit dem Pfeil nach cken. Dort suchen Sie nun nach dem Sensor eine Verbindung zum WLAN her,
rechts. Daraufhin startet der Upload PubSub­Client und installieren ihn. An- liest den AM2321 aus und sendet die
­automatisch. Denken Sie nach dessen schließend lassen sich ohne großen Auf- ­Daten an den MQTT-Server. Bei genau­
Abschluss daran, die zwei Jumper wieder wand MQTT-Nachrichten vom ESP8266 erem Hinsehen fallen viele Details am
zu entfernen. aus versenden. Programmcode auf.
Klappt das Hochladen nicht auf
­Anhieb, überprüfen Sie zuerst die Hard-
ware: Haben Sie alles korrekt verlötet
und den richtigen Board-Manager aus-
gewählt (Generic ESP8266 Modul)? Be-
trägt die Übertragungsgeschwindigkeit
115200 Baud? Oft ist auch einfach ein
­falscher Port gewählt. Sie müssen auf
­jeden Fall einen TTYUSB-Port verwen­den,
auf keinen Fall einen COM-Port. Abbil-
4
dung  zeigt alle notwendigen Einstel-
lungen, um ein Programm fehlerfrei
hochzuladen. Beginnt die LED zu blinken 4 Wenn sie die hier ge-
war der Upload erfolgreich. zeigten Kommunikations-
einstellungen in der Ardu-
MQTT-Bibliothek ino IDE verwenden, klappt
das Hochladen von Pro-
Unser Sensor soll seine Messwerte an grammen auf den Mikro-
den MQTT-Server schicken. Um das zu controller reibungslos.

05-06/2019 www.raspberry-pi-geek.de 53
Hacks Thermo-Hygrometer

Nach dem Import aller nötigen Biblio­ dernfalls später nicht auseinanderhalten Vorteil von MQTT liegt darin, dass die
theken (Zeilen 1 bis 3) legt das Pro- lassen. Der letzte Parameter (Zeile 12) ­Publisher/​Submitter definieren, welches
gramm alle benötigten Parameter in gibt an, wie lange der ESP8266 nach ei- Topic sie verwenden. Der Broker stellt die
Konstanten ab. Da sind zunächst einmal ner Messung schlafen soll, bevor er eine Topics dynamisch bereit. Sie müssen
die Verbindungsdaten für das WLAN neue Messung startet. Um die Batterien aber darauf achten, dass die Topics zu-
­(Zeilen 5 und 6), wo Sie die für Ihr Netz- zu schonen, schaltet sich der Mikrocont- sammenpassen. Da wir in unserem Bei-
werk passenden Werte hinterlegen. In roller zwischen den Messungen komplett spiel mit drei Sensoren arbeiten, num-
den darauffolgenden Konstanten geben ab, der Stromverbrauch liegt dann nur merieren wir sie einfach durch.
Sie die Verbindungsdaten zum MQTT- noch im Mikroampere-Bereich. Nach dem Starten eines Mikrocontrol-
Server ein (Zeilen 8 bis 10). Die nächsten zwei Zeilen (14 und 15) lers läuft immer zuerst die Funktion set­
Verwenden Sie mehr als einen Sensor, definieren eine Verbindung zum WLAN up() einmal durch. Sie führt üblicherwei-
müssen diese ihre Messwerte an ver- und zum MQTT-Server. Bei beiden han- se nur einmal benötigte Programmteile
schiedene Topics senden, da sie sich an- delt es sich um Client-Verbindungen. Der aus. In unserem Fall befindet sich das

Listing 3
01 
#include <Wire.h> 32  Wire. 63  Serial.println(crc);
02 
#include <ESP8266WiFi.h> beginTransmission(0x5c); 64  //JSON
03 
#include <PubSubClient.h> 33  Wire.endTransmission();
65  char msg[64] ="";
04 /
/ WLAN 34  Wire.
66  sprintf (msg,"{
05 
const char* ssid = "<Your beginTransmission(0x5c);
\"temperature\": \"%‑2.2f\",
SSID>"; 35  Wire.write(0x03);
\"humidity\": \"%‑2.2f
06 
const char* pass = "<Your WLAN 36  Wire.write(0);
\"}",temp,hum);
Password>"; 37  Wire.write(4);
67  Serial.println(msg);
07 
//MQTT Server 38  Wire.endTransmission();
68  // Connect to MQTT Server
08 
const char* serverIp = "<Your 39  delay(3);
MQTT Server>"; 69  mqtt.setServer(serverIp,1883
40  Wire.requestFrom(0x5c, 8);
09 
const char* topic ="/haus/ );
41  uint8_t buf[6];
sensor2"; 70  while (!mqtt.connected()) {
42  for (int i = 0; i < 6; ++i)
10 
const int serverPort = 1883; 43  buf[i] = Wire.read(); 71  Serial.
11 /
/ Energy Save print("Connecting...");
44  unsigned short crc = 0;
12 
const int intervall = 600; 72  if (!mqtt.connect("Sensor
45  crc = Wire.read(); //
//sec 1")) {
CRC LSB
13  73  Serial.print("failed,
46  crc |= Wire.read() << 8;//
14 
WiFiClient client; rc=");
CRC MSB
74  Serial.print(mqtt.
15 
PubSubClient mqtt(client); 47  unsigned int humidity;
state());
16  48  signed int temperature;
75  Serial.println("
17 
void setup() { 49  humidity = buf[2] << 8;
retrying in 5 seconds");
18  Wire.begin(4, 5); 50  humidity += buf[3];
76  delay(5000);
19  Serial.begin(115200); 51  temperature = buf[4] << 8;
77  }
20  Serial.println("\r\n") ; 52  temperature += buf[5];
21  WiFi.begin(ssid, pass); 53  if(temperature & 0x8000) 78  Serial.println();
22  while (WiFi.status() != WL_ temperature = ‑(temperature & 79  }
CONNECTED) { 0x7fff); 80  mqtt.loop();
23  delay(500); 54  double temp = temperature; 81  mqtt.publish(topic,msg);
24  Serial.print("."); 55  double hum = humidity;
82  delay(500); // Wait for MQTT
25  } 56  temp =temp/10; Server
26  Serial.println(""); 57  hum=hum/10;
83  Serial.println("goSleep" );
27  Serial.print("Connected: "); 58  Serial.
84  ESP.
28  Serial.println(ssid); print("Temperature:");
deepSleep(intervall*1000000);
29  Serial.print("IP address: 59  Serial.println(temp);
85 }
"); 60  Serial.print("Humidity:
"); 86 v
oid loop()
30  Serial.println(WiFi.
localIP()); 61  Serial.println(hum); 87 {
31  // Measurement 62  Serial.print("CRC: "); 88 }

54 www.raspberry-pi-geek.de 05-06/2019
Thermo-Hygrometer Hacks

komplette Programm innerhalb dieser


Funktion, da alle Programmteile für eine
Messung nur einmal durchlaufen werden
müssen. Der Befehl Wire.begin(4,5);
(Zeile 18) startet eine I2C-Schnittstelle auf
GPIO4 (SDA) und GPIO5 (SCL). Die nächs-
te Zeile initialisiert die ­serielle Ausgabe
des Programms. Alle hier geschriebenen
Meldungen erscheinen im seriellen Mo-
nitor der Arduino IDE. Achten Sie darauf,
dass der Monitor dieselbe Übertragungs-
geschwindigkeit verwendet wie das Pro-
gramm, in unserem Fall 115 200 Baud.
Mithilfe dieser Ausgaben lassen sich
­Fehler in der Soft- und Hardware einfa-
cher lokalisieren.
Das Kommando WiFi.begin() (Zei- 5 Ein Beispiel für den Test der Sensoren mit der entsprechenden Ausgabe der MQTT-App.
le 21) baut eine Verbindung zum WLAN
auf und konfiguriert das Netzwerk. Da
dieser Vorgang etwas Zeit in Anspruch
nimmt, prüft die folgende While-Schleife
kontinuierlich den Status der WLAN-Ver-
bindung. Die Schleife wird erst nach ei-
nem Zustandekommen der Verbindung
verlassen. Die folgenden Zeilen geben
den Verbindungsstatus auf dem seriellen
Monitor aus.
Nun beginnt die eigentliche Messung.
Die ersten zwei Kommandos (Zeilen 32
und 33) wecken den AM2321 aus dem
Energiesparmodus. Die folgenden fünf
Zeilen lassen ihn eine Messung der Tem-
peratur und Luftfeuchtigkeit ausführen.
Nun müssen wir vor dem Auslesen der
Werte einen kleinen Augenblick warten
(delay(3);).
Ab Zeile 40 folgt eine Reihe von Befeh- 6 Den MQTT-Input-Node definieren Sie recht komfortabel in der Node-RED-Oberfläche.
len, die die Messwerte vom I2C-Bus lesen
und sie formatiert in Variablen abspei-
chern. Besonders interessant ist hierbei Das eigentliche Übertragen der Daten ESP8266 nach der in der Variablen
die Zeile 53, die dafür sorgt, dass auch geschieht recht unspektakulär mit dem i­ ntervall definierten Zeit aufwacht,
negative Zahlen richtig dargestellt wer- Befehl mqtt.publish(topic,msg); (Zei- startet das Programm von Neuem. Die
den. Um die Messwerte zu übertragen, le 81). Der folgende delay(500); sorgt loop()-Funktion wird nie aufgerufen,
wandeln wir sie in das JSON-Format um dafür, dass der ESP8266 nicht in den weil das Programm den ESP8266 schon
(ab Zeile 64), die kompakte und gut les- Energiesparmodus geht, ohne die Nach- am Ende der setup()-Funktion in den
bare JavaScript Object Notation. Der richt komplett zu übertragen. Falls Ihr Energiesparmodus schickt. Um das Pro-
JSON-String speichert die Variable msg. MQTT-Server sehr langsam arbeitet, gramm in den ESP8266 hochzuladen,
Ab Zeile 69 baut die Software die müssen Sie die Wartezeit noch etwas er- ­gehen Sie wie beim Testprogramm be-
­Verbindung zum MQTT-Server auf und höhen. Die letzte Zeile ESP.deepSleep( schrieben vor.
überträgt die Nachricht. Hierbei versucht intervall*1000000); in der setup()-
sie, ähnlich wie beim Verbinden mit dem Funktion versetzt den ESP8266 wieder in Nachrichten in MQTT
WLAN, in einer Schleife so lange den den Energiesparmodus.
Kontakt herzustellen, bis die Kommuni- Nun ist die Messung komplett über­ Bevor Sie die Nachrichten der Sensoren
kation klappt. tragen und abgeschlossen. Wenn der in Node-RED weiterverarbeiten, sollten

05-06/2019 www.raspberry-pi-geek.de 55
Hacks Thermo-Hygrometer

7 Ein change-Node löst die Temperaturangabe aus dem Javascript-Objekt heraus.

Sie erst einmal überprüfen, ob sie am Die AM2321-Sensoren benötigen min-


Listing 4
MQTT-Server wie erwartet ankommen. destens 2,6 Volt Betriebsspannung.
msg.payload.humidity => msg. Dazu verwenden Sie die eingangs be-
payload, msg.payload.temperature
=> msg.payload
schriebene MQTT-App für Chrome . Finale
Damit die Nachrichten aller drei Senso-
ren in einem Rutsch erscheinen, verbin- Nun gilt es, die Nachrichten des MQTT-
den Sie sich mit den Topic /haus/+. Nun Servers in den Node-RED-Flow zu inte­
drücken Sie nacheinander die Reset-Tas- grieren. Das erledigen Sie direkt über die
ter der einzelnen Sensoren, damit sie ei- Oberfläche von Node-RED. Dazu starten
nen Messwert an den MQTT-Server schi- Sie mit einem mqtt den Input-Node und
cken. Die Ausgabe der MQTT-App sollte konfigurieren ihn so, dass er Nachrichten
so aussehen wie in Abbildung  . 5 aus dem Topic eines Sensors empfängt
Liefern die Sensoren unplausible Wer- (­/­haus/​sensor1). Um den Input-Node zu
te für die Luftfeuchtigkeit, ist vermutlich erstellen, benötigen Sie die Definition
die Batteriespannung etwas zu niedrig: 6
­eines MQTT-Servers  .
Die Sensoren liefern JSON-Strings, die
Sie in Javascript-Objekte umwandelt
müssen, damit Node-RED sie verarbeitet.
Da diese Art der Umwandlung sehr oft
anfällt, gibt es in Node-RED standard­
mäßig den JSON-Node, der das erledigt:
Er erlaubt es, beliebig zwischen JSON-
String und Javascript-Objekt hin und her
zu wandeln.
Bevor wir nun das Javascript-Objekt an
das Anzeigeinstrument Gauge weiterlei-
8 Der Node-RED-Flow für einen Sensor mit je einer separaten Anzeige für Temperatur ten, müssen Sie noch die Werte für Luft-
und Luftfeuchtigkeit. feuchtigkeit und Temperatur trennen.

56 www.raspberry-pi-geek.de 05-06/2019
Thermo-Hygrometer Hacks

9 Das Node-RED-Dashboard zeigt in einer ansprechenden Grafik die Messwerte der verschiedenen Sensoren an.

Das erreichen Sie mithilfe zweier change- soren kann man eine Menge über den
Weitere Infos und
Nodes, die Sie so einrichten, dass sie die ESP8266-Mikrocontroller lernen, der sich interessante Links
Werte für Temperatur und Luftfeuchte auch als Grundlage für eigene Anwen-
aus der Nachricht herauslösen und in dungen aller Art eignet. www.​­raspi-geek.de/qr/42362
neue Nachrichten einpacken (Listing 4). Ein kleiner Wermutstropfen bleibt
Ein entsprechendes Beispiel sehen Sie in ­allerdings: Der AM2321 arbeitet sehr
7
Abbildung  . knapp an seiner minimalen Betriebs-
Die Gauge-Nodes müssen Sie anschlie- spannung, deswegen fallen die Mess-
ßend noch so konfigurieren, dass die werte manchmal etwas ungenau aus.
Messwerte innerhalb ihres Anzeigeinter- Um dieses Problem zu lösen, müssten Sie
valls liegen. Eine Beschreibung dazu fin- die Spannungsversorgung der komplet-
den Sie in dem bereits erwähnten Artikel ten Schaltung ein wenig aufwendiger
aus RPG 01-02/​2019 . Nun verbinden gestalten, indem Sie drei Batterien ver-
Sie die einzelnen Nodes noch. wenden und mit einem Spannungsregler
Die beschriebenen Schritte wiederho- die benötigten 3,3 Volt Betriebsspan-
len Sie jetzt für die beiden anderen Sen- nung erzeugen. (tle) n
soren des Messgeräte-Trios. Passen Sie
abschließend das Layout für Ihr Dash-
board noch etwas an  .9 Der Autor
Martin Mohr entwickelte schon früh eine
Fazit Vorliebe für alles, was blinkt, die eine Aus-
bildung zum Elektroniker noch verstärkte.
Das leicht zu bedienende Werkzeug Nach einem anschließenden Informatik­
­Node-RED eignet sich hervorragend, um studium beschäftigte er sich überwiegend
Messwerte relativ unkompliziert zu visu- mit der Entwicklung von Java-Applikati- Dateien zum Artikel
alisieren. Auch andere Anforderungen onen. Mit dem Raspberry Pi erwachte die herunterladen unter
aus dem IoT-Bereich lassen sich damit alte Liebe zur Elektronik wieder.
www.​­raspi-geek.de/dl/42362
leicht umsetzen. Beim Aufbau der Sen­

05-06/2019 www.raspberry-pi-geek.de 57
Open Hardware Pintexx Pinbox

© Computec Media GmbH


Das Aufsetzen zuverlässiger Die Pinbox gräbt per RDP einen Tunnel ins eigene LAN

Windows to go
und sicherer Remote-Desk-
top-Lösungen erfordert eini-
ges Know-how. Die RasPi-­
basierte Pinbox von Pintexx
Große Unternehmen ermöglichen es den-Württemberg verspricht hier Abhil­
reduziert den Konfigurations- den Mitarbeitern oft, von zu Hause oder fe: Die auf dem Raspberry Pi aufbauende
von unterwegs während einer Reise auf Pinbox  erlaubt den Zugriff auf die hei­
aufwand auf ein Minimum. ihre Daten oder gar den Desktop des Fir­ mischen Rechner von unterwegs aus.
menrechners zuzugreifen. Für diese Auf­ Das funktioniert ohne besondere Soft­
Christoph Langner gabe gibt es viele verschiedene Lö­sungs­ ware, ein Webbrowser als Client genügt.
ansätze, von VPNs über den Klassiker VNC
bis hin zu anderen Remote-Desktop-Ver­ Appliance
bindungen wie NX oder Micro­softs pro­
prietärem Netzwerkprotokoll RDP. In der Pintexx liefert die Pinbox in einem klassi­
Regel kommt eine Kombination verschie­ schen RasPi-Gehäuse aus. Darin steckt
README dener Techniken zum Einsatz. ein Raspberry Pi 3 Modell B V1.2 mit ei­
Die dafür nötigen Netzwerkaufbauten ner 32 GByte fassenden Speicherkarte.
Das Vergessen der Präsentationsdatei auf
und deren Konfigurationen stellen kleine Ein Netzteil mit in das Kabel integrier­
dem heimischen PC ist die moderne Version
Firmen oder den Privatanwender vor tem Ein/​Aus-Schalter sowie eine ge­
der Ausrede „Mein Hund hat die Hausauf­ eine gewaltige Aufgabe: Schließlich soll druckte Schnellstartanleitung liegen
gaben gefressen“ von früher. Um so einen der Remote-Zugang nicht nur bequem ebenfalls mit im Paket. Der Aufbau geht
Lapsus auszubügeln, greifen Sie über die sein, sondern vor allem auch sicher. schnell von der Hand: Sie packen das
Das deutsche Unternehmen Pintexx Gerät lediglich aus und schließen es an
Pinbox auf den Desktop zu Hause zu.
aus dem beschaulichen Talheim in Ba­ einen freien Port des WLAN-Routers an.

60 www.raspberry-pi-geek.de 05-06/2019
Pintexx Pinbox Open Hardware

Das dafür nötige Netzwerkkabel findet


sich ebenfalls im Lieferumfang.
Anschließend gilt es, die IP-Adresse
der Pinbox im lokalen Netzwerk zu er­
mitteln. Da das Gerät als sogenannte
­Appliance ohne Ein- und Ausgabegeräte
arbeitet, müssen Sie dazu entweder in
die Konfigurationsoberfläche des Rou­
ters sehen, oder Sie nutzen den vom
­Hersteller bereitgestellten Pinbox Detec­
tor . Das Programm scannt das Netz­
werk nach einem aktiven Gerät, es liegt
jedoch nur in einer Windows-Version vor.
Alternativ geben Sie das Kommando ns-
lookup pinbox in einem Terminal ein –
das funktioniert sowohl unter Linux wie
auch unter Windows  . 1 1 Mit Pinbox Detector ermitteln Sie unter Windows die IP-Adresse des Geräts im lokalen
Danach öffnen Sie einen Webbrowser Netzwerk. Alternativ gelingt das mit dem Kommando nslookup pinbox, das auch unter
auf Ihrem Rechner und geben die ermit­ Linux funktioniert.
telte IP-Adresse in die Adresszeile ein. Die
Pinbox verlangt nun nach einem Master-
Passwort von mindestens acht alphanu­ und 443 (HTTPS) vom Router auf die Je nachdem, was für einen Internet-­
merischen Zeichen mit wenigstens einem ­Pinbox. Zum anderen sollten Sie einen Router Sie verwenden, müssen Sie hier
großgeschriebenen Buchstaben. Das Sys­ DynDNS-Dienst einrichten, sodass Sie ein wenig anders vorgehen. Auf einer
tem rekonfiguriert sich daraufhin und das Netzwerk unter einem sprechenden Fritzbox richten Sie die Port-Weiterlei­
startet zum Abschluss neu. Nach ein paar Namen wie http://​­zuhause.​­domain.​­de tung unter Internet | Freigaben | Portfrei-
Minuten empfängt Sie ein Login-Screen, ­erreichen und nicht über eine kryptische gaben ein. Dort tippen Sie am unteren
in dem Sie sich mit Ihren Zugangsdaten und obendrein auch noch täglich wech­ Rand der Seite auf Gerät für Freigaben
anmelden. Daraufhin erscheint dann das selnde IP-Adresse. hinzufügen und wählen dann im neuen
Webfrontend der Pinbox  . 2
Port-Forwarding und SSL
Um aus dem Internet auf die Pinbox
­zugreifen zu können, müssen Sie zwei
Dinge in Ihrem lokalen Netzwerk konfi­
gurieren: Zum einen benötigen Sie eine
Port-Weiterleitung der Ports 80 (HTTP)

Preise und Verfügbarkeit


Pintexx verlangt für die Pinbox 169 Euro,
der Versand schlägt mit weiteren 4,99 Euro
zu Buche. Im Preis enthalten sind die Hard-
ware sowie eine Lizenz für einen Benutzer.
Gegen Aufpreis erlaubt das System, dass
sich weitere Anwender zur selben Zeit auf
zusätzliche Rechner im Netz verbinden.
­Aktualisierungen liefert der Hersteller für
6 Monate ab Kauf über eine integrierte
­Update-Funktion aus. Für weiterführenden
Support muss der Nutzer ein Update-
Abonnement für 69 Euro abschließen. 2 Die Konfiguration der Pinbox erfolgt vollständig über ein Webfrontend. Auch für den
späteren Verbindungsaufbau genügt ein Webbrowser.

05-06/2019 www.raspberry-pi-geek.de 61
Open Hardware Pintexx Pinbox

Dialog die Pinbox aus der Liste der Geräte


aus. Schließlich fügen Sie unten im Fens­
ter über die Option Neue Freigabe für
Port 80 und 443 eine entsprechende
3
Freigabe hinzu  .
Zum Einrichten einer DynDNS-Domain
gibt es zwei Wege. Viele Router unter­
stützen ab Werk eine Reihe von DynDNS-
Anbietern. Auf einer Fritzbox finden Sie
die dazu nötigen Einstellungen unter
­Internet | Freigaben | DynDNS. Alternativ
greifen Sie auf den von AVM selbst offe­
rierten MyFRITZ-Dienst zurück oder Sie
überlassen das Management der Dyn­
DNS-Adresse der Pinbox selbst: Im Web­
frontend unter Dynamisches DNS lassen
sich Zugangsdaten zu einer Reihe be­
kannter DynDNS-Dienste eintragen.
Zum Absichern der Verbindung sollten
Sie noch die SSL-Verschlüsselung aktivie­
ren. Danach erreichen Sie die Pinbox –
ähnlich wie jede andere wichtige Web­
3 Damit Sie die Pinbox aus dem Internet erreichen, benötigen Sie eine DynDNS-­ seite im Netz – über eine HTTPS-Adresse
Domain sowie ein Port-Forwarding der Ports 80 (HTTP) und 443 (HTTPS) auf die Box im Stil von https://​­zuhause.​­domain.​­de.
(hier am Beispiel einer Fritzbox). Dank Let’s Encrypt  erhalten Sie das
dafür nötige SSL/​TLS-Zertifikat kostenlos.
Es gibt bereits eine ganze Reihe von
Webroutern, die Let’s Encrypt bereits ab
Werk unterstützen.

RDP unter Linux


Das Remote Desktop Protocol RDP
stammt von Microsoft, sodass es wenig
verwundert, dass sich die Funktion unter
Windows auf Knopfdruck aktivieren lässt.
Für Linux gibt es mit Xrdp  eine Open-
Source-Implementation der Server-Kom-
ponente. Je nach Distribution müssen Sie
den Dienst über die Paketverwaltung
­installieren und meist auch noch von
Hand konfigurieren.
Im Rahmen unseres Tests gelang das
­allerdings weder mit Ubuntu 18.04
noch mit 18.10. Wir konnten unter
Ubuntu zwar auf einen Login-Bildschirm
zugreifen, doch den Desktop vermochte
die über die Pinbox aufgebaute Verbin-
dung nicht zu starten. Da auch andere
RDP-Clients wie Remmina an der Aufgabe
scheiterten, liegt der Fehler entweder an
unserer Konfiguration oder dem Zustand
4 Zum Absichern der Verbindung sollten Sie auf jeden Fall die SSL-Verschlüsselung von Xrdp selbst.
aktivieren. Dank Let’s Encrypt gibt es das dafür nötige Zertifikat zum Nulltarif.

62 www.raspberry-pi-geek.de 05-06/2019
Pintexx Pinbox Open Hardware

Alternativ klappt das auch direkt über


die Pinbox: Rufen Sie dazu das Webfron­
tend über die zuvor konfigurierte Dyn­
DNS-Adresse auf und öffnen Sie die Op­
4
tion SSL im Webfrontend  . Das System
sollte die Domäne automatisch erkennen
und nach einem Klick auf Let’s Encrypt in-
stallieren das Zertifikat erstellen.
Nach ein paar Minuten meldet die Pin­
box den Let’s Encrypt Status als Installiert.
Danach sollten Sie das System unter
­https://​­zuhause.​­domain.​­de erreichen
können, ohne dass sich der Webbrowser
dabei über eine unsichere Verbindung
beschwert. In der Regel markiert das
­grüne Schloss in der Adresszeile, dass die
Verschlüsselung funktioniert und das
Zertifikat gültig ist.
5 Unter Windows 10 aktivieren Sie die Remote-Desktop-Funktion über die System­
Remote-Desktop aktivieren einstellungen. Die Authentifizierung über die Netzwerkebene müssen Sie aus Kompatibi-
litätsgründen deaktivieren.
Bevor Sie nun loslegen können, müssen
Sie die Remote-Desktop-Funktion auf
dem Client-Rechner aktivieren. Da das System und Sicherheit | System die Option mit der entsprechenden Option ist die
RDP-Protokoll von Microsoft stammt, Remotezugriff zulassen an. Im sich darauf­ Pinbox nicht kompatibel  .5
funktioniert das auf Windows-Rechnern hin öffnenden Dialog aktivieren Sie das Unter Windows 7 finden Sie die Ein­
besonders einfach. Feld Remoteverbindung mit diesem Com- stellungen zum Remote-Desktop eben­
Unter Windows 10 öffnen Sie die Sys­ puter zulassen. Achten Sie dabei darauf, falls im Abschnitt System der Systemsteu­
temsteuerung und wählen dort unter den Schalter darunter zu deaktivieren – erung. Ein Klick auf den Eintrag Remote-
einstellungen öffnet den entsprechenden
Dialog. Dort aktivieren Sie dann die Op­
tion Verbindungen von Computern zulas-
sen, auf denen eine beliebige Version von
Remotedesktop ausgeführt wird (weniger
Sicherheit). Auch hier kommt die Pinbox
mit der eigentlich sichereren Verbindung
mit Authentifizierung auf Netzwerkebene
nicht zurecht.

Via Webbrowser
Den Zugriff auf ausgesuchte Rechner
richten Sie nun unter Direktzugriff ein. In
der Regel genügt es, im Feld RDP Host/​IP:
die IP-Adresse des gewünschten Rech­
ners einzutragen. Diese Adresse ermitteln
Sie auf einem Windows-Rechner mit dem
in der Eingabeaufforderung ausgeführ­
ten Kommando ipconfig oder unter
­Linux mit ip addr show.
Weiter stellen Sie noch die Sprache
6 Für den Fernzugriff übertragen Sie den Link in einen Webbrowser. Sind die DynDNS- und Tastatur auf Deutsch um. Läuft der
Adresse und die Portweiterleitung richtig konfiguriert, funktioniert das auch von unter- fernzusteuernde Rechner nicht perma­
wegs über das Internet. nent durch, lässt er sich durch Aktivieren

05-06/2019 www.raspberry-pi-geek.de 63
Open Hardware Pintexx Pinbox

7 Für RDP benötigen Sie nicht zwingend


ein Client-Programm: Hier läuft das von ei-
nem Notebook geladene Windows-10-Sys-
tem direkt im Webbrowser. Zur Not funkti-
oniert das auch auf einem mobilen Gerät
mit Android oder iOS.

der Option WakeOnLan über das Netz­ Fazit


werk aufwecken. Dazu müssen Sie even­
tuell noch im BIOS beziehungsweise im Mit der Pintexx Pinbox stellen Sie sich
UEFI des Rechners die entsprechende eine clevere Appliance auf Raspberry-Pi-
Funktion aktivieren. Basis ins Büro oder Wohnzimmer, die den
Zum Abschluss der Konfiguration kli­ Zugriff auf die PCs im lokalen Netzwerk
cken Sie auf Link generieren. Die Pinbox mit minimaler Konfiguration erlaubt. Der
erstellt nun einen Link nach dem Schema Hersteller unterstützt Sie dabei mit ei­
https://​­zuhause.​­domain.​­de/​­config/​ nem ausführlichen Handbuch .
­directaccess/​­T2VX[...​­]TDgx. Darunter fin­ Auf Client-Seite genügt ein beliebiger
den Sie mit Link kopieren und Link öffnen Rechner mit einem aktuellen Webbrow­
6
zwei neue Schalter  . Den Link über­ ser, Sie benötigen zum Zugriff lediglich
tragen Sie dann auf ein Notebook oder den von der Pinbox bereitgestellten Link.
ein anderes mobiles Gerät. Alternativ So funktioniert der Fernzugriff via Inter­
übermitteln Sie die URL einem Kollegen, net von einem Kunden-PC, einem Rech­
der auf den Desktop zugreifen soll. Öff­ ner der Uni-Bibliothek oder zur Not auch
nen Sie nun den Link in einem Browser, von einem Smartphone oder Tablet aus.
erscheint ein Login-Bildschirm. Bei der ganzen Sache darf man aller­
Geben Sie dort dann die Zugangs­ dings nicht vergessen, dass die von der
daten des Systems ein, finden Sie sich Pinbox aufgespannte RDP-Verbindung in
auf dem Desktop wieder, mit allen aktu­ vielen Szenarien zwar praktisch ist, sich
ell geöffneten Programmen und Fens­ aber auf einen einzelnen Remote-Desk­
7
tern  . Während der Remote-Desktop top beschränkt.
aktiv ist, sperrt das lokale System Sie aus. Mit einem VPN ins Heim- oder Firmen­
Über die Schaltflächen oben am Rand netz stehen Ihnen hingegen alle Mög­
des Desktops lässt sich eine Tastatur ein­ lichkeiten offen – ganz so, als ob Sie im
blenden – nützlich, falls Sie den Desktop Büro sitzen würden. Um zum Beispiel
Weitere Infos und beispielsweise über ein Android-Tablet größere Datenmengen zwischen dem
interessante Links steuern – oder auch eine Datei zwischen Client-Rechner und dem Remote-System
www.​­raspi-geek.de/qr/40556
dem ferngesteuerten Rechner und dem abzugleichen, gibt es bessere Methoden
Client-System austauschen. als das RDP-Protokoll. (cla) n

64 www.raspberry-pi-geek.de 05-06/2019
Open Hardware Witty Pi Mini

  Zeitsteuerung für den Raspberry Pi

Süßer Wecker

© tawhy, 123RF
Dem RasPi fehlen sowohl Das zeitgesteuerte Hoch- und Herunter- bau. Der HAT unterstützt auch die aus­
fahren eines Raspberry Pi ist in vielen An- gewachsenen Raspberry-Pi-Modelle. In
eine Echtzeituhr als auch ein wendungsszenarien kein Thema: Der Ras- diesem Fall empfiehlt das Handbuch aber
Pi darf aufgrund seines geringen Strom- einen zusätzlichen Header, da die An-
BIOS, ein zeitgesteuertes verbrauchs einfach durchlaufen. Aus schlüsse hier mehr Abstand benötigen.
dem­selben Grund stört in dieser Konstel- Vor der Montage steht jedoch die Instal-
­Wecken erfordert also Zu- lation das Fehlen einer Echtzeituhr (eng- lation der Software, dazu später mehr.
lisch: Real Time Clock, RTC) nicht, denn
satzkomponenten. Hier der RasPi synchronisiert seine Systemzeit Architektur
mit einem Zeitserver aus dem Internet.
springt der Witty Pi Mini in Bei Offline-Szenarien sieht die Sache Auf der Platine finden sich der präzise
aber schnell anders aus. Wollen Sie etwa RTC-Chip DS3231SN, zwei LEDs, die den
die Bresche, ein µHAT von
an einem Ort ohne Steckdose jede Stun- Betriebszustand anzeigen, zwei Schiebe-
UUGear. Bernhard Bablok de ein Foto aufnehmen, dann saugt schalter sowie ein Taster. Ein Micro-USB-
selbst ein Pi Zero im Dauerbetrieb jeden Anschluss versorgt die Platine und dar­
Akku schnell leer. Eine Eigenbaulösung über auch den RasPi mit Strom. Eine
README für das Problem haben wir schon vor ei- ­Pufferbatterie für die Echtzeituhr fehlt,
niger Zeit vorgestellt . Mit dem Witty Pi stattdessen gibt es einen Superkonden-
Da der Raspberry Pi sowohl auf eine Echt-
Mini  von UUGear gibt es jedoch für sator, der die Uhr für bis zu 17 Stunden
zeituhr als auch ein BIOS verzichtet, lässt er
schmale 17,90 Euro eine entsprechende mit Spannung versorgt.
sich nicht ohne Weiteres zeitgesteuert auf-
Hardware-Lösung in Form eines pHAT, Der RTC-Baustein enthält neben der
wecken. Die notwendigen Zusatzkompo-
1
die ähnliche Funktionalität verspricht . eigentlichen Uhr noch zwei Speicher für
nenten sind zwar nicht teuer, erfordern aber Die Größe der Platine gleicht der eines wiederkehrende Alarme. Der Witty Pi
Elektronik- und Lötkenntnisse. Der Witty Pi, Pi Zero. Im gelieferten Paket liegen Plas­ Mini nutzt diese Alarme, um den RasPi
ein µHAT von UUGear, füllt die Lücke. tik­abstandshalter und Schrauben, ein automatisch zu starten beziehungsweise
kleines Handbuch zeigt den Zusammen- herunterzufahren. Der Taster dient zum

66 www.raspberry-pi-geek.de 05-06/2019
Witty Pi Mini Open Hardware

1 Der Witty Pi Mini, montiert auf einem


Ein- und Ausschalten per Hand. Letz­ Shutdown aus und trennt den Raspberry Pi Zero. Dabei sticht die identische Größe
teres funktioniert nur im Zusammen- Pi von der Stromversorgung. Das stellt beider Platinen ins Auge.
spiel mit der mitgelieferten Software im Grunde genommen einen Design-
sauber, andernfalls fährt der Raspber- Fehler des UUGear-Hats dar: Moderne
ry Pi vorher nicht herunter. Ein Schiebe- Varianten des RasPi mit Bluetooth ver-
schalter steuert das Verhalten, sobald wenden die Pins 8 (GPIO14, TXD) und 10
die Platine Strom bekommt: Im Stan- (GPIO15, RXD) nicht mehr als serielle
dardzustand Off passiert nichts, erst der Schnittstelle. Das Installationsprogramm
Taster schaltet den RasPi an. In der Stel- des Witty Pi Mini sorgt zwar für das Um-
lung On dagegen bekommt der Mini- konfigurieren, aber Anwender, die den
Rechner auch ohne zusätzlichen Druck Bluetooth-UART nutzen, müssen auch
auf den Taster sofort Strom. ihre Programme anpassen.
Der zweite Schiebeschalter sorgt in Damit der RTC oder Taster das Her­
der On-Stellung dafür, dass die Platine unterfahren auslösen kann, überwacht
in regelmäßigen Abständen für kurze die Witty-Pi-Software zusätzlich noch
Zeit hohe Ströme abruft, selbst wenn den Pin 7 (GPIO4). Ein entsprechender
der RasPi nicht läuft. Das verhindert bei Pegelwechsel sorgt dann für einen ge-
vielen Powerbanks ein komplettes Ab- ordneten Shutdown, die GPIO14-Über-
schalten – sie sind für das Laden von wachung trennt am Ende den ­Raspberry
Smartphones ausgelegt und nicht als Pi vom Strom.
Stromversorgung für sparsame Geräte
wie den Pi Zero. Software installieren
Listing 1
Überwachung Der Hersteller produziert nicht nur die 01 $
 sudo su ‑
Platine, sondern stellt auch die Software 02 $
 cd /usr/local/lib
Die Witty-Pi-Platine überwacht den Pin 8 für die Konfiguration des Raspberry Pi 03 $
 wget http://www.uugear.com/
(GPIO14, TXD der seriellen Schnittstelle), und den Betrieb der Lösung bereit . repo/WittyPi2/installWittyPi.
der im Normalbetrieb nur sehr kurzzeitig Diese gilt es einzurichten, bevor Sie den sh
bei Datentransfers auf Low geht. Liegt Witty Pi Mini und den RasPi verbinden. 04 $
 chmod +x installWittyPi.sh
hier längere Zeit keine Spannung an, Die entsprechende Installationsroutine 05 $
 ./installWittyPi.sh
dann geht der Witty Pi Mini von einem holt zwar alle notwendigen Pakete ins 06 $
 exit

05-06/2019 www.raspberry-pi-geek.de 67
Open Hardware Witty Pi Mini

System und ändert bei Bedarf auch die


Konfiguration, aber die Software landet
nicht in den bei Linux üblichen Verzeich-
nissen. Deshalb empfehlen wir die Instal-
lation gemäß dem Schema aus Listing 1.
Das Skript aus Zeile 3 passt die Datei
/­boot/config.txt an, um das I2C-Inter-
face zu aktivieren, und installiert die
­Pakete wiringpi sowie i2ctools. Anschlie-
ßend lädt es die Witty-Pi-Tools herunter,
ein Archiv mit einer Skriptsammlung für
den Betrieb der Hardware. Die Witty-Pi-
Tools liegen anschließend im Verzeichnis
/usr/local/lib/wittyPi. Optional rich-
ten Sie noch Qt5 ein, auf dem das gra­
2 RasPi 3A+ ohne Witty Pi Mini: Nach dem „Abschalten“ steigt die Leistungsaufnahme fische Frontend für den Witty Pi Mini
des Systems sogar noch an. ­basiert – das ist aber nur auf Desktop-
Systemen sinnvoll.

Im Betrieb
Nach dem Einrichten der Software fah-
ren Sie das System herunter und mon­
tieren den HAT. Ein Druck auf den Taster
startet nun das System, ein weiterer
fährt es wieder herunter und trennt es
vom Strom. So ausgeschaltet verbraucht
es dann nur noch wenige Milliampere.
2
Die Abbildung  zeigt den Verlauf
der Leistungsaufnahme eines RasPi 3A+
ohne Witty Pi. Nach dem Shutdown
etwa um 13:16 Uhr verbraucht das
­System sogar mehr Strom – eine Unart,
3 RasPi 3A+ mit Witty Pi Mini: Die Leistungsaufnahme reduziert sich nach dem Herun- die andere Raspberry-Pi-Modelle nicht
terfahren auf wenige Milliampere. 3
zeigen. Die Abbildung  zeigt die Leis-
tungsaufnahme desselben Mini-Rech-
ners im Zusammenspiel mit dem Witty
Pi Mini: Hier sinkt der Stromverbrauch
nahezu auf null.
Einmalige oder regelmäßige Boot- be-
ziehungsweise Shutdown-Zeiten stellen
Sie bequem über das Skript wittyPi.sh
(Listing 2) oder eine grafische Oberflä-
che ein. Die Ausgabe des Skripts 4
zeigt diverse Optionen an, zum Beispiel
für die Zeitsynchronisation (Optionen 1
bis 3) oder die Zeitwahl für Start und
Stopp (Optionen 4 bis 6).

Listing 2
$ sudo /usr/local/lib/wittyPi/
wittyPi.sh
4 Textmenü für die Steuerung von Boot-Zeiten.

68 www.raspberry-pi-geek.de 05-06/2019
Witty Pi Mini Open Hardware

Auf Desktop-Systemen mit installierter


Qt5-Version lässt sich dasselbe auch
5
­grafisch abwickeln  . Etwas unschön
ist dabei der notwendige Wechsel in das
Programmverzeichnis (Listing 3). Auf
­einem Pi Zero fühlt sich die grafische
Oberfläche zudem recht zäh an.

Zeitpläne
Mit Schedule-Skripts, also Zeitplänen für
die Start- und Shutdown-Vorgänge, bie-
tet der Witty Pi Mini eine Besonderheit.
Dabei formulieren Sie die Zeitpläne in ei-
ner einfachen Sprache, deren Möglichkei-
ten das Benutzerhandbuch beschreibt.
Als weiteren Service gibt es einen Online-
Generator , der es erlaubt, Zeitpläne
per Mausklick zusammenzustellen  . 6

Listing 3
$ cd /usr/local/lib/wittyPi 5 Die grafische Oberfläche zur Steuerung des Witty Pi Mini bietet zwar Komfort,
fühlt sich insbesondere auf einem Pi Zero aber recht zäh an.
$ sudo ./wittyPi
Open Hardware Witty Pi Mini

6 Mithilfe eines Online-Generators lassen


sich Zeitpläne für den Witty Pi Mini per
Mausklick zusammenstellen.

Ereignisgesteuerte Boot- und Shutdown- ­liefern. Dazu gehören nicht nur das um-
Zeitpunkte, wie sie beispielsweise bei ei- fangreiche Handbuch und die nützliche
nem Video­rekorder anfallen – außer Sie Software, sondern insbesondere auch
nehmen nur Serien zu festen Zeitpunk- Hinweise, wie man die Hardware (auf ei-
ten auf –, lassen sich mit den Zeitplänen gene Gefahr) hackt und damit noch bes-
allerdings nicht abdecken. ser an spezielle Bedürfnisse anpasst. Der
Für diese Betriebsart programmieren Quelltext der mitgelieferten Software
Sie die Alarme der RTC besser selbst. Die liegt sowieso offen, denn er besteht ja
Witty-Pi-Tools stellen die dafür notwen- überwiegend aus Shell-Skripten, und
digen Bausteine in Form von Shell-Routi- lässt sich ebenfalls beliebig für das kon-
nen bereit, aber etwas Software-Bastelei krete Projekt maßschneidern. (cla/​jlu) n
fällt dabei trotzdem an.

Fazit Der Autor


Bernhard Bablok (mail@bablokb.​­de)
Mit dem Witty Pi Mini ist dem Hersteller
­arbeitet bei der Allianz Technology SE
ein sehr nützliches Produkt gelungen.
als SAP-HR-Entwickler. Hört er nicht ge-
Weitere Infos und Die genannten kleineren Nachteile wie- rade Musik oder ist mit dem Rad oder zu
interessante Links gen nicht allzu schwer, und als Asgleich Fuß unterwegs, dann beschäftigt er sich
dafür gibt es eine ganze Reihe von Vor- mit Themen rund um Linux, Programmie-
www.​­raspi-geek.de/qr/42742
teilen, die ähnlichen RasPi-HATs nicht rung und Kleincomputer.

70 www.raspberry-pi-geek.de 05-06/2019
Know-how Sonic Pi (Teil 4)

Audio-Programmierung mit Sonic Pi, Teil 4

Verbindungsaufnahme
Über die Funktion sync lassen Sie Sonic Pi auf MIDI- und OSC-Ereignisse sowie
Audiosignale warten und diese verarbeiten. Pit Noack, Hartmut Noack

README
Mit der Version 3.0 macht Sonic Pi einen
großen Satz nach vorn. Ging es vorher allein
© Teera Pittayanurak, 123RF

darum, aus Codezeilen Musik zu machen,


gelingt nun auch die Kommunikation über
Netzwerke und MIDI-Leitungen ­sowie das
Verarbeiten externer Audiosignale.

72 www.raspberry-pi-geek.de 05-06/2019
Sonic Pi (Teil 4) Know-how

Midiman Midisport 2x2


out MIDI in

out
Alesis Photon 25
USB USB
MIDI
USB
Audio in
aktiver USB-Hub Raspberry Pi 3B+
in Microkorg
out
out
Behringer UMC22

Audio

1 So sieht das für die vorgestellten Tests


Sonic Pi trat ursprünglich als Program- richt repräsentiert etwa das Drücken verwendete Setup aus.
miersprache zum Live-Coding an, mit oder Loslassen einer Keyboard-Taste und
der sich aus Codezeilen Soundeffekte, steuert musikalische Ereignisse.
Beats und ganze DJ-Sets bauen ließen. Eine Controller-Nachricht gibt Aus-
Mit der Version 3.0 kamen einige Fähig- kunft über den Zustand von Drehreglern
keiten hinzu, die den Anwendungsbe- und ähnlichen Kontrollelementen, so-
reich von Sonic Pi erheblich erweitern. dass sich kontinuierliche musikalische
Dazu gehören das Senden und Empfan- Parameter wie Frequenzen oder Laut-
gen von MIDI- und Open-Sound-Control- stärken steuern lassen.
Nachrichten, das Verarbeiten externer
Audiosignale und nicht zuletzt das Notennachrichten
Resampling der erzeugten Klänge.
Um alle Beispiele aus diesem Artikel Der Code aus Listing 1 zeigt, wie Sonic Pi
nachzuvollziehen, benötigen Sie neben Notennachrichten von einem Keyboard
dem Raspberry Pi noch einige externe empfängt, um damit einen Synth zu
Hardware: ein MIDI-Interface, einen spielen. In unserem Setup verbindet ein Listing 1
­MIDI-fähigen Klangerzeuger  sowie MIDI-Kabel das Keyboard mit dem Ein- 01 use_real_time
ein Audio-Interface mit Eingang. Abbil- gang des MIDI-Interfaces, das wiederum 02 u
se_synth :piano
1
dung  zeigt den verwendeten Aufbau per USB am Raspberry Pi hängt. Verbun- 03 
und die für diesen Teil des Workshops dene MIDI-Geräte erkennt Sonic Pi auto- 04 l
ive_loop :midi_in do
eingesetzten Geräte. matisch und zeigt sie unter dem Menü- 05  note, vel = sync "/midi/
punkt Preferences | IO an. midisport_2x4_midi_1/*/*/
note_on"
MIDI Entscheidend für die Verarbeitung
der eingehenden Notennachrichten ist 06  play note if vel != 0
Das Akronym MIDI steht für Musical Zeile 5. Die Funktion sync – Sie kennen 07 end
­Instrument Digital Interface, einen Stan- sie bereits aus dem dritten Teil dieser
dard zum Austauschen musikalischer ­Serie  – hält den jeweiligen Thread an
Steuerinformationen zwischen Klang­ und wartet auf den Empfang einer Nach- Listing 2
erzeugern und Controllern, zum Beispiel richt. Im konkreten Fall handelt es sich
live_loop :ctl_monitor do
Synthesizern, Sequenzern, Keyboards dabei um eine Notennachricht von einem
ctl, val = sync ".../*/*/
und Fader-Boxen. MIDI-Port, den der Befehl mit dem String
control_change"
Einen wesentlichen Bestandteil der "/midi/midisport..." spezifiziert. An-
puts "#{ctl}, #{val}"
­MIDI-Kommunikation bilden Noten- und geschlossene MIDI-Geräte bietet Sonic Pi
end
Controller-Nachrichten: Eine Notennach- hier per Autovervollständigung an.

05-06/2019 www.raspberry-pi-geek.de 73
Know-how Sonic Pi (Teil 4)

Das erste Sternchen im String steht für zwischen 0 und 127 zurück. Der erste
die Nummer des Geräts (falls Sie mehrere Wert repräsentiert die Note, der zweite
gleichartige Controller verwenden), das die Anschlagsstärke (englisch: velocity).
zweite für den MIDI-Kanal, von denen 16 Bei den Noten steht eine ganzzahlige
zur Verfügung stehen. Da wir uns in allen Differenz für einen Halbtonschritt. Mit
Beispielen mit einem Gerät und einem note, vel = ... entpacken Sie das
Kanal begnügen, genügen hier die als ­Array und speichern die Werte in sepa­
Wildcard fungierenden Sternchen. raten Variablen (Zeile 5).
Beim Empfang einer Notennachricht Zeile 6 übergibt anschließend den
gibt sync ein Array mit zwei Ganzzahlen empfangenen Notenwert an die Funk­
tion play, um die Note zu spielen. Die
Bedingung if vel != 0 ist notwendig,
Den Audio-Server konfigurieren weil das Loslassen der Keyboard-Taste
eine Notennachricht mit der Anschlags-
Raspbian enthält den Audio-Server Jack in 256 Ports. Durch ‑t2000 wartet Jackd
stärke 0 erzeugt. Ohne diese Abfrage
der Variante Jack2. Das Programm lässt 2 Sekunden statt nur eine halbe Sekunde
würden Sie auch beim Zurückschnellen
sich mit dem grafischen Tool Qjackctl ein- auf Rückmeldungen von Anwendungen
der Taste einen Ton hören.
stellen und starten. Mehr Kontrolle über via Alsa. Der Parameter ‑dalsa wählt
Jack bekommen Sie allerdings, indem Sie noch einmal ausdrücklich das Alsa-­
Der Befehl use_real_time in der Zei-
jackd in einem Terminal aufrufen und Backend aus, anschließend fordert die le 1 sorgt dafür, dass Sonic Pi mit einer
erst danach den Startknopf in Qjackctl ­Option ‑dhw:CODEC den Zugriff auf das möglichst niedrigen Audiolatenz arbei-
drücken. Qjackctl erkennt dann automa- USB-Gerät. Jackd interpretiert die erste tet – andernfalls könnte man eine deut­
tisch, dass der Server bereits läuft, und Angabe via ‑d also als Angabe des Back­ liche Verzögerung zwischen dem Tasten-
zeigt für den laufenden Jack die Status- end-­­Drivers, erst die zweite steht dann für druck und dem Erklingen der Note
meldungen und Verbindungsports an. ­„device“ und wählt das Gerät aus. wahrnehmen. Fügen Sie diesen Befehl
Die Kommandozeilenoptionen von Jack Die danach folgenden Optionen ‑r, ‑p also immer dann ein, wenn es ganz be-
fallen reichlich komplex aus. Dabei sorgt und ‑n bestimmen die Leistungskriterien, sonders auf eine verzögerungsfreie Aus-
die Tatsache, dass einige der Optionen für die Jack von Alsa erwartet: die Sampling- führung ankommt.
verschiedene Audiotreiber unterschied- Rate sowie die Größe und Anzahl der Das Erzielen einer niedrigen Latenz
liche Bedeutung haben, für zusätzliche ­Puffer. Kleinere Werte ermöglichen eine setzt zudem einen vorherigen manuel-
Verwirrung. Letztlich zählt aber unter Linux niedrigere Verzögerung, größere gewähr- len Start des Audio-Servers Jack voraus
nur der Umgang mit dem Alsa-Backend. leisten mehr Stabilität – je nach Anwen- (siehe Kasten Den Audio-Server konfi­
Als ersten Schritt der Einrichtung werfen dung müssen Sie hier etwas experimen­ gurieren). Wir haben für Jack eine Puffer-
Sie einen Blick in die aktuell von Alsa er- tieren. Die Werte im Beispiel funktionie­ren größe von 512 Byte gewählt, was der
zeugte Liste der Audioschnittstellen. Dazu auf dem RasPi 3 mit einem einfachen ­internen Klangerzeugung von Sonic Pi
verwenden Sie folgendes Kommando: USB-Interface der unteren Mittelklasse entspricht.
$ cat /proc/asound/cards ­solide. Die resultierende Verzögerung von
Alsa nummeriert die verfügbaren Sound- etwa 10 Millisekunden können nur Musi-
karten, allerdings nicht immer in zuverläs- ker mit einem geschulten Gehör noch
Listing 3
siger Reihenfolge. Hier bleiben Sie auf der wahrnehmen.
01 b
d_amp = 0.5
sicheren Seite, indem Sie das fragliche Die Option ‑Xseq schaltet den in Jack
02 h
h_amp = 0.5
­Gerät statt über die Nummer über seinen ­eingebauten MIDI-Server ein, der sich
03 
Alias (in der zweiten Spalte der Datei ­parallel zum Alsa-MIDI-Server nutzen lässt.
04 l
ive_loop :mixer do
cards) ansprechen. Für das im Artikel Mit dem Kommandozeilenprogramm A2j-
05  ctl, val = get ".../*/*/
­verwendete Setup mit dem Behringer midi könnten Sie darüber hinaus bei
control_change"
UMC22 lautet der entsprechende Name ­Bedarf noch virtuelle Ports anlegen, die
06  bd_amp = val/127.0 if ctl
seltsamerweise CODEC. Im Setup hat sich beide Systeme miteinander verbinden.
== 1
der folgende Befehl für den Start des Das kleine ‑s am Ende des Ausfrufs fügt
07  hh_amp = val/127.0 if ctl
­Audio-Servers bewährt und liefert ein sehr noch etwas mehr Toleranz gegen Ausset-
== 2
stabiles Laufzeitverhalten: zer im Audio-Stream des Backends hinzu.
08  sample :bd_haus, amp: bd_amp
$ jackd ‑p32 ‑t2000 ‑dalsa U Es gibt noch gut ein Dutzend weitere für 09  sleep 0.25
‑dhw:CODEC ‑r48000 ‑p512 ‑n2 U Jackd relevante Optionen. Im Alltagsein- 10  sample :drum_cymbal_closed,
‑Xseq ‑s satz zeigt sich allerdings immer wieder, amp: hh_amp
Mit der Option ‑p32 erzeugt Jackd nur dass die hier genannten die wichtigsten 11  sleep 0.25
maximal 32 statt der standardmäßig bis zu sind. (Hartmut Noack/​jlu) 12 end

74 www.raspberry-pi-geek.de 05-06/2019
Sonic Pi (Teil 4) Know-how

Controller-Nachrichten
Das im Test verwendete Keyboard (Sie
2
sehen es in Abbildung  ) verfügt über
12 Drehregler. Auch die von diesen er-
zeugten Controller-Nachrichten können
Sie per sync empfangen und im Proto-
kollfenster ausgeben, wie Listing 2 zeigt.
Der im Argument übergebene String
­endet auf control_change. Als Rückgabe
erhalten Sie wieder ein Array mit zwei
Ganzzahlen. Die erste nennt die Nummer
des jeweiligen Reglers, die zweite dessen
Wert, der zwischen 0 und 127 liegt.
In vielen Situationen ist es besser,
­Controller-Nachrichten mit der Funktion
get abzufragen. Anders als sync wartet
get nicht auf ein Ereignis, sondern liefert
die jeweils zuletzt empfangene Nach-
richt. Listing 3 zeigt ein entsprechendes
Anwendungsbeispiel: Der erste Drehreg-
ler steuert die Lautstärke der Bassdrum
(Zeile 6), der zweite die Lautstärke der 2 Das im Beispielaufbau verwendete Keyboard stellt 12 Drehregler bereit.
Hi-Hat (Zeile 7).
Die in Listing 3 gezeigte Lösung funk­
tioniert zwar zuverlässig, erfordert aber Für die Aktualisierung des Hashes gibt
viel Tipparbeit. Listing 4 demonstriert es einen eigenen Live-Loop. Dort wartet
­einen alternativen Weg: Die erste Zeile wie gehabt sync auf eine Controller-
legt einen leeren Hash namens vals an. Nachricht (Zeile 4). Die Zuweisung macht
Hashes speichern Schlüssel-Wert-Paare, sich die Tatsache zunutze, dass die Aus-
wobei die Schlüssel hier die Controller- wertung von Ausdrücken von links nach
Nummer repräsentieren. Die 64 steht für rechts abläuft: Zunächst speichert ctl
die Voreinstellung: Ist unter einem gege- die Controller-Nummer, dann schreibt
benen Schlüssel nichts gespeichert, lie- vals[ctl] den entsprechenden Wert in
fert der Hash diesen Wert. den Hash. In den Zeilen 9 und 11 liefern
vals[1] und vals[2] dann die jeweils
gespeicherten Werte.
Listing 4
01 
vals = Hash.new(64) Notennachrichten senden
02 
03 
live_loop :val_updater do Typische externe Klangerzeuger mit­
04  ctl, vals[ctl] = sync 3
­MIDI-Eingang, wie den in Abbildung  ,
".../*/*/control_change" steuern Sie mit der Funktion midi_note_
05  puts vals on an. Das erste Argument bezeichnet
06 end die Note, das zweite optional die An-
07  schlagsstärke. Lassen Sie das zweite
08 
live_loop :beat do
09  sample :bd_haus, amp:
vals[1]/127.0 Listing 5
10  sleep 0.25
midi_note_on 42
11  sample :drum_cymbal_closed,
sleep 3
amp: vals[2]/127.0
12  sleep 0.25 midi_note_off 42
13 end end

05-06/2019 www.raspberry-pi-geek.de 75
Know-how Sonic Pi (Teil 4)

Open Sound Control


Open Sound Control oder kurz OSC
überwindet einige Beschränkungen von
MIDI, wie etwa dessen Begrenzung der
Auflösung für Controller-Werte auf 7 Bit
und damit 128 Abstufungen. Unter OSC
stehen für Ganz- und Gleitkommazahlen
jeweils 32 Bit und damit quasi beliebig
feine Auflösungen zur Verfügung.
Zudem lassen sich per OSC auch Zei-
chenketten und – mittels sogenannter
Blob-Nachrichten – sogar Audio-, Bild-
und Videodaten verschicken. OSC ist
plattformübergreifend weit verbreitet, es
gibt OSC-Schnittstellen für alle gängigen
Programmiersprachen und die meisten
Audioanwendungen.
OSC eignet sich gleichermaßen gut
für das Verschicken von Nachrichten
­zwischen Anwendungen auf demselben
3 Auch externe Klangerzeuger wie dieser Korg Microkorg lassen sich in Sonic Pi nutzen. Rechner, im lokalen Netzwerk und sogar
über das Internet. Den einfachsten Fall,
eine Sonic-Pi-interne Verbindung, zeigt
­ rgument weg, setzt das die Anschlag­
A Listing 7. Die erste Zeile legt mit der An-
stärke auf den maximalen Wert 127. weisung use_osc die IP-Adresse sowie
Zwischen Sonic-Pi-internen Klang­ den verwendeten Port fest. Statt der
Listing 6 ereignissen und MIDI-Ereignissen gibt ­Angabe "127.0.0.1" könnten Sie auch
es einen fundamentalen Unterschied: "localhost" schreiben. Sonic Pi lauscht
midi_note_on 42,
Bei einem play-Befehl unter Sonic Pi ist per Voreinstellung auf Port 4559.
port: "midisport_2x4_midi_1",
von vornherein klar, wie lang die Note Der Live-Loop send (ab Zeile 3) erzeugt
channel: 1
klingen soll: play 42, release: 3 zwei Zufallszahlen und verschickt sie per
sleep 2 ­dauert drei Schläge.Anders bei MIDI, OSC. Aus der Perspektive von Sonic Pi
midi_note_off 42, wo es sich beim Beginn und dem Ende besteht eine entsprechende OSC-Nach-
port: "midisport_2x4_midi_1", einer Note um separate Ereignisse han- richt aus zwei Elementen: einer URL-­
channel: 1 delt: Führen Sie einen Befehl wie midi_ artigen Zeichenkette mit der Adresse, die
note_on 42 aus, ertönt die Note so lan- Sie im Prinzip frei wählen können, und
ge, bis Sie ­explizit ein midi_note_off 42 einem Array, das den Nachrichteninhalt
Listing 7 folgen ­lassen (Listing 5). Es kommt daher repräsentiert. Entsprechend fungiert als
häufig vor, dass Noten „hängen“, also erstes Argument von osc die Adresse,
01 
use_osc "127.0.0.1", 4559
nicht aufhören zu spielen. In diesen Fäl- nachfolgende Argumente beliebiger An-
02 
len hilft der Befehl midi_all_notes_off zahl wandern in das Array.
03 
live_loop :send do
aus der Klemme. Die Funktionen sync und get kommen
04  i = rand_i 1..100 Der Code aus Listing 5 schickt die auch mit OSC zurecht, wie Zeile 11 de-
05  f = rand 1..100 Nachricht auf allen Kanälen an alle an­ monstriert. Der Empfang und das Ent­
06  osc "/msg/path", i, f geschlossenen MIDI-Geräte. Mittels der packen verlaufen exakt wie bei MIDI-
07  sleep 1 Optionen port und channel können Sie Nachrichten, und auch hier können Sie
08 end das aber einschränken (Listing 6). Die Wildcards einsetzen. Das bietet die inter-
09  ­Bezeichnungen der verfügbaren Ports essante Möglichkeit, mit Parameterhier-
10 
live_loop :receive do
erfahren Sie unter Preferences | IO. Statt archien zu arbeiten. Wenn etwa /orgel/
die Optionen bei jedem einzelnen Aufruf vol, /bassdrum/vol und so weiter die
11  msg = sync "/osc/msg/path"
von midi_note_on anzugeben, können Lautstärken einzelner Instrumente reprä-
12  puts "#{msg} empfangen!"
Sie diese auch einmalig an use_midi_de‑ sentieren, dann adressiert /*/vol sämtli-
13 end faults übergeben. che Lautstärken.

76 www.raspberry-pi-geek.de 05-06/2019
Sonic Pi (Teil 4) Know-how

OSC-Nachrichten senden Listing 9 zeigt den korrespondierenden


Listing 8
Processing-Code. Damit der auch läuft,
In der Ausgabe 09-10/​2018 haben wir müssen Sie vorab die oscP5-Bibliothek 01 u
se_osc "127.0.0.1", 12000
die auf G ­ rafik und Animation speziali- installieren. Zeile 9 legt fest, dass Proces- 02 
sierte P ­ rogrammiersprache Processing sing auf Port 12000 lauscht. Die Zeilen 03 l
ive_loop :send do
vorgestellt . Die Verknüpfung von 16 bis 19 bilden den Kern des Codes: 04  note = rand_i 30..60
­Sonic Pi und Processing per Open Sound Processing ruft die Funktion oscEvent()
05  play note
Control ermöglicht es, komplexe audio- immer dann auf, wenn eine OSC-Nach-
06  c = 255/30*(note‑30)
visuelle Kompositionen zu entwickeln, richt eintrifft.
etwa zur grafischen Darstellung von Zunächst prüft checkAddrPattern(), 07  osc "/color", c
­musikalischen Strukturen und Klang­ ob die Adresse dem Muster "/color" 08  sleep 1
parametern in Echtzeit. Auf diesem Weg entspricht (Zeile 17). Ist das der Fall, dann 09 end
gelingt auch die dynamische Verknüp- liest msg.get(0) das erste Element der
fung von Klängen mit Filmsequenzen Nachricht aus, interpretiert es mit int­
ohne Weiteres. Value() als ganze Zahl und speichert
Listing 8 und Listing 9 zeigen ein ein­ diese in der globalen Variablen c. Die
faches Beispiel, bei dem Tonhöhen die wiederum steuert in Zeile 13 den Grau-
Helligkeit der Bildfäche einer lokal aus- wert des Programmhintergrunds. Der
geführten Processing-Anwendung steu- ­erscheint im Ergebnis bei hohen Tönen
ern. Listing 8 spielt zufallsgenerierte hell und bei tiefen dunkel.
­Noten. Dabei skaliert Zeile 6 die Noten- Der Code aus den beiden Listings funk-
werte auf den Bereich von 0 bis 255, Zei- tioniert ebenso gut, wenn Sonic Pi und
le 7 verschickt sie mit dem Adress-String Processing auf verschiedenen Rechnern
"/color" auf Port 12000. im lokalen Netzwerk laufen. Sie müssen
Know-how Sonic Pi (Teil 4)

dann lediglich die IP-Adresse des emp- nahme ablegt. Die Aufnahme selbst erle-
Listing 9
fangenden Rechners ermitteln und sie in digt der Effekt record, die Option buffer
01 
import oscP5.*; die erste Zeile von Listing 8 eintragen. verweist auf b (dritte Zeile). Im zum Ef-
02  Falls Sonic Pi als Empfänger von OSC- fekt gehörigen Block spielt play eine vier
03 
OscP5 oscP5; Nachrichten aus dem lokalen Netzwerk Schläge lange Note (vierte Zeile).
04 
int c = 0; fungieren soll, setzen Sie unter Preferen- Der Speicherort der auf diese Weise
05  ces | IO das Häkchen bei Empfange ent- aufgenommenen Dateien verbirgt sich
06 
void setup() { fernte OSC-Nachrichten. Dort können Sie tief im Verzeichnisbaum. Sie finden die
07  size(400, 400); übrigens auch die IP-Adresse ablesen. Datei mit einem vier Sekunden langen
08  frameRate(25); Sinusklang in diesem Fall unter /home/
09  oscP5 = new OscP5(this,
Externe Audiosignale pi/.sonic‑pi/store/default/cached_
12000); samples/rec.wav. Die dort gespeicher-
10 } Damit Sie am Audio-Interface einge­ ten Klänge lassen sich wie üblich per
11  hende Signale in Sonic Pi hören können, ­Pfadangabe auch abspielen.
12 
void draw() { müssen Sie im Terminal mit dem Aufruf
13  background(c); qjackctl die grafische Oberfläche des Sample-Bibliothek
14 } Audio-Servers Jack öffnen und dort im
15  Feld Verbindungen den Eingang system/​ Das Listing 13 zeigt, wie Sie mittels der
16 v
oid oscEvent(OscMessage msg) capture mit dem Ausgang SuperCollider/​ eben demonstrierten Aufnahmefunktion
{
4
in verknüpfen  . automatisiert komplette Klangbibliothe-
17  if (msg.checkAddrPattern("/ Mit der Funktion live_audio können ken erstellen. Die erste Zeile übergibt
color")) { Sie dann ein kontinuierliches externes nacheinander die ganzen Zahlen von 36
18  c = msg.get(0).intValue(); ­Signal einbauen und dafür beispielswei- bis 60 unter dem Namen note an den fol-
19  } se einen Effekt festlegen. In Listing 10 genden Block.
20 } versieht Sonic Pi das eingehende Signal Dort baut Zeile 2 aus dem Wert von
mit einem Hall. note ein Symbol, das später als Datei­
Sehr viel interessanter erscheint die name fungiert. Hat note den Wert 36,
Möglichkeit, den Audioeingang nicht dann lautet der entsprechende Datei­
dauerhaft zu öffnen, sondern nur für ei- name s beispielsweise :sin36. Die Zei-
nen definierten Zeitraum. Das gelingt len 4 bis 7 erledigen wie gehabt die Auf-
mittels des Synth :audio_in. Statt wie nahme. Im Ergebnis liegen nach dem
andere Synths ein Signal zu generieren, Programmlauf im Verzeichnis cached_
liefert :audio_in das externe Signal. samples/ 24 Audiodateien mit einer
Das Steuern von Dauer und Laut­ Dauer von jeweils einer Sekunde, die die
stärkeverlauf übernehmen die üblichen Noten von C1 bis C3 enthalten.
Synth-Optionen wie attack, sustain
und release. Listing 11 legt auf diese Wermutstropfen
Listing 10 Weise eine Lautstärkemodulation auf das
Signal – so könnten Sie Dubstep-artige Die Suche nach den passenden Jack-­
with_fx :reverb do
Wobble-Bässe erzeugen. Optionen für das vorgestellte Setup er-
live_audio :rein
wies sich im Test als durchaus zermür-
end
Resampling bende Angelegenheit. Davor war der
­Audio-Server häufig unter nicht reprodu-
Schon in sehr frühen Versionen konnte zierbaren Bedingungen abgeschmiert,
Listing 11 Sonic Pi mittels des Record-Knopfes teilweise erst nach mehreren Stunden
use_synth :sound_in oben links Dateien im WAV-Format auf- Betrieb. Insofern können wir den Einsatz
nehmen. Seit Version 3.0 funktioniert das unter Live-Bedingungen aktuell nur be-
live_loop :hacker do auch per Codebefehl. In der ersten Zeile dingt empfehlen, ausgiebige Tests sind
play 0, von Listing 12 legt die Funktion buffer in jedem Fall notwendig.
attack: 0.1, einen Audiopuffer mit einer Dauer von Bei Sonic Pi handelt es sich zwar um
sustain: 0, vier Schlägen an und speichert unter quelloffene Software, aber die Entwickler
release: 0.1 dem Namen b eine Referenz darauf. behandeln die Linux-Version zugunsten
sleep 0.2 Das Argument :rec legt den Datei­ von Windows und Mac OS stiefmütter-
end namen fest, unter dem Sonic Pi die Auf- lich. Die hier vorgestellten Sprachmittel

78 www.raspberry-pi-geek.de 05-06/2019
Sonic Pi (Teil 4) Know-how

4 Im grafischen Tool Qjackctl verbinden Sie die Eingänge des Audio-Interfaces (capture) mit SuperCollider.

gibt es erst seit Version 3.0. Das für ARM- Wenn Sie Zugriff auf einen Röhrenamp
Weitere Infos und
Architekturen vorliegende und hier ver- oder einen halligen Kellerraum haben, interessante Links
wendete Sonic Pi 3.0.1 ist bereits nicht könnten Sie diese verwenden, um anstel-
mehr ganz aktuell; für Linux auf dem PC le von Simulationen sehr reale Effekte auf www.​­raspi-geek.de/qr/42345
gibt es lediglich die Version 2.9. ganze Verzeichnisstrukturen von Klängen
zu rechnen. In einem diesbezüglichen
Fazit Test gelang es dem Autor, mit gerade
­einmal 20 Zeilen Code 6000 Samples in
Sonic Pi überzeugt mit klugen Abstrak­ einem Rutsch durch reale Hardware zu
tionen, etwa bei der gleichartigen Be- schicken und zu resamplen. (jlu) n
handlung von Cues sowie MIDI- und
OSC-Nachrichten per sync und get. Es
mag zunächst seltsam erscheinen, dass Listing 12 Die Autoren
externe Audiosignale über einen Synth b = buffer :rec, 4 Der Medienkünstler Pit Noack ist Sonic-
hereinkommen und ein Effekt die Auf- Pi-Nutzer der ersten Stunde. In Hannover
nahme übernimmt. Tatsächlich ist auch gibt er im eigenen Atelier Programmier-
with_fx :record, buffer: b do
das konsequent gedacht – statt neue kurse zu Sonic Pi, Python und Processing
play 50, release: 4
Sprachmittel einzuführen, haben die Ent- für Laien und Profis.
wickler bestehende Strukturen erweitert. end
Hartmut Noack arbeitet in Celle und
Die in diesem Artikel vorgestellten Hannover als Dozent, Autor und Musiker.
Techniken machen im Verbund Anwen- Von seinem Webserver unter http://​­lapoc.​
dungen möglich, die auch Profis faszi­ Listing 13 ­de können Sie einige CC-lizenzierte Ergeb-
nieren dürften. Denkbar wären etwa 01 (36..60).each do |note| nisse seiner Arbeit mit freier Musiksoft-
Multimedia-Installationen, bei denen per 02  s = ("sin" + note.to_s). ware herunterladen.
OSC kommunizierende Raspberry-Pi- to_sym Ungeachtet aller Gemeinsamkeiten hin-
Rechner dynamische Bild- und Klangwel- 03  b = buffer s, 1 sichtlich des Namens sowie der Berufe,
ten generieren. Die in Listing 12 vorge- 04  with_fx :record, buffer: b Hobbys und Arbeitsorte sind Pit Noack
stellte Methode zur automatisierten Pro- do und Hartmut Noack weder verwandt noch
duktion von Klangbibliotheken lässt sich 05  play note verschwägert und haben sich erst kürzlich
ausbauen, um beispielsweise Klänge von 06  sleep 1 über die Arbeit an Artikeln für dieses
per MIDI gesteuerten externen Synthesi- 07  end ­Magazin kennengelernt.
zern systematisch aufzuzeichnen. 08 end

05-06/2019 www.raspberry-pi-geek.de 79
Know-how I2C-Workshop (Teil 25)

I2C-Workshop (Teil 25): A/​D-Wandler MCP3424

© Andrey Guryanov, 123RF


Extrem genau
Mit einem A/​D -Wandler In dieser Ausgabe steht der Analog-­ dem Modul erkennen, handelt es sich
Digital-Wandler MCP3424 im Blick, des- um zwei Entstörkondensatoren, zwei
­messen Sie bei Bedarf sen vier Eingangskanäle mit 18 Bit eine Pullup-Widerstände an den I2C-Steuer­
extrem hohe Auflösung aufweisen. Das leitungen sowie zwei Pulldown-Wider-
­Spannungen. Der MCP3424 macht ihn zu einem Baustein für Profis, stände an Adresse 0 und Adresse 1. Das
der sich aber genauso gut auch für den stellt für die allermeisten Fälle eine sinn-
macht dabei konstruktions- Hobbybereich eignet. Für den MCP3424 volle Beschaltung dar.
gibt es sogar ein Kernel-Modul, mit dem
bedingt eine gute Figur. Sie ohne viel Aufwand die Messwerte Adressieren
auslesen.
Martin Mohr Der MCP3424 kommt mit einem Der MCP3424 arbeitet mit einer Betriebs-
14-Pin-SOIC- oder TSSOP-Gehäuse. Mit spannung zwischen 2,7 bis 5,5 Volt. Die
etwas Geschick lassen sich diese Baufor- Stromaufnahme liegt im Mikroampere-
men manuell löten. Dazu besteht aber Bereich und fällt je nach Betriebsmodus
eigentlich keine Notwendigkeit, da es unterschiedlich aus. Genaue Informatio-
schon für um die 4 Euro ein Modul  mit nen dazu finden Sie im Datenblatt  des
1
dem Baustein im Handel gibt  . Wenn Halbleiters. Der Baustein belegt am I2C-
Sie etwas mehr über die kryptischen Be- Bus acht unterschiedliche Adressen.
README zeichnungen von Gehäusen erfahren Aufmerksame Leser merken an dieser
wollen, werfen Sie doch einen Blick in Stelle auf: Eigentlich lassen sich mit zwei
Der MCP3424 verfügt über vier Eingänge
den Kasten Gehäuseformen. Eingängen keine acht Adressen darstel-
und löst beim Messen mit 18 Bit extrem
2
Betrachten Sie das Pinout  des len. Ein Blick in die Tabelle Adressen klärt
­genau auf. Aufgrund seiner Konstruktion MCP3424, dann sehen Sie, dass quasi das Rätsel auf: Der Hersteller erlaubt an
macht er es Bastlern in einigen Fällen alle Pins des ICs auf die Anschlüsse des den Eingängen nicht nur die logischen
Moduls herausgeführt sind. Bei den zu- Pegel HIGH und LOW, sondern zusätzlich
­besonders einfach.
sätzlichen Bauelementen, die Sie auf den Zustand unbeschaltet (OPEN) – so ge-

80 www.raspberry-pi-geek.de 05-06/2019
I2C-Workshop (Teil 25) Know-how

1 Das Modul mit aufgelötetem


MCP3424 eignet sich dazu, es direkt
auf einem Breadboard zu verbauen.

Dateien zum Artikel


herunterladen unter
www.​­raspi-geek.de/dl/42729

lingt es, acht Adressen abzubilden. Falls fen Sie die Adresse ändern. Vergessen Sie
Gehäuseformen
Sie den unbeschalteten Zustand verwen- nicht, den Kurzschluss rückgängig zu
den möchten, müssen Sie dazu aller- machen, bevor Sie das Modul wieder mit In diesem Artikel ist von unterschiedlichen
dings die oben erwähnten Pulldown-­ Spannung versorgen. Gehäuseformen die Rede. Dual In Line
Widerstände vom Modul entfernen. (DIL) im klassischen Rastermaß von
2,54 Millimeter ist vermutlich in der
Das Modul wertet die Eingänge für Eingänge Hobby­gemeinde die bekannteste und
die Adressen nur beim Einschalten der
Betriebsspannung aus. Um die Adressen Bei den Eingängen des MCP3424 handelt ­verbreitetste Bauform für Halbleiterbau-
steine. Das Rastermaß bezeichnet den
zu ändern, müssen Sie den MCP3424 es sich um Differenzspannungseingänge,
­Abstand der Beinchen eines Bausteins.
also vom Strom trennen. Nun sind aller- was den Vorteil bietet, dass Sie damit an
Breadboards, wie sie bei vielen Projekten
dings auf dem Modul schon Kondensa- jeder beliebigen Stelle einer Schaltung
im ersten Anlauf zum Einsatz kommen,
toren verlötet. Sie puffern die Betriebs- die Spannung zwischen zwei Punkten
um testweise Schaltungen aufzubauen,
spannung länger, als Sie eventuell er- messen können. weisen exakt dieses Maß auf – es galt in
warten würden. Falls Sie schon einige Erfahrungen mit der Elektronik viele Jahre als Standard.
Der einzig sichere Weg, die Adresse A/​D-Wandlern gemacht haben, kommt
Immer kleinere Geräte machten ein neues
des Moduls zu ändern, sieht deshalb Ihnen das vermutlich ungewöhnlich vor. Rastermaß von 1,27 Millimetern erforder-
­folgendermaßen aus: Sie trennen das Nach kurzer Überlegung drängt sich lich. Diese neuere Größe heißt SO, was für
Modul von der Betriebsspannung und aber der Schluss auf, dass diese Art des Small Outline (kleiner Grundriss) steht.
schließen dann die Anschlüsse für die Messens viel flexibler ist. Benötigen Sie Solche Gehäuse fallen rund 30 bis 50 Pro-
Versorgungsspannung kurz, um die Kon- jedoch einen Wandler, der sich so wie die zent kleiner aus als diejenigen der Vor­
densatoren zu entladen. Dann erst dür- etwas altmodischeren Modelle verhält, gänger mit DIL. SO-Gehäuse eignen sich
nur dazu, sie auf die Platine aufzulöten –
man muss also keine Beinchen mehr
Adressen durch die Platine schieben, was noch ein-
mal Platz auf der Platine spart. Das Ver-
Adresse 0 Adresse 1 I2C-Adresse
kleinern der Geräte reduziert zudem die
LOW LOW 0x68h Herstellungskosten, da der Materialauf-
LOW OPEN 0x69h wand geringer ausfällt.
LOW HIGH 0x6Ah Bei der Gehäuseform Thin-shrink Small
OPEN LOW 0x6Bh Outline Package (TSSOP) beträgt das
OPEN OPEN 0x68h Rastermaß nur noch 0,65 Millimeter.
OPEN HIGH 0x6Fh Diese Bausteine eignen sich gerade noch
HIGH LOW 0x6Ch dazu, sie manuell aufzulöten. Dazu
HIGH OPEN 0x6Dh braucht man aber eine wirklich ruhige
HIGH HIGH 0x6Eh Hand und gute Augen.

05-06/2019 www.raspberry-pi-geek.de 81
Know-how I2C-Workshop (Teil 25)

be sollte so ausfallen wie in Listing 1 zu


sehen, der MCP3424 meldet sich unter
der I2C-Adresse 0x68h.

Kernel-Treiber
Der Einsatz eines Kernel-Treibers bietet
den Vorteil, dass Sie auf diese Weise aus
jeder Programmiersprache heraus Zu-
griff auf den Baustein erhalten. Es ist
­sogar möglich, die Messwerte direkt auf
der Kommandozeile abzufragen. Aktuel-
le Versionen von Raspbian bringen den
fraglichen Treiber bereits mit, Sie brau-
chen ihn nur noch zu aktivieren. Den
Quellcode des Treibers finden Sie bei
­Interesse auf Github .
Im ersten Schritt sollten Sie überprüfen,
ob das Kernel-Modul für den MCP3424
2 Das Pinout des MCP3424 führt alle Pins des IC auf die Beinchen des Moduls heraus. bereits geladen ist. Dazu verwenden Sie
das Kommando lsmod in einem Terminal.
Die Liste, die Sie vom System erhalten,
können Sie immer noch einen Anschluss Testaufbau fällt je nach Installation unterschiedlich
des Differenzeingangs auf ein festes Po- lang aus. Daher ist es sinnvoll, gezielt
tenzial legen. Als Testaufbau kommt die Konfiguration nach dem konkreten Modul zu filtern. Im
Der MCP3424 verwendet eine interne aus Teil 18  dieser Reihe zum Einsatz. konkreten Fall sieht das Kommando dazu
Referenzspannung von 2,048 Volt. Dieser Dort können Sie bei Bedarf nachlesen, wie folgt aus:
etwas unübliche Wert entspricht exakt wie Sie die I2C-Schnittstelle des Rasp­
seinem Messbereich und den möglichen berry Pi aktivieren und die passende $ lsmod | grep ‑i mcp34
Messwerten, die der Baustein liefert. Das Software installieren. Auf dem Schalt-
heißt im Klartext: Die Werte, die Sie aus 3
plan  erkennen Sie, wie Sie das Modul In der Regel sehen Sie als Ausgabe –
dem Baustein lesen, entsprechen genau anschließen. nichts. Um das Kernel-Modul zu aktivie-
der realen Spannung, Sie brauchen 4
Abbildung  zeigt den Testaufbau ren, schreiben Sie nun die I2C-Adresse
nichts umzurechnen. in ganzer Pracht. Achten Sie darauf, Po- und den Typ des A/​D-Wandlers in eine
Die I2C-Schnittstelle des MCP3424 un- tenziometer mit linearer Charakteristik spe­zielle Datei. Das funktioniert nur als
terstützt neben der Standardgeschwin- zu verwenden. Deren Widerstand hängt User root (Listing 2, erste Zeile). Ein einfa-
digkeit von 100 kHz den Fast-Modus mit linear vom Winkel des Schleifers ab, die ches Sudo hilft in diesem Fall nicht wei-
400 kHz und sogar den recht modernen Mittelstellung entspricht also der halben ter: Das Kommando hinter sudo würde
High-Speed-Modus mit 3,4 MHz. Benöti- Betriebsspannung. dann zwar mit administrativen Rechten
gen Sie weitere Informationen, werfen Sie Für einen ersten Test verwenden Sie ausgeführt, das Umleiten der Ausgabe
einen Blick ins Datenblatt des Chips . das Werkzeug I2cdetect. Dessen Ausga- aber wieder mit Benutzerrechten. Daher

Listing 1 Listing 2
$ i2cdetect ‑y 1  sudo su ‑
01 $
0 1 2 3 4 5 6 7 8 9 a b c d e f 02 # echo mcp3424 0x68 > ­
00: ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ /sys/bus/i2c/devices/i2c‑1/
10: ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ new_device
20: ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ 03 # exit
30: ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ 04 logout
40: ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ 05 $ lsmod | grep ‑i mcp34
50: ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ 06 c p3422 16384 0
60: ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ 68 ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ 07 i ndustrialio 73728 1
70: ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ mcp3422

82 www.raspberry-pi-geek.de 05-06/2019
I2C-Workshop (Teil 25) Know-how

wechseln Sie für die Aktion komplett in


Listing 3
das Konto des Administrators.
Nun aktivieren Sie das Kernel-Modul $ ls ‑l /sys/bus/i2c/devices/1‑0068/iio:device0
(Listing 2, Zeile 2). Dann überprüfen Sie total 0
als normaler Benutzer (Zeile 3) mit Ls- ‑r‑‑r‑‑r‑‑ 1 root root 4096 Feb 24 16:24 dev
mod noch einmal, ob das Modul geladen
‑rw‑r‑‑r‑‑ 1 root root 4096 Feb 24 16:24 in_voltage0_raw
ist (Zeile 5). Das Kernel-Modul erzeugt im
Dateisystem einige Dateien, in denen die ‑rw‑r‑‑r‑‑ 1 root root 4096 Feb 24 16:24 in_voltage0_scale
Messwerte stehen; Sie finden sie im Ver- ‑rw‑r‑‑r‑‑ 1 root root 4096 Feb 24 16:24 in_voltage1_raw
zeichnis /sys/bus/i2c/devices/1‑0068/ ‑rw‑r‑‑r‑‑ 1 root root 4096 Feb 24 16:24 in_voltage1_scale
iio:device0. Mit dem Kommando aus ‑rw‑r‑‑r‑‑ 1 root root 4096 Feb 24 16:24 in_voltage2_raw
Listing 3 sehen Sie sich die Namen der ‑rw‑r‑‑r‑‑ 1 root root 4096 Feb 24 16:24 in_voltage2_scale
einzelnen Dateien an, die weitgehend ‑rw‑r‑‑r‑‑ 1 root root 4096 Feb 24 16:24 in_voltage3_raw
selbsterklärend ausfallen. ‑rw‑r‑‑r‑‑ 1 root root 4096 Feb 24 16:24 in_voltage3_scale
Um zu sehen, wie der MCP3424 arbei- ‑rw‑r‑‑r‑‑ 1 root root 4096 Feb 24 16:24 in_voltage_sampling_frequency
tet, lesen Sie die Werte aus den Dateien,
‑r‑‑r‑‑r‑‑ 1 root root 4096 Feb 24 16:24 in_voltage_scale_available
deren Namen auf _raw enden. Das ge-
‑r‑‑r‑‑r‑‑ 1 root root 4096 Feb 24 16:24 name
lingt am einfachsten mit dem Komman-
drwxr‑xr‑x 2 root root 0 Feb 24 16:24 power
do watch. Der Befehl aus Listing 4 liest
‑r‑‑r‑‑r‑‑ 1 root root 4096 Feb 24 16:24 sampling_frequency_available
die Dateien mit den Messwerten jede
lrwxrwxrwx 1 root root 0 Feb 24 16:24 subsystem ‑>
halbe Sekunde aus und zeigt sie an.
../../../../../../../bus/iio
‑rw‑r‑‑r‑‑ 1 root root 4096 Feb 24 16:15 uevent
Messung
Nun ist der Zeitpunkt gekommen, ein-
fach etwas an den Potenziometern zu Differenz­eingang. Auf diese Weise lassen 1,5-Volt-Batterie an die Eingänge von
spielen. Dabei stellen Sie fest, dass sich sich sowohl positive wie negative Mess- ­Kanal 4. Der MCP3424 misst die Span-
die Kanäle 1 bis 3 so verhalten, wie Sie werte erzeugen. nung einwandfrei, positiv wie negativ.
es von anderen A/​D-Wandlern her ken- Es ist möglich, eine Spannung zu mes- Bei den Werten, die das System anzeigt,
nen: Hier liegen die Minus-Eingänge der sen, die keinen Bezug zur Masse des handelt es sich um die tatsächlich anlie-
Kanäle auf Masse. Der Kanal 4 dient als Wandlers hat. Schließen Sie einfach eine gende Spannung; auf ein Umrechnen

3 Der Schaltplan des


Testaufbaus zeigt Ihnen,
wie Sie die einzelnen
Komponenten richtig
­miteinander verdrahten.

05-06/2019 www.raspberry-pi-geek.de 83
Know-how I2C-Workshop (Teil 25)

4 Der komplette Messaufbau samt Potenziometern erfolgte der Einfachheit halber auf einem Breadboard.

wie bei den meisten anderen A/​D-Wand- zahl von Schaltungen einsetzen. Wäh-
Weitere Infos und
lern können Sie verzichten. Das funktio- rend der Tests trat kein einziges Mal so
interessante Links
niert, weil der Hersteller die interne Refe- etwas wie Kanalübersprechen auf;
www.​­raspi-geek.de/qr/42729 renzspannung des Wandlers genau auf ­weder ein thermisches Weglaufen der
seine Auflösung angepasst hat. Messwerte noch Messschwankungen
Die Eingänge haben einen Messbe- ließen sich feststellen.
reich von rund +2 Volt bis ‑2 Volt. Sie Alles in allem verhält sich der MCP3424
­dürfen mit den Potis allerdings eine exakt so, wie es sich der Bastler wünscht.
Spannung bis zu 3,3 Volt an die Eingänge Die Idee, die Referenzspannung so anzu-
des Wandlers legen. Das bedeutet, dass passen, dass man nichts mehr umzurech-
der Wandler beim letzten Winkelgrad des nen braucht, ist genial – und das alles bei
Listing 4 Potis immer den Maximalwert anzeigt – einem Preis von lediglich 4 Euro. (agr) n
$ watch ‑n 0.5 'cat /sys/bus/ das ist kein Fehler.
i2c/devices/1‑0068/iio:device0/
in_voltage*_raw' Fazit Der Autor
Martin Mohrs früh entwickelte Vorliebe
Every 0.5s: cat /sys/bus/i2c/ Der Autor gesteht, dass er früher der
für alles, was blinkt, wurde durch eine
devices/1‑0068/iio:device0/ Meinung war, es gäbe durchaus schon
Ausbildung zum Elektroniker noch ver-
in_v... raspberrypi: genug A/​D-Wandler auf der Welt – das
stärkt. Nach einem Informatikstudium
hat sich durch die nähere Bekanntschaft
­beschäftigte er sich überwiegend mit
1646 mit dem MCP3424 jedoch grundlegend
dem Entwickeln von Java-Applikationen.
1566 geändert. Um es kurz zu fassen: Der Mit dem Raspberry Pi erwachte die alte
1442 MCP3424 ist ein echt cooles Teil, und er Liebe zur Elektronik wieder.
‑627 lässt sich völlig problemlos für eine Viel-

84 www.raspberry-pi-geek.de 05-06/2019
Geek Bazar Anzeigen

Geek Bazar
Finden und gefunden werden...
Alles rund um den Raspberry Pi und die Maker-Szene fin- Folgende Rubriken bieten wir Ihnen:
den Sie im Geek Bazar. Das neue Nachschlagewerk listet Raspberry Pi Komplettkits
Produkte, Dienstleistungen und Unternehmen übersicht- Embedded (Arduino, Beaglebone, Cubieboard ...)
lich auf und hilft Ihnen bei all Ihren Projekten.
Zubehör (Kabel, Gehäuse, Peripherie, ...)
Geek Bazar erscheint in jeder Ausgabe von Rasp­berry Pi
Erweiterungen (Boards, elektronische Komponenten ...)
Geek und, stetig aktualisiert, im Internet unter www.geek-
bazar.de. Wir wollen Ihnen damit helfen, geeignetes Zube- 3D-Druck (Drucker, Filament ...)
hör, Hilfe und wichtige Tools zu finden – und das einfach, Entwickler (Entwicklerkits etc.)
schnell und topaktuell. Bücher

Möchten Sie Ihre Firma auch eintragen lassen, dann fordern Sie unter anzeigen@computec.de ein unverbindliches Angebot an.

3d Dinge 3D

Adolf-Hällmayr-Weg 24 3dDinge.de ist ein junges Unternehmen, das in Deutschland


D-85221 Dachau 3D-Drucker sowie zugehörige Services und Beratung anbietet.
+49 (0)179 9429701
http://​­www.​­3dDinge.​­de

Franzis Verlag GmbH E 3D D L


Richard-Reitzner-Allee 2 Ob Raspberry Pi, Arduino oder 3D-Druck – beim Franzis Verlag
85540 Haar b. München finden Maker zu jedem Thema das richtige Buch.
+49 (0) 89 - 25556 - 1000
http://​­www.​­Franzis.​­de

iGo3D GmbH 3D

Am Stadtmuseum 12 Führender deutscher Trusted Shop, zertifizierter 3D-Drucker-


26121 Oldenburg Online-Shop und Dienstleister für 3D-Drucker, 3D-Scanner,
+49 (0) 44157045640 Filamente, 3D-Druck-Zubehör und vieles mehr.
https://​­www.​­igo3d.​­com

OCZ Technology Group B

Hans-Bunte-Straße 16 a OCZ ZD-XL SQL Accelerator-PCIe SSD – integrierte Flash-Hardware


79108 Freiburg & Software-Lösung für SQL-Server, OCZ Intrepid 3000 SATA 3.0
0761-20897942 Enterprise SSD, OCZ VXL VMware Acceleration Software
http://​­ocz.​­com

Raspberry Pi / RasPi-Komplettkits  oards (Erweiterungen,


B B D Developer (Entwicklerkits etc.)
elektronische Komponenten ...)

86
Anzeigen Geek Bazar

Open Source Automation Development Lab (OSADL) eG


Im Neuenheimer Feld 583 In der QA-Farm des OSADL (osadl.org/​QA) sind Daten und
69120 Heidelberg Bau­anleitungen des Echtzeit-Linux-Kernels für Raspberry Pi,
06221 98504-0 Panda- und Beagle-Boards verfügbar.
https://​­www.​­osadl.​­org

pi3g e.K. Z B D
Zschochersche Allee 1 pi3g macht das Leben einfacher. Wir liefern Ihnen gut aufeinander
04207 Leipzig abgestimmte Raspberry-Pi-Lösungen und dazu den passenden
089-878-069-850 ­Service. Gute, freundliche Beratung, um Ihnen die optimale Lösung
http://​pi3g.​­com anbieten zu können. Ihre Zufriedenheit steht in unserem Fokus.

Qube Solutions UG (haftungsbeschränkt) Z B D


Arbachtalstraße 6 Mit dem Evaluation-Board PiXtend arbeiten Sie dank der nach SPS-
72800 Eningen u. A. Norm 61131-2 ausgelegten Ein- und Ausgänge wie mit einer indus-
+49 (0)7121 8806920 triellen speicherprogrammierbaren Steuerung. Daneben finden Sie
http://​­www.​­pixtend.​­de bei uns diverse Raspberry-Pi-Modelle, Sensoren und Zubehörteile.

Reichelt Elektronik E Z B 3D D L
Elektronikring 1 Raspberry All-In-Bundle, Arduino Starter Kit, TEK-BERRY Nerd,
26452 Sande Steckboard 4K7V, 3D-Printer K8200 Entwicklungsset,
+49 (0)4422 955-333 Rasp-Cam-Bundle.
http://​­www.​­reichelt.​­de

Terrashop GmbH Z L
Lise-Meitner-Str. 8 Bei Terrashop finden Sie reduzierte Fachbücher mit Rabatten bis
53332 Bornheim zu 90 Prozent aus dem Bereich IT, Elektronik und mehr sowie
­Zubehör zu günstigen Preisen.
http://​­www.​­terrashop.​­de

Vesalia Computer E Z B L
Magdalenenweg 4 Der Onlineshop für Raspberry-Pi-Zubehör. Kabel, Gehäuse und
46483 Wesel vieles mehr.
0281/​16443-0
http://​­www.​­vesalia.​­de

ZEDOnet GmbH E

Meinrad-Spieß-Platz 2 High-End-Druckertreiber mit Farbmanagement. Komfortables


87660 Irsee ­Druckermonitoring, Füllstände lokal oder über das Netzwerk auf
+49 8341 908 3 905 anderen TurboPrint-Clients verfügbar.
http://​­www.​­turboprint.​­de

E Embedded (Arduino, Beaglebone, ...) Z Z


 ubehör (Kabel, Gehäuse, 3D 3D-Druck (Drucker, Filament ...)
Peripherie, ...) L Literatur

87
Impressum Service

Ein Unternehmen der MARQUARD MEDIA GROUP AG


Verleger Jürg Marquard

Redaktion/Verlag Redaktionsanschrift: Verlagsanschrift:


Redaktion Raspberry Pi Geek Computec Media GmbH
Putzbrunner Str. 71 Dr. -Mack-Straße 83
81739 München 90762 Fürth
Telefon: (0911) 2872-110 Telefon: (0911) 2872-100
E-Mail: redaktion@raspberry-pi-geek.de
Web: www.raspberry-pi-geek.de
Geschäftsführer Hans Ippisch, Rainer Rosenbusch, Christian Müller
Chefredakteur, Jörg Luther (jlu, v. i. S. d. P.),
Brand/Editorial Director jluther@raspberry-pi-geek.de
Stellv. Chefredakteur Andreas Bohle (agr), abohle@raspberry-pi-geek.de
Redaktion Christoph Langner (cla), clangner@raspberry-pi-geek.de
Thomas Leichtenstern (tle), tleichtenstern@raspberry-pi-geek.de
Datenträger Thomas Leichtenstern (tle), cdredaktion@raspberry-pi-geek.de
Ständige Mitarbeiter Bernhard Bablok, Erik Bärwaldt, Frank Hofmann, Anzela Minosi,
Martin Mohr, Ferdinand Thommes, Uwe Vollbracht, Harald Zisler
Layout Lars Kromat
Bildnachweis: 123rf.com, Freeimages.com und andere
Titelgrafik Judith Erb (Raspberry-Pi-Logo: Raspberry Pi Foundation,
Witty Pi Mini: UUGear s.r.o.)
Sprachlektorat Britta Mümmler
Produktion Martin Closmann (Ltg.), martin.closmann@computec.de
Vertrieb, Abonnement Werner Spachmüller (Ltg.), werner.spachmueller@computec.de
Anzeigen Verantwortlich für den Anzeigenteil: Judith Gratias-Klamt
Es gilt die Anzeigenpreisliste vom 01.01.2019.
Mediaberatung D,A,CH Judith Gratias-Klamt, judith.gratias-klamt@computec.de
Tel.: (0911) 2872-252 • Fax: (0911) 2872 241
Mediaberatung USA/UK Brian Osborn, bosborn@linuxnewmedia.com
ISSN 2196-9159
Abonnement Die Abwicklung (Rechnungsstellung, Zahlungsabwicklung
und Versand) erfolgt über unser Partnerunternehmen:
DPV Deutscher Pressevertrieb GmbH
Leserservice Computec
20080 Hamburg, Deutschland
Abo-Bestellung http://shop.computec.de
Reklamationen Ansprechpartner für Reklamationen ist Ihr Computec-Team unter:
Deutschland – E-Mail: computec@dpv.de
Tel.: 0911-99399098, Fax: 01805-8618002*
(*14 Cent/Min. aus dem dt. Festnetz,
max. 42 Cent/Min. aus dem dt. Mobilfunk)
Österreich, Schweiz, weitere Länder – E-Mail: computec@dpv.de
Tel.: +49 911-99399098, Fax: +49 1805-8618002
Supportzeiten Montag 07:00 -20:00 Uhr, Dienstag - Freitag: 07:30 - 20:00 Uhr,
Samstag 09:00 - 14:00 Uhr
Pressevertrieb DPV Deutscher Pressevertrieb GmbH
Am Sandtorkai 74, 20457 Hamburg
http://www.dpv.de
Druck LSC Communications Europe, ul. Obr. Modlina 11, 30-733 Kraków, Polen
COMPUTEC MEDIA ist nicht verantwortlich für die inhaltliche Richtigkeit der Anzeigen und
übernimmt keinerlei Verantwortung für in Anzeigen dargestellte Produkte und Dienstleis­tungen.
Die Veröffentlichung von Anzeigen setzt nicht die Billigung der angebotenen Produkte und
Service-Leistungen durch COMPUTEC MEDIA voraus. Haben Sie Beschwerden zu einem unserer
Anzeigenkunden, seinen Produkten oder Dienstleistungen, bitten wir Sie, uns dies schriftlich mit-
zuteilen. Schreiben Sie unter Angabe des Magazins, in dem die Anzeige erschienen ist, inklusive
der Ausgabe und der Seitennummer an: CMS Media Services, Annett Heinze, Verlagsanschrift.
Raspberry Pi und das Raspberry-Pi-Logo sind eingetragene Warenzeichen der Raspberry Pi
Foun­dation und werden von uns mit deren freundlicher Genehmigung verwendet. Linux ist
ein eingetragenes Warenzeichen von Linus Torvalds und wird von uns mit seinen freundlichen
Genehmigung verwendet. »Unix« wird als Sammelbegriff für die Gruppe der Unix-ähnlichen Be-
triebssysteme verwendet, nicht als Bezeichnung für das Trademark »UNIX« der Open Group.
Eine Haftung für die Richtigkeit von Veröffentlichungen kann – trotz sorgfältiger Prüfung durch
die Redaktion – vom Verlag nicht übernommen werden. Mit der Einsendung von Manuskripten
oder Leserbriefen gibt der Verfasser seine Einwilligung zur Veröffent­lich­ung in einer Publikation
der COMPUTEC MEDIA. Für unverlangt eingesandte Manuskripte wird keine Haftung übernom-
men. Autoreninformationen: http://www.linux-user.de/Autorenhinweise. Die Redaktion behält
sich vor, Einsendungen zu kürzen und zu überarbeiten. Das exklusive Urheber- und Verwertungs-
recht für angenommene Manus­kripte liegt beim Verlag. Es darf kein Teil des Inhalts ohne schrift-
liche Genehmigung des Verlags in irgendeiner Form vervielfältigt oder verbreitet werden.

Deutschland:
4PLAYERS, AREAMOBILE, BUFFED, GAMESWORLD, GAMESZONE, GOLEM, LINUX-COMMUNITY,
LINUX-MAGAZIN, LINUXUSER, MAKING GAMES, N-ZONE, GAMES AKTUELL, PC GAMES, PC GAMES HARDWARE,
PC GAMES MMORE, PLAY 4, RASPBERRY PI GEEK, SFT, VIDEOGAMESZONE, WIDESCREEN
Marquard Media Polska:
CKM, COSMOPOLITAN, ESQUIRE, HARPER'S BAZAAR, JOY, KOZACZEK, PAPILOT, PLAYBOY, ZEBERKA
Marquard Media Hungary:
APA, ÉVA, GYEREKLÉLEK, INSTYLE, JOY, MEN`S HEALTH, PLAYBOY, RUNNER`S WORLD, SHAPE

89
Service Vorschau/​Autoren/​Inserenten

Das nächste Heft


Raspberry Pi Geek 07-08/​2018 erscheint am 6. Juni 2019

Kleine Displays
Viele Aufgaben erledigt der Raspberry Pi
zwar ohne direkte Kontrolle durch den
Anwender, doch in manchen Fällen ist
ein gelegentlicher Blick auf Messergeb­
nisse oder die Parameter des Systems
unumgänglich. Dann hilft ein kleines
Display. Wer hier aber beim Kauf nicht
aufpasst, hat hinterher viel Ärger. Wir

Themen zu ändern oder zu streichen.


verraten, worauf Sie achten sollten.

Die Redaktion behält sich vor,


Jakkapan Jabjainai, 123RF
Bildergalerie
Mit PiGallery2 verwandeln Sie den
­Rasp­berry Pi in ein Bildarchiv zum
­Mitnehmen. Das Charmante an dieser
schlanken Software: Anders als bei
­vielen Konkurrenten benötigen Sie für Cleverer Python-Editor Mu
­PiGallery2 keine ausgewachsene Daten­
bank wie MySQL. Dessen ungeachtet Python dient oft als Kernstück von RasPi-Projekten, wobei Bibliotheken den Zugriff
brauchen Sie auf moderne Funktionen auf die Hardware und die erfassten Daten erleichtern. Gelegenheitsprogrammierern
wie Schlagwortsuche und Geodaten­ hilft dabei der interaktive Editor Mu weiter: Mit ihm lässt sich schon vorab online
verarbeitung nicht zu verzichten. ­prüfen, ob der Code syntaktisch korrekt ist, statt hinterher mühsam zu debuggen.

Autoren Inserenten
Bernhard Bablok Ausgepackt: Neue Hardware in der Kurzvorstellung 8 Computec IT-Academy www.computec-academy.de 39, 69, 88
Make Munich 2019 – buntes Treffen der Maker-Szene 12 Fernschule Weber GmbH www.fernschule-weber.de 19
Witty Pi Mini: Zeitsteuerung für den Raspberry Pi 66 Grazer Linux-Tage www.linuxtage.at 9

Erik Bärwaldt Den Raspberry Pi aus der Ferne steuern mit Anydesk 22 Linux-Community www.linux-community.de 89
Linux-Magazin www.linux-magazin.de 41
Anke Dietzen Stromsparender Infoscreen mit E-Ink-Displays 42
Linux-Magazin Online www.linux-magazin.de 77
Christoph Langner Netflix und Amazon Prime streamen mit LibreElec 9.0 26
Linuxhotel www.linuxhotel.de 25
Die Pintexx Pinbox gräbt per RDP Tunnel ins eigene LAN 60
LinuxUser www.linux-user.de 71, 91
Martin Mohr Report: Besuch auf der Embedded World 2019 16
PC Games Hardware www.pcgameshardware.de 58, 59
Fischertechnik-Robot steuern mit PiXtend und Codesys 34
Qube Solutions UG www.qube-solutions.de 15
WLAN-Sensor zum Überwachen des Raumklimas 50 Raspberry Pi Geek www.raspberry-pi-geek.de 49, 85
I2C-Workshop (Teil 25): A/D-Wandler MCP3424 80 Reichelt Elektronik www.reichelt.de 11, 21
Hartmut Noack Audio-Programmierung mit Sonic Pi (Teil 4) 72 SFT www.spielefilmetechnik.de 2
Pit Noack Audio-Programmierung mit Sonic Pi (Teil 4) 72 Tuxedo Computers GmbH www.linux-onlineshop.de 92
Uwe Vollbracht Angetestet: Aktuelle Software im Kurztest 6 Widescreen www.widescreen-online.de 65

90 www.raspberry-pi-geek.de 01-02/2017