Sie sind auf Seite 1von 94

Nano: Personalisiertes Ftduino: Fischertechnik- Sonic Pi: Den RasPi als

Setup für den Texteditor Robots via RasPi steuern Live-Instrument nutzen

03-04/2019 • März / April 2019

TV & MULTIMEDIA
DVB-T-Tuner, smarte Hi-Fi-Anlage, digitales Tonstudio

Daten sichern
Die besten Lösungen für das
lokale und Remote-Backup

PIC-Toolchain
Microchip-Controller bequem
via RasPi programmieren

Git mit Komfort


Mehr Kontrolle und Übersicht
mit dem eigenen Git-Server

Projekte und Hacks


Berührungsfrei Temperaturen messen, Info-Zentrale mit Touchscreen
und Bewegungssensor, Bienenstöcke minimalinvasiv überwachen

9,99
WWW.RASPBERRY-PI-GEEK.DE EUR
Deutschland
A EUR 11,00 - BeNeLux EUR 11,50
CH sfr 16,00 - E / I EUR 12,90 4 198554 709992 04
Editorial

Licht ins Dunkel


Sehr geehrte Leserinnen und Leser,

in Sachen Architektur, Core, Speicher


und Schnittstellen stößt das Konzept
Raspberry Pi mit den Modellen aus der
dritten Generation an offensichtliche
Grenzen. Das weiß auch die Raspberry Pi
Foundation und hat schon im März 2018
beim Erscheinen des RasPi 3B+ angekün- Jörg Luther
digt, er markiere die letzte Iteration des Chefredakteur
klassischen Raspberry Pi: Die nächste Ge-
neration brauche eine neue Architektur,
einen anderen Core und eine verbesserte und MIPS – beides proprietäre Plattfor- nicht etwa um eine verkappte Produkt-
Speichertechnologie. men, bei denen Chiphersteller die Tech- ankündigung. Gleichzeitig schwärmte er
Wie dieser nächste Schritt allerdings nologie lizenzieren müssen. Die ARM- aber auch lautstark, RISC-V sei „ein wich-
konkret aussehen könnte, darüber hüllte Variante kennen Sie bestens: Alle bishe- tiger Enabler für Innovationen“ und „trei-
und hüllt sich die Foundation nach wie rigen RasPi-Modelle basieren auf von be aufregende Entwicklungen voran“ .
vor in tiefstes Schweigen: Welche neue Broadcom hergestellten ARM-SoCs. Damit scheint sich jetzt anzudeuten,
Architektur, welcher andere Core und Im Zug der durch Linux ausgelösten wohin beim Raspberry Pi langfristig die
welche verbesserte Speichertechnologie Erfolgsgeschichte des Open-Source- Reise geht. Kurzfristig allerdings dürfte
da für die nächste RasPi-Generation zum Ansatzes entstand 2010 an der University sich an der RasPi-Architektur nichts
Zug kommen sollen, das ließ sich bis- of California in Berkeley, einer klassi- ändern, und die Foundation schwenkt
lang nur raten. Daran hat sich grundsätz- schen Unix- und Open-Source-Hoch- fürs Erste offenbar auf das Entwickeln
lich auch nichts geändert, doch der burg, RISC-V (sprich: „RISC Five“). Die knackiger Peripherie für den RasPi um.
jüngste Zug der Foundation erlaubt jetzt quelloffene, lizenzfreie Befehlssatzarchi- Ein Paradebeispiel dafür liefert der neue
zumindest einen „educated guess“: Seit tektur soll eine Alternative zu den kom- DVB TV µHAT – mehr dazu lesen Sie ab
Anfang des Jahres ist die Raspberry Pi merziellen, proprietären Varianten ARM Seite 36 in dieser Ausgabe.
Foundation das neueste Mitglied der und MIPS bieten. Das tut sie mittlerweile
RISC-V Foundation . so erfolgreich, dass ARM sogar schon Herzliche Grüße,
Die Idee, Prozessorarchitekturen durch eine Schmutzkampagne  gegen den
Verschlankung des Befehlssatzes zu ver- missliebigen Konkurrenten einzustielen
einfachen (RISC, Reduced Instruction Set versuchte, die aber kläglich scheiterte.
Computer), hat sich seit Ihrer Entstehung Die unter einer BSD-Lizenz stehende
1980 weitgehend durchgesetzt; alle RISC-V-Architektur zielt explizit darauf
heutigen CPUs folgen diesem Ansatz ab, preiswertere, kleinere, schnellere und
mehr oder weniger. Zu denjenigen Ar- stromsparendere Prozessoren bauen zu
chitekturen, die sich am engsten an das können. Damit eignet sich RISC-V ideal
RISC-Paradigma halten, gehören ARM für SBCs der RasPi-Klasse. Welche Soft-
ware man unkompliziert darauf laufen
lassen kann, verdeutlicht die Tatsache,
dass auch die Linux Foundation seit
geraumer Zeit zu den Mitgliedern der
RISC-V Foundation zählt.
Zwar betonte Eben Upton, Gründer-
vater der Raspberry Pi Foundation, an- Weitere Infos und
lässlich des Beitritts zur RISC-V Founda- interessante Links
tion, bei dem Schritt handele es sich www.raspi-geek.de/qr/42086

03-04/2019 www.raspberry-pi-geek.de 3
03-04

24 Die Arbeit am System umfasst


unter anderem das Bearbeiten von
30 Code verwalten heute die meisten
Entwickler in Git. Wer, aus wel-
chen Gründen auch immer, das Hosten in 46 Mit den Tipps zum DAW-Tuning
lösen Sie bei Ihrem Mini-Rechner
Konfigurationsdateien. Das gelingt mit der Cloud scheut, hat mit einem lokal be- die Performance-Bremsen und machen auf
dem Editor Nano ganz einfach, vorausge- triebenen Git-Server eine Alternative an diese Weise den Raspberry Pi fit für den Ein-
setzt, Sie beherrschen dessen Interface. der Hand, die volle Kontrolle garantiert. satz als Workstation im digitalen Tonstudio.

Aktuelles Report Basics

Angetestet . . . . . . . . . . . . . . . . . . . . 6 Internet of Things . . . . . . . . . . . . . 10 Texteditor Nano . . . . . . . . . . . . . . . 24


Dynamisches DNS bequem konfigurieren Das Internet der Dinge verbindet nicht nur Nano dient nicht nur auf dem RasPi als
mit Inadyn 2.5, Dateisysteme zusammenfas- Computer miteinander, sondern bringt Standard-Texteditor, sondern liegt auch
sen mit Mergerfs 2.25, Netzwerkdurchsatz zusätzlich Geräte aus dem Alltag zusammen. vielen Linux-Distributionen bei. Trotz seiner
überwachen mit Nethogs 0.8.5, kritische Dabei gibt es Licht und Schatten, wenn Sie Leichtigkeit lässt sich mit ihm bestens pro-
Dienste schützen mit Sshguard 2.2.0 mit mehrere Protokollen und Standards fessionell arbeiten.
nebeneinander arbeiten.
Ausgepackt. . . . . . . . . . . . . . . . . . . . 8
Adafruit Timer-Button weckt den RasPi zeit-
gesteuert, Touch pHat mit sechs kapazitiven
Server
Tasten, Mini-Ampel Pi-Stop führt Kinder an
Basics
Git-Server . . . . . . . . . . . . . . . . . . . . 30
den RasPi heran, RasPiO-Duino-Bausatz für
Backup . . . . . . . . . . . . . . . . . . . . . . 18 Mit wenigen Handgriffen zum Git-Hoster: Die
den Einstieg ins Löten
Tools wie Dd, Tar und Backup-Manager er- dezentrale Arbeitsweise von Git erleichtert in
lauben eine schnelle, bequeme und gegebe- Kombination mit der Netzwerkfähigkeit des
nenfalls automatisierte Datensicherung. Wir RasPi das Verwalten von Quellcode.
zeigen, wie Sie die Tools sinnvoll miteinander
kombinieren, um Datenverlust vorzubeugen.

36 Mit dem neuen Raspberry Pi DVB TV µHAT


bauen Sie den Mini-Rechner zum DVB-T-Tuner
aus. Wir zeigen, wie Sie die passende Software konfigu-
rieren, und erläutern, warum Sie in Deutschland noch
mit Problemen beim Betrieb rechnen müssen.

4 www.raspberry-pi-geek.de 03-04/2019
58 Die Pflege von Bienenvölkern
erfordert unter anderem ein
68 Ein Baustein namens Ftduino
wachsames Auge auf die Temperatur und
Luftfeuchte im Bienenstock. Ein RasPi und
entsprechende Sensoren sorgen für ge-
schlägt die Brücke zwischen dem
RasPi und einem Fischertechnik-Roboter
mit drei Achsen. Wir zeigen, wie Sie den
78 Ein PIC-Microcontroller springt
ein, wenn der RasPi überdimensi-
oniert ist. Für die passende Toolchain zum
naue Daten, ohne die Insekten zu stören. Aufbau verdrahten und programmieren. Programmieren reichen wenige Befehle.

Multimedia Hacks Know-how

Raspberry DVB TV µHAT . . . . . . . . 36 Bienenvolk-Monitoring . . . . . . . . . 58 Sonic Pi (Teil 3) . . . . . . . . . . . . . . . 74


Vor kurzem hat die Raspberry Pi Foundation Bienenzüchter wollen Ihre fleißigen Insekten Synchronisierte Live-Loops und selbst er-
mit dem DVB TV µHAT ein neues Produkt nicht pausenlos stören. Mit einem RasPi und stellte Funktionen helfen dabei, mit Sonic Pi
auf den Markt gebracht. Die Platine mit inte- verschiedenen Sensoren überwacht der Im- wie auf einem Live-Instrument zu spielen.
griertem DVB-T/T2-Empfänger passt perfekt ker Schlüsselparameter wie Temperatur und
auf einen Pi Zero. Im deutschen Fernseh- Luftfeuchtigkeit im Bienenstocks. PIC-Toolchain . . . . . . . . . . . . . . . . . 78
alltag hat diese Kombination aber gewisse Um einen PIC-Mikrocontroller zu program-
Tücken, wie unser Workshop zeigt. Infoscreen . . . . . . . . . . . . . . . . . . . 62 mieren genügt bereits ein Raspberry Pi. Wir
Jeden Morgen dieselben Handgriffe, um zeigen, was Sie dazu noch benötigen.
DAW-Tipps . . . . . . . . . . . . . . . . . . . 46 zu sehen, ob die S- Bahn fährt und wie das
Auf den ersten Blick erscheint der RasPi zu Wetter wird? Ein cleverer Infoscreen auf I2C-Workshop (Teil 24) . . . . . . . . . 83
schwachbrüstig für den Betrieb leistungs- RasPi-Basis automatisiert den Vorgang. Ein Temperatursensor verrät, ob Sie einen
hungriger DAW- Software. Wir zeigen Ihnen, Gegenstand gefahrlos berühren dürfen.
wie Sie die Performance-Bremsen lösen. Beim Messen brauchen Sie dabei noch nicht
mal Kontakt zum Objekt.
Volumio 2.5 . . . . . . . . . . . . . . . . . . 52 Open Hardware
Für echten Hi-Fi-Sound braucht es mehr als
Ftduino (Teil 2). . . . . . . . . . . . . . . . 68
einen kleinen Bluetooth-Brüllwürfel. Mit
Volumio und einem Raspberry Pi rüsten Sie Das Ftduino-Modul schlägt die Brücke zu
Ihre klassische Hi-Fi-Anlage mit zeitgemäßen Fischertechnik und ermöglicht es unter
smarten Funktionen auf. anderem, einen Drei-Achsen-Roboter an-
zusteuern. Unser Workshop hilft dabei, die
Komponeten zu verdrahten und anschlie-
ßend korrekt anzusteuern.
Service

Editorial . . . . . . . . . . . . . . . . . . . . . . . . 3

Geek Bazar . . . . . . . . . . . . . . . . . . . . . 86

Impressum . . . . . . . . . . . . . . . . . . . . . 89

Vorschau/Autoren/Inserenten . . . . . 90

03-04/2019 5
Aktuelles Angetestet

Toröffner Läuft der RasPi jeden Tag rund um die


Uhr, bietet sich der Zugriff von unterwegs
gen Anbietern klappt auch HTTPS. Zum
Ermitteln der IP-Adresse greift das Pro-
als Feature quasi an. Allerdings erlaubt in gramm via HTTP auf den Dienst Checkip.
Mit Inadyn 2.5 greifen Sie von
so einem Szenario meist erst ein DynDNS- dyn.com zu. Das funktioniert jedoch nur
unterwegs aus auf den Dienst ständigen Zugang. Verfügt der direkt, nicht aber über einen Proxy. Sie
heimischen RasPi zu. Router über keine entsprechende Funk- konfigurieren Inadyn entweder über eine
tion, setzen Sie auf dem RasPi Inadyn ein, Datei oder durch Aufrufparameter. In der
das Sie im Raspbian-Repository finden. Datei hinterlegen Sie bei Bedarf die Da-
Allerdings arbeiten die Entwickler perma- ten für mehrere Anbieter. Nutzen Sie ei-
nent an der Software, sodass sich eine nen Anbieter, den das Tool noch nicht
Installation aus den Quellen empfiehlt. kennt, erstellen Sie dafür einen Custom-
Auf älteren Raspbian-Releases lässt sich Eintrag. Das erfordert Informationen wie
die aktuelle Version aufgrund veralteter den passenden DNS-Server oder den Ser-
Bibliotheken jedoch nicht kompilieren. ver zum Ermitteln der IP-Adresse; Beispie-
Haben Sie das Tool erfolg- le finden Sie im Quelltext-Archiv. Neben
reich installiert, tragen Sie der Zugangsdaten legen Sie in der Konfi-
die Daten für den ge- guration die zu verwendende Schnittstel-
wünschten Anbieter ein. le, das Cache- und Log-Verzeichnis sowie
Davon unterstützt die Soft- den Update-Zyklus festlegen. Zusätzlich
ware gut 20 verschiedene, zu Beispielen liefert Inadyn aussagekräfti-
darunter deutsche Unter- ge Manpages mit. Weitere Anleitungen
nehmen wie Strato, Self- finden sich auf der Github-Seite.
host.de oder Spdyn.de.
Standardmäßig erfolgt die Lizenz: GPLv2 n

Kommunikation mit dem Quelle:


Provider via HTTP, bei eini- http://troglobit.com/projects/inadyn/

Einheitsbrei Unter Linux lassen sich Partitionen oder


ganze Datenträger als Datei im Verzeich-
den Schreib-Cache von Mergerfs. Das er-
höht die Schreibgeschwindigkeit, die
nisbaum ansprechen. Um den Inhalt beim Lesen sinkt jedoch. Mit minfree‑
Mit Mergerfs 2.25 führen Sie
gleich mehrerer Partitionen in einem space legen Sie fest, wie viel Platz Sie in
verschiedene Dateisysteme in Verzeichnis bereitzustellen, musste man den jeweiligen Mount-Quellen mindes-
einem Mountpoint zusammen. bisher mit Symlinks arbeiten; mit Mer- tens freihalten möchten. Der Standard-
gerfs gelingt das nun transparent. Das wert liegt bei 4 GByte je Mountpoint. Mit-
Programm nutzt im Hintergrund die hilfe von func und category legen Sie
FUSE-Bibliotheken und arbeitet damit im außerdem Regeln für den Einsatz be-
Userspace, sodass Sie beim Aufruf zahl- stimmter FUSE-Eigenschaften fest. So
reiche FUSE-Funktionen direkt nutzen gibt allow_other anderen Benutzern die
können. Die Aufrufsyntax ähnelt jener Möglichkeit, auf den Mergerfs-Mount-
von Mount: Sie übergeben die Liste der point zuzugreifen. Beim Zusammenfas-
Gerätedateien, durch Doppelpunkte ge- sen prüft Mergerfs ohne Zutun, ob jedes
trennt, gefolgt vom Zielver- Dateisystem die getroffenen Einstellun-
zeichnis, in dem die zusam- gen unterstützt; anderenfalls erzeugt es
mengefassten Daten liegen eine Fehlermeldung. Eine Liste der Funk-
sollen. Wie bei Mount ge- tionen erhalten Sie mit der Online-Hilfe
ben Sie weitere Optionen ‑h oder entnehmen sie der zugehörigen
und Einstellungen mit dem Manpage. Anwendungsbeispiele und
Parameter ‑o an. Neben eine ausführliche Beschreibung finden
Mergerfs-spezifischen Set- sich außerdem auf der Github-Seite.
tings übergeben Sie so
auch FUSE-Einstellungen an Lizenz: ISC nn

die Software. Mittels di‑ Quelle:


rect_io deaktivieren Sie https://github.com/trapexit/mergerfs

6 www.raspberry-pi-geek.de 03-04/2019
Angetestet Aktuelles

In vielen Szenarien stellt der RasPi im LAN


Dienste bereit. Möchten Sie wissen, wel-
Durchsatz nur für eine bestimmte Schnitt-
stelle zu ermitteln, geben Sie diese beim
LAN-Tacho
che Rechner gerade über welche Verbin- Aufruf als Parameter an. Standardmäßig
Mit Nethogs 0.8.5 behalten
dungen zugreifen, dann brauchen Sie ein aktualisiert Nethogs die Anzeige im Se-
Tool wie Nethogs. Im Gegensatz zu ande- kundentakt, mit ‑d legen Sie andere In-
Sie den Netzwerk-Traffic
ren Netzwerkmonitoren sortiert das Tool tervalle fest. Für eine automatisierte Ver- jederzeit im Auge.
die geöffneten Verbindungen nicht nach arbeitung nutzen Sie mit ‑t den soge-
Transferprotokollen, sondern nach dem nannten Trace-Modus. Dabei schreibt
Prozess, der die Verbindung aufgebaut Nethogs alle Daten direkt auf die Stan-
hat. Möchten Sie nur wissen, welcher Pro- dardausgabe. Zum Ermitteln des Durch-
zess die meisten Daten überträgt, rufen satzes greift es auf die Pcap-Bibliotheken
Sie Nethogs ohne Parameter auf. Es listet zurück und benötigt deshalb beim Aus-
dann in einer Ncurses-Oberfläche alle führen Root-Rechte. Eine Übersicht aller
wichtigen Daten auf. Neben dem Namen Parameter finden Sie in der Manpage und
und der PID des Prozesses sehen Sie das der Online-Hilfe. Wollen
Interface sowie das ein- und ausgehende Sie Nethogs nicht aus den
Datenvolumen pro Sekunde. Letzteres Quellen installieren, grei-
gibt Nethogs in KByte aus; mit ‑v setzen fen Sie auf ältere Versio-
Sie eine alternative Einheit oder wechseln nen im Raspbian-Repo
mit [M] während des Betriebs. Um den zurück. Der Funktionsum-
fang ist identisch, die ak-
Lizenz: GPLv2 nn tuelle Version bietet je-
Quelle: doch einen optimierten
https://github.com/raboof/nethogs Quellcode.

Wer heute mit dem Rechner online ist,


muss meist nicht lange warten, bis ein
kannten Angriffssignaturen. Neben Atta-
cken auf SSH erkennt es so auch Angriffe
Torwächter
Bot die eigene IP-Adresse auf offene auf Exim, Dovecot oder Postfix. Eine
Mithilfe von Sshguard 2.2.0
Ports prüft. Die meisten Schädlinge Übersicht aller verfügbaren Signaturen
suchen zwar nach fehlerhaften Weban- finden Sie auf der Projektseite. Fällt eine
sichern Sie die Secure Shell
wendungen, aber selbst SSH-Zugänge IP-Adresse zu oft durch fehlerhafte Ver- und andere wichtige Dienste ab.
waren jüngst ein beliebtes Ziel. Sind Sie bindungen auf, legt Sshguard eine
auf einen über das Internet erreichbaren Firewall-Regel an, die die fragliche IP blo-
SSH-Zugang angewiesen, greifen Sie am ckiert. Ohne weitere Eingriffe bleibt die-
besten zu Sshguard: Das Programm ver- ser Eintrag nur sieben Minuten in der
sucht, Angriffe anhand der Meldungen in Firewall aktiv. Um bestimm-
Log-Diensten wie Syslog zu erkennen. te IP-Adressen oder Do-
Macht es einen potenziellen Eindringling mains von den Tests auszu-
aus, passt es die Firewall-Regeln entspre- nehmen, erstellen Sie mit‑w
chend an, um schon den Aufbau der Ver- eine entsprechende White-
bindung zu blockieren. Dabei kooperiert list. Umgekehrt schließen
es mit allen gängigen Firewalls wie Ip- Sie mit ‑b Systeme definitiv
filter, Iptables oder Netfilter. Mit dem von einer Verbindung aus,
Parameter ‑l legen Sie fest, welche Pro- selbst wenn von dort noch
tokolle Sshguard überwacht. In der Stan- kein Angriff erfolgte. Mit
dardeinstellung stuft das Tool IP-Adres- den Parametern ‑a und ‑p
sen als Bedrohung ein, von denen 40 legen Sie fest, wie viele
oder mehr fehlgeschlagene Verbindungs- Fehlversuche die Software
versuche ausgehen. Sshguard untersucht als Bedrohung einstuft und wie lange sie
darüber hinaus die Log-Einträge nach be- Adressen sperrt. Eine Übersicht aller Opti- Dateien zum Artikel
onen finden Sie in der Manpage, weitere herunterladen unter
Lizenz: BSD n
Anwendungsbeispiele liefert die Doku-
Quelle:Quelle: https://www.sshguard.net www.raspi-geek.de/dl/42947
mentation auf der Webseite. (agr) n
Aktuelles Ausgepackt

Schlafmütze Batteriebetriebene Boards müssen mit


der Ressource Strom sehr sparsam um-
Drehpoti am Delay-Pin, über das Sie auf
die Schnelle, aber eben in den meisten
Über den Adafruit Timer-Button gehen. Sie bieten aber nicht immer die Fällen etwas ungenau, das Zeitintervall
Möglichkeit, den Prozessor schlafen zu fü den Baustein einstellen. Benötigen
wecken Sie Mikrocontroller oder legen und per internem Timer wieder Sie ein exaktes Timing, trennen Sie auf
SBCs zeitgesteuert aus dem aufzuwecken. Hier springt der Timer- der Rückseite der Platine eine Leiter-
Schlafzustand. Button von Adafruit ein: Über VDD erhält bahn durch und verwenden gemäß der
das Breakout-Board Spannung. Abhän- Tabelle im Datenblatt einen eigenen
gig vom Widerstand, der am Pin Delay Widerstand. Alle Details sind über Seite
hängt, schaltet der Timer einmal alle von Adafruit  verfügbar.
100 Millisekunden bis einmal alle zwei Der Timer-Button eignet sich übrigens
Stunden den Pin ENout auf High. nicht für das direkte Schalten eines Ver-
Den Widerstand wertet das Breakout- brauchers, da ENout nicht als Stromver-
Board nur einmalig aus, wenn es Strom sorgung dienen kann. Benötigen Sie ein
bekommt. Über den Pin DONE erhält der solches Feature, gibt es dafür eine fast
Baustein anschließend eine Rückmel- identische Alternative mit integriertem
dung und setzt den ENout-Pin zurück. Mosfet. Statt eines Enable-Pins hat das
Bleibt das entsprechende Signal aus, Breakout-Board in diesem Fall einen
geschieht das kurz vor dem nächsten Power-Pin, an dem dann die Eingangs-
Zyklus automatisch. spannung für Verbraucher bereitsteht.
Der kleine Taster auf dem Board schal-
Adafruit Timer-Button
tet die Stromzufuhr manuell ein, unab-
Preis: 6,50 Euro n
hängig vom Zustand des Timers. Im
Bezugsquelle: Pimoroni
Auslieferzustand hängt ein kleines

Einstiegshilfe Ein wirklich pfiffiges Bauteil, eine kleine


Ampel mit drei farbigen LEDs, kommt
gpio aus dem Paket wiringpi, der die
einzelnen Farben dann nicht nur an-
Der pfiffige Pi-Stop eignet sich aus England und lässt sich direkt an den und auszuschalten vermag, sondern
RasPi anschließen. Sie benötigen dafür auch das Blinken beherrscht.
als universelles Bastelobjekt für drei nebeneinanderliegende allgemeine Zielgruppe für den Pi-Stop sind eigent-
schnelle Ergebnisse. GPIOs plus einen Masseanschluss. Auf lich Kinder: Als Objekt der realen Welt
dem RasPi gibt es dafür eine ganze Rei- reizt die Ampel dazu, die richtige Abfol-
he von mögli- ge der Farben per Programm selbst zu
chen Positionen, erstellen; kein Umweg über LEDs, Kabel
selbst die Doku- und Vorwiderstände bremst dabei die
mentation zum Motivation. Wer die Bauteile also mit
Pi-Stop  be- Kindern ausprobieren will, findet über
schreibt nicht den Link zur Dokumentation zusätzlich
alle. Zum Ansteu- Workshop-Unterlagen (auf Englisch) als
ern konfigurieren Starthilfe. Unabhängig davon eignen
Sie die GPIOs als sich die LEDs des Pi-Stop auch für andere
Output und set- Basteleien. So statten Sie etwa einen
zen den Wert Headless-RasPi auf die Schnelle mit
jeweils auf 0 Statusleuchten aus, ohne mehr Pins auf
oder 1. Hier gibt der GPIO-Leiste zu blockieren als unbe-
es im Internet dingt nötig. Solche minimalistischen
Beispiele für jede Plug-and-Play-Komponenten wünscht
erdenkliche Pro- man sich auch für andere Bauteile.
grammierspra-
che. Am schnells- Pi-Stop
ten gelingt das Preis: 4,50 Euro 

mit dem Befehl Bezugsquelle: Pimoroni.de

8 www.raspberry-pi-geek.de 03-04/2019
Ausgepackt Aktuelles

Schalter oder Taster benötigt man für


fast jedes Projekt, die Auswahl ist groß.
Zur Inbetriebnahme aktivieren Sie I2C in
der /etc/modules und in /boot/config.
Schaltanlage
Wollen Sie mechanische Probleme um- txt; im Zweifelsfall fördert eine kleine
Als zuverlässiges generisches
gehen und einfach per Berührung schal- Internet-Recherche diverse Tutorials
ten, greifen Sie zum Touch pHat von Pi- dazu zutage. Eine Python-Bibliothek für
Schaltelement bietet sich der
moroni. Er bietet sechs kapazitive Tasten das Ansteuern (python‑touchphat be- Pimoroni Touch pHat an.
mit integrierten LEDs am Rand. Die Dio- ziehungsweise python3‑touchphat) in-
den lassen sich zwar unabhängig von stallieren Sie über die Paketverwaltung,
der Berührung steuern, aber es bietet den Quellcode mit Beispielen dazu
sich an, sie als visuelle Rückmeldung finden Sie auf Github . Dort gibt es
nach einem Tastendruck leuchten zu las- außerdem ein einfaches Installations-
sen – taktiles Feedback gibt es ja nicht. skript, das jedoch (wie bei Pimoroni
Zum Umfang zählt eine 40-Pin-Buchse üblich) viel zu viel installiert.
zum Selbstlöten. Wegen des flachen De-
signs bietet es sich aber an, den Hat am
Gehäuse zu montieren und den RasPi mit
Kabeln anzuschließen. Dazu löten Sie
Pins von unten an. Dank I2C-Steuerung
benötigt as Modul dazu nur Verbindun-
gen zu GND, 3,3V, 5V und SCL/SDA – ein
2x3-Female-Header genügt also.

Pimoroni Touch pHat


Preis: 6,40 Euro 
Bezugsquelle: Pimoroni.de

Das Arduino-Universum umfasst ver-


schiedene Entwicklungsplatinen in jeder
Neben dem Lötvideo gibt es auch eine
54-seitige Dokumentation zur Platine.
Übungssache
Preisklasse und Ausstattung. Wer hier Sie behandelt kurz den Zusammenbau Der RasPiO Duino bietet einen
trotzdem nicht auf seinen RasPi verzich- und danach die Installation der Entwick-
ten will, greift zum RasPiO Duino des lungsumgebung auf dem RasPi. Den
durchdachten Einstieg in die
Herstellers RasPiO. Der Bausatz liegt größten Teil füllt eine Schritt-für-Schritt- vielfältige Arduino-Welt.
preislich etwas unter gleichartigen, vor- Anleitung für die Arduino-Programmie-
gefertigten Boards. Die Platine sollte rung, einschließlich des Ladens und Aus-
nicht gerade die erste Lötarbeit sein, eig- führens des Programms auf dem RasPiO
net sich aber durchaus für Anfänger. Wer Duino. Einziger Wermutstropfen bei der
will, kann dem Designer eine Stunde ganzen Sache:
beim Löten zusehen  und dabei noch Lötvideo und
den einen oder anderen Trick lernen. Anleitung gibt
Nicht alle Komponenten des Kits müssen es nur auf Eng-
verlötet werden, einige dienen ersten lisch. Der Bau-
Gehversuchen in der Arduino-Welt. satz und die
Dokumentati-
RasPiO Duino on zeigen Liebe
Preis: 14,50 Euro 
zum Detail. Da-
Bezugsquelle: Buyzero mit bietet der
RasPiO Duino
den perfekten
Weitere Infos und Einstieg für das
interessante Links Basteln mit ei-
nem Mikrocon-
www.raspi-geek.de/qr/42090
troller. (jlu) n

03-04/2019 www.raspberry-pi-geek.de 9
Report Internet of Things

© Maitree Laipitaksin, 123RF


Im intelligenten Netz alles mit allem verbinden

Smarte neue Welt


Das Internet der Dinge ver- Ein Armband mit entsprechenden Sen- gehandelt hat, und bestellt umgehend
soren ermittelt Ihre Schlafphasen und im Supermarkt Nachschub.
bindet nicht nur Computer, leitet daraus den optimalen Weckzeit- Während des Frühstücks scannt der
punkt ab. Nach einer kurzen Rückspra- Computer im Auto bereits den Termin-
sondern bringt Geräte aus che mit dem Wecker bekommt die kalender nach Einträgen und weiß da-
Kaffeemaschine das Startsignal. Sobald her, dass Sie um 9 Uhr am Flughafen in
dem Alltag zusammen. Dabei Sie den Fuß aus dem Bett setzen, steigt München sein wollen. Nach einer Ana-
Ihnen auch schon der Duft von frischem lyse des gegenwärtigen sowie des zu er-
liegen Licht und Schatten oft Kaffee in die Nase. wartenden Verkehrs signalisiert das
Ist der durchgelaufen, erhalten im Fahrzeug den besten Zeitpunkt zum
dicht beieinander. Smart Home die Rollläden das Signal, Losfahren und ermittelt die optimale
sich zu öffnen. Dank der Voreinstellung Route zum MUC.
Frank Hofmann, Mandy Neumeyer
der Heizung weiß Ihr Energieversorger, Jeder junge Ingenieur (oder Techniker)
welchen Energiebedarf Sie haben, schal- träumt davon, große oder bahnbrechen-
tet ihn exakt und vermeidet damit Über- de Dinge zu erschaffen, die den Lauf der
README kapazitäten (Stichwort Smart Grid). Welt nachhaltig verändern. Vor der Smart-
Derweil öffnen Sie den Kühlschrank, phone-Ära sehnten sich viele nach trag-
Das Internet of Things (IoT) beherrscht als
um mit etwas Milch dem inzwischen baren Computer, um so stets mit den
Schlagwort viele Debatten. Wir geben einen fertigen Kaffee eine goldbraune Farbe wichtigsten Informationsquellen der
Überblick zum Thema und zeigen, welche zu verleihen. Dank Smart Home be- Welt verbunden zu bleiben und ihre
merkt der Kühlschrank, dass es sich da- Umgebung mithilfe solcher Geräte zu
Möglichkeiten zum Andocken es gibt.
bei um den letzten Rest Milch im Karton steuern und zu kontrollieren.

10 www.raspberry-pi-geek.de 03-04/2019
Internet of Things Report

IoT und TTN verbinden, was mit einem Ein- und Aus-
schalter versehen ist, und es so zu einem
Das ist mittlerweile zumindest teilweise Teil des IoT zu machen. Analysten schät-
Realität. Die erforderliche Infrastruktur zen, dass im Jahr 2020 rund 34 Milliarden
samt der Komponenten gibt es; sie be- Geräte miteinander verbunden sein wer-
findet sich in einem stabilen Zustand den. Diese Zahl umfasst rund 10 Milliar-
und kommt mehr und mehr zum Einsatz. den herkömmliche Computer wie etwa
Das sogenannte Internet of Things (IoT), Laptops, Smartphones, Tablets und
also Internet der Dinge, koppelt heute Smartwatches sowie etwa 24 Milliarden
Endgeräte über das The Things Network spezifische IoT-Geräte .
(TTN), das Netzwerk der Dinge. Das setzt
wiederum auf bereits bestehenden Tech- Josie Pepper
nologien auf.
Der Begriff IoT fasst sowohl virtuelle Eines dieser Geräte treffen Sie dann auf
als auch alltägliche Gegenstände mit Ihrer Reise am Flughafen München wie-
einer Art Intelligenz zusammen – einer der: Die Mitarbeiter am modernsten aller
Kombination aus Elektronik mit einer deutschen Flughäfen haben einen neuen
eindeutigen Kennung (ID), deren jeweili- Kollegen namens Josie Pepper bekom-
gem Zustand und den möglichen Aktio- 1
men  . In einem vierwöchigen Test An-
nen, zu denen der Gegenstand oder das fang 2018 unterstützte der humanoide
Gerät in der Lage ist . Das reicht von Roboter Passagiere bei Fragen und Aus-
Sensoren für die Bewässerungsanlage  künften im Abflugterminal .
über den Container für Altglas, der sei- Über WLAN ist Josie mit dem Internet
nen Füllstand meldet , bis hin zur Be- verbunden und hat dadurch Zugriff auf
leuchtung in der Stadt  und der Falle eine interne Cloud. Sie verarbeitet und
für Kleinnager, die ein Signal übermittelt, interpretiert Gesprochenes der Fluggäste
sobald sich etwas darin verfängt . und verknüpft die empfangenen Infor-
Gesteuert mithilfe von integrierter mationen mit den Daten des Flughafens.
Software und Sensoren ist jedes Gerät in Josie ist lernfähig und damit in der Lage,
der Lage, entweder Daten aus der Um- individuell auf Fragen einzugehen statt
welt aufzufangen oder Statusinforma- vorgefertigte Texte wiederzugeben.
tionen zusammenzustellen. Diese ge-
langen über Knoten (im TTN-Jargon
Gateways genannt) zu anderen Punkten
im Netzwerk. In Folge lösen diese Sig-
nale unter Umständen automatisch Er-
eignisse aus und erlauben es dem Men-
schen, nur noch bei tatsächlichem
Bedarf einzugreifen.
Im Grunde genommen wäre es schon
heute möglich, alles mit dem Internet zu

Fair Use
TTN setzt auf geringe Datenmengen. Als
goldene Regel gilt, dass jedes Gerät maxi-
mal 30 Sekunden pro Tag senden darf.
Um 10 Byte an Daten zu übertragen, ent-
spricht das etwa 20 Nachrichten pro Tag
(SF12) beziehungsweise 500 Nachrichten
täglich bei SF7. Versendet das Gerät mehr
Daten, stellt TTN eventuell nicht den pas-
senden Ansatz dar.
1 Josie Pepper an ihrem Arbeitsplatz auf dem Flughafen in München.

03-04/2019 www.raspberry-pi-geek.de 11
Report Internet of Things

Der Roboter mit seiner kindlichen Wir- das in mehrfacher Hinsicht: Der eine
kung und großen Kulleraugen kam im oder andere Mitarbeiter im Service am
Test bei den Passagieren gut an. Er ver- Flughafen München bekommt eventuell
fügt über einen Lithium-Ionen-Akku mit bald von Josies Geschwistern Konkur-
einer Laufzeit von zehn Stunden. Die renz. In Asien hat sich diese Technologie
Maschine ist aber nicht teamfähig, und bereits etabliert.
Hinter Josie Pepper steckt Technologie
von IBM: künstliche Intelligenz und Wat-
son-IoT-Technologie aus der IBM Cloud.
Den 1,20 Meter großen Roboter hat das
französische Unternehmen Softbank
Robotics entwickelt.

Vernetzt
Unser Alltag wird also zunehmend von
vernetzter Technik durchdrungen. Mit
2 Das Innere eines der Anzahl der Geräte steigt der Bedarf
LoRaWAN-Gateways an Energie sowie die Menge an Daten,
nach Anleitung von TTN- die die Knoten austauschen. Bei kleinen
ZH. Man sieht die Durch- Geräten, etwa zum Messen von Tempe-
führungen für die ratur, Luftfeuchtigkeit oder Feinstaub ,
Antenne und das Ether- genügt dazu die Kombination aus einem
net-Kabel, den PoE-Split- Board wie dem RasPi und den ansteck-
ter und insbesondere baren Komponenten sowie einem
den Raspberry Pi 2 mit schicken Gehäuse .
LoRaWAN-HAT (IC880- Solche Geräte senden nur sporadisch
SPI-Variante). sehr kleine Mengen an Daten. Dazu ge-
hört etwa ein Temperatursensor, der nur
alle halbe oder volle Stunde fünf bis zehn
Bytes verschickt. Aufgrund der geringen
Leistungsaufnahme sind die Geräte häu-
fig lange Zeit und batteriebetrieben im
Einsatz. Zur Kommunikation mit einer
zentralen Sammelstelle existiert ein spe-
zielles Protokoll, das LoRaWAN heißt und
den Begriff Long Range Wide Area Net-
work abkürzt.
LoRaWAN entstand 2009 bei der fran-
zösischen Firma Cycleo; 2012 übernahm
Semtech das Unternehmen . Es paten-
tierte die Technologie 2014 und stellte
proprietäre Chips dafür her. Wie diese
Closed-Source-Bauteile funktionieren,
weiß man inzwischen dank Reverse
Engineering jedoch .
Aus Sicht der ISO/OSI-Spezifikation
3 Ein Eigenbau- steht LoRa für den physischen Layer und
LoRaWAN-Gateway auf LoRaWAN für den MAC-Layer. Im Rahmen
Raspberry-Pi-Basis am der LoRa Alliance , einem Unterneh-
Einsatzort. Bei dem nach menszusammenschluss aus dem Funk-
unten ragenden weißen bereich, ist das Protokoll nun standardi-
Stab handelt es sich siert. Stark vereinfacht ausgedrückt fällt
um die Antenne. LoRaWAN mit den Mobilfunk-Protokollen

12 www.raspberry-pi-geek.de 03-04/2019
Internet of Things Report

wie etwa GSM, LTE oder 4G und Sigfox  Name des Knotens lautet TTN-ZH und
in die Kategorie der Low Power Wide findet sich ebenfalls auf der Karte des
Area Networks (LPWAN). 4
Projekts  . Die eingesetzte Software so-
Analog zu Sigfox funkt es auf dem ISM- wie weitere Bilder stehen auf der zuge-
Band für den industriellen, wissenschaft- hörigen Github-Projektseite  bereit.
lichen und medizinischen Einsatz. In der 5
Abbildung  zeigt die Bandbreite der
Europäischen Union ist LoRaWAN auf Anbindung vom Weissenstein, einer der
868 MHz mit diversen Funkkanälen fest- höchsten und markantesten Erhebungen
gelegt. Das Protokoll ist so gestaltet, dass im Schweizer Jura. Von dort reichen Ver-
es selbst bei Geschwindigkeiten von bindungen bis zum Westende des Neuen-
über 100 km/h zuverlässig funktioniert. burger Sees (hellblau), im Norden nach
Zu den Parametern, an denen Sie drehen Basel/Lörrach (blau), im Osten nach
dürfen, zählen die Sendeleistung (EU: Zürich (blau) beziehungsweise Luzern
zwischen -3 dBm und +14 dBm bei circa (grün) und im Süden nach Bern (gelb)
40 mA Stromaufnahme), die Bandbreite beziehungsweise zum Thuner See und
(zwischen 125 und 500 kHz) sowie der ins Berner Oberland (blau). Der Funk-
Spreizfaktor (SF). knoten auf dem Weissenstein hielt mit
Ein kleiner Spreizfaktor wie SF7 nutzt 201 Kilometern lange Zeit den Welt-
7 Bits pro Symbol, SF12 hingegen 12 Bits. rekord in Sachen Reichweite , bis ein
Je kleiner der Faktor, desto höher liegt holländischer Wetterballon diesen brach
die Bitrate (bis 50 kbit/s) und umso gerin- (701 Kilometer bis nach Polen).
ger fällt die Stromaufnahme aus. Ein gro- Jeder IoT-Knoten gehört zu einer
ßer Spreizfaktor wie SF12 führt zu einer Betreiber-Community; in aller Regel er-
kleineren Bitrate (200 bit/s) und einem gänzt ein passender Blog alle Informa-
höheren Strombedarf. Das hat Auswir- tionen rund um das vernetzte Gerät. Ab-
kungen auf den Sendebereich – er liegt 6
bildung  zeigt als Beispiel einen Aus-
zwischen 1000 Meter (SF7) und 14 Kilo- schnitt zur südafrikanischen Community
meter (SF12) – sowie auf die Übertra- Cape Town, die mehrere Geräte im Groß-
gungshäufigkeit (siehe Kasten Fair Use). raum Kapstadt betreibt.
2
Die Abbildungen  und 3 zeigen
den Referenzaufbau eines Gateways im
Frei oder kommerziell
IoT-Netzwerk auf dem Dach eines inner-
städtischen Gebäudes in Zürich. Zum Das TTN ist nicht kommerziell und orien-
Einsatz kam hier ein Raspberry Pi 2. Der tiert sich an den vier Gemeingütern offe-

4 Eine Gesamt-
darstellung des Netz-
werks und Detail-
informationen zu
den Gateways finden
sich auf der TTN-
Karte von Zürich.

03-04/2019 www.raspberry-pi-geek.de 13
Report Internet of Things

ne Standards, freie Software, offene Hard- The Things Industries . Diese Plattform
ware und netzneutrales, von der Gemein- agiert als Dienstleister für geeignete
schaft betriebenes Netzwerk. Dabei kom- Hardware sowie das Erfassen von Daten,
men Lizenzen wie die GPL, die CERN deren Speicherung in der Cloud und das
Open Hardware License und die Creative anschließende Auswerten.
Commons zum Einsatz. Der gesamte Das Internet der Dinge sorgt voraus-
Software-Stack basiert auf Go und steht sichtlich dafür, dass die physikalische
vollständig über ein Repository bereit . Welt mit der virtuellen Welt noch stärker
Es gibt auch ein kommerzielles Gegen- verschmilzt. Das Beispiel am Anfang des
stück zum Community-Netzwerk TTN, Artikels hat deutlich gemacht, wie

5 Diese Karte zeigt die Funkabdeckung vom Knoten Weissenstein (1395 Meter über N.N.).

6 Die Geräte der Community rund um das südafrikanische Kapstadt im Überblick.

14 www.raspberry-pi-geek.de 03-04/2019
Internet of Things Report

Wecker, Smartphone oder Informations- Nicht zuletzt zielt das Internet of Things
und Steuerungssysteme zu Wasser und auf das Optimieren der gesamten Wert-
Heizung in Wohnungen ineinandergrei- schöpfungskette ab. Mithilfe der von
fen. Ausgedehnt auf Büros und ganze Sensoren ausgelesenen Daten der IoT-
Produktionsunternehmen bis hin zum Geräte bekommen die Unternehmen da-
autonomen Fahrzeug, das eigenständig bei ein klares Profil des Benutzers. Das er-
einen Parkplatz sucht, ergibt sich eine laubt einerseits, die Produkte stärker an
vernetzte Infrastruktur der ganzen Stadt. die Bedürfnisse der Anwender anzupas-
Das öffnet den Weg für zahlreiche auto- sen, ermöglicht aber andererseits eine
matisierte Vorgänge. immer umfassendere Überwachung .
Vielfach gilt das IoT als die vierte in-
dustrielle Revolution (Industrie 4.0 ), Sicherheit
was nicht ganz stimmig ist . Da sich die
Bereiche Alltag und Industrie sehr stark Jedes vernetzte Gerät öffnet Türen in die
überlappen, lässt sich zwischen den bei- Privatsphäre. Je mehr Geräte Sie mit dem
den ohnehin nur schwer eine scharfe Internet verbinden, um so mehr Angriffs-
Grenze ziehen. Als gemeinsame Schnitt- punkte bieten Sie. Egal ob Toaster, Kaffee-
menge ergibt sich die Kommunikation maschine, Rollladensteuerung oder Mau-
der Geräte untereinander. sefalle – solche Geräte haben wenige bis-
Während das Internet of Things auf lang als Sicherheitslücke im Blick.
den Verbraucher fokussiert, richtet sich Jeder Sprachassistent weiß, wann Sie
Industrie 4.0 auf eine stärker vernetzte, mit wem worüber sprechen, wann Sie
automatisierte Produktion aus, die IoT- außer Haus gehen, welche Hobbys Sie
Methoden nutzt . haben und wann Sie sich schlafen legen.

03-04/2019 www.raspberry-pi-geek.de 15
Report Internet of Things

Ob Alexa oder Siri, die Hardware zeich- der Betriebskosten um bis zu 5 Prozent,
net jedes Kommando auf und speichert Einsparungen von 10 bis 20 Prozent bei
es auf den Servern des Herstellers in den der Dauer von Reisen durch verbesserte
USA. Überlegen Sie daher gut, welche Kontrolle über den Verkehrsfluss sowie
Geräte Sie erwerben, wie Sie sie sauber Anstieg der landwirtschaftlichen Erträge
konfigurieren, wie regelmäßig Sie deren um rund 20 Prozent durch präzises Dün-
Software aktualisieren und ob die Geräte gen und Bewässern .
generell zwingend einen Zugang zum Gerätesicherung, Privatsphäre und Da-
Internet benötigen. tenschutz bleiben weiter Stiefkinder. Es
Gerade schnelllebige IoT-Geräte mit besteht viel Unwissenheit über die Si-
geringen Gewinnmargen fallen in der cherheit und den Schutz der eigenen,
Regel dadurch auf, dass die Qualitätssi- vom Gerät erfassten Daten, so faszinie-
cherung fehlt und Sicherheitsstandards rend generell eine Zukunft mit smarten
für den Hersteller nur einen lästigen Kos- Geräten im Haushalt erscheint. Den Wi-
7
tenfaktor darstellen. Abbildung  zeigt derspruch zwischen Komfort und Preis-
deutlich, welches Szenario in Zukunft un- gabe von Daten technisch aufzulösen, ist
ter Umständen droht – selbst Leuchtmit- anspruchsvoll: Otto Normalverbraucher
7 Unsichere Glühbirne: Nicht jedes Soft- tel benötigen dann Updates und den Zu- möchte den Inhalt seines smarten Kühl-
ware-Update gelingt sofort. griff auf das WLAN. schranks nicht mit fremden Quellen tei-
len, aber trotzdem automatische Ergän-
Ausblick zungslieferungen erhalten, ohne dass
Fremde dies beeinflussen. Die Unsicher-
Das Internet der Dinge gleicht einem heit, ob das tatsächlich funktioniert, er-
Kind, das gerade mit Freude und Eupho- zeugt vielfach Skepsis und Ablehnung.
rie laufen lernt. Die junge Sparte muss Die Voraussetzungen für das Internet
ganz offensichtlich noch etwas reifen. der Dinge fallen nicht überall gleich aus.
Neben der Größe der Hardware hakt es Obwohl der Bundesgerichtshof bereits
insbesondere beim Energieverbrauch 2013 das Internet zur Lebensgrundlage
der Geräte. Die noch in den Kinderschu- von Privatpersonen erklärt hat , ist bis
hen steckende neue Technologie der ver- heute nicht jeder Haushalt in gleicher Art
netzten Dinge trägt dessen ungeachtet und Weise angebunden. Trotz seines ra-
bereits heute einen erheblichen Anteil  santen Wachstums gilt ein weltumspan-
8
zur Wirtschaft bei  . nendes Netz gerade in entfernteren Ge-
Die Firma McKinsey hat den Nutzen genden der Erde bislang noch als Utopie.
Weitere Infos und durch IoT im Alltag untersucht. Das Un-
interessante Links ternehmen prognostiziert sinkende Kos- Fazit
ten um 10 bis 20 Prozent im Bereich
www.raspi-geek.de/qr/41129
chronischer Krankheiten, eine Senkung Geräte und Gebäude von überall im Blick
zu behalten ist kein Traum mehr. Mithilfe
des Internets der Dinge und der Techno-
logie LoRaWAN binden Sie so gut wie je-
des Gerät mit ein – ganz gleich, ob es Zu-
griff via Bluetooth, 3G oder WLAN hat.
Sie funken damit ressourcenschonend
und kostengünstig über längere Distan-
zen im Rahmen der Smart City oder bei
industriellen Anwendungen.
Trotz aller Stolpersteine, die den Weg
zur smarten vernetzten Welt heute noch
pflastern, ist der Anfang gemacht und
sorgt bei den jungen Ingenieuren für
leuchtende Augen. Nun geht es daran,
den Traum zu komplettieren und jeden
8 Die prognostizierten Ausgaben im IoT-Bereich für einzelne Branchen. mit allen und allem zu verbinden. (agr) n

16 www.raspberry-pi-geek.de 03-04/2019
Basics Backup

Daten und Partitionen effektiv sichern

Weggepackt
Tools wie Dd, Tar und Auch Daten auf der SD-Karte eines Rasp- sicherung. Für ein zuverlässiges Backup
berry Pi gehen gelegentlich unwiderruf- müssen Sie keine Kosten in ein professio-
Backup-Manager erlauben lich verloren – gemäß Murphys Law vor- nelles Wiederherstellungsprogramm in-
rangig solche, in die man besonders viel vestieren. Wie jede Linux-Distribution
eine schnelle, bequeme Zeit investiert hat, wie etwa die Quell- bringt auch Raspbian in seinen Bordmit-
dateien einer selbst entwickelten Soft- teln clevere Tools mit, um eine zuverlässi-
und gegebenenfalls auto- ware oder Webseite. Vor entsprechenden ge Datensicherung zu gewährleisten.
Unglücksfällen chützt auch kein noch so
matisierte Datensicherung. ausgefeiltes Versionierungssystem: Backup 1.0
Selbst mit einem Tool wie Mercurial 
Anzela Minosi kann man aus Versehen einen Befehl Zu diesen hauseigenen Werkzeugen ge-
ausführen, der sämtliche Daten im Re- hört unter anderem der Befehl Dd . Er
pository löscht. ermöglicht es, eine komplette Partition
Vor solchen ärgerlichen Datenverlus- zu sichern und als Abbilddatei zu spei-
ten, sei es durch menschliches oder tech- chern. Der Vorteil solcher Images liegt
nisches Versagen, schützt nur eines wirk- auf der Hand: Sie können sie wie eine
lich zuverlässig: eine regelmäßige Daten- Partition ganz einfach ins Dateisystem

README
Mit Raspbian-Bordmitteln setzen Sie im
Listing 1
01 # lsblk
Handumdrehen eine effektive Backup-
02 # mkfs.vfat ‑F 32 Gerät
Lösung für den Raspberry Pi auf, die Sie 03 # mount Gerät Einhängepunkt
gegebenenfalls mithilfe des Schedulers 04 # dd if=Partition of=/Gerät/Datei.img status=progress; sync
05 [...]
Hcron sogar automatisieren. Wir stellen
06 # mount Gerät Einhängepunkt
Ihnen verschiedene Methoden dafür vor. 07 # dd if=/Gerät/Datei.img of=Partition status=progress; sync

18 www.raspberry-pi-geek.de 03-04/2019
Backup Basics

Alternativ versetzen Sie mit dem Befehl


aus Zeile 7 die komplette Partition wie-
der in den Ausgangszustand. Dazu nut-
zen Sie dasselbe Kommando wie für die
Datensicherung, vertauschen jedoch für
die Datenwiederherstellung die Quell-
und Zielpfade.

Backup 2.0
Ein weiteres Linux-Bordmittel namens
Tar  erlaubt mehr Wahlfreiheit bezüg-
lich der zu speichernden Pfade. So lassen
sich beispielsweise Verzeichnisse von der
Datensicherung ausschließen. Darüber
hinaus komprimiert Tar die Dateien, so-
dass das Archiv in der Regel kleiner aus-
fällt als ein Image der Partition.
Am besten halten Sie den Aufruf von
© Alexandr Shirokov, 123RF

Tar samt der verwendenten Optionen


(siehe Tabelle Wichtige Tar-Optionen) in
einer Textdatei fest, sodass Sie ihn nicht
immer wieder umständlich eintippen
müssen. Ein entsprechendes Beispiel
zeigt Listing 2. Das Aufsplitten des relativ
langen Befehls in einzelne Zeilen bietet
dabei mehr Übersicht. Die Rückstriche
einhängen, um sie anschließend nach am Zeilenende sorgen dafür, dass das
bestimmten Dateien zu durchforsten. System den Aufruf in einem Stück verar-
Als Zielort für die Datensicherung beitet, statt jede Zeile als eigenen Befehl
eignet sich am besten ein externes Gerät zu interpretieren.
wie ein USB-Stick. Dazu lassen Sie sich, Der Schalter ‑c im Tar-Aufruf (erste
nachdem Sie ihn an den RasPi ange- Zeile) weist das Programm an, ein neues
steckt haben, zunächst alle angeschlos- Archiv zu erzeugen. Die Option ‑v (ver-
senen Geräte anzeigen (Listing 1, erste bose) sorgt dafür, dass es dabei genau
Zeile). Wollen Sie den Datenträger auch ausgibt, was es gerade tut. Die Option ‑p Listing 2
an Windows-Rechnern nutzen, muss er (preserve) erhält die Dateirechte der Ori- 01 tar ‑cvpjf Backup.tar.bz2 \
dazu das Format FAT32  aufweisen; ginale im Backup.
02 Quelle \
gegebenenfalls formatieren Sie ihn ent- Der Parameter ‑j sorgt für eine Kom-
03 ‑‑exclude=Datei \
sprechend (Zeile 2). primierung des Archivs mit Bzip2. Tar
04 ‑‑exclude=/Verzeichnis
Nun hängen Sie den USB-Stick ins kann unterschiedliche Kompressions-
Dateisystem ein, damit Dd darauf zugrei-
fen kann (Zeile 3). Für das eigentliche
Backup verwenden Sie das Kommando Wichtige Tar-Optionen
aus der vierten Zeile von Listing 1. Option Langform Funktion
Um später einige Dateien anzusehen
‑c ‑‑create neues Archiv erstellen
oder zurückzuspielen, die sich im Image
‑f ‑‑file zu bearbeitendes Archiv
befinden, stecken Sie den USB-Stick
‑j ‑‑bzip2 Bzip2-Komprimierung
wieder am RasPi an und hängen ihn er-
‑p ‑‑preserve‑permissions Zugriffsrechte der Dateien erhalten
neut ein (Zeile 6). Zum Wiederherstellen
‑t ‑‑list Inhalt des Archivs anzeigen
einzelner Dateien kopieren Sie diese ein-
‑x ‑‑extract Archiv entpacken
fach per Kommandozeile oder Datei-
manager aus der Sicherung an ihren ur- ‑v ‑‑verbose ausführliche Verlaufsmeldungen
sprünglichen Platz. ‑z ‑‑gzip Gzip-Komprimierung

03-04/2019 www.raspberry-pi-geek.de 19
Basics Backup

1 Unter Htop lässt


sich erkennen, dass
Backup-Manager
gerade mithilfe des
Befehls Tar eine
Sicherungskopie
erstellt.

formate verwenden, Bzip2 ermöglicht u+x do_backup ausführbar machen. Die


dabei die stärkste Komprimierung. Ent- Option u+x verleiht dem Benutzer der
sprechende Archivdateien tragen übli- Datei Ausführungsrechte . Die ent-
cherweise die Endung .tar.bz2. Ein sprechende Einstellung überprüfen Sie
inkrementelles Backup: Bei der inkremen- weiteres beliebtes Kompressionsformat gegebenenfalls mit dem Befehl ls ‑l:
tellen Datensicherung werden nur jene ist Gzip (.tar.gz), das Sie mit der Option Taucht in der Ausgabe links bei der Be-
Dateien gespeichert, die sich seit der letzten ‑z einsetzen. Im Unix-Jargon nennt man nutzerkategorie ein x für „execute“ auf,
mit Tar erzeugte Archivdateien liebevoll hat die Einstellung funktioniert. An-
Sicherung geändert haben oder neu hinzu-
Tarballs. Den Namen des zu bearbeiten- schließend können Sie das Skript mit
gekommen sind. Das reduziert den Umfang
den Tarballs übergeben Sie dem Pro- dem Kommando ./do_backup direkt auf-
und damit auch die Dauer des Backups in gramm mit der Option ‑f (file). rufen, um die Datensicherung zu testen.
der Regel deutlich. Wie Sie im Beispiel sehen, müssen Sie Um später das komplette Backup
die zu verwendenden Optionen nicht wieder zu entpacken, verwenden Sie das
einzeln ausschreiben (‑c ‑v ‑p ‑j ‑f), Kommando tar ‑xvf Tarball. Alterna-
sondern dürfen Sie platzsparend zusam- tiv entpacken Sie aber auch einzelne
menfassen. In Zeile 2 tragen Sie die Da- Dateien oder Verzeichnisse oder nur
tenquelle für die Sicherung ein. Wie be- Dateien eines bestimmten Namens oder
reits erwähnt, ermöglicht es Tar, einzelne Dateityps. Beispiele für die entsprechen-
Dateien (Zeile 3) oder auch komplette den Aufrufe finden Sie in der Tabelle
Ordner (Zeile 4) aus dem Backup auszu- Tarball entpacken.
schließen; dabei dürfen Sie mehrere
Listing 3 Ausschlussanweisungen angeben. Backup 3.0
Sie speichern das Skript aus Listing 2
$ sudo apt‑get install
in eine beliebige Datei, etwa do_backup, Soll das Backup etwas komfortabler aus-
backup‑manager
die Sie danach mit dem Befehl chmod fallen, greifen Sie zu Backup-Manager ,
den Sie unter Raspbian bequem per Pa-
ketverwaltung installieren (Listing 3). Da-
Tarball entpacken bei handelt es sich um ein vollständiges
Backup-Programm für die Kommandozei-
Aufruf Funktion
le, das sich einfach konfigurieren lässt. Es
tar ‑xvf Tarball kompletten Tarball entpacken
ermöglicht ein inkrementelles Backup
tar ‑xvf Tarball /Pfad/Datei einzelne Datei aus dem Tarball entpacken
und stellt mehrere Kompressionsformate
extrahiert alle Dateien aus dem Tarball, zur Auswahl. Zudem kann es MySQL-
‑xvf Tarball ‑‑wildcards Muster
die zum Muster passen Dumps sowie SVN-Repositories sichern.

20 www.raspberry-pi-geek.de 03-04/2019
Backup Basics

Die Konfigurationsdaten des Tools finden haben, die der Scheduler dann zu einem
Sie in der Datei /etc/backup‑manager. vorgegebenen Zeitpunkt ausführt.
conf, die schon in der Voreinstellung ei- Als Scheduler kommt Hcron  zum
nen sinnvollen Einsatz ermöglicht. Sie Einsatz. Er setzt bei der Konfiguration
können also nach der Installation durch auf Schlüssel-Wert-Paare, sodass Sie
Aufruf des Kommandos backup‑manager anders als beim altbekannten Linux-
direkt eine erste Sicherungskopie erstel- Standardtool Cron  nicht wissen müs-
len. Standardmäßig legt Backup-Mana- sen, an welcher Stelle der Aufrufsyntax
ger die Archive im Verzeichnis /var/ar‑ Sie die Minuten, Stunden, Tage und so
1
chives/ ab  . weiter eintragen müssen. Die einzelnen
Sie sollten allerdings die Konfigurati- Aufgaben – bei Cron heißen sie sinniger-
onsdatei mit Administratorrechten an- weise Cron-Jobs – bezeichnet man bei
passen, damit Backup-Manager alle ge- Hcron als Events. Sie lassen sich in ge-
wünschten Dateien und Ordner sichert. sonderten Dateien abspeichern, was
Als Hilfestellung zur Konfiguration fasst wesentlich übersichtlicher ausfällt als bei
die Tabelle Backup-Manager einrichten Cron, der alle Jobs in einer einzigen
die wichtigsten Optionen zusammen. Datei auflistet.
Zwar findet sich Hcron nicht in den Pa-
Automatisierung mit Hcron ketquellen von Raspbian, der Scheduler
lässt sich aber dennoch auf unkompli-
Erst das Verwenden eines sogenannten zierte Weise einrichten. Zunächst laden Listing 4
Schedulers ermöglicht regelmäßige, Sie das Programm als DEB-Paket herun- $ sudo dpkg ‑i hcron_Version_all.
automatische Datensicherungen. Dazu ter  und installieren es mit dem Kom- deb
eignen sich vor allem Shell-Skripte, wie mando aus der ersten Zeile von Listing 4.
$ systemctl status hcron
wir sie in den obigen Beispielen gezeigt Anschließend prüfen Sie via Systemctl,

Backup-Manager einrichten
Option Beispiel Funktion
BM_REPOSITORY_ROOT /home/pi/archives legt den Archivordner fest
BM_ARCHIVE_METHOD tarball‑incremental mysql svn Archivmethode
BM_ARCHIVE_TTL 3 Zahl der Archive, die Backup-Manager lokal speichert
BM_TARBALL_DIRECTORIES /etc /home zu sichernde Ordner, durch Leerzeichen voneinander getrennt
BM_TARBALL_BLACKLIST /var/archives /home/notbackup auszulassende Ordner, durch Leerzeichen voneinander getrennt
BM_UPLOAD_METHOD "ftp" Methode für das Übertragen der Backups
BM_UPLOAD_FTP_USER sd‑000 FTP-User
BM_UPLOAD_FTP_PASSWORD mYp4SsW0rd Passwort des FTP-Users
BM_UPLOAD_FTP_HOSTS dedibackup.dedibox.fr FTP-Server
BM_UPLOAD_FTP_PASSIVE true passiven Transfer-Modus für FTP aktivieren
BM_UPLOAD_FTP_PURGE true Zielverzeichnisinhalt vor dem Übertragen löschen
BM_UPLOAD_FTP_DESTINATION / Zielordner auf dem FTP-Server
BM_MYSQL_DATABASES mysql Name der MySQL-Datenbank
BM_MYSQL_ADMINLOGIN root User der MySQL-Datenbank
BM_MYSQL_ADMINPASS GEh31m MySQL-Passwort des Users
BM_MYSQL_HOST localhost MySQL-Servername
BM_MYSQL_PORT 3306 Port, auf dem der MySQL-Server lauscht
Kompressionsformat für die MySQL-Datenbank
BM_MYSQL_FILETYPE gzip
(gzip oder bzip2)
BM_SVN_REPOSITORIES – absoluter Pfad zum SVN-Repository
BM_SVN_COMPRESSWITH gzip Kompressionsformat für das SVN-Repository (gzip oder bzip2)
BM_PRE_BACKUP_COMMAND – angegebenes Skript ausführen, bevor das Backup startet
angegebenes Skript nach der letzten Aktion von Backup-Manager
BM_POST_BACKUP_COMMAND –
ausführen

03-04/2019 www.raspberry-pi-geek.de 21
Basics Backup

2 Die Logdatei von


Hcron zeigt an, dass das
Backup-Event wie ge-
plant um 11:55 Uhr aus-
geführt wurde.

ob Hcron bereits läuft (zweite Zeile). Die- datei ~/.ssh/config sollte dazu so aus-
ser Befehl sollte eine Ausgabe mit einem sehen wie in Listing 6 gezeigt.
grünen Punkt auslösen. Läuft der Prozess In der Vorgabe ist unter Raspbian der
wider Erwarten noch nicht, dann wieder- SSH-Dienst deaktiviert. Sie aktivieren ihn
holen Sie den Systemctl-Befehl, ersetzen mithilfe des Tools Raspi-config unter
dabei aber status durch die Option Interfacing Options | SSH. Um zu über-
start oder restart. prüfen, ob SSH funktioniert, geben Sie
Die Konfigurationsdateien für den den Befehl aus der ersten Zeile von Lis-
Scheduler finden Sie im Ordner /etc/ ting 7 ein. Anschließend generieren Sie
hcron/. Dort liegt unter anderem die einen SSH-Schlüssel (Zeilen 2 bis 4).
Datei hcron.allow. Hier tragen Sie in Des Weiteren brauchen Sie ein eigenes
jeweils einer neuen Zeile den Benutzer- Verzeichnis für die Events des Users, der
namen aller User ein, die die Befehle aus in hcron.allow erscheint. Da per Kon-
der Event-Datei ausführen dürfen. Unter vention der Event-Ordner in einem über-
Raspbian kommt dafür in der Regel der geordneten Verzeichnis liegen muss, der
bereits existierende Benutzer pi infrage. die Domain als Namen hat, ermitteln Sie
In den Dateien hcron.conf sowie diese mit dem Befehl aus der ersten Zeile
hcron‑run.conf tragen Sie den Pfad so- von Listing 8.
wie den Namen einer Protokolldatei ein Dann legen Sie das korrespondierende
Dateien zum Artikel (Listing 5). Über dieses Log können Sie Events-Verzeichnis an (Zeile 2). Dort er-
herunterladen unter später unter anderem prüfen, ob die zeugen Sie mithilfe des Kommandos
www.raspi-geek.de/dl/41974
Events wie gewünscht starten  .2 hcron‑event eine leere Event-Datei (in
Alle anderen Standardeinstellungen unserem Beispiel heißt sie event‑back‑
in den Konfigurationsdateien können Sie up.txt), die bereits die wichtigsten
ohne Änderung übernehmen. Da Hcron Schlüssel beinhaltet (Zeile 3).
Listing 5 sich mit dem Konto desjenigen Benut- In der Tabelle Hcron-Schlüssel finden
zers einloggt, der den Befehl ausführen Sie eine Übersicht häufig verwendeter
# "log_path:" "/Pfad/zum/
soll, brauchen Sie noch einen funktionie- Hcron-Schlüssel. Bei den Angaben für
Protokoll.log"
renden SSH-Dienst, um dem Dienst eine den Ausführungszeitpunkt dürfen Sie
Anmeldung ohne Passworteingabe zu statt eines numerischen Werts auch ein
ermöglichen. Die SSH-Konfigurations- Sternchen als Platzhalter angeben. So
Listing 6
# ~/.ssh/config
Host Hostname
Listing 8 Listing 9
01 $ hcron‑info ‑‑fqdn # event‑backup.txt
StrictHostKeyChecking no
02 raspberrypi as_user=pi
BatchMode yes
03 $ mkdir ‑p ~/.hcron/ host=raspberrypi
raspberripi/events command=sudo backup‑manager
04 $ hcron‑event ~/.hcron/ notify_email=pi@raspberrypi
Listing 7 raspberripi/events/
notify_message=done
event‑backup.txt
$ ssh Hostname date when_month=*
05 [... Event‑Datei befüllen ...]
$ ssh‑keygen when_day=*
06 $ hcron‑info allowed
$ cd ~/.ssh when_hour=21
07 yes
$ cat id_rsa.pub >> authorized_ 08 $ hcron‑info es when_minute=10
keys 09 accepted::/event‑backup.txt when_dow=*

22 www.raspberry-pi-geek.de 03-04/2019
Backup Basics

tragen Sie beispielsweise when_month=* die Uhr laufen, um beim Ausführen der
ein, wenn der Event in jedem Monat aus- Jobs nicht ins Straucheln zu kommen.
geführt werden soll. Mit Anacron existiert zwar eine Sche-
Um einen Hcron-Event für Backup-Ma- duler-Alternative , die auch greift,
nager zu erstellen, der täglich um 21:10 wenn der RasPi nicht nonstop seinen
Uhr einen Sicherungslauf vornimmt, tra- Dienst versieht. Dessen Konfiguration
gen Sie in event‑backup.txt die in Lis- funktioniert jedoch wie die von Cron mit
ting 9 gezeigten Schlüssel und Werte ein. fixen Stellen für die Stunden, Minuten
Nach dem Speichern der Datei fragt etc. im Aufruf. Zwar vergisst man im Lauf
Hcron Sie, ob es den Scheduler neu star- der Zeit auch die Namen der Schlüssel
ten soll, was Sie durch einen Druck auf für die Event-Datei, doch fügt Hcron für
[Y] bestätigen. Wenn Sie später eine exis- Sie die wichtigsten Schlüssel beim Erstel-
tierende Event-Datei nachbearbeiten, len eines neuen Events automatisch ein.
müssen Sie lediglich den Hcron-Schedu- Möchten Sie unbedingt einen Cron-
ler mit hcron‑reload erneut starten, um ähnlichen Scheduler verwenden, dann
Hcron die Änderungen mitzuteilen. empfiehlt sich Fcron , der die Vorteile
Zu guter Letzt überprüfen Sie mit den von Cron und Anacron vereint. (jlu) n
Aufrufen aus den Zeilen 6 und 8 von Lis-
ting 8 noch einmal, ob der aktuelle Nut-
zer auch wirklich Hcron-Events ausfüh- Hcron-Schlüssel
ren darf und um welche es sich dabei Schlüssel Funktion
handelt. Passt hier alles, erfolgt ab jetzt Pflichtangaben
das automatische Backup zu den von host Hostname
Ihnen vorgegebenen Zeitpunkten. command auzuführender Befehl
notify_email E-Mail-Adresse für Benachrichtigung
Fazit notify_message Benachrichtigungstext
when_month Ausführung: Monat (1 bis 12)
Die hier vorgestellten Methoden genü- when_day Ausführung: Tag des Monats (1 bis 31)
gen normalerweise, um ein Raspbian- when_hour Ausführung: Stunde (0 bis 23)
System regelmäßig zu sichern. Anders when_minute Ausführung: Minute (0 bis 59)
als beim Einsatz von Cron muss der when_dow Ausführung: Wochentag (0 bis 6, 0 = Sonntag)
Raspberry Pi mit Hcron nicht rund um Optionale Angaben
as_user Benutzerkonto zum Ausführen des Befehls
failover_event alternativer Event bei Scheitern
Weitere Infos und nächsten Event nach dem erfolgreichen Start eines Events
next_event
interessante Links ausführen
notify_subject Betreff der E-Mail-Benachrichtigung
www.raspi-geek.de/qr/41974
when_year Ausführung: Jahr (2000 bis 2050)

03-04/2019 www.raspberry-pi-geek.de 23
Basics Texteditor Nano

Schlanker
Konsolen-Texteditor Nano
im Detail

Handliches
Werkzeug

© ktsdesign, 123RF
Nano dient nicht nur auf Der Texteditor Nano ist die GNU-Ent- wurden hierfür geändert, es kommt ein
sprechung des Pico, der zum E-Mail- dunkler Hintergrund zum Einsatz.
dem RasPi als Standard- Programm Pine gehört. Gegenüber dem Die entsprechenden Einstellungen in
Original wurde er um viele Funktionen der /etc/nanorc für dieses Aussehen
Texteditor, sondern liegt auch erweitert; die Projektseite mit aktuellen und einige andere Funktionen sehen Sie
Informationen finden Sie unter https:// in der Tabelle Einstellungen in nanorc.
vielen Linux-Distributionen www.nano-editor.org. Das laufend ge- Zusätzlich wurde der Ordner ~/.nano‑
pflegte Programm liegt vielen Distribu- backup/ angelegt, in dem der Editor vor
bei. Trotz seiner Leichtigkeit tionen bei. Auf dem Raspberry Pi nimmt dem Speichern einer Änderung ein Ab-
der vorinstallierte Nano den Rang des bild der bearbeiteten Datei ablegt.
lässt sich damit bestens Standard-Texteditors ein. Haben Sie ein Backup-Verzeichnis an-
Der Editor legt seine Konfiguration gelegt und set backup mit set backup‑
professionell arbeiten.
zentral in der Datei /etc/nanorc ab. dir Pfad in nanorc eingetragen, finden

Harald Zisler Wenn Sie von den systemweit gültigen Sie die angelegten Dateien mit einer
Festlegungen abweichen möchten, le- 3
Pfadangabe hier abgelegt  . Damit
gen Sie eine Kopie mit dem Dateinamen können Sie, falls es einmal ein Malheur
.nanorc in Ihrem Heimatverzeichnis an. gibt, den alten Stand einer Datei jeder-
README Ohne diese Datei startet das Programm zeit wiederherstellen.
mit den Grundeinstellungen und sieht
Mit Nano können Sie Textdateien aller Art
bequem erstellen und bearbeiten. Die Mög-
1
dann wie in Abbildung  gezeigt aus. Arbeiten mit Nano
Mit den im Folgenden gezeigten Ein-
lichkeit zur individuellen Konfiguration zahl- 2
stellungen ändert sich die Ansicht . Ein gut konfigurierter Nano erweist sich
reicher Aspekte macht den kommandozei- Syntax-Hervorhebung, ein farbiges Menü als komfortables und übersichtliches
sowie Zeilennummern fallen als Erstes Textwerkzeug. Mehr Platz im Sichtfeld
lenbasierten Editor besonders komfortabel.
auf. Auch die Terminaleinstellungen schafft ein Druck auf [Alt]+[X], der das

24 www.raspberry-pi-geek.de 03-04/2019
Texteditor Nano Basics

Menü am unteren Fensterrand ausblen- chen Text aus. Alternativ benutzen Sie
det. Ein erneutes Betätigen der Tasten- die Maus, sofern Nano entweder in ei-
kombination holt es wieder hervor. nem Terminal auf der grafischen Oberflä-
Eine nicht gewollte Änderung nehmen che läuft oder Sie im reinen Textmodus –
Sie jederzeit mit [Alt]+[U] zurück. Mit etwa beim Zugriff auf einen Headless-Ra-
[Strg]+[C] brechen Sie im Bedarfsfall eine sPi – durch [Alt]+[M] die Mausbedienung
eingeleitete Aktion (Speichern, Öffnen, aktiviert haben. Das setzt allerdings vor-
Ersetzen usw.) ab. Eine zurückgenom- aus, dass auf dem fraglichen Rechner der
mene Aktion führen Sie gegebenenfalls Maus-Systemdienst Gpm läuft.
mit [Alt]+[E] erneut aus. Zum Kopieren markieren Sie den ge-
Sie können Text auf mehrere Arten wünschten Textausschnitt und drücken
markieren. Über die Tastatur setzen Sie [Alt]+[6]. Dann springen Sie mit der
dazu mit [Alt]+[A] eine Startmarke und Schreibmarke an die Stelle, an die Sie
wählen mit den Pfeiltasten den fragli- den markierten Text platzieren möchten.

1 Der Texteditor Nano mit den Vorgabeeinstellungen aus /etc/nanorc.

Einstellungen in nanorc
Einstellung Funktion/Hinweis
set backup Backup anlegen
set backupdir "~/.nanobackup" Angabe eines Backup-Verzeichnisses
set historylog Historie der Begriffe für Suchen / Suchen und Ersetzen
set linenumbers Zeilennummern anzeigen
set locking Dateisperren verwenden
set mouse Mausunterstützung aktivieren (GUI, Konsole mit Gpm)
set softwrap Zeileninhalte bei Bedarf umbrochen anzeigen (siehe Abbildung 4)
set suspend Editor lässt sich mittels [Strg]+[Z] in den Hintergrund schicken
set whitespace "»·" angegebene Zeichen für Tabulator (hier: „»“) und Leerzeichen („·“) einblenden
set titlecolor brightwhite,blue Titel in weißer Schrift auf blauem Hintergrund
set numbercolor cyan Farbe der Zeilennummern
set statuscolor brightwhite,green Statusmeldungen mit weißer Schrift auf grünem Hintergrund
set keycolor green Farbe der Tasten für Funktionsaufrufe
set functioncolor yellow Farbe der Funktionen
include "/usr/share/nano/*.nanorc" Einbinden der Dateien für die Syntax-Hervorhebung
bind ^S savefile main „Sichern ohne Rückfrage“ mit [Strg]+[S] aufrufen
bind M‑Q findprevious main „Einen Suchtreffer zurück“ mit [Alt]+[Q] aufrufen
bind M‑W findnext main „Einen Suchtreffer vorwärts“ mit [Alt]+[M] aufrufen

03-04/2019 www.raspberry-pi-geek.de 25
Basics Texteditor Nano

2 Nano mit einer geänderten, systemweiten Konfiguration in /etc/nanorc.

Drücken Sie nun [Strg]+[U], fügt Nano Suchen und Ersetzen


den kopierten Text an dieser Stelle ein.
Zum Ausschneiden oder Verschieben Eine Suche im Text leiten Sie mit der
von Text markieren Sie den gewünschten Tastenkombination [Strg]+[W] ein. An-
Abschnitt und drücken [Strg]+[K]. Möch- schließend geben Sie den Suchbegriff
ten Sie direkt untereinanderstehende ein und drücken die Eingabetaste. Findet
Zeilen ausschneiden oder verschieben, Nano eine entsprechende Textstelle,
genügt das Drücken von [Strg]+[K], bis springt die Schreibmarke dorthin. Von
der gewünschte Bereich nicht mehr an- dort aus navigieren Sie mittels [Alt]+[W]
gezeigt wird. Um den ausgeschnittenen vorwärts und, sofern aktiviert, mittels
Bereich an anderer Stelle wieder einzufü- [Alt]+[Q] rückwärts.
gen, genügt ein Druck auf [Strg]+[U]. Mit [Alt]+[R] leiten Sie das Suchen und
Mit [Alt]+[T] löschen Sie den Text von Ersetzen ein. Zunächst tippen Sie den
der aktuellen Cursorposition aus bis zum 5
Suchbegriff ein (Abbildung  , oben)
Dateiende. Auch diesen Block fügen Sie und drücken dann die Eingabetaste. An-
bei Bedarf an anderer Stelle mittels schließend geben Sie den Ersatzbegriff
[Strg]+[U] wieder ein. 5
ein (Abbildung  , Mitte) und drücken
wiederum [Eingabe]. Nano fragt Sie nun
bei jeder Fundstelle, wie verfahren wer-
5
den soll (Abbildung  , unten), wobei
der Editor auch die Möglichkeit bietet,
alle Fundstellen in einem Rutsch zu er-
setzen. Geht dabei etwas daneben, stel-
len Sie mittels [Alt]+[U] den vorigen Zu-
3 Aus dem Inhalt des Backup-Verzeichnisses stellen Sie bei Bedarf versehentlich verän- stand wieder her.
derte Dateien wieder her. Beim Bearbeiten von größeren Text-
abschnitte können Sie das Ergebnis mit-
tels [Strg]+[S] ohne weitere Rückfragen
gelegentlich zwischenspeichern. Um
eine bearbeitete Datei (gegebenenfalls
mit abweichendem Dateinamen) zu si-
chern, drücken Sie [Strg]+[O]. Um die
Datei abzuspeichern und den Editor
4 Ein Dollarzeichen am Zeilenende signalisiert eine überlange Zeile (oben). Mit der Ein- dann zu beenden, verwenden Sie die
stellung set softwrap bricht Nano solche Zeilen um (unten). Tastenkombination [Strg]+[X].

26 www.raspberry-pi-geek.de 03-04/2019
Texteditor Nano Basics

Weitere Funktionen nur an Wortenden. Das gewünschte Ver-


halten stellen Sie mittels [Alt]+[L] ein.
Überlange Zeilen umbricht der Editor Trotz der im Terminal gebräuchlichen
wahlweise „hart“ oder „weich“, also ent- Nichtproportionalschrift erkennen Sie
weder strikt an der Längengrenze oder Leerzeichen und Tabulatoren manchmal

5 Der Ablauf beim Suchen und Ersetzen.


Geht dabei etwas daneben, lässt sich der
Ausgangszustand mit [Alt]+[U] wiederher-
stellen.

6 Auf Wunsch liefert Nano auch statisti-


sche Daten zu dem Text, der gerade bear-
beitet wird.

03-04/2019 www.raspberry-pi-geek.de 27
Basics Texteditor Nano

schwer. Hier definieren Sie in der Konfi- se entfernen Kommentarzeichen. Über


gurationsdatei für beide Ersatzzeichen. die Tastenkombination [Strg]+[R] lesen
Mit [Alt]+[P] ändern Sie die Darstellung Sie komplette Dateien in das offene Do-
zwischen Leerzeichen beziehungsweise kument ein. Die Anzahl der Wörter, Zei-
Tabulatoren und den Ersatzzeichen. len und Zeichen in dem gerade bearbei-
Automatische Einrückungen aktivieren teten Text erhalten Sie mit [Alt]+[D]  . 6
Sie mit [Alt]+[I], eine einzelne führen Sie
mittels [Strg]+[I] aus. Mit [Alt]+[3] kom- Betrieb aus der GUI
mentieren Sie Zeilen aus beziehungswei-
Auf einige der genannten Tastenfolgen
reagiert unter Umständen Ihr Terminal-
programm direkt, anstatt sei an Nano
7
durchzureichen. Abbildung  zeigt die
Einstellungen für das Mate-Terminal: Hier
müssen Sie beispielsweise die oberen
beiden Häkchen aus den Kontrollkäst-
chen entfernten. Innerhalb der GUI lässt
7 Für den Einsatz von Nano sich das Terminalprogramm dann aller-
auf grafischen Desktops dings nur noch per Maus ansprechen.
müssen Sie unter Umständen
die Terminaleinstellungen Fazit
anpassen (hier: die Settings
für das Maté-Terminal). Bei näherem Hinsehen entpuppt sich
Nano als leistungsfähiger Editor für die
Kommandozeile, der sich perfekt auch
Die wichtigsten Tastenkombinationen in Nano für den Remote-Einsatz auf einem head-
Aktion Tasten less angebundenen Raspberry Pi eignet.
Markieren, Ausschneiden, Kopieren Zudem lässt er sich weitgehend an die
Markieren von Text [Alt]+[A] und Pfeiltasten (oder via Maus) eigenen Bedürfnisse anpassen. Wenn Sie
Kopieren von markiertem Text [Alt]+[6] die wichtigsten Tastenkombinationen
Ausschneiden von markiertem Text [Strg]+[K] zur Programmsteuerung verinnerlichen,
Untereinanderstehende Zeilen ausschneiden [Strg]+[K] geht Ihnen die Arbeit mit Nano flott von
Text ab Cursor bis Dateiende ausschneiden [Alt]+[T]
der Hand. (jlu) n
Einfügen von markiertem oder
[Strg]+[U]
ausgeschnittenem Text
Datei an der Cursorposition einfügen [Strg]+[R]
TIPP
Suchen und Ersetzen Je nach Nano-Version kommen zu den
Text suchen [Strg]+[W] hier besprochenen Funktionen noch ei-
Suchen und Ersetzen [Alt]+[R] nige weitere hinzu. Das Quelltextarchiv
Weitersuchen (vorwärts) [Alt]+[W] des jeweils neuesten Releases finden Sie
Weitersuchen (rückwärts) [Alt]+[Q] bei Bedarf auf der Webseite des Projekts
Speichern unter https://www.nano-editor.org. Das
Datei (zwischen)speichern [Strg]+[S] Programm lässt sich mit dem üblichen
Datei speichern [Strg]+[O] Dreisatz ./configure; make; sudo
Programm beenden und Datei speichern [Strg]+[X] make install; sehr einfach aus den
Undo, Redo Quellen bauen.
Aktion abbrechen [Strg]+[C]
Bearbeitungsschritt zurück [Alt]+[U]
Stornierten Bearbeitungsschritt ausführen [Alt]+[E]
Der Autor
Sonstige
Harald Zisler beschäftigt sich seit den
Menü ein- und ausblenden [Alt]+[X]
frühen 1990er-Jahren mit FreeBSD und
Kommentar setzen/löschen [Alt]+[3]
Linux. Er verfasst Zeitschriftenbeiträge so-
Leerräume durch Füllzeichen kennzeichnen [Alt]+[P] wie Bücher zu Technik- und EDV-Themen.

28 www.raspberry-pi-geek.de 03-04/2019
Server Git-Server

Quellcode managen mit Git und dem Raspberry Pi

© Piotr Trojanowski, 123RF


Git à la RasPi
Mit wenigen Handgriffen Als Leser dieser Zeitschrift gehören Sie Ein eigener Git-Server schafft hier Un-
zu den Menschen, die einen Rechner abhängigkeit und eignet sich gut zum
zum Git-Hoster: Die de- nicht nur zum Spielen nutzen. Vielleicht Sammeln von Erfahrungen. Der Raspber-
gehören Programmieren, das Erstellen ry Pi bietet sich als guter Server-Kandidat
zentrale Arbeitsweise von Git von Internet-Seiten oder Texten zu Ihrem an: Dank seiner Netzwerkfähigkeit und
Tätigkeitsfeld. Dabei ist es sinnvoll, einen des in Raspbian integrierten OpenSSH-
erleichtert in Kombination erreichten Stand zu sichern und anschlie- Servers (im Folgenden als SSH-Server be-
ßend weiterzuarbeiten. Manchmal hilft zeichnet) mutiert er mit wenigen Hand-
mit der Netzwerkfähigkeit auch ein Blick in eine vorherige Version griffen zu einem SSH-basierten Git-Ser-
eines Codes oder Dokuments weiter. Das ver. Die oft bemängelte relativ geringe
des RasPi das Verwalten von Versionsverwaltungsprogramm Git un- Bandbreite in Bezug auf Massenspeicher-
terstützt Sie mit einfacher Bedienung zugriffe spielt bei kleineren Projekten nur
Quellcode. Roman Jordan
und großem Funktionsumfang dabei, ein eine untergeordnete Rolle.
Git-Server vervollständigt dieses Umfeld. Ein Git-Server bringt gleich mehrere
Vorteile: Alle Repos liegen an einem Ort.
Server-Zeit Das erleichtert sowohl Backups als auch
das Wiederfinden der Projekte und er-
README Es gibt etliche Git-Hoster, zu den bekann- möglicht deren Synchronisation sowie
testen Vertretern zählen Github, Gitlab eine Zugriffssteuerung. Greifen mehrere
Git erfreut sich nicht nur bei Programmier-
und Sourceforge. Viele ermöglichen das Anwender von mehreren Rechner auf ein
ern einer zunehmenden Beliebtheit: Jeg-
Anlegen eigener Repositories, kurz: Projekt zu, empfiehlt sich generell ein
liche Art von Text lässt sich mit der Versi- Repos. Ein eigenes Repo kostet manch- Server. Zudem übernimmt das Server-
onsverwaltung organisieren. Warum nicht mal Geld, gelegentlich gibt es projektbe- Repo eine zusätzliche Funktion als Daten-
die Repos mit dem Raspberry Pi auf einen zogene Einschränkungen, und möglicher- sicherung. Handelt es sich bei Arbeits-PC
weise bekommt der Hoster früher oder und Server um verschiedene Geräte, er-
eigenen Server legen?
später sogar einen neuen Eigentümer. gibt das ein weiteres Sicherheitsplus.

30 www.raspberry-pi-geek.de 03-04/2019
Git-Server Server

1 Beim ersten Kontakt mit dem zukünftigen Git-RasPi verlangt SSH eine Bestätigung.

Dieser Artikel setzt einige Grundkennt-


nisse im Umgang mit Git voraus. Einen
guten Einstieg  finden Sie beispiels-
weise in einem Git-Workshop  unserer
Schwesterzeitschrift LinuxUser und in
dem Online-Buch „Pro Git“ .

Protokollfragen
Aus grundlegender Sicht entspricht ein
Git-Server einem Dateiserver: Er stellt 2 Mit git clone
den Speicherplatz für die Repos bereit. laden Sie Ihr Projekt
Der Git-Server horcht jedoch nicht an auf den Git-Server.
einem für Git reservierten Netzwerk-Port.
Stattdessen unterstützt Git vier unter-
schiedliche Protokolle zum Datentrans- Zunächst gilt es, auf dem RasPi ein wenig
fer. Eine detaillierte Beschreibung dazu Software zu installieren. Die Anleitung
finden Sie im dritten Kapitel des bereits geht von einem frisch installierten Rasp-
genannten Buchs „Pro Git“. bian-System aus, auf dem Sie den SSH-
Dieser Artikel beschreibt den Aufbau Zugang aktiviert haben, etwa über die Kontaktaufnahme
eines Git-Servers, der SSH für den Trans- Boot Options in raspi‑config. Als Erstes
SSH bringt bei der ersten Kontaktauf-
fer verwendet. Die unter Linux weitver- starten Sie mittels ssh pi@RasPi‑IP eine
breitete Secure Shell bietet eine ver- Remote-Sitzung mit dem Raspberry Pi.
nahme eine Meldung 1 auf den Bild-
schirm. Nach deren Bestätigen startet ein
schlüsselte Datenübertragung sowie Funktioniert die Namensauflösung in
verschlüsselter Datenaustausch. Dabei
eine ausgereifte Identitätsprüfung. Ihrem Netzwerk, nutzen Sie für alle im
trägt der lokale Rechner das Remote-Sys-
tem, hier also den RasPi, in die Liste der
vertrauenswürdigen Hosts des Anwenders
Listing 1 unter ~/.ssh/known_hosts ein.
$ ssh pi@raspberrypi Bei folgenden Verbindungsaufnahmen
pi@raspberrypi:~ $ sudo apt update
ermöglichen diese Daten eine Umge-
pi@raspberrypi:~ $ sudo apt full‑upgrade
bungsprüfung. Ändert sich etwas an der
pi@raspberrypi:~ $ sudo apt install git
Verbindung, beispielsweise durch einen
pi@raspberrypi:~ $ sudo useradd ‑m ‑c "Git‑Repo‑Anwender" ‑s $(which
zwischengeschalteten Mithörer oder eine
bash) git
neue IP-Adresse, erfolgt kein Verbindungs-
pi@raspberrypi:~ $ sudo passwd git
aufbau. Um diesbezüglichen Problemen
pi@raspberrypi:~ $ su ‑ git
git@raspberrypi:~ $ mkdir ‑p repos aus dem Weg zu gehen, sollten Sie Ihren
git@raspberrypi:~ $ exit Router idealerweise so konfigurieren, dass
pi@raspberrypi:~ $ sudo reboot der RasPi immer dieselbe IP erhält.

03-04/2019 www.raspberry-pi-geek.de 31
Server Git-Server

an. Die Inhalte dafür liegen lokal unter-


halb des Verzeichnisses repos/ im
Home-Verzeichnis des anzulegenden
Anwenders git. Listing 2 zeigt, wie Sie
das Git-verwaltete Projekt in Ihrem
Home-Verzeichnis erstellen. Das Kom-
mando git log (letzte Zeile), aufgerufen
im Projekt-Verzeichnis, zeigt Informatio-
nen über das Repo an und dient lediglich
als Kontrolle.
Ein Git-Server hostet typischerweise
nur Bare-Repos. Ein Bare-Repo, also ein
3 Sind einmal die Referenzen gesetzt, kennt Git – wie hier bei git push – das Ziel. nacktes oder bloßes Repo, besitzt im
Gegensatz zu einem normalen Repo kein
Arbeitsverzeichnis – auf dem Server wäre
Artikel genutzten Kommandos statt der das auch sinnlos.
IP-Adresse den Namen des Rechners Zum Initialisieren des Repos auf dem
(typischerweise: raspberrypi). Die erste Server gibt es zwei grundlegende Spiel-
Verbindungsaufnahme erfordert das arten und einige Mischformen. Bei Vari-
Bestätigen der Identitäten (siehe Kasten ante 1 erstellen Sie aus dem lokal vor-
Kontaktaufnahme). handenen Repo ein Bare-Repo und ko-
Nun nehmen Sie via SSH auf dem pieren es auf den Server, beispielsweise
RasPi eine Systemaktualisierung vor (Lis- per Scp. Anschließend klonen Sie vom
ting 1, Zeile 2 und 3) und installieren das Git-Server das Projekt in ein neues Ver-
Paket git (Zeile 4). Anschließend legen zeichnis auf den lokalen Rechner; alter-
Sie den Anwender git an (Zeile 5) und nativ benennen Sie das ursprüngliche
Listing 2 geben ihm ein beliebiges Passwort (Zei- Projektverzeichnis um. Es empfiehlt sich,
$ cd le 6). Danach testen Sie auf dem RasPi das ursprüngliche Verzeichnis erst dann
$ mkdir projekt das angelegte Konto mittels su ‑ git zu löschen, wenn Sie geprüft haben, dass
$ cd projekt (Zeile 7). Im letzten Schritt legen Sie als die gewünschten Dateien auch der Ver-
$ echo "Das ist mein Projekt." > Nutzer git das Verzeichnis repos an (Zei- sionsverwaltung unterliegen.
info.txt le 8) und verlassen anschließend die Listing 3 zeigt das Vorgehen ausgehend
$ git init Git-Umgebung (Zeile 9). Am Ende der vom Projektverzeichnis $HOME/project/.
$ git add info.txt Sitzung erfolgt ein Reboot des Raspberry Das Erstellen des Bare-Repos erfolgt eine
$ git commit ‑m "Erster Commit" Pi (Zeile 10). Ebene über dem Projektverzeichnis (Zei-
$ git log Das Kommando useradd in Zeile 5 legt
git@raspberrypi:~ $ exit den Anwender git an – ein typischer
pi@raspberrypi:~ $ sudo reboot Name in diesem Umfeld. Der Parameter Windows und Git
‑c gibt dem Kommando eine Beschrei-
Auch als Windows-Anwender erhalten
bung des Anwenders mit, ‑s $(which
Sie Zugriff auf die Inhalte des RasPi-Git-
Listing 3 bash) setzt die Bash als Login-Shell für
Servers. Dazu benötigen Sie eine für Win-
01 ### Bare Repo erstellen und
git. Ohne diese Angabe erhält der User
dows taugliche Git-Bash , die auch
auf den Server kopieren die Vorgabe-Shell, bei RasPi wäre das Sh.
gleich die SSH-Kommandos mitbringt. Un-
02 ### dazu eine Ebene nach oben Die Sh besitzt Einschränkungen in der
sere Tests mit zwei unterschiedlichen Win-
wechseln Bedienung und ist nicht so komfortabel
dows-10-Systemen förderten keine Auffäl-
03 $ cd .. wie die Bash.
ligkeiten im Umgang mit den RasPi-Repos
04 $ git clone ‑‑bare projekt
zutage. Das Einbinden des RasPi-Git-Ser-
05 $ scp ‑r projekt.git git@ Repos marsch vers in Eclipse funktionierte auch auf dem
raspberrypi:repos
06 ### Verzeichnis umbenennen und Weiter geht es mit dem Git-Repo, das Sie
Microsoft-Betriebssystem problemlos 5.
Da Windows die Dateien auf dem Git-
vom Server klonen auf dem Server hosten wollen. In unse-
Server nicht direkt zu sehen bekommt,
07 $ mv projekt projekt.org rem Beispiel legt auf dem RasPi der An-
08 $ git clone git@ sind diese gegen uneingeladene Gäste wie
wender git im Unterverzeichnis repos/
raspberrypi:repos/projekt Trojaner mit Ransomware gut geschützt.
ein Remote-Repository namens projekt

32 www.raspberry-pi-geek.de 03-04/2019
Git-Server Server

Listing 5
$ ssh‑keygen
$ ssh‑copy‑id ‑i .ssh/id_rsa git@
raspberrypi

4 Schlüsseldateien, wie hier der Public-Key, besitzen eine lesbare Kennung.

le 3). Das Klonen mit der Option bare stellen Sie im lokalen Repo die Verknüp-
erzeugt das Bare-Repo im Verzeichnis fungen zu diesem Remote-Verzeichnis
projekt.git (Zeile 4). Die Dateinamens- und schieben danach die Dateien auf
erweiterung .git ist typisch für Bare- den Server (Zeile 9 bis 12).
Repos. Wie das Listing zeigt, benötigen Die Option ‑u in Zeile 12 bewirkt das
Kommandos, die sich auf ein Bare-Repo Speichern der angegebenen Referenzen.
beziehen, keine explizite Angabe der Später nutzt Git diese beim Ausführen
Dateiendung .git. der Kommandos push und pull auto-
Das Klonen erzeugt auf dem Arbeits- 3
matisch wieder  . Im Gegensatz zu
rechner das Verzeichnis projekt, über- Variante 1 können Sie hier im Projekt-
trägt die Dateien und setzt zudem einige verzeichnis weiterarbeiten. Sind die Refe-
2
Referenzen  . Dazu gehören der Name renzen entsprechend gesetzt, kommen
des Remote-Repos und der beteiligten push und pull ohne weitere Angaben
Zweige. Erfolgen keine weiteren Anga- aus. Gesetzte Referenzen lassen sich bei
ben, setzt Git den Namen des Remote- Bedarf auch ändern.
Repos auf origin und den der beiden Es empfiehlt sich, bereits vorhandene
Zweige auf master. Git-Projekte von Zeit zu Zeit in ein sepa-
Für Variante 2 erstellen Sie auf dem rates Verzeichnis zu klonen und zu prü-
Server zunächst das Verzeichnis pro‑
jekt.git und initialisieren dort ein Bare-
Repo (Listing 4, Zeile 3 bis 6). Dann er-

Listing 4
01 ### Anmelden auf RasPi ‑
Anwender git
02 $ ssh git@raspberrypi
03 git@raspberrypi:~ $ cd repos
04 git@raspberrypi:~ $ mkdir
project.git
05 git@raspberrypi:~ $ cd
project.git
06 git@raspberrypi:~ $ git init
‑‑bare
07 git@raspberrypi:~ $ exit
08 ### Auf dem Arbeitsrechner
09 $ cd 5 Auch Windows bleibt
10 $ cd projekt nicht außen vor: Hier koope-
11 $ git remote add origin git@ riert der Git-Server mit Ec-
raspberrypi:repos/projekt lipse.
12 $ git push ‑u origin master

03-04/2019 www.raspberry-pi-geek.de 33
Server Git-Server

6 Aktivieren Sie beim Git-User die Git-Shell, blockt SSH den Zugriff auf den Account.

fen, ob alle gewünschten Dateien auch im Verzeichnis ~/.ssh/ im Home-Ver-


Dateien zum Artikel tatsächlich unter Git-Kontrolle stehen. zeichnis des jeweiligen Anwenders. Die
herunterladen unter Die Kommandos git status und git Schlüsseldateien enthalten einzeilige
www.raspi-geek.de/dl/42102 ls‑files, ausgeführt im jeweiligen Pro- ASCII-Zeichenketten  .4
jektverzeichnis, leisten dabei wertvolle Der öffentliche Schlüssel wird in den
Dienste. Des Weiteren sollten Sie gleiche SSH-Schlüsselbund des gewünschten
Zweige im Remote- und im lokalen Repo Anwenders auf dem Host eingetragen, in
auch gleich benennen: Das erhöht die diesem Fall in die Datei /home/git/.ssh/
Übersichtlichkeit. authorized_keys.
Das Remote-Repo ist nun erstellt und Einmal bekannt gemacht, verwendet
lässt sich mittels des Kommandos git SSH die Public-Key-Authentifikation. SSH
clone git@raspberrypi:repos/projekt bietet eine Vielzahl an Konfigurations-
auschecken. Zugegeben, ein paar Nach- möglichkeiten . Als Clients verwende-
Listing 6 teile gibt es da: So müssen Sie sich das ten wir im Test Systeme unter Debian 9,
Passwort merken und bei jeder Git- Fedora 29 und CentOS 7.5.
pi@raspberrypi:~ $ sudo chsh git
Aktion eingeben. Arbeiten mehrere
‑s $(which git‑shell)
Personen an dem Projekt, erfordert das
Ändern des Passworts gar einen Rund- Unter Stress
brief. Als Administrator haben Sie keine
Kleine Repositories bringen den Git-Server
Listing 7 Möglichkeit zu kontrollieren, wer alles
auf dem Raspberry Pi nicht aus dem Tritt.
das Passwort kennt.
pi@raspberrypi:~ $ sudo ‑u git Um den Extremfall zu testen, soll sich der
Darüber hinaus besitzt der Anwender
mkdir /home/git/repos/projekt.git Git-RasPi am Linux-Kernel versuchen, der
git auf dem RasPi einen Shell-Zugriff. Das
pi@raspberrypi:~ $ sudo ‑u git nicht weniger als 25 Millionen Zeile Code
erlaubt ein versehentliches Löschen –
git init ‑‑bare /home/git/repos/ auf die Waage bringt. Wir klonten ihn im
beispielsweise das der Repos. Bei einer
projekt.git Test mit dem Kommando aus Listing 8 di-
direkten Internet-Anbindung ist das
rekt auf den RasPi, was gut funktionierte.
noch problematischer.
Problematisch wurde es erst beim Aus-
checken: Die (sicherlich aufgrund der Ver-
Listing 8 Schlüsseldienst schlüsselung) anfangs bei 100 Prozent lie-
pi@raspberrypi:~ $ sudo ‑u git gende Prozessorlast pendelte sich mit zu-
Das bei der SSH-Authentifizierung weit-
git clone ‑‑bare git://git. nehmender RAM-Auslastung deutlich unter
verbreitete Public-Key-Verfahren löst das
kernel.org/pub/scm/linux/kernel/ 10 Prozent ein. Nach knapp zwei Stunden
Passwortproblem. Das Verfahren basiert
git/stable/linux.git /home/git/ ging dem RasPi dann jedoch endgültig die
auf einem Schlüsselpaar aus privatem
repos/linux
und öffentlichem Schlüssel. Beide liegen
7
Puste aus, sprich: der Arbeitsspeicher .

34 www.raspberry-pi-geek.de 03-04/2019
Git-Server Server

Mit dem Kommando ssh‑keygen er- 6


etwa über SSH, blockiert das System  .
Weitere Infos und
stellen Sie bei Bedarf ein Schlüsselpaar Zum Ändern der Shell loggen Sie sich via
interessante Links
(Listing 5, erste Zeile). Ein Prompt gibt SSH als Anwender pi auf dem Git-RasPi
Ihnen dabei die Möglichkeit, eine Pass- ein und holen sich mit Sudo die entspre- www.raspi-geek.de/qr/42102
phrase einzugeben. Wie der Begriff Pass- chenden Rechte (Listing 6).
phrase verdeutlicht, können Sie hier gan- Wie Sie aus den Varianten 1 und 2 be-
ze Sätze angeben. Die Passphrase sichert reits wissen, erfordert das Anlegen eines
den Zugriff auf den privaten Schlüssel. Es Git-Repos auf dem Server immer ein
empfiehlt sich, eine solche zu setzen und wenig Zutun des Anwenders git. Da die
zu notieren. Dank der auf den Desktop- Git-Shell dies nun aber nicht mehr er-
Systemen laufenden Key-Manager brau- laubt, müssen Sie die entsprechenden
chen Sie später die Passphrase nur ein- Kommandos über den Raspberry-Pi-
mal pro Sitzung einzugeben. Nutzen Sie Nutzer pi auf dem Git-RasPi ausführen.
bereits ein Schlüsselpaar, können Sie Für das in Variante 2 beschriebene An-
auch dieses verwenden. legen eines Bare-Repos auf dem Server
Erfolgt der Aufruf von Ssh-keygen sieht das dann zum Beispiel so aus wie in
ohne Parameter, enthält anschließend die Listing 7. Lassen Sie sich nicht durch das
Datei id_rsa den privaten, id_rsa‑pub doppelte git in der zweiten Zeile verwir-
den öffentlichen Schlüssel. Das Kom- ren: Die erste Angabe (‑u git) steht für
mando ssh‑copy‑id, ein Skript aus dem den Anwender, die zweite (git init) für
Paket ssh, trägt den öffentlichen Schlüs- das Kommando.
sel in die Schlüsseldatei des Hosts ein
(Listing 5, zweite Zeile). Fazit
Bei Bedarf legt das Skript das Verzeich-
nis ~/.ssh/ an und setzt die notwendi- Der Einsatz des RasPi als Git-Server hin-
gen Zugriffsrechte. Die Option ‑i dient terlässt einen gemischten Eindruck. Hält
zum Angeben des zu übertragenden sich der Umfang der Repos in Grenzen,
Schlüssels. Erfolgt keine Angabe des läuft alles wie erwartet. Der Umgang mit
Schlüssels, dann überträgt Ssh-copy-id dem eigenen Git-Server macht Spaß, die
alle auf dem Client vorhandenen öffent- Kommunikation mit dem Server gestaltet
lichen Schlüssel. sich recht einfach. Als Anwender benö-
tigt man nur wenige Kommandos.
Tür zu Der Linux-Kernel-Test zeigt jedoch
auch die Grenzen des Systems auf: Allzu Der Autor
Bleibt noch der zweite Schwachpunkt große Git-Projekte sollten Sie besser
Roman Jordan arbeitet seit mehr als
auszuräumen, der Shell-Zugriff des An- nicht mit dem RasPi managen. Dafür 25 Jahren mit Linux, seit rund 5 Jahren
wenders git. Das Paket Git bringt dazu bräuchte es ein System mit mehr Arbeits- mit der Kombination aus ARM und Linux
die sehr restriktive Git-Shell mit, inner- speicher und idealerweise einer schnel- und seit Kurzem auch mit dem Rasp-
halb derer das System nur noch Git-Akti- leren Anbindung des Massenspeichers, berry Pi.
vitäten erlaubt. Normale Anmeldungen, etwa über die M.2-Schnittstelle. (cla) n

7 Rien ne va plus: Das Auschecken des Linux-Kernels überfordert den Git-RasPi.

03-04/2019 www.raspberry-pi-geek.de 35
Multimedia Raspberry Pi DVB TV µHAT

Fernsehen mit dem


Raspberry Pi DVB TV µHAT

Himbeer-TV

© Ali Ender Birer, 123RF


Der DVB TV µHAT rüstet den Neben den diversen RasPi-Modellen H.264-enkodiert (MP4), sodass die Wie-
führt die Raspberry Pi Foundation eine dergabe auf einem Raspberry Pi dank
Raspberry Pi mit einem DVB- Reihe von Aufsätzen im Programm, so- hardwaregestütztem Dekodieren kein
genannte HATs. Zu den bekanntesten Problem darstellt.
T/T2-Tuner auf. Die deutsche HATs gehören die Kameramodule oder Die Sender in Deutschland verwenden
das Sense HAT, das über verschiedene allerdings H.265 alias HECV, und das
TV-Landschaft schränkt des- Sensoren und ein Punktmatrix-Display überfordert in der gängigen Auflösung
verfügt. Als eine der letzten Neuerungen fast jeden auf dem Markt befindlichen
sen Möglichkeiten allerdings präsentierte die Foundation Ende 2018 SBC: Der Codec muss mit Software um-
einen TV-Adapter mit einem Empfänger gesetzt werden. Die Kernfrage lautet
deutlich ein. Bernhard Bablok
1
für DVB-T2. Die Platine  ist der erste deshalb: Lohnt sich die Investition in den
HAT, der die neue µHAT-Spezifikation für TV HAT für deutsche Raspberry-Nutzer
Half-Size-Boards erfüllt (siehe Kasten überhaupt? Und wie lässt sich das Fern-
µHAT-Spezifikationen). sehbild nicht nur empfangen und auf-
Der verbaute Empfänger verspricht zeichnen, sondern auch tatsächlich wie-
DVB-T/T2-Empfang – Ersteres stirbt in dergeben? Diesen beiden Fragen wid-
README Deutschland mit dem Ausbau des T2- men wir uns in der zweiten Hälfte dieses
Standards langsam aus. Allerdings han- Beitrags, zuerst aber geht es in den
Vor Kurzem hat die Raspberry Pi Foundation
delt es sich um einen reinen Empfänger nächsten Abschnitten um die Installa-
mit dem DVB TV µHAT ein neues Produkt
(Tuner), einen Decoder für den Inhalt tion und Konfiguration.
auf den Markt gebracht. Die Platine mit des Datenstroms gibt es nicht. Das zieht Vom Kosten-Nutzen-Aspekt her be-
integriertem DVB-T/T2-Empfänger passt entscheidende Konsequenzen für das trachtet lässt sich die Sinnfrage schnell
perfekt auf einen Pi Zero. Im deutschen Zusammenspiel mit einem Raspberry Pi beantworten: Ein Pi Zero WH mit DVB-T-
nach sich. In Großbritannien, wo die HAT, Speicherkarte und Netzteil kostet
Fernsehalltag hat diese Kombination aber
Foundation sitzt, gibt es DVB-T2 schon etwa so viel wie eine gängige Set-Top-
gewisse Tücken.
länger. Dort werden die Übertragungen Box für den DVB-T2-Empfang. Letztere

36 www.raspberry-pi-geek.de 03-04/2019
Raspberry Pi DVB TV µHAT Multimedia

kann im Gegensatz zum Raspberry Pi 1


dung  ). Damit steht der Verwendung
aber die Übertragungen nicht nur emp- einer RTC oder eines Mini-Displays
fangen und aufzeichnen, sondern auch nichts mehr im Weg.
wiedergeben. Wer also nur fernsehen Als Unterbau für den DVB TV µHAT
will, fährt mit der Set-Top-Box besser als bietet sich ein Pi Zero WH an, dessen
mit dem Eigenbau, muss aber die übli- Performance dafür locker genügt. Im
cherweise fehlerhafte Firmware der Fer- Prinzip funktioniert der TV-HAT aber
tiglösung in Kauf nehmen. Wer Privat- auch ohne Probleme mit jedem anderen
sender sehen möchte, dem bleibt sowie- Raspberry-Pi-Modell. Selbst bei einem
so keine Wahl: Der TV µHAT verfügt nicht Pi Zero liegt die Systemlast – auch bei
über eine Option für den Anschluss ei- der Auslieferung zweier Streams – unter
ner Abokarte. 10 Prozent. Statt einer für den vorgese-
henen Einsatzzweck eher kontraproduk-
Zusammenbau tiven externen Festplatte genügt als
Massenspeicher eine ausreichend di-
Im Lieferumfang des TV-Boards befindet mensionierte Micro-SD-Karte. Entspre-
sich neben dem eigentlichen µHAT ein chende Exemplare mit 128 GByte Kapa-
Adapter für die gängigen Koax-Anten-
nenkabel sowie ein Satz billiger Plastik-
abstandshalter für das Fixieren des HATs
auf dem Pi. Die Platine ist nicht fest mit
einer Buchse verlötet; diese liegt eben-
falls bei und Sie stecken sie einfach zwi-
schen den Raspberry Pi und den HAT.
Der TV µHAT blockiert damit alle Pins.
Da die Kommunikation zwischen Rasp-
berry Pi und HAT allerdings per SPI (SPI0
mit CS0) erfolgt, steht der Nutzung der
meisten Pins für eigene Zwecke nichts
im Weg. Dazu montieren Sie den HAT
entweder auf einen Expander (Multi-
plexer) wie den pHAT-Stack, oder Sie
verwenden statt der mitgelieferten
Buchse eine Version mit extralangen
Pins, etwa von Adafruit (siehe Abbil- 1 Der Raspberry Pi DVB TV µHAT auf einem Pi Zero (hier mit langen Pins).

µHAT-Spezifikationen
Die Raspberry Pi Foundation hat die RasPis mit 40W-GPIO-Headern, dem Raspberry Pi, das Board zu identifizieren und bereits beim Start
also die Modelle ab den B+-Varianten, speziell unter dem Gesichts- automatisch alle benötigten Treiber zu laden.
punkt der Erweiterbarkeit durch Aufsteckmodule entworfen. Im Oktober 2018 entstand dann die µHAT-Spezifikation für HATs
Im Pi-Jargon heißen solche Module HATs, die Spezifikationen dafür halber Baugröße. Solche µHATs folgen denselben elektrischen Spezi-
finden sich im Github-Repo der Foundation . Das Kürzel HAT steht fikationen wie bisherige HATs voller Baugröße. Auch die vier Mon-
dabei für „Hardware Attached on Top“, was sich schlicht als „Hard- tagelöcher wurden beibehalten; manche µHats lassen dabei aus
ware zum Aufstecken“ übersetzen lässt. HATs sind nicht abwärts- praktischen Gründen eins davon weg: Der DVB TV µHAT beispiels-
kompatibel mit den ursprünglichen RasPi-Modellen 1A und 1B. weise lässt eins aus, um auf konventionellen RasPi-Modellen wie
Die prominenteste Änderung von HATs gegenüber älteren Erweite- dem 3B+ den Zugang zum Display-Connector nicht zu verbauen.
rungsplatinen für den Raspberry Pi besteht in der Einführung zweier Von den ähnlich dimensionierten pHATs, wie sie beispielsweise
spezieller Pins am 40W-Header: ID_SC und ID_SD dienen spezifisch Pimoroni anbietet, unterscheidet sich das neue Format zumindest
und exklusiv dem Anschluss eines ID-EEPROMs. Dieser Speicher- optisch kaum, wohl aber bei den elektrischen Spezifikationen. Zu-
baustein auf dem HAT identifiziert die Erweiterungsplatine sowie die dem waren pHATs niemals ein offizieller Formfaktor; deswegen
darauf verbauten Hardware-Komponenten und enthält darüber garantiert die Foundation für sie – im Gegensatz zu µHATs – keine
hinaus Konfigurationsdaten für die GPIOs. Diese Angaben erlauben automatische Konfiguration. (jlu)

03-04/2019 www.raspberry-pi-geek.de 37
Multimedia Raspberry Pi DVB TV µHAT

sich Tvheadend. Allerdings wirkt die


Weboberfläche altbacken und in vielen
Bereichen nicht gerade intuitiv. Für den
täglichen Betrieb nach der Einrichtung
stellt das aber kein Problem dar, denn es
gibt für Tvheadend viele verschiedene
Clients mit besserer Oberfläche.
Die Konfigurationsoberfläche errei-
chen Sie über die URL http://RasPi-IP:
9981. Beim ersten Aufruf erscheint ein
Wizard, der zuerst die Sprache für die
Weboberfläche und für das EPG abfragt
und anschließend zweimal neu startet.
Im Test klappte das Umschalten auf
Deutsch zu diesem Zeitpunkt nicht, nach
einem späteren Neustart des Rechners
2 Die offizielle mechanische Spezifikation für den neuen µHAT-Formfaktor stellt die erschien die Oberfläche dann aber in der
Raspberry Pi Foundation über ihre Gihub-Seite bereit. gewählten Sprache.

Konfiguration
zität wandern mittlerweile für um die Installation
25 Euro über den Ladentisch. Tvheadend lässt sich umfassend konfi-
Darüber hinaus benötigen Sie eine Wie oben beschrieben kann aktuell kein gurieren und bietet unzählige Einstell-
Antenne, je nach Entfernung zum nächs- Raspberry Pi die übertragenen Sender möglichkeiten, wozu sich im Netz eben-
ten DVB-T2-Sendestandort mit aktiver tatsächlich anzeigen. Wir bauen deshalb so viele Klick-Anleitungen finden. Wir be-
Verstärkung oder sogar als Dachanten- einen reinen Streaming-Server und Vi- schränken uns hier auf das Wesentliche.
ne. Gute Erfahrung haben wir mit der deorekorder (PVR) – die Wiedergabe Der Wizard führt zwar durch den ge-
aktiven DVB-T/T2-HD-Antenne von CSL erfolgt dann auf einem klassischen PC samten Konfigurationsprozess; wegen
gemacht . Bei rund 30 Kilometer Ent- oder einem Smartphone/Tablet. Dafür der besonderen Situation mit DVB-T2 in
fernung vom Olympiaturm in München genügt als Basis ein aktuelles Raspbian Deutschland sollten Sie ihn aber besser
machte sie den Unterschied zwischen „Stretch“ Lite, das Sie wie üblich installie- nach den ersten drei Schritten abbre-
keinem und sehr gutem Empfang aus. ren und konfigurieren. Wie für jeden chen. Nach der Sprachwahl folgt als
Der Verstärker der Antenne speist sich Server vergeben Sie auch hier eine feste Nächstes der Netzwerkzugriff sowie das
aus einem USB-Anschluss. Die Leistungs- IP-Adresse für den RasPi. Anlegen von Benutzern. Das Netzwerk-
aufnahme liegt bei 20 mA, die der Zero Als einziges Zusatzpaket benötigen Feld lassen Sie leer, außerdem legen Sie
locker an seinem USB-Ausgang liefert – Sie dann noch das Paket tvheadend, das einen Administrator und einen norma-
Sie benötigen also kein zusätzliches Sie über die Paketverwaltung hinzu- len Benutzer an.
Netzteil dafür. fügen (Listing 1). Die Installation fragt Rein theoretisch könnten Sie alle
Auch die Gesamtleistungsaufnahme einen Master-User samt Passwort ab, Felder mit einem Asterisk (*) füllen, aber
des Systems hält sich in Grenzen. Selbst den Sie später aber im Grunde nur für das führt an manchen Stellen zu Proble-
während Aufzeichnungen verbraucht die Erstkonfiguration benötigen. Nach men. Als beste Strategie erscheint es, die
die Kombi aus Pi Zero und HAT nur etwa der Installation sollten Sie eine Sicher- Konfigurationseinstellungen stets über
300 mA – die Netzteilverluste dürften da heitskopie der Einstellungen ziehen (Zei- den Admin-Account zu erledigen und
höher ausfallen. Ein ständig durchlau- le 3). Verkonfigurieren Sie später das Sys- die Programmierung von Sendungen
fendes System überlastet also weder die tem, haben Sie damit die Möglichkeit für über das normale Benutzerkonto vorzu-
Stromrechnung noch die Umwelt. einen sauberen Neuanfang ohne kom- nehmen. Theoretisch könnte auch jedes
plette Neuinstallation. Auch nach erfolg- Familienmitglied als eigener Nutzer fun-
reicher Konfiguration sollten Sie an eine gieren. Jeder sieht dann nur seine Auf-
Listing 1 Sicherung denken. nahmen, aber da jede geplante Aufnah-
01 $ sudo apt update Ab jetzt benötigen Sie nur noch einen me den Tuner blockiert, bekommen
Webbrowser für die Konfiguration der dann andere Nutzer Probleme, ohne
02 $ sudo apt install tvheadend
Software. Als leistungsfähige Software deren Ursache feststellen zu können.
03 $ sudo cp ‑a /var/lib/hts / für das Streamen und Aufnehmen der Im nächsten Schritt folgt die Auswahl
home/hts
empfangenen Programme empfiehlt des TV-Netzwerks. Unter Network 2 sehen

38 www.raspberry-pi-geek.de 03-04/2019
Raspberry Pi DVB TV µHAT Multimedia

Sie den Tuner des HATs (Sony CXD2880), In der Liste mit den angelegten Muxes
dem Sie die einzige Auswahl zuweisen, sehen Sie dann auch, wie viele Services
DVB-T Network – auch wenn Sie in einem der Tuner gefunden hat. Falls sich hier
DVB-T2-Gebiet wohnen. Den nächsten nichts tut, dann hilft ein Kaltstart des
Dialog brechen Sie dann mit Cancel ab. Systems – also herunterfahren, vom
An dieser Stelle starten Sie den Service Strom nehmen und wieder starten. Der
mit folgendem Kommando neu: erste Scan der Muxe stellt die größte
Hürde beim Einrichten von Tvheadend
$ sudo systemctl restart tvheadenU dar und nimmt selbst bei korrekter Defi-
d.service nition einige Zeit in Anspruch.

Danach laden Sie die Webseite erneut Abschlussarbeiten


und melden sich als Administrator an.
Die Oberfläche sollte jetzt in Deutsch zur Nach dem Scan sollte Tvheadend in je-
Verfügung stehen. dem Mux die jeweiligen Sender (ent-
sprechend der Tabelle aus der Wikipe-
Muxe, Bouquets, Kanäle dia) auflisten. Als letzter Schritt steht das
sogenannte Mapping der Services an.
Vor der weiteren Konfiguration gilt es, Dazu klicken Sie im Konfigurationsmenü
eine Reihe von Begriffen zu klären. Da- unter Konfiguration | DVB-Input | Services
bei stiftet allerdings der Gebrauch der- auf den Button Services zuordnen und
selben Namen für unterschiedliche Din- wählen dort das Mapping aller Services.
ge etwas Verwirrung. Falls Sie einzelne Sender partout nicht
Im Gegensatz zum Radio, bei dem sehen wollen, dann wählen Sie vorher
man auf einer Frequenz maximal einen
einzelnen Sender empfangen kann, sen-
det das digitale Fernsehen die Sender
gebündelt in sogenannten Bouquets. In
Deutschland belegen die drei Bouquets
der öffentlich-rechtlichen Sender je
einen Kanal mit einer Bandbreite von
8 MHz. Tvheadend allerdings verwendet
den Begriff Kanal als Synonym für Sen-
der. Bouquets nennt Tvheadend dage-
gen Muxe oder in der Einzahl Mux (kurz
für Multiplex).
Sie müssen jetzt also für das im letzten
Schritt erzeugte TV-Netzwerk drei Muxe
für die drei Bouquets erstellen und zu-
ordnen. Den entsprechenden Dialog in
3
Abbildung  erreichen Sie über die
Schalterleiste oben auf der Tvheadend-
Webseite unter Konfiguration | DVB-
Input | Muxes | Hinzufügen. Den Dialog
rufen Sie dreimal auf und füllen die Para-
meter entsprechend aus.
Die Daten für den Senderstandort er-
mitteln Sie am bequemsten über die in
der Wikipedia hinterlegten Sendertabel-
4
le , siehe Abbildung  . Die techni-
schen Daten finden Sie auf derselben
Seite weiter unten unter Sendeparameter
aufgeführt. Im Zweifelsfall übernehmen 3 Für jedes der drei Bouquets der öffentlich-rechtlichen Sender müssen Sie
Sie die Daten aus Abbildung  .3 den DVB-T2-Sendeparameter-Dialog von Tvheadend gesondert ausfüllen.

03-04/2019 www.raspberry-pi-geek.de 39
Multimedia Raspberry Pi DVB TV µHAT

aus der Liste der Services diejenigen aus, arbeiten laufend daran, die Codec-
die Sie nutzen möchten, und mappen Unterstützung zu optimieren.
nur diese. Auf diesem Weg entsorgen Sie 6
In Abbildung  sehen Sie links vor je-
beispielsweise die beiden Internet-Sen- der Sendung zwei Icons. Ein Klick auf das
der, die sich per Tuner sowieso nicht erste zeigt einen Dialog mit einer Kurz-
empfangen lassen. Optional passen Sie beschreibung zur jeweiligen Sendung
noch Kanalnummern über Konfigurati- an, der auch zusätzliche Schalter für das
on | Kanal/EPG an Ihre Vorstellungen an. Fernsehen oder eine Aufnahme bereit-
Nach dem Mapping der Services stellt. Das zweite Icon startet direkt einen
wechseln Sie mithilfe des Schalters in Tvheadend-eigenen Web-Mediaplayer.
der obersten Zeile in den elektronischen Da dieser (zumindest beim getesteten
Programmführer (EPG). Dort sehen Sie Firefox) im Test scheiterte, empfiehlt sich
nun eine Übersicht der gerade laufen- der Weg über das erste Icon.
den Programme  . 6 Einfacher geht es, wenn Sie sich die
Liste aller Sender-URLs herunterladen.
Fernsehen Die in der Playlist gespeicherten Sender-
URLs lassen sich dann direkt im VLC-Play-
Sofern Sie für die Konfiguration einen er anwählen. Auf diesem Weg müssen
nicht allzu alten Desktop oder Laptop Sie also gar nicht erst das Webfrontend
nutzen, können Sie jetzt direkt das Live- von Tvheadend öffnen. Die Playlist erhal-
Programm abrufen. Dazu benötigen Sie ten Sie über den Link http://RasPi-IP:
einen Mediaplayer, der den Codec 9881/playlist/channels.m3u.
HECV/H.265 beherrscht. Noch komfortabler sieht es sich mit ei-
Hier empfiehlt sich der für alle gängi- nem ausgewachsenen Tvheadend-Client
gen Plattformen verfügbare VLC. Even- fern. Auf der Webseite des Projekts fin-
tuell lohnt sich auch ein Update auf die det sich eine große Auswahl an entspre-
aktuellste Version, denn die Entwickler chenden Programmen für alle gängigen
Plattformen .
Verwenden Sie Android, dann laden
Sie die in der Basisversion kostenlose
App TVHClient aus dem Playstore herun-
ter . Für 1,99 Euro schalten Sie zusätzli-
che Funktionen frei. Die App ist einfach
aufgebaut und funktionell. Insbesondere
der nach Genre eingefärbte Programm-
führer der einfach aufgebauten und
funktionellen App überzeugt  . 7
4 Wikipedia hält eine Liste der Senderstandorte mit Kanalinformationen bereit. Auch unter Android empfiehlt sich
VLC als Mediaplayer. Im Test wusste VLC
mit den vom RasPi gelieferten Streams
TIPP umzugehen, im Gegensatz zu den ein-
gebauten Mediaplayern der Hersteller.
Neben dem Import der Sendertabelle via Wikipedia gibt es inzwischen auch noch einen we-
Die Kombi aus Pi Zero WH und DVB-T-
sentlich komfortableren Weg, die Senderdaten für Tvheadend zu generieren: die DVB-T-Tools
Stick mutiert so zum idealen mobilen
des deutschen Raspberry-Pi-Distributors Pi3g auf der Webseite Picockpit.com . In der Fernseh-Provider. Konfigurieren Sie den
Oberfläche setzen Sie ganz unten im Dialog 5 ein Häkchen vor Add all DVB-T frequencies Pi Zero zudem als Access Point, der sein
(Germany) und klicken dann auf Submit. eigenes WLAN aufspannt, können Sie
Als Resultat erhalten Sie eine Datei aa‑All.txt zum Download angeboten. Sie enthält alle auch unterwegs auf Ihren Mobilgeräten
notwendigen DVB-T2-Kanaldefinitionen für eine Sendersuche mit Tvheadend. Diese Datei das aktuelle Fernsehprogramm genie-
legen Sie auf dem Raspberry Pi im Verzeichnis /usr/share/dvb/dvb‑t/ oder /usr/ ßen. Dank der geringen Leistungsauf-
share/tvheadend/data/dvb‑scan/dvb‑t/ ab. Dann starten Sie den RasPi neu, legen in nahme läuft der Zero samt TV µHAT
ohne Probleme an einer Powerbank.
Tvheadend eine neue Kanalkonfiguration an und starten die Sendersuche. Eine ausführliche
Auch das Live-Fernsehen von zwei
Beschreibung dazu finden Sie auf der Webseite von Pi3g . (jlu)
Sendern gleichzeitig funktioniert – aller-

40 www.raspberry-pi-geek.de 03-04/2019
Raspberry Pi DVB TV µHAT Multimedia

dings nur, wenn beide Sender aus dem-


selben Bouquet stammen. In diesem Fall
erweist sich jedoch das WLAN als Bottle-
neck, nicht die Rechenpower des Pi Zero.

Videorekorder
Zwar macht auch das Live-Fernsehen
Spaß, die eigentliche Stärke von Tvhead-
end liegt aber in seinen Aufnahmefunk-
tionen. Bevor Sie diese jedoch nutzen 5 Die DVB-T-
können, müssen Sie ein wenig an den Tools auf Picock-
Einstellungen des Videorekorders in der pit.com erleich-
Konfiguration des Tvheadend-Diensts tern das Einrich-
schrauben. Dazu wechseln Sie mittels ten des DVB TV
Konfiguration | Aufnahme in den entspre- µHAT für die
chenden Dialog. Dort sehen Sie eine Lis- deutsche Sender-
te sogenannter Aufnahmeprofile. Im landschaft.
Auslieferungszustand gibt es davon nur
ein einziges, das Default-Profil. Markie-
ren Sie es und wählen Sie dann Bearbei- Neben dem Aufnahmeverzeichnis soll-
ten. Danach wechseln Sie in den An- ten Sie bei dieser Gelegenheit gleich
sichtsmodus Experte. noch die globalen Einstellungen für Auf-
Im Profil lassen sich diverse Einstellun- nahmen anpassen. Interessant wäre hier
gen ändern. Im ersten Schritt passen Sie zum Beispiel die Vor- und Nachlaufzeit
den Pfad zum Aufnahmeverzeichnis von bei jeder Aufnahme. Diese Zeiten lassen
/var/lib/hts/ nach /data/videos/ an. sich zusätzlich im Menü Konfiguration |
Nach der Änderung sollten Sie nicht ver- Kanal/EPG individuell für jeden Sender
gessen, das Profil wieder zu speichern. oder bei Autoaufnahmen überschreiben
Das entsprechende Verzeichnis legen Sie – nicht jeder Sender ändert sein Pro-
auf der Kommandozeile des Raspberry- gramm aufgrund aktueller Ereignisse.
Pi-Systems mit den beiden folgenden Eine weitere wichtige Einstellung be-
Kommandos an: trifft den Namen der abgespeicherten

$ sudo mkdir ‑p /data/videos


$ sudo chown ‑R hts:hts /data

Statt /data/videos/ dürfen Sie auch


einen anderen Pfad wählen. Wichtig ist
nur, dass Tvheadend die aufgenomme-
nen Sendungen nicht in /var/lib/hts/
ablegt. Sinn und Zweck der ganzen Ope-
ration besteht darin, dass sich das Ver-
zeichnis /data/videos mit den Aufnah-
men später freigeben lässt, ohne dabei
auch die Konfigurationsdateien offenzu-
legen, die ebenfalls unterhalb von /var/
lib/hts lagern.
Alternativ könnten Sie unter /data/
videos/ auch ein Netzwerklaufwerk
oder eine externe Festplatte mounten.
Dann schreibt Tvheadend die Aufnah-
men direkt auf einen Server beziehungs-
weise die externe Platte. 6 Der elektonische Programmführer (EPG) mit den aktuellen Programmen.

03-04/2019 www.raspberry-pi-geek.de 41
Multimedia Raspberry Pi DVB TV µHAT

Datei. Entweder Sie setzen im Dialog die führer (EPG) im Webbrowser. Als weitere
entsprechenden Haken, um zum Bei- Möglichkeiten bieten sich Autoaufnah-
spiel den Sender in den Dateinamen auf- men oder zeitgesteuerte Aufnahmen an.
zunehmen, oder Sie fügen die Platzhal- Bei Autoaufnahmen geben Sie diverse
ter (beispielsweise %F für das Datum, Kriterien vor, wie zum Beispiel den Sen-
weitere erklärt die Hilfe zum Dialog) dungstitel. Tvheadend merkt sich dann
selbst in den Namen ein. automatisch alle passenden Sendungen
Zu guter Letzt bietet Tvheadend die für die Aufnahme vor. Hier ist Vorsicht
Möglichkeit, Programme oder Komman- geboten: Ohne zusätzliche Einschrän-
dos vor und nach einer Aufnahme aufzu- kungen nimmt das System mit einem
rufen. Ein mögliches Szenario für diese Eintrag wie „Tagesschau“ weit mehr Sen-
Funktion wäre die Aufnahme auf ein dungen auf, als man eigentlich will. Pro
Wechselmedium: Vor der Aufnahme Stunde müssen Sie mit 1,2 bis 2,4 GByte
erfolgt das Mounten der externen Fest- Datenmaterial rechnen.
platte, danach wird der Datenträger
automatisch wieder ausgehängt. Wenn Wiedergabe
nicht gerade eine Aufnahme läuft, er-
laubt diese Konfiguration, den Massen- Über die Live-Wiedergabe haben wir
speicher sorglos abzuziehen und an ein oben schon gesprochen – dasselbe
Wiedergabegerät anzustecken. funktioniert auch bei Aufnahmen. Im
Aufnahmen planen Sie am einfachs- Tvheadend-Client gehen Sie in diesem
ten über den elektronischen Programm- Fall dann nicht über den elektronischen
Programmführer, sondern über die Liste
der Aufnahmen. Wenn Sie die Aufnah-
men allerdings auch am TV ansehen
wollen, dann müssen Sie etwas mehr
Aufwand betreiben.
Falls Ihr Fernseher selbst schon DVB-
T2 unterstützt, stehen die Chancen recht
gut, dass er das Abspielen der mit
Tvheadend gemachten Aufnahmen
beherrscht. Die meisten Fernseher ver-
fügen über einen oder mehrere USB-
Anschlüsse und spielen Medien von dort
klaglos ab. In diesem Fall müssten Sie
die Aufnahmen vom Pi Zero auf einen
Stick verfrachten oder gleich den oben
erwähnten Trick mit dem dynamisch ein-
gebundenen Stick wählen.
Viel Komfort bietet dieses Vorgehen
nicht gerade, aber wer nur selten eine
Sendung aufnimmt, der sollte damit
leben können. Selbst wenn der Fern-
seher DVB-T2 nicht unterstützt und Sie
mithilfe einer Set-Top-Box fernsehen, gilt
dasselbe. Auch diese Geräte unterstüt-
zen fremde Medien und eignen sich oft
auch zum Abspielen von H.265/HECV-
kodierten Videos.
Aktuelle Fernsehgeräte sind in aller
Regel netzwerkfähig und unterstützen
fast immer auch DLNA-Funktionen. So
sollte der Fernseher als Digital Media
7 Das EPG der Android-App TVHClient. Player Filme auf einem Digital Media

42 www.raspberry-pi-geek.de 03-04/2019
Raspberry Pi DVB TV µHAT Multimedia

Server selbstständig finden und abspie-


len können. Deshalb bietet es sich an,
auf dem Pi Zero mit dem Paket minidnla
einen DLNA-Server zu installieren (Lis-
ting 2, erste Zeile). Anschließend erset-
zen Sie den Inhalt der Datei /etc/mini‑
dlna.conf durch jenen aus Listing 3.
Hier müssen Sie nur den Pfad in der ers-
ten Zeile an den Speicherort aus Ihrer
Tvheadend-Konfiguration anpassen.
Dann starten Sie den Tvheadend-Dienst
neu (Listing 2, letzte Zeile).
Für einen ersten Funktionstest nutzen 8 Zugriff auf den DLNA-
Sie nun den VLC-Mediaplayer auf Ihrem Server mit dem VLC.
Computer. Unter Local Network finden
Sie in dessen Oberfläche den Verzeich-
8
nisbaum der Aufnahmen  . Hängt das ell auch für Live-Fernsehen geeignet. Transcoding
Fernsehgerät im selben Netzwerk wie Allerdings erwies sich der Client im Test
der mit Tvheadend und dem Mini-DLNA- als instabil und riss Kodi immer wieder Können Sie aus irgendeinem Grund kei-
Server ausgestattete Pi Zero, taucht ein komplett herunter. ne der hier vorgestellten Möglichkeiten
je nach Marke unterschiedlich benann- So richtig preiswert gestaltet sich das für die Wiedergabe nutzen, dann bleibt
ter Menüpunkt für den neuen DLNA-Ser- Vergnügen auch nicht: Der NUC6CAYH als Ausweg noch Transcoding, also das
ver auf. Beim Samsung-Gerät des Autors bietet zwar hardwareunterstütztes H.265 Umwandeln von H.265 in ein anderes
erkennen Sie das am Debian-Symbol in und kostet nur rund 150 Euro, aber mit Format, etwa nach MP4 (H.264).
9
der Leiste mit den Signalquellen  . dem notwendigen Speicher und einer Im Prinzip funktioniert das zwar auf
Als letzte Möglichkeit der Wiedergabe Festplatte kommt der kompakte Intel- jedem System mithilfe von Ffmpeg, aber
sei hier noch eine LibreELEC- respektive Rechner auf etwa 200 Euro – dafür be- ohne Hardware-Unterstützung für den
Kodi-Installation auf einem leistungs- kommt man dann schon eine ordentli- H.265-Codec bereitet eine solche Lö-
fähigen Rechner (ab der NUC-Klasse) er- che Set-Top-Box. sung nur auf Systemen der Desktop-
wähnt. In diesem Fall könnten Sie das Die NUCs der Vorgängergeneration Klasse halbwegs Vergnügen. Ein Rasp-
Verzeichnis mit den Aufnahmen einfach (NUC5xxxx) können H.265 per Software berry Pi 3B+ bräuchte für das Umwan-
auf dem Pi Zero per NFS freigeben. Da dekodieren, erscheinen aber trotz des deln einer einstündigen Aufnahme volle
Kodi auch einen Tvheadend-Client mit- geringeren Preises (etwa 30 Euro billi- 20 Stunden – und das bei voller Auslas-
bringt, wäre diese Kombination prinzipi- ger) nicht wirklich attraktiv. tung aller vier CPUs.

03-04/2019 www.raspberry-pi-geek.de 43
Multimedia Raspberry Pi DVB TV µHAT

Spielen Sie trotzdem mit dem Gedan- Interessant wird die Entwicklung im
ken, sich am Transkodieren zu versu- Frühjahr 2019: Dann wäre eigentlich der
chen, so finden Sie im Internet diverse Nachfolger des Raspberry Pi 3 fällig. Die
Anleitungen für Ffmpeg oder VLC. Die dritte RasPi-Generation verwendet aktu-
entsprechenden Befehle fallen recht ell den VideoCore IV; dessen Nachfolger
lang und kompliziert aus, aber das liegt VideoCore V unterstützt den H.265-
an der Natur der Sache: Der H.265- Codec direkt in der Hardware. Bleibt die
Datenstrom enthält diverse Streams wie Raspberry Pi Foundation also dem Her-
Video, Audio, Untertitel und EPG-Infor- steller und dessen VideoCore-Engines
mationen, die jeweils unterschiedlich treu, könnte demnächst ein RasPi-Modell
behandelt werden müssen. am Markt auftauchen, das dann die letz-
te verbliebene Lücke schließt.
Fazit und Ausblick Auch von anderer Seite gibt es gute
Nachrichten. Die bei vielen Einplatinen-
Die Kombi aus Pi Zero und DVB TV µHat computern verwendeten Mali-Grafik-
macht insgesamt eine gute Figur: chips werden von Linux-Seite aktuell
schnelle Inbetriebnahme, geringe Leis- schlecht unterstützt. Aber das ändert
tungsaufnahme, Streaming auf Tablets sich gerade, und die Kodi- und Linux-
und Smartphones. Als Ersatz für billige video-Entwickler arbeiten hier schon an
Set-Top-Boxen am Fernseher eignet sich einer neuen Abstraktionsschicht. Das
das System aber mangels Abspielmög- Ergebnis wäre die schlagartige Verfüg-
Weitere Infos und lichkeiten aktuell nicht. Außerdem un- barkeit einer ganzen Geräteklasse, die
interessante Links terstützt es keine Privatsender – ob das sich für das flüssige Wiedergeben von
einen Mangel oder ein Feature darstellt, mit modernen Codecs komprimierten
www.raspi-geek.de/qr/42091
muss jeder selbst beurteilen. Videodateien eignet. (cla) n

Listing 2 TIPP
### DLNA‑Server installieren:
Beziehen Sie das TV-Signal über einen
$ sudo apt install minidlna
Kabelanschluss, ersetzen Sie den DVB-T-
### Konfigurationsdatei bearbeiten:
HAT durch einen DVB-C-USB-Stick. Der
$ sudo nano /etc/minidlna.conf
Autor hat gute Erfahrungen mit dem
### Neustart nach Konfiguration des Dienstes:
$ sudo systemctrl restart minidlna.service WinTV-SoloHD von Hauppauge gemacht.
Der Hersteller unterstützt Linux und den
Raspberry Pi, auf seiner Homepage bietet
er passende Firmware-Dateien zum Herun-
Listing 3
terladen an . Hinsichtlich Tvheadend gibt
media_dir=V,/data/videos merge_media_dirs=yes root_container=V es keine Änderungen zum oben beschrie-
port=8200 friendly_name="tvheadend benen Vorgehen. Da bei Kabelsendungen
noch nicht der H.265-Codec zum Einsatz
kommt, genügt für die Wiedergabe eine
normale LibreELEC-Installation plus der
Lizenz für MPEG-2 auf einem Pi Zero.

Der Autor
Bernhard Bablok (mail@bablokb.de)
arbeitet bei der Allianz Technology SE als
SAP-HR-Entwickler. Hört er nicht Musik
oder ist mit dem Fahrrad oder zu Fuß
unterwegs, dann beschäftigt er sich mit
Themen rund um Linux, Programmierung
9 Auch der Samsung-TV kann DLNA-Quellen direkt wiedergeben. und Mini-Rechner.

44 www.raspberry-pi-geek.de 03-04/2019
Multimedia DAW-Tipps

Den Raspberry Pi als


Tonstudio nutzen

© Apidach Jansawang, 123RF


Ton ab!
Auf den ersten Blick erscheint der Raspberry Pi zu schwachbrüstig für den Betrieb
leistungshungriger DAW-Software. Doch der Schein trügt. Hartmut Noack

Grundsätzlich lässt sich auf einem Rasp- Musiker, um auch ohne solche Umwege
berry Pi jede Musiksoftware betrei- durchaus professionelle Ergebnisse zu
1
ben  , die es auch für Linux-PCs gibt. erhalten. Die Grundlage dafür bildet
Findet sich kein Quellcode zum Herun- auch auf dem Mini-Rechner der Audio-
terladen, müssen dann allerdings Bina- 3
server Jack  .
ries für die ARM-Plattform bereitstehen.
Entsprechende Angebote existieren Solide Basis
durchaus: So bietet die Firma Tracktion
ihre professionelle DAW Waveform  Für Standard-PCs gibt es eine ganze
2
offiziell auch für den RasPi an  . Reihe speziell für den Musikbetrieb
Windows-DAW-Software via Wine auf optimierter Distributionen, beispiels-
README dem RasPi zu betreiben erwies sich im weise das bekannte Ubuntu Studio.
Test als sinnlos. Zwar erlaubt etwa El- Für Fedora und CentOS bietet Planet
Trotz seiner geringen Größe handelt es sich
techs Software Exagear das Verwenden CCRMA  leicht installierbare Optimie-
beim Raspberry Pi um einen vollwertigen
von Wine in einer virtuellen x86-Umge- rungspakete, auch OpenSuse lässt sich
PC. Damit bietet er sich auch als Tonstudio
bung auf dem RasPi, die für Echtzeit- ohne große Schwierigkeiten musik-
für die Hosentasche an. Ganz ohne Anpas- Musiksoftware erforderliche optimale tauglich ausgestalten.
sungen funktioniert das aber nur leidlich. Mit Nutzung der schmalen Hardwareressour- Das für RasPi angebotene Ubuntu
der richtigen Distribution und einigen Opti- cen schließt solche Methoden aber aus. schnitt im Test aber als unbrauchbar ab:
mierungen klappt es dann aber doch. Zum Glück gibt es inzwischen jedoch Selbst bei sehr moderaten Einstellungen
genügend native Linux-Software für für die Latenz in Jack gab es sofort Aus-

46 www.raspberry-pi-geek.de 03-04/2019
DAW-Tipps Multimedia

DAW: Digital Audio Workstation. Ein compu-


tergestütztes System für Tonaufnahme, Mu-
sikproduktion, Abmischen und Mastering.

1 Das mächtige Ardour läuft auch auf dem Raspberry Pi 3, eignet sich dann aber nur für
kleinere Projekte.

setzer und Störgeräusche, sobald wir den Ganz anders sieht es beim soliden Stan- Einstellungen für nur 8 Millisekunden La-
Gitarrenverstärker Guitarix auch nur star- dardsystem Raspbian 8 „Jessie“ aus. Dort tenz ganz normal. Tracktions Waveform
teten. Die Software steht außerdem nur klappt der Betrieb ohne langwieriges steht offiziell jedoch nur für die RasPi-Va-
in einer veralteten Version im Paketma- Einrichten der Jack-Software. Sowohl riante von Ubuntu Maté 16.04 bereit.
nager bereit. Ubuntu Maté für den Rasp- Jack als auch diverse Anwendungen wie Zwar ist auch für Raspbian keine Er-
berry Pi lässt sich offenbar nur mit sehr etwa Guitarix gibt es in recht aktuellen weiterung verfügbar, die sich so einfach
großem Aufwand optimieren. Versionen; die Programme laufen mit wie Ubuntu Studio einsetzen lässt. Auf
LinuxAudio.org finden Sie aber eine aus-
führliche Anleitung  zum Optimieren
von Raspbian „Jessie“, die auch Down-
load-Links der benötigten Zusatzsoft-
ware enthält.

Ganz praktisch
Im Test kam auf einem RasPi 3 zuerst
Ubuntu Maté und danach das Standard-
Raspbian zum Einsatz. Erste Versuche mit
dem eingebauten Soundchip schlugen
fehl – das widerspricht Berichten, nach
denen auch er prinzipiell verwendbar sei.
Das 20 Euro billige USB-Interface UCA222
von Behringer dagegen funktionierte so-
fort nach dem Anschließen ohne Nutzer-
eingriff. Sein einziger Nachteil: Es lässt
sich nur per USB mit Strom versorgen;
ein Interface mit eigener Speisung wür-
de das Netzteil des RasPi entlasten.
2 Interne Synthesizer und Unterstützung für native LXVST-Plugins empfehlen Wave- Ardour ließ sich für einfache Audio-
form auch als Musikinstrument für den RasPi. aufnahmen auf bis zu 8 Spuren in Ubuntu

03-04/2019 www.raspberry-pi-geek.de 47
Multimedia DAW-Tipps

form 9: Damit ließen sich auch mit Ein-


stellungen für 10 Millisekunden Latenz
einige Spuren aufnehmen und bearbei-
ten. Ebenso erlaubte es die Software, mit
einer angeschlossenen Midi-Tastatur live
mit den darin integrierten Synthesizern
zu spielen.
In allen Fällen mussten wir für Ubuntu
Maté den schlanken Desktop Fluxbox
installieren – Matés Standard-Desktop
verbraucht für diesen Zweck zu viele
Ressourcen. Allerdings war die Leistung
mit Raspbian von Anfang an deutlich
besser. Die meisten Tests ließen sich mit
Einstellungen für 8 Millisekunden Latenz
bewerkstelligen, alle Testszenarien (Gui-
3 Das grafische Frontend Qjackctl erleichtert den Umgang mit den vielen Einstellungs- tarix mit Effekten, Aufnahmen in Ardour,
möglichkeiten und Verbindungsfunktionen von Jack. Seq24 spielt den Yoshimi Software-Syn-
thesizer) funktionierten ohne Aussetzer
bei moderaten Anforderungen.
Maté verwenden, allerdings nur mit ho- Aber auch unter Raspbian begannen
hen Puffereinstellungen für Jack. 512 Pe- die Xruns in Jack mit hörbaren Störun-
riods pro Buffer bei der für das Behringer gen, sobald wir höhere Anforderungen
RPC: Remote Procedure Call. Ein Protokoll nativen Sample-Rate von 48 kHz ergeben einstellten. Bei Guitarix verursachte der
zum Übertragen von Anweisungen an Soft- 21 Millisekunden Latenz. Das ist für eine Einsatz des Convolvers die ersten Kratzer.
ware, auch über das Netzwerk an entfernte Liveaufnahme im Proberaum akzeptabel, Die Verstärker und Lautsprecheremulati-
Rechner. aber für Studioarbeiten wie Overdubbing onen sowie kleinere Effekte wie etwa der
zu viel. Besser schlug sich das proprietäre, einfache Chorus funktionierten aber
für schmale Ressourcen optimierte Wave- 4
fehlerfrei  . Yoshimi ließ sich mit bis zu

Grafische Apps ohne Monitor


Musiksoftware arbeitet meist mit einer vorher mit der grafischen Oberfläche kon- Sie auf einem anderen Rechner über eine
5
grafischen Oberfläche : Nur so lassen figuriertes und als Instrument.xiz ge- SSH-Verbindung auch jede grafische Soft-
sich die komplexen Wellenformen von speichertes virtuelles Instrument. Zur Lauf- ware auf dem RasPi starten. Deren gra-
Tonaufnahmen in Pixeln angemessen dar- zeit bietet Yoshimi eine eigene Shell, in fische Oberfläche berechnet und zeigt
stellen. Die grafische Darstellung verur- der Sie mit help eine Anleitung für die dann aber der SSH-Client, nicht mehr der
sacht aber auch einen beachtlichen Teil Operationen und Befehle öffnen. RasPi. Das klappt auch im Headless-Be-
des Ressourcenverbrauchs. trieb. Sie leiten dazu auf dem Client die
Ähnliche Schalter bieten auch andere Pro-
SSH-Verbindung mit dem Aufruf ssh ‑X
Es liegt auf der Hand, dass einer Anwen- gramme, etwa Guitarix. Das bringt außer-
pi@RasPI‑IP ein.
dung mehr Reserven zur Verfügung stehen, dem eine Unterstützung für eine RPC-
Zwar läuft die Software nach wie vor auf
wenn der RasPi seine hübsch animierte Fernbedienung mit, die auf einem anderen
dem RasPi, ihre grafische Oberfläche je-
Oberfläche nicht gleichzeitig mit der Rechner im Webbrowser startet. Entwickelt
doch nicht mehr. Die gleiche Methode
Sound-Engine berechnen muss. Einige Pro- hat das System der brasilianische Effekt-
bewährt sich übrigens auch, wenn Sie im
gramme bieten dazu einen Headless-Be- gerätehersteller MOD, der Guitarix in sei-
Aufnahmeraum eines Tonstudios zwar die
trieb an. Sie schalten die GUI dann durch nen Bodentretereffekten verwendet.
Leistung eines starken Rechners wün-
eine Kommandozeilenoption beim Start Auch Musiksoftware, die zwingend eine schen, nicht aber dessen Geräuschkulisse.
ab, bei Yoshimi etwa mit folgendem Aufruf: GUI voraussetzt, lässt sich benutzen, ohne In solchen Fällen bewährt sich ein ge-
$ yoshimi ‑‑no‑gui ‑K ‑L InstrumU dass der RasPi die Oberfläche berechnen räuschloser RasPi, der ohne Weiteres die
ent.xiz muss. Den Schlüssel dazu liefert das X- Oberfläche von Ardour anzeigt, während
Der Befehl startet die Software ohne gra- Forwarding von SSH. Setzen Sie auf dem der DAW-Bolide selbst auf einem gut ge-
fische Oberfläche und verbindet sie auto- RasPi in der Datei /etc/ssh/sshd.conf kühlten Riesenrechner in einem schallge-
matisch mit Jack. Anschließend lädt er ein die Option X11Forwarding=yes, können dämmten Nebenraum läuft.

48 www.raspberry-pi-geek.de 03-04/2019
DAW-Tipps Multimedia

zwei einfachen Stimmen und dreifacher


Polyphonie sauber spielen.
Läuft ein Puffer über oder leer, ver-
wirft Jack die Daten und wendet sich
dem nächsten Puffer zu. Das führt oft zu
Wiedergabefehlern und Aussetzern, die
bei weniger robust programmierten An-
wendungen mitunter auch zum Absturz
führen. Größere Puffer verringern das
Problem zwar, verursachen aber auch
eine höhere Latenz.

Optimieren, reduzieren
Es gibt eine ganze Reihe von Funktionen,
die sich zugunsten der Audioleistung
abschalten lassen. Grundsätzlich gilt:
Reduzieren Sie, was Sie nicht unbedingt
benötigen. Das beginnt schon mit der
Desktop-Oberfläche: Das LXDE von Rasp-
bian lässt sich zwar kaum noch verschlan-
ken; benutzen Sie aber ein Image mit
Maté, XFCE oder gar Gnome, empfiehlt
sich die Installation und das Verwenden
einer schlankeren Lösung. Im Test be-
währte sich der simple Minimal-Desktop
Fluxbox. Zu den verzichtbaren Funktio-
nen gehören auch der Druckerdienst 4 Guitarix macht aus dem RasPi 3 einen gut spielbaren Gitarrenverstärker, der Einsatz
Cups, der Bluetooth-Daemon und der des Convolvers bringt ihn aber an seine Grenze.
Zeit-Synchronisierer Ntp.
Anhalten und bei Bedarf auch wieder
starten lassen sich diese Dienste am der automatisch beim Systemstart ein.
besten via Systemctl. So hält etwa sys‑ Achtung: enable und disable beziehen
temctl stop bluetoothd den Blue- sich nur auf den Systemstart und ändern
tooth-Daemon an. Benutzen Sie ssh ‑X nichts am aktuellen Laufzustand. Diesen Xruns: Das X sieht wie ein Kreuz aus und
zur Fernbedienung, benötigen Sie auch steuern Sie immer mit start und stop. steht hier für Crossover. Bei einem Xrun
keinen grafischen Login-Manager. Sie handelt es sich um eine Mischung aus
stoppen ihn dann mit systemctl stop Überdreht Pufferüberlauf und Leerlauf. Jack garantiert
lightdm im Terminal. Eine Deinstallation
Anwendungen, dass er alle gesendeten
dieser Dienste ist übrigens nicht erfor- Haben Sie das System so weit optimiert,
Audiodaten in einem fest zugesicherten
derlich; Sie sollten nur darauf achten, dass Software wie Yoshimi oder Guitarix
Zeitraum an die Soundkarte oder ein
dass sie auch bei einem Neustart ausge- ohne GUI (siehe Kasten Grafische Apps
schaltet bleiben. Dabei hilft der Befehl ohne Monitor) normal läuft, benötigen weiterverarbeitendes Programm sendet.
systemctl disable lightdm. aber noch mehr Leistung, dann kitzeln Convolver: Ein Konvolutionsalgorithmus
Mit dem Systemctl-Schalter enable Sie durch einen Eingriff in die eher kon- „faltet“ zwei Datenmuster ineinander. Im
schalten Sie den Dienst bei Bedarf wie- servativen Grundeinstellungen des Rasp- Musikbereich faltet man meist ein Sample,
berry Pi noch einiges an Rechenleistung das die Impulsantwort (IR file) eines Raums
und Geschwindigkeit heraus.
oder Schallkörpers (Lautsprechermembran,
Listing 1 Im Standard-Image von Raspbian
Gitarrenkorpus) repräsentiert, mit einem
„Jessie“ finden Sie die Grundeinstellun-
$ for cpu in /sys/devices/
gen der Hardware in der Datei /boot/ Tonsignal. Das erweckt sehr realistisch den
system/cpu/cpu[0‑9]*; do echo Eindruck, dass das Signal in diesem Raum
config.txt. Darin lassen sich die Taktfre-
performance > $cpu/cpufreq/
quenz der ARM-CPU und die Frequenz oder über einen bestimmten Resonanz-
scaling_governor; done
des Hauptspeichers einstellen. Für den körper erklingt.

03-04/2019 www.raspberry-pi-geek.de 49
Multimedia DAW-Tipps

5 Die mehr als 600 Parameter des Software-Synthesizers Yoshimi bringen jeden Rechner an seine Grenzen. Betreibt man seine
Oberfläche mit X11-Forwarding auf einem anderen Rechner, lässt sich auch mit einem RasPi vernünftig damit arbeiten.

reibungslosen Audiobetrieb empfiehlt es achten, ein entsprechend leistungs-


TIPP
sich insbesondere, den Governor von fähiges Netzteil zu verwenden.
Skript für einen Stresstest und viele wei- ondemand auf performance umzustellen.
tere Informationen zum Overclocking mit Das bewirkt, dass die CPU stets auf voller Fazit
den Parametern aus /boot/config.txt Leistung läuft und nicht nur bei Bedarf
finden Sie im Wiki von elinux.org . hochtaktet. Das einfache Kommando aus Der RasPi lässt sich mit einigen einfa-
Listing 1, das Sie mit Root-Rechten aus- chen Maßnahmen zu einem brauch-
führen müssen, erledigt das für jeden baren kleinen Musikcomputer verwan-
Prozessorkern des RasPi 3. deln. In Anbetracht der Tatsache, dass
Es empfiehlt sich, es in eine Datei zu sich schon mit dem Raspbian von der
schreiben, die Sie beim Booten automa- Stange und ein paar simplen Anpassun-
tisch starten. Eine höhere Taktfrequenz gen in den Konfigurationsdateien ein
lässt sich zwar ebenfalls einstellen, aller- akzeptables Ergebnis erzielen lässt, muss
dings bringt schon der aggressivere jeder selbst entscheiden, ob der kleine
governor ein Problem bezüglich der Vorsprung, den ein selbst gebauter
Wärmeentwicklung mit sich: Da Audio- Kernel womöglich zusätzlich bringt, den
software kontinuierliche Datenströme Aufwand rechtfertigt. (tle) n
erzeugt und bearbeitet, benötigt sie
auch kontinuierliche Rechenleistung.
Ein übertakteter oder auch nur auf Der Autor
Performance eingestellter RasPi gerät
Hartmut Noack arbeitet in Celle und
damit in Gefahr zu überhitzen. Ein größe-
Hannover als Dozent, Autor und Musiker.
rer Kühlkörper alleine genügt besonders
Auf seinem Webserver unter http://lapoc.
Weitere Infos und bei Übertaktung nicht, hier bieten sich
interessante Links brauchbare Lüftermodelle für kleines de können Sie einige CC-lizenzierte klin-
Geld an. Wenn dann auch noch ein Lüfter gende Ergebnisse seiner Arbeit mit freier
www.raspi-geek.de/qr/41975
Strom verbraucht, sollten Sie darauf Musiksoftware herunterladen.

50 www.raspberry-pi-geek.de 03-04/2019
Multimedia Volumio 2.5

Der Musikplayer Volumio für Raspberry Pi und Co.

© Andrei Kuzmik, 123RF


Beerige Musik
Für echtes Hi-Fi braucht es Smart Speaker à la Amazon Echo oder Installation
Multiroom-Lautsprecher im Stil von
mehr als einen kleinen Blue- Sonos haben inzwischen vielerorts aus- Das unter der GPLv3 veröffentlichte Volu-
gewachsene Stereoanlagen aus den mio gibt es kostenlos für diverse Single-
tooth-Brüllwürfel. Mit Volu- Regalen der Elektronikhändler verdrängt. Board-Computer – etwa für den Rasp-
Trotzdem steht in vielen Wohnzimmern berry Pi, den Odroid C1 und C2, den
mio und einem Raspberry Pi noch immer ein Hi-Fi-Regal mit Platten- Sparky von Allo  und das Asus Tinker-
und CD-Spieler sowie einem ordentli- board – sowie für den PC (32 und 64 Bit).
rüsten Sie Ihre klassische chen Verstärker. Moderne AV-Receiver Zur Installation auf einem Raspberry Pi
sind oft netzwerk- und bluetoothfähig, laden Sie das Image in Form eines ZIP-
Hi-Fi-Anlage mit smarten sodass sich leicht Musik vom Smart- Archivs mit dem Namen volumio‑Ver‑
phone auf die große Anlage streamen sion‑pi.img.zip herunter, entpacken es
Funktionen auf.
lässt – doch manch ein altes Schätzchen und schreiben dann die Abbilddatei vo‑
besitzt diese Funktionen eben nicht. lumio‑Version‑pi.img auf eine mindes-
Christoph Langner
Mit einem Raspberry Pi und Volumio tens 4 GByte große SD-Karte.
als Software rüsten Sie eine Stereoanlage Volumio ist darauf ausgelegt, ohne
aber sehr einfach und kostengünstig mit einen Bildschirm zu arbeiten. Für die In-
smarten Funktionen auf. Das System  betriebnahme des Systems müssen Sie
README lässt sich per Webbrowser vom Desktop- daher nur die Speicherkarte in den RasPi
PC und Laptop oder mittels Apps auch schieben und den Mini-Rechner an das
Volumio, der „Audiophile Music Player for
vom Smartphone oder Tablet steuern. Netzteil anschließen. Selbst einen Netz-
Raspberry Pi“, präsentiert in der Version 2.5
Die Integration von Webradio, Spotify werkzugang braucht Volumio nicht zwin-
neue Funktionen. Zudem kommt er inzwi- oder UPNP- und Airplay-Playback runden gend, er macht die Konfiguration im spä-
schen auch mit einem optionalen, kosten- den Funktionsumfang ab. Im Test muss teren Verlauf jedoch einfacher. Steht
pflichtigen Abo-Modell daher. sich die im Januar dieses Jahres frisch neben der Stereoanlage kein Netzwerk-
veröffentlichte Version 2.526 beweisen. anschluss zur Verfügung, lässt sich das

52 www.raspberry-pi-geek.de 03-04/2019
Volumio 2.5 Multimedia

System auch per WLAN ins Netz bringen


(siehe Kasten Hotspot-Modus).
Der erste Start dauert ein paar Minu-
ten. Während der Auszeit ändert Volumio
die Partitionierung, sodass dem System
die komplette Speicherkarte zur Verfü-
gung steht. Zudem erstellt das System
neue SSH-Schlüssel und installiert eine
Reihe von Paketen. Die weitere Konfigu-
ration erfolgt im Webbrowser. Sie errei-
chen das Webfrontend von Volumio über
die Adresse http://volumio.local.
Die Namensauflösung über die Local-
Domain funktioniert auf den meisten
Computern mit einer aktuellen Linux-
Distribution, Windows 10 oder MacOS
als Betriebssystem. Alternativ erhalten
Sie die IP-Adresse des Volumio-Systems
über das Webfrontend des von Ihnen
genutzten WLAN-Routers oder über
einen Netzwerkscanner wie zum Beispiel
1
Fing  für Android  .

Konfiguration
Volumio empfängt Sie beim ersten Auf-
ruf des Webfrontends mit einem Setup-
Assistenten, der Sie in sechs Schritten 1 Mit einem Netzwerkscanner wie Fing für Android finden Sie die IP-Adresse des
durch die Konfiguration führt. Die Wahl Volumio-RasPi im Netzwerk schnell heraus.
von Sprache und Name des Systems liegt
bei Ihnen. Unter Ausgang bietet Volumio
die Möglichkeit, den Audioausgang zu und Bluetooth-Chip verfügt, funktionier-
2
wählen  . Bei einem Standard-RasPi te die Anbindung ohne Komplikationen.
wählen Sie hier zwischen Audio Jack und Damit Volumio auch etwas zum Ab-
HDMI Out – je nachdem, ob Volumio den spielen hat, braucht es noch eine Quelle
Ton über die Kopfhörerbuchse oder den mit Musik. Diese richten Sie über die Op-
HDMI-Port ausgeben soll. tion Neues Laufwerk hinzufügen im Reiter
Die Tonqualität des in den RasPi inte-
grierten Sound-Stacks genießt allerdings
nicht den besten Ruf. Einen besseren Ton Hotspot-Modus
erhalten Sie mit einem Digital-Analog-
Installieren Sie Volumio auf einem RasPi Volumio den Hotspot-Modus automatisch
Wandler oder auf Englisch Digital Audio
der dritten Generation mit integriertem wieder ab. Starten Sie das System aller-
Converter (DAC). Dieses Upgrade kommt
WLAN oder einem anderen Mini-Rechner dings dann später einmal ohne Netzwerk-
in der Regel in der Form einer Zusatz-
mit entsprechendem Adapter (etwa einem zugang, aktiviert Volumio den Hotspot
platine (HAT im Jargon des Raspberry Pi),
RasPi 2 mit USB-WLAN-Dongle), dann automatisch wieder.
die Sie auf die GPIO-Schnittstelle auf-
spannt das System während der ersten Nutzen Sie Volumio in Kombination mit
stecken. Für unseren Test kam ein Hifi-
Konfiguration automatisch ein drahtloses einer lokal gespeicherten Musiksammlung,
Berry DAC R2.2 zum Einsatz, der über
Netzwerk mit dem Namen Volumio auf. etwa direkt auf der Speicherkarte oder mit
Cinch-Kabel dann den Weg zur Stereo- Das zugehörige Passwort lautet volumio2. einem USB-Massenspeicher, müssen Sie
3
anlage findet  .
Melden Sie sich mit einem Smartphone den Volumio-RasPi nur an einen Laut-
Im Reiter Netzwerk gibt Volumio Ihnen
im Volumio-WLAN an, öffnet sich automa- sprecher anschließen und können so auch
die Möglichkeit, das System in ein WLAN
tisch ein Webbrowser mit dem Setup-Assi- unterwegs Musik hören – etwa in einem
zu hängen. Im Test mit einem Raspberry
stenten. Nach der Konfiguration schaltet Hotel oder einer Ferienwohnung.
Pi 3, der über einen integrierten WLAN-

03-04/2019 www.raspberry-pi-geek.de 53
Multimedia Volumio 2.5

2 Nach der Installation übernimmt ein kleiner Assistent die 3 Mit einer „Soundkarte“, wie hier dem HifiBerry-Aufsatz, pro-
grundlegende Konfiguration von Volumio. duziert der RasPi einen deutlich besseren Sound.

Musik ein. Als Quelle kann ein USB-Stick Springen zum vorherigen oder nächsten
oder eine entsprechende Festplatte die- Titel. Über die Kreisdiagramme steuern
nen, alternativ auch eine Freigabe auf Sie den Fortschritt (links) und regeln die
einem NAS-Speicher. Das anschließende Lautstärke (rechts).
Indexieren aller Titel benötigt besonders Die vom System indexierten Titel er-
bei größeren Musiksammlungen oder ei- reichen Sie über die Schaltfläche Durch-
nem langsameren RasPi der ersten Gene- suchen am unteren Bildschirmrand. Von
ration einige Zeit. dort aus suchen Sie nach Interpreten und
Alben oder stöbern durch die komplette
Jukebox in Aktion 5
Musikbibliothek  .
Die Liste an Internet-Radiostationen
Rufen Sie nun die Weboberfläche des präsentiert sich von Haus aus gut gefüllt,
Volumio-RasPi auf, finden Sie sich im auch deutschsprachige Sender aus dem
4
Player-Modus wieder  . In der Mitte öffentlich-rechtlichen Rundfunk und der
zeigt Volumio den aktuell abgespielten Privatwirtschaft sind an Bord.
Titel mitsamt dem Cover des Albums an.
Darüber finden Sie im Kopf der Seite Streaming
die Schaltflächen für das Spielen oder
Pausieren der Wiedergabe sowie für das MP3- und erst recht CD-Sammlungen
sind allerdings Schnee von gestern:
Heutzutage wird gestreamt. Auch das
TIPP beherrscht Volumio; Sie müssen die
Funktion allerdings über ein Plugin nach-
Ein Volumio-RasPi braucht im Prinzip kein eigenes Display oder Eingabegeräte. Die Wieder-
rüsten (siehe Kasten Spotify). Im Test
gabe lässt sich bequem über einen Webbrowser vom PC oder Smartphone aus steuern.
funktionierte das mit dem Streaming-
Nichtsdestotrotz steht dem System auch ein eigenes Display gut zu Gesicht: So sieht man
Platzhirsch Spotify ohne Schwierigkeiten
ohne einen Blick aufs Handy, was gerade spielt, oder springt – im Fall eines Touchscreens –
sehr zuverlässig und in recht ordentlicher
schnell zum nächsten Titel.
Klangqualität. Auch das Stöbern im von
Die Display-Funktion müssen Sie allerdings zuerst über die Plugin-Verwaltung einspielen.
Spotify gepflegten Angebot fällt mit
Sie finden sie unter Miscellanea | Touch Display Plugin. Vergessen Sie nach der Installation
Volumio nicht schwerer als über die
nicht, es auch noch unter Installierte Plugins zu aktivieren. Im Test streikte die Funktion
Spotify-App auf einem Smartphone.
jedoch in Kombination mit einem Raspberry Pi Touch Display . Auf zwei RasPis, je einem
Einige weitere wichtige Konfigurati-
Pi 2 und Pi 3+, sowie zwei Displays zeigte Volumio lediglich einen Prompt auf dem Bild-
onsmöglichkeiten erreichen Sie über das
schirm an. In der Dokumentation des Projekts fand sich keine Lösung für dieses Problem.
Zahnradmenü und die Optionen NETZ-

54 www.raspberry-pi-geek.de 03-04/2019
Volumio 2.5 Multimedia

4 Die Weboberfläche von Volumio lässt sich gut über den PC be- 5 Über die Musikbibliothek stöbern Sie in Ihrer Musiksammlung.
dienen, passt sich aber auch an kleinere Smartphone-Displays an. Die Oberfläche integriert auch Streaming-Dienste wie Spotify.

WERK sowie SYSTEM. Wichtig sind hier Premium-Volumio


insbesondere die Einstellungen zu dem
von Volumio aufgespannten WLAN-Hot- Die Entwickler stellen Volumio kostenlos
spot sowie die Möglichkeit, die Volumio- unter der freien Lizenz GPL zur Verfü-
Installation zu aktualisieren. Das Einspie- gung. Mit MyVolumio  bietet das Pro-
len einer neuen Version geschieht dabei jekt jedoch auch einen kostenpflichti-
direkt über die Weboberfläche, Daten gen Dienst mit zusätzlichen Funktionen
gehen bei der Installation des Updates an. Registrieren Sie sich bei MyVolumio
nicht verloren. und tragen die Zugangsdaten zu Ihrem
Spotify
Volumio beherrscht neben der Wieder-
gabe von lokal oder im lokalen Netzwerk
gespeicherten Medien auch den Umgang
mit Streaming-Diensten wie Spotify, You-
tube Playback und Tunein Radio. Die ge-
wünschte Funktion müssen Sie jedoch per
Plugin nachrüsten: Dazu öffnen Sie über
das Zahnradmenü die Seitenleiste und
wechseln zu PLUGINS. Gleich am Anfang
unter Music Services finden Sie das Spo-
tify-Plugin, das Sie mit einem Klick auf
6
Installieren einspielen .
Anschließen wechseln Sie in den Reiter
Installierte Plugins und aktivieren das
Plugin, indem Sie den Schalter auf On
schieben. In den Einstellungen finden Sie
dann Felder für den Spotify-Benutzer-
namen und das dazugehörige Passwort.
Letzteres müssen Sie jedoch erst inner-
halb von Spotify in Ihrem Konto unter
dem Menüpunkt Geräte-Passwort fest-
legen anlegen . Zugang zum Repertoire
von Spotify erhalten Sie danach über
6 Das Spotify-Plugin lässt sich kostenlos aktivieren. Für andere Streaming-Dienste wie Durchsuchen vom Hauptbildschirm aus.
Tidal oder Qobuz müssen Sie jedoch bezahlen.

03-04/2019 www.raspberry-pi-geek.de 55
Multimedia Volumio 2.5

7 Mit dem kostenpflichtigen MyVolumio-Abo lässt sich Volumio über das Internet
steuern. Zudem schaltet das Abonnement weitere Funktionen frei.

Account im Webfrontend von Volumio Fazit


über das Zahnradmenü ein, dann erhal-
ten Sie in der FREE-Variante fürs Erste Seit unserem letzten Blick auf Volumio 
lediglich Nachrichten zu Neuerungen hat sich viel getan. Das Projekt über-
7
des Projekts  . zeugt weiterhin mit einer gut durchdach-
Durch den Kauf eines Abo-Plans ten Oberfläche, die sich leicht vom PC
(VIRTUOSO für 2,99 Euro oder SUPERSTAR oder Smartphone aus bedienen lässt. In
für 6,99 Euro im Monat – bei jährlicher Kombination mit einem Hi-Fi-DAC liefert
Zahlung gibt es 20 Prozent Rabatt) kön- Volumio auf einem Raspberry Pi dann
nen Sie die Wiedergabe auf einem be- auch eine Audioqualität, die selbst ver-
ziehungsweise bis zu sechs Geräten über wöhnte Ohren zufriedenstellt.
das Internet steuern. Zusätzlich gleicht Mithilfe des Plugin-Systems lässt sich
Volumio über den Dienst Playlisten und Volumio problemlos an die eigenen
Smartphone-Apps Favoriten über die einzelnen Installatio- Bedürfnisse anpassen. Die Integration
nen hinweg ab. Das Upgrade auf My- von Spotify gelingt auf unkompliziertem
Zum Steuern der Wiedergabe offeriert
Volumio rüstet zudem Streaming über Weg, was die Software für viele Anwen-
Volumio auch kostenpflichtige Apps für
Tidal und Qobuz nach. der interessant machen dürfte. Andere
Android  und iOS ; der Kostenpunkt
Damit wollen sich die Volumio-Ent- Streaming-Dienste gibt es jedoch nur
liegt bei jeweils etwa 2 Euro. Die Investi-
wickler allerdings nicht begnügen: In gegen Geld in Form eines monatlichen
tion in die Apps stellt kein Muss dar: Die
Zukunft soll es auch möglich sein, meh- Abos. Die wichtigsten Funktionen von
App strickt lediglich ein App-artiges Kleid
rere MyVolumio-Geräte zentral zu steu- Volumio aber sind und bleiben auch wei-
um die Weboberfläche. Als Mehrwert
ern, ähnlich wie es Sonos und andere ter kostenlos zugänglich. (cla) n
bleibt, dass die App automatisch den
Anbieter von Multiroom-Systemen be-
Volumio-RasPi im Netz findet und dass
herrschen. Auch das Streamen von Musik
sich die Lautstärke über den Lautstärke-
direkt vom Smartphone oder Tablet aus Weitere Infos und
regler des Smartphones steuern lässt.
sowie das Rippen und Abspielen klassi- interessante Links
Zudem unterstützen Sie mit dem Beitrag
scher Audio-CDs möchten die Entwickler www.raspi-geek.de/qr/41585
die weitere Entwicklung des Projekts.
künftig unterstützen.

56 www.raspberry-pi-geek.de 03-04/2019
Hacks Bienen-Monitoring

© Vasyl Kosolovskyy, 123RF


Minimalinvasives Imkern mit dem Raspberry Pi

Bienenflüsterer
Bienenzüchter, die ihre Völker besser kennenlernen möchten, müssen die fleißigen Insekten
nicht pausenlos stören. Mit einem RasPi und verschiedenen Sensoren überwachen Sie
Temperatur, Luftfeuchtigkeit und bald auch das Gewicht des Bienenstocks. Lars Jurzik, Heike Jurzik

README Die Winter im Sauerland sind lang, aber fach: Klappe zu, Mäusegitter vors Flug-
vor allem wechselhaft. Mal schneit es loch, und im April sehen wir uns wieder.
Die Zucht von Bienen erfordert viel Fürsorge
bereits im Oktober, ein anders mal herr- Da Imker während der Wintermonate
und Pflege. So genügen unter Umständen
schen über Weihnachten frühlingshafte die Beuten normalerweise nicht öffnen,
bereits geringe Temperaturschwankungen,
15 Grad. Die Imker in der Gegend sind wissen sie in der Regel auch nicht, ob es
um einem ganzen Volk den Garaus zu auf diese Verhältnisse eingerichtet und
machen. Um das zu verhindern, hilft es, den füttern schon im Frühherbst nach der
Bienenstock permanent auf seinen Zustand letzten Honigernte für den Winter ein: Listing 1
zu überwachen. Dafür genügt ein RasPi mit Je nach Größe des Bienenvolks wandern
$ git clone https://github.com/
Temperatur- und Luftfeuchtigkeitssensor, in mehrere Liter Zuckerlösung in die In- jugend‑programmiert/Python_DHT
sektenbehausungen, die sogenannten
einer weiteren Ausbaustufe mit akustischer $ cd Python_DHT
Beuten. Fallen irgendwann die Außen-
Warnung bei Überhitzung. $ sudo python3 setup.py install
temperaturen, heißt es dann ganz ein-

58 www.raspberry-pi-geek.de 03-04/2019
Bienen-Monitoring Hacks

dem Volk darin gut geht. Inspiriert vom kümmern sich als Nächstes um die Da-
Hiveeyes-Projekt  und dem Open- tenbank und den Kollektor.
Hive-Monitoring-System  planen die
Autoren eine eigene Monitoring-Lösung Datenbank einrichten
für ihre Bienenvölker. Die Hobbyimker
wollen zunächst die Temperatur beob- Die Influxdata-Paketquelle  steuert
achten, das System aber in einer späte- sowohl Influx DB  als auch Telegraf 
ren Ausbaustufe noch um eine akusti- bei. Um beides zu installieren, tragen Sie
sche Warnung und eine eigene Stock- zunächst das Repository in die Datei
waage erweitern. /etc/apt/sources.list.d/influxdb.
Zum Einsatz kommt ein Raspberry Pi 2 list ein und fügen danach dessen
Model B mit Raspbian „Stretch“ auf Basis GnuPG-Schlüssel hinzu (Listing 4, erste
von Debian 9, bestückt mit einem Tem- Zeile). Nach dem Aktualisieren der Pa-
peratur- und Luftfeuchtigkeitssensor ketliste über das Kommando apt up‑
DHT11. Das Autorenteam experimen- date spielen Sie dann die beiden Pakete
tierte ebenfalls mit einem DS18B20- influxdb und telegraf ein.
Temperatursensor und einem aktiven Für die Datenbank aktivieren Sie den
Lautsprecher, die sie über ein 40-Pin- automatischen Start beim Booten und
GPIO-Extension-Board und ein Bread- Initialisieren des Servers mit den Einträ-
board mit dem RasPi verbanden. gen in den Zeilen 2 und 3 aus Listing 4. Listing 4
Mit dem Aufruf aus Zeile 4 starten Sie 01 $ curl ‑sL https://repos.
DHT11-Sensor anschließen den Influx-Kommandozeilenclient. Darin influxdata.com/influxdb.key |
legen Sie den neuen Benutzer admin sudo apt‑key add ‑
Den digitalen Temperatur- und Feuch- sowie eine neue Datenbank namens 02 $ sudo systemctl enable
tigkeitssensor DHT11 gibt es für wenige telegraf an (Zeilen 8 und 9). influxdb
Euro im Handel. Er liefert die Temperatur In der Influx-DB-Konfigurationsdatei 03 $ sudo systemctl start
in Grad Celsius und die relative Luft- /etc/influxdb/influxdb.conf gilt es, influxdb
feuchtigkeit in Prozent. Die Bastler ver- unter [http] den Webserver zu aktivie- 04 $ sudo influx
banden den Sensor im ersten Versuch ren (Listing 5, Zeilen 1 bis 3). Nach einem 05 Connected to http://
direkt mit dem RasPi. Beim Auslesen hilft Neustart des Diensts über systemctl localhost:8086 version 1.5.1
die Python DHT Sensor Library . Nach restart influxdb geht es mit der Tele- 06 InfluxDB shell version: 1.5.1
dem Installieren der beiden Pakete graf-Konfiguration weiter. 07
build-essential und python3-dev gilt es, 08 > CREATE USER admin WITH
PASSWORD '****' WITH ALL
die Bibliothek aus dem Github-Reposi- Gut gesammelt
tory auszuchecken und auf dem Rech- PRIVILEGES
ner einzuspielen (Listing 1). Das Benutzerkonto telegraf muss Mit- 09 > CREATE DATABASE telegraf
Danach lässt sich die Library mit im‑ glied in der Gruppe gpio sein, damit der 10 > exit
port in eigene Python-Skripte einbin- Kollektor die Werte vom GPIO-Pin lesen
den. Das Skript dht11_einfach.py aus
Listing 2 zeigt ein Beispiel, das die Daten Listing 5
des Sensors ausliest und anschließend Listing 3 01 [http]
auf der Konsole ausgibt. 02 enabled = true
$ python3 dht11_einfach.py
Listing 3 zeigt einen typischen Aufruf 03 bind‑address = ":8086"
des Skripts samt Rückgabewerten. Sie dht
04
temperature=17.0,humidity=49.0
legen es unter /usr/local/bin/ ab und 05 [[outputs.influxdb]]
06 timeout = "5s"
07 username = "admin"
Listing 2 08 password = "****"
09
import Python_DHT
10 [[inputs.exec]]
sensor = Python_DHT.DHT11
11 commands = ["python3 /usr/
pin = 4 local/bin/dht11_einfach.py"]
humidity, temperature = Python_DHT.read_retry(sensor, pin) 12 interval = "60s"
print("dht temperature="+str(temperature)+",humidity="+str(humidity)) 13 data_format = "influx"

03-04/2019 www.raspberry-pi-geek.de 59
Hacks Bienen-Monitoring

1 Kurz nach 10 Uhr morgens


hängten die Autoren den RasPi in die
Bienenbeute. Der Sensor misst Tem-
peraturen zwischen 8 und 9 Grad Celsius
an der Oberkante der unteren Zarge.

darf. Dafür sorgen Sie mit dem Kom- ten, systemctl start grafana‑server
Listing 6 mando usermod ‑a ‑G gpio telegraf. ruft ihn schließlich auf den Plan. Sie er-
$ influx In der Datei /etc/telegraf/tele‑ reichen das Webinterface über den
Connected to http:// graf.conf stehen im Abschnitt OUTPUT Port 3000, Benutzername und Passwort
localhost:8086 version 1.5.1 PLUGINS die Informationen zur Daten- lauten in diesem Beispiel admin. Als Ers-
InfluxDB shell version: 1.5.1 bank (Listing 5, ab Zeile 5). Im Bereich tes fügen Sie über Add data source die
> show databases
INPUT PLUGINS bleibt dann auch noch Datenbank telegraf hinzu. Danach geht
name: databases
Platz für das eigene Python-Skript, das es ans Einrichten des Dashboards, um
name
‑‑‑‑
später jeweils einmal pro Minute laufen 1
die Metriken zu visualisieren  .
soll (Listing 5, ab Zeile 10). Zunächst provisorisch mit Tüten und
telegraf
_internal Um zu prüfen, ob die Kommunikation Klebeband geschützt, wanderte der
> use telegraf zwischen Telegraf und Influx DB klappt, Raspberry Pi in das Bienenvolk, das
Using database telegraf starten Sie den Client. Listing 6 zeigt neben der Hauswand steht. Daher ließ
> show series eine Abfrage der Telegraf-Datenbank auf sich der Mini-Rechner über das vorhan-
key dem Testsystem. dene WLAN anbinden  . 2
‑‑‑ Die Imker entnahmen ein Rähmchen
cpu,cpu=cpu‑total,host=raspberr Anschaulich gemacht aus der obersten Etage der zweizargigen
ypi Beute, um Platz für den RasPi samt Sen-
[...] Grafana  übernimmt das Visualisieren sor zu schaffen. Der DHT11 misst dem-
dht,host=raspberrypi der gesammelten Daten. Die Software gemäß also die Temperatur an der Ober-
[...] unterstützt zahlreiche Datenquellen, kante der unteren Zarge. Bei einer
system,host=raspberrypi
darunter auch Influx-DB-Datenbanken. Außentemperatur von 1 Grad Celsius
> select * from dht;
Da in den offiziellen Raspbian-Reposito- waren das durchschnittlich 8 Grad.
name: dht
ries eine relativ alte Grafana-Version Höher fallen die Temperaturen an der
time host
liegt, fiel die Wahl in diesem Projekt auf Stelle aus, wo die Königin sitzt und wo
humidity temperature
‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑
ein aktuelles Paket von Github . gebrütet wird – um die 35 Grad Celsius.
1522242851000000000 raspberrypi Auch den Grafana-Dienst müssen Sie Andere Imker haben gleich drei oder
54 19 per systemctl enable auf den automa- vier Sensoren in den Beuten unterge-
1522242911000000000 raspberrypi tischen Start nach dem Booten vorberei- bracht und messen die Temperatur am
54 19 Flugloch, unter dem Deckel und in der
1522242971000000000 raspberrypi untersten Zarge. Das Hiveeyes-Projekt
53 19 Dateien zum Artikel präsentiert solche Ergebnisse .
1522243031000000000 raspberrypi Angelehnt an ein Sunfounder-Tuto-
herunterladen unter
53 19 rial  experimentierten die Autoren
www.raspi-geek.de/dl/41186
[...] auch mit einem DS18B20-Temperatur-

60 www.raspberry-pi-geek.de 03-04/2019
Bienen-Monitoring Hacks

2 Noch steckt der Mini-Rechner in einer


provisorischen Hülle. Ein wasserfestes Ge-
häuse und ein Solarmodul für die kabel-
lose Stromzufuhr stehen aber bereits auf
der Einkaufsliste.

sensor und einem Lautsprechermodul. Ausblick


Zur Kommunikation über das GPIO-Ex-
tension-Board installierten sie die Wiring- Für die Zukunft planen die Autoren ein
Pi-Bibliothek , die auch das Tool gpio Update in Form einer Stockwaage, um
3
auf den RasPi bringt  . das Gewicht der Völker zu beobachten.
Damit lässt sich ein Kontrollsystem rea- Der Imkerverein Nettetal setzte ein sol-
lisieren, das beim Überschreiten einer be- ches Projekt bereits mithilfe eines Ardui-
stimmten Temperatur ein Tonsignal aus- no um , die Daten präsentiert das
gibt. Eine solche Vorrichtung könnte Hiveeyes-Projekt.
etwa für den Transport von Bienenvöl- Eine solche Waage ist nicht nur im
kern interessant sein. Auf längeren Stre- Sommer interessant, um die Honigpro-
cken sorgt ein Gitter oben auf der Beute duktion zu beobachten: Sie lässt sich
für ausreichend Luftzufuhr, bei kürzeren auch im Winter nutzen, um besser einzu-
Wegen sichern viele Imker den Transport schätzen, ob die Tiere über ausreichend
aber einfach mit einem Spanngurt. Futter verfügen. Bleibt es sehr lange sehr
Wird es zu warm, fangen die Bienen kalt, benötigen die Bienen auch mehr
an, mit den Flügeln zu schlagen, um für Nahrung – der Imker sieht dann recht-
Abkühlung zu sorgen. Bei verschlosse- zeitig, ob sie knapp wird. (tle) n
ner Beute tritt aber der gegenteilige Ef-
fekt ein, sie heizt sich durch die erzeugte
Energie immer weiter auf. Die Tiere kön-
nen so hohe Temperaturen erzeugen,
dass Waben schmelzen und die Bienen
zugrunde gehen. Ein Signalton warnt
den Imker und verhindert, dass die Völ-
ker „verbrausen“, sich also bei der Küh-
lung des Bienenstocks zu Tode schuften.

Weitere Infos und 3 So sieht das


interessante Links GPIO-Layout für
den Bienenvolk-
www.raspi-geek.de/qr/41186
Monitor aus.

03-04/2019 www.raspberry-pi-geek.de 61
Hacks Infoscreen

© Przemyslaw Koch, 123RF


Automatischer Infoscreen auf Basis eines Raspberry Pi 3

Eleganter Diener
Tun Sie jeden Morgen dieselben Handgriffe, nur um zu sehen, ob die S-Bahn fährt und wie
das Wetter wird? Ein cleverer Infoscreen auf RasPi-Basis automatisiert den Vorgang.
Bernhard Bablok, Lothar Hiller

README Jeden Morgen dasselbe: der Griff Das Wecksignal für den RasPi liefert ein
zum Smartphone, um zu prüfen, ob die Bewegungsmelder, der auslöst, sobald
Eine Bewegung genügt, und auf dem
S-Bahn wirklich fährt und wie das Wetter Sie morgens aufstehen. Damit der Mini-
Display des Infoscreens erscheinen im frei
sich über den Tag entwickelt. Ein Rasp- Rechner nicht den ganzen Tag im Dauer-
konfigurierbaren Wechsel die relevantesten berry Pi, ein Bewegungssensor und ein betrieb sinnlos vor sich hin läuft, steuert
Webseiten oder die neuesten Mails – ganz Mikrocontroller sorgen für mehr Kom- der Bewegungsmelder zusätzlich das
ohne weitere Interaktion. Dazu benötigen fort. Statt manuell die relevanten Web- Herunterfahren: Registriert der Sensor
Sie lediglich einen RasPi 3, einen Touch- seiten abzurufen, soll der RasPi morgens für eine vorgegebene Zeit keine Bewe-
automatisch hochfahren und auf einem gung, löst er die passende Aktion aus.
screen, einen Bewegungssensor und einen
kleinen Bildschirm im Wechsel diese Als Hardware genügen ein RasPi 3,
Controller für wenige Euro.
Seiten automatisch anzeigen. ein kleiner Bildschirm, ein Bewegungs-

62 www.raspberry-pi-geek.de 03-04/2019
Infoscreen Hacks

melder sowie ein Mikrocontroller. Hinzu


kommt die passende Software, die das
Zusammenspiel zwischen dem RasPi,
dem Bewegungsmelder und dem Mikro-
controller regelt. Die für dieses Projekt
benötigte Software finden Sie im Git-
hub-Repository des Autors .

Der Bildschirm
Neben einem RasPi 3 mit eingebautem
WLAN-Chip benötigen Sie einen 7-Zoll-
Touchscreen von Waveshare , der bei
Amazon etwa 60 Euro kostet. Im Prinzip
lässt sich ein beliebiger Bildschirm für
den Einsatzzweck verwenden, das kos-
tengünstige Waveshare-Exemplar bietet
aber eine Reihe von Vorteilen: So bezieht
es seinen Strom via USB direkt vom
RasPi, Sie schalten es also automatisch
mit ihm zusammen an und ab. Die Be-
dienung mit den Fingern erlaubt ein
manuelles Eingreifen direkt vom RasPi 1 Zusammen mit dem Rahmen lässt sich der RasPi nahtlos in das Display integrieren.
ohne Tastatur oder Maus.
Der Touchscreen besitzt Montage-
löcher, es gibt ihn aber optional auch niert das nicht so bequem wie auf gen. Hier gilt es, eine praktikable Lösung
1
mit einem eigenen Rahmen  . Der Mobilgeräten: Tippen Sie ein Eingabe- zu implementieren, die das verhindert.
weist auf der Rückseite Montagelöcher feld an, startet die Tastatur nicht auto- Unabhängig von der Stromverschwen-
für verschiedene Einplatinencomputer matisch, das müssen Sie aus dem An- dung im ausgeschalteten Zustand fällt
auf, sodass sich der RasPi beinahe naht- wendungsmenü selbst erledigen. Dar- der Strombedarf insgesamt für den ge-
los integrieren lässt. über hinaus verdeckt die Tastatur dann planten Einsatzzweck eher bescheiden
Neben dem Display liefert die Firma die Hälfte der verfügbaren Fläche des aus. Trotzdem sollten Sie kein zu klein di-
zwei kurze USB- und HDMI-Kabel mit. kleinen Bildschirms. Für die Ersteinrich- mensioniertes Netzteil für den beschrie-
Montieren Sie den RasPi auf der Rück- tung empfiehlt sich deshalb auf alle Fälle benen Aufbau verwenden: Es muss nicht
seite des Touchscreens, dann besorgen eine externe Tastatur. nur die Leistungsaufnahme verkraften,
Sie sich dazu besser Winkeladapter, sonst Der Waveshare-Bildschirm bietet eine sondern darf dabei außerdem die Span-
stehen die Kabel über den Bildschirm- Auflösung von 1024 x 600 Pixeln. Damit nung nicht unter 4,75 Volt fallen lassen.
rand hinaus. Über den USB-Anschluss der RasPi damit zurecht kommt, tragen
bezieht das Display nicht nur den Strom, Sie die Daten aus Listing 1 in der /boot/ Automatisierung
sondern meldet sich auch als Maus am config.txt ein (die erste Zeile nur, wenn
Mini-Rechner an. Das funktioniert ohne Sie einen RasPi 2 verwenden). Für die Automatisierung verwenden wir
die zusätzliche Installation von Treibern. Der Stromverbrauch des Touchscreens einen Infrarot-Bewegungsmelder (PIR)
Benötigen Sie eine Bildschirmtastatur, liegt bei 750 mA, zusammen mit dem Modell HC-SR501, den Sie für wenige
so installieren Sie zusätzlich das Paket RasPi 3 macht das gut 1,2 A. Nach dem Euro bei allen bekannten Elektronikver-
matchbox-keyboard. Allerdings funktio- Herunterfahren ändert sich das aller- 2
sendern bekommen  . Er lässt sich
dings nicht, was aber am Mini-Rechner über Drehregler in der Empfindlichkeit
liegt und nicht am Bildschirm: Der Rasp- und der Auslöseverzögerung feinjustie-
Listing 1 berry Pi schaltet die Stromversorgung ren. Neben der Spannungsversorgung
max_usb_current=1 der USB-Buchsen im Soft-Off nicht ab. und Masse gibt es einen dritten An-
Daraus resultieren insgesamt 6 Watt schluss. Stellt der Sensor eine Bewegung
hdmi_group=2
Stromverbrauch im ausgeschalteten Zu- fest, setzt er dessen Pegel auf High. Da
hdmi_mode=87
stand, was weit jenseits aller zulässigen die Spannung dabei 3,3 Volt nicht über-
hdmi_cvt 1024 600 60 6 0 0 0
Grenzwerte liegt; in den Handel ließe schreitet, lässt sich die Leitung ohne Pro-
hdmi_drive=1 sich diese Kombination also nicht brin- bleme direkt an den RasPi anschließen.

03-04/2019 www.raspberry-pi-geek.de 63
Hacks Infoscreen

Listing 2
01 [GLOBAL]
02 gpios: 17
03 [GPIO17]
04 edge: rising
05 ignore_initial: 0
06 bounce_time: 60
07 command: '/usr/local/sbin/
shutdown‑timer'

2 Der Bewegungsmelder HC-SR501 sorgt im Zusammenspiel mit Mikrocontroller dafür,


dass sich der RasPi einschaltet, sobald Sie sich morgens in Ihren Räumen bewegen.

Da sich der Mini-Rechner nicht direkt per Der Bildschirm bleibt also an und aktiv,
Sensorpegel einschalten lässt, sitzt zwi- solange der PIR zumindest hin und wie-
schen den Komponenten der kleine der eine Bewegung im Raum feststellt.
Mikrocontroller PIC12F675 von Micro- Andernfalls fährt der RasPi endgültig
chip. Die Anforderung an den Controller herunter. Damit jetzt wieder der PIC die
fallen minimal aus, Sie können jedes be- Kontrolle übernimmt, signalisiert der
liebige Modell mit mindestens zwei Ein- RasPi den Shutdown zurück an den PIC,
gängen und einem Ausgang verwenden. der daraufhin über seinen Ausgang den
Unser System kennt zwei Zustände: Im Strom abschaltet – das System erreicht
Zustand Z1 ist der RasPi heruntergefah- erneut den Zustand Z1.
ren, der PIC überwacht mit dem IR-Sen-
sor den Raum; bei einer Bewegung setzt Software-Kontrolle
der Sensor den Ausgabepegel auf High.
Der PIC reagiert auf den Interrupt, schal- Damit das alles funktioniert, braucht es
tet über seinen Ausgang via Mosfet den die passende Logik sowohl auf RasPi-
Strom für den RasPi an und geht in den Seite als auch auf dem Mikrocontroller.
Standby-Modus. Damit ist der Zustand Diese lässt sich auf dem RasPi einfach
Listing 3 3
Z2 erreicht  . implementieren, da es alle Bausteine
01 #!/bin/bash Direkt nach dem Booten übernimmt schon fertig aus anderen Projekten gibt.
02 SHUTDOWN_DELAY=30 der Raspberry Pi im Zustand Z2 die Kon- Die PIR-Überwachung erledigt der gpio-
03 /sbin/shutdown ‑c trolle über den Bewegungsmelder. An- poll-service, den Sie zusammen mit einer
04 /sbin/shutdown ‑‑no‑wall geschlossen an einem GPIO-Pin lauscht detaillierten Installationsbeschreibung
+$SHUTDOWN_DELAY er auf Interrupts. Bleiben diese für eine auf Github  finden. Listing 2 zeigt die
definierte Zeitspanne aus, beispielswei- Konfiguration.
se für 30 Minuten, fährt er wieder herun- Der PIR ist über GPIO17 angeschlos-
Listing 4 ter. Jede vom Sensor erfasste Bewegung sen. Wechselt der Pegel auf High (Zei-
setzt diesen Shutdown-Timer dagegen le 4), führt der Dienst das Skript in Zei-
dtoverlay=gpio‑poweroff,gpiopin=4
wieder zurück. le 7 aus. Eine Besonderheit stellt die

64 www.raspberry-pi-geek.de 03-04/2019
Infoscreen Hacks

Bounce-Time in Zeile 6 dar: Sie dient


eigentlich der Software-Entprellung von
Schaltern und hat normalerweise einen
sehr kleinen Wert. In unserem Fall wäh-
len wir einen großen Wert von 60 Sekun-
den, damit das System nicht kurz hinter-
einander viele Bewegungsereignisse
verarbeiten muss.
Das simple Shutdown-Timer-Skript
aus Listing 3 besteht im Wesentlichen
aus zwei Befehlen. Der in Zeile 3 löscht
einen früher gesetzten Shutdown und
jener in der folgenden Zeile aktiviert ihn
wieder. Als letztes Argument für das
Shutdown-Kommando fungiert die Zeit
in Minuten bis zum Herunterfahren.
Damit der PIC mitbekommt, dass der
RasPi heruntergefahren ist, aktivieren Sie
noch in der /boot/config.txt ein ent-
sprechendes Overlay (Listing 4) und ver- 3 Das Diagramm verdeutlicht die verschiedenen Systemzustände und Übergänge des
binden GPIO4 (Pin 7) mit dem zweiten Konstrukts, die nötig sind, um das gesamte Konstrukt energiepsarend zu betreiben.
Eingang des PIC sowie mit einem Pull-
down (4,7k) nach Masse. Direkt nach
dem Shutdown setzt der RasPi den Pe-
gel auf High, was dem PIC signalisiert,
wieder in den Zustand Z1 zu wechseln.

Der Mikrocontroller
Der Mikrocontroller überwacht die
Eingänge von PIR und RasPi und steuert
den Gate des Mosfets, der den Strom für
den Pi schaltet. Neben dem Mikrocon-
troller und dem Mosfet sitzen auf der
4 5
Platine (Abbildungen  und ) noch
eine Hohlbuchse für ein per 5,5/2,1-mm-
Buchse angeschlossenes 12-Volt-Netz-
teil, ein DC-DC-Konverter sowie ein
Klemmanschluss für ein Micro-USB-
Kabel, das als Stromzuführung für den
Raspberry Pi dient.
Die Betriebsspannung von 5 Volt aus
den 12 Volt des Eingangs per Stepdown-
Konverter zu erzeugen bringt sowohl
Vor- als auch Nachteile mit sich. Zum
einen schlägt der Leistungsverlust des
Konverters zu Buche. Da der Infoscreen
aber nicht im Dauerbetrieb läuft, lässt
sich dieser Effekt verkraften. Der große
Vorteil der Schaltung: Die 5 Volt stehen
stabil bereit. Bei einem Prototyp mit nor-
malem 5-Volt-Netzteil zeigte sich, dass
die Kombination aus Bewegungssensor 4 Schaltplan für die Steuerplatine, über die der Mikrocontroller die
und RasPi sehr empfindlich auf Unter- Stromzufuhr zum Raspberry Pi unterbricht.

03-04/2019 www.raspberry-pi-geek.de 65
Hacks Infoscreen

Listing 5
01 @lxpanel ‑‑profile LXDE‑pi
02 @pcmanfm ‑‑desktop ‑‑profile
LXDE‑pi
03 @/usr/bin/chromium‑browser
‑‑kiosk ‑app=file:///usr/
local/lib/iscreen/web/index.
html
04 @unclutter
05 @xset s off
06 @xset dpms force off

5 Das Bild zeigt links die Oberseite und rechts die Unterseite der Mikrocontroller-
Platine, die Sie mit der GPIO-Buchse auf den RasPi stecken.

spannung reagiert und anschließend Dazu benötigen wir wieder einen INT
Phantom-Interrupts auslöst. wie in Z1, den es aber nur einmal je PIC
Die Logik des Aufbaus fasst Abbil- gibt. Die Lösung ist das Überwachen von
6
dung  zusammen – der Ablauf ließe GPIO4 des RasPi an GP4 des PIC mithilfe
sich problemlos auch auf andere Cont- des Interrupt-On-Change, kurz I-O-C ge-
rollertypen übertragen. Die Wahl fiel bei nannt. Um diesen für GP4 zu nutzen,
uns auf den kostengünstigen und strom- müssen Sie im INTCON-Register diesmal
sparenden PIC12F675, für den die kom- das GPIF-Bit löschen und das GPIE-Bit
plette Programmentwicklung auch auf setzen; dann folgt wieder der SLEEP-
dem RasPi selbst abläuft. Befehl. Tritt das Ereignis GPIO4=1 auf,
Das Hauptprogramm im PIC12F675  wacht der PIC auf, und setzt seine Arbeit
besteht aus einer Endlosschleife mit fort und schaltet über GP5=High den T1
zwei Zuständen. Der erste Programmteil, ab. Nach einer Wartezeit, die genügt, um
Zustand 1 (Z1), überwacht den PIR auf den Erfassungsbereich des IR-Sensors zu
erkannte Bewegungen, also das Erken- verlassen, springt der PIC im Programm
nen einer steigenden Flanke von Low auf aus Zustand 2 wieder nach Zustand 1
High an OUT. Dazu verwenden wir den zurück. Nun beginnt die ganze Routine
flankengetriggerten Interrupt GP2/INT. von Neuem.
Der wird aktiviert, wenn wir im OPTI‑
ON_REG die steigende Flanke gewählt Anwendungsprogramm
haben und im INTCON-Register das Inter-
rupt-Flag INTF gelöscht und das Inter- Die bisher besprochene Software auf
rupt-Enable-Bit INTE auf 1 gesetzt wur- dem RasPi und PIC kümmert sich rein
de. Danach wird der PIC mit dem SLEEP- um das Steuern der Hardware. Für den
Befehl in den Ruhezustand geschickt. Infoscreen selbst kommen diverse Soft-
Er wartet nun auf das oben genannte ware-Projekte infrage – eine Google-
Ereignis, das ihn wieder aufweckt und Suche liefert hier viele Treffer. Allerdings
die Befehle nach SLEEP abarbeitet. Das eignen sich die meisten Lösungen nicht
macht er aber nur, wenn der Global- wirklich für den Heimeinsatz, denn ein
Interrupt abgeschaltet ist (GIE=0). Nun ausgefeiltes Management der Inhalte
erfolgt das Einschalten des RasPi mit spielt in diesem Projekt ebenso wenig
Ausgabe GP5=Low an das Gate des Mos- eine Rolle wie ein Multiscreen-Betrieb.
fets T1 (Si4463).
Im Ablaufplan an der Stelle Zustand 2
(Z2) wartet der PIC nun auf die Meldung Dateien zum Artikel
des RasPi, dass er heruntergefahren wur- herunterladen unter
6 Der Programmablaufplan, nach dem de, um anschließend die Stromversor-
www.raspi-geek.de/dl/41929
der Mikrocontroller arbeitet. gung wieder auszuschalten.

66 www.raspberry-pi-geek.de 03-04/2019
Infoscreen Hacks

Aus diesem Grund kommt ein viel ein-


facheres Verfahren zum Einsatz: Der
Raspbian-Standardbrowser Chromium
ruft eine kleine, lokal vorliegende HTML-
Seite auf. Sie besteht nur aus einem lee-
ren Iframe, einer Liste von Webseiten
und etwas Javascript-Logik. Timer-
gesteuert lädt der Javascript-Code die
Seiten nacheinander im Wechsel in den
Iframe. Zusätzliche Schalter erlauben
das Unterbrechen oder die direkte An-
7
wahl einer Webseite  .
Das Laden der Webseite erfolgt beim
Systemstart über den Autostart-Mecha-
nismus von LXDE (Pixel-Desktop). Dazu
ersetzen Sie den Inhalt der Datei /home/
pi/.config/lxsession/LXDE‑pi/auto‑
start durch die Zeilen aus Listing 5.
Nach einer Neuanmeldung startet dann
der Webbrowser mit der angegebenen
Seite automatisch.
Ein ganze Reihe von Maßnahmen
sorgt dafür, dass die geladene Webseite
den knappen Bildschirmplatz möglichst 7 Der Infoscreen zeigt Webseiten im Kioskmodus an. Als Unterbau dient
optimale ausnutzt. Die Anwendung Googles Chromium-Browser, in Kombination mit einer statischen lokalen HTML-Seite.
selbst legt die blaue Navigationsleiste
schwebend am oberen Rand über die
angezeigte Webseite – oben zeigen viele Fazit
Webseiten sowieso vergleichsweise in-
haltslose Banner an. Mit wenig Aufwand bauen Sie Ihren ei-
Die Option ‑app= in Zeile 3 sorgt beim genen maßgeschneiderten Infoscreen.
Programmstart dafür, dass Chromium die Das Ganze funktioniert im Prinzip auch
Menüs und die Adresszeile ausblendet. ohne Mikrocontroller und intelligente
Die Option ‑‑kiosk startet den Web- Schaltung – Sie müssen den RasPi dann Weitere Infos und
browser im Vollbildmodus. Dadurch ge- morgens manuell booten. Herunterfah- interessante Links
langen Sie aber auch nicht mehr in das ren könnte man statt via PIR ganz ohne www.raspi-geek.de/qr/41929
Anwendungsmenü, der manuelle Start Sensor einfach zeitgesteuert, wobei
weiterer Applikationen oder ein Shut- ohne Schaltungslogik der unverhältnis-
down gelingt dann nicht mehr. Als Alter- mäßige Standby-Stromverbrauch mit
native verwenden Sie ‑‑start‑maxi‑ der Zeit ins Geld geht. Dank Touchscreen Die Autoren
mized. Im letzteren Fall ergibt es auch wäre aber auch ein manuelles Herunter-
Bernhard Bablok (mail@bablokb.de)
Sinn, das horizontale Panel vertikal am fahren mit anschließendem Ziehen des
arbeitet bei der Allianz Technology SE als
rechten Bildschirmrand zu platzieren. Steckers vertretbar.
SAP-HR-Entwickler. Wenn er nicht Musik
Damit die Darstellung noch besser Die angezeigten Inhalte beschränken hört oder mit dem Rad oder zu Fuß unter-
zum kleinen Bildschirm passt, installie- sich dabei bei Weitem nicht auf die wegs ist, beschäftigt er sich mit Themen
ren Sie aus dem Chrome-Webstore einen Präsentation von Webseiten. Binden Sie rund um Linux, Programmierung und
User-Agent-Switcher. Er ermöglicht, dass statt des Webbrowser-Aufrufs ein kleines Mini-Rechner. Bei Lothar Hiller, einem
sich Chromium beim Webserver zum Skript in die Autostart-Datei ein, lassen Ingenieur für Nachrichtenbetriebsdienst im
Beispiel als iPhone 6 ausgibt und der sich Inhalte darüber hinaus abhängig Ruhestand und leidenschaftlichen Elektro-
Webserver in diesem Fall unter Umstän- von der Tageszeit anzeigen – am Abend nikbastler, geht der Lötkolben so gut wie
den versucht, eine für kleine Bildschirme zum Beispiel eine Liste der eingetroffe- nie aus. Er programmiert Mikrocomputer
optimierte Variante des Inhalts auslie- nen Mails oder einfach nur eine Diashow wie PICs in Assembler und beschäftigt sich
fert. Allerdings unterstützen nicht alle mit stimmungsvollen Motiven aus den seit 2015 auch mit dem Einsatz des Rasp-
Webserver diese Funktion. letzten Urlauben. (tle) n berry Pi im Heimbereich.

03-04/2019 www.raspberry-pi-geek.de 67
Open Hardware Fischertechnik steuern

Fischertechnik-Roboter
mit dem Ftduino steuern

Mach mal!

© luchschen , 123RF
Oftmals übernehmen Roboter mono- auf einem Rechner installieren und ein-
Das Ftduino-Modul schlägt
tone, schwere oder gefährliche Arbeiten. richten, um das Ftduino-Modul zu pro-
die Brücke zu Fischertechnik Ein Roboter aus Fischertechnik reicht grammieren. Der vorliegende Artikel
zwar nicht an seine Kollegen in der In- setzt auf diese Installation auf. Damit Sie
und ermöglicht es unter an- dustrie heran, hilft aber dabei, die Über- eine bessere Vorstellung vom Ergebnis
bleibsel aus Basteleien fachmännisch zu dieses Workshops bekommen, schauen
derem, einen Drei-Achsen- entsorgen. Dabei kommt ein Drei-Ach- Sie einfach bei Youtube vorbei .
sen-Roboter zum Einsatz, den ein Ftdui-
Roboter anzusteuern. no-Modul ansteuert. Als Entwicklungs- Aufbau Hardware
umgebung bietet sich daher die Arduino
Martin Mohr IDE an. Über ein LC-Display sehen Sie, Die Basis für den Aufbau bilden ein Ro-
was der Roboter gerade macht. boter von Fischertechnik mit drei Ach-
In der letzten Ausgabe  finden Sie sen  sowie das Ftduino-Modul . Den
Hinweise dazu, wie Sie die Arduino IDE Roboter bauen Sie entsprechend der

README Notabschaltung
Ein Roboter mit drei Achsen, wie das Modell Die großen Kollegen des Fischertechnik- Aufgabe. Diese Abschaltvorrichtung muss
von Fischertechnik, erfordert besondere Vor- Roboters verfügen allesamt über eine immer funktionieren – es bringt also
Abschaltvorrichtung für Notfälle. Sie nichts, die Funktion mit ins Programm auf-
sicht beim Ansteuern. Wenn Sie sich aber
sollten ebenfalls immer in der Lage sein, zunehmen. Es sollte sich grundsätzlich um
mit dem Prinzip vertraut gemacht haben,
dem Roboter schnell den Saft abzudrehen. eine unabhängige und fehlertolerante,
fällt es schnell sehr leicht, Ideen in konkrete Im Aufbau für diesen Artikel übernahm hardwarebasierte Lösung handeln, die im
Programme umzusetzen. eine schaltbare Steckdosenleiste diese Zweifelsfall den Strom sofort abschaltet.

68 www.raspberry-pi-geek.de 03-04/2019
Fischertechnik steuern Open Hardware

Anleitung auf. Zur besseren Übersicht


sollten Sie die einzelnen Schalter und
Motoren des Roboters beschriften. Es
bietet sich an, anstelle der Original-
leitungen ein Flachbandkabel zu ver-
wenden, das gestaltet den Aufbau ins-
gesamt etwas aufgeräumter  . 1
Anschließend verbinden Sie den Ro-
boter gemäß den Schaltplänen in Abbil-
2 3
dung  und Abbildung  über eine
Klemmleiste mit dem Ftduino-Modul.
Die Leiste dient dazu, den Roboter vom
Modul zu trennen – so lässt er sich bei
Bedarf schnell mit einem anderen Modul
ansteuern. Als Nebeneffekt fällt es so
leichter, ohne großen Aufwand Fehler in
der Verdrahtung zu korrigieren.
Außerdem erleichtert die Klemmleiste 1 Der komplett aufgebaute Fischertechnik-Roboter mit Ftduino-Modul.
das Überprüfen der Signalpegel. Es gibt
also viele gute Gründe für den Einsatz
einer solchen Klemmleiste. Um der de beim Initialisieren wissen Sie ja nicht,
Wahrheit die Ehre zu geben, der Autor in welcher Position er zuletzt stehenge-
verwendete im Testaufbau statt einer blieben ist. Der Roboter aus dem Test
Klemmleiste schlichte Lüsterklemmen: mag zwar im Grunde ein Spielzeug sein,
Diese sind preiswerter und erfüllen im fegt aber trotzdem ohne Probleme ein
konkreten Fall denselben Zweck. Glas vom Tisch (siehe dazu Kasten Not-
Der Schaltplan sieht einige Schalter abschaltung).
(S1 bis S4) vor, um unterschiedliche Funk-
tionen des Roboters zu aktivieren. Zu- Programm initialisieren
sätzlich gibt es ein über die I2C-Schnitt-
stelle des Ftduino angeschlossenes Mini- Um den Roboter zu initialisieren, definie-
Display, das die aktuellen Aktionen des ren Sie zuerst, was links und rechts ist –
Roboters anzeigt. Dabei kommt ein han- sonst kommen Sie später beim Program-
delsübliches OLED-Display mit 0,96 Zoll mieren und Testen durcheinander. In den
Diagonale und einem SSD1306-Control- folgenden Beispielen bedeutet rechts
ler zum Einsatz. Ein Gehäuse drucken Sie immer, dass sich der Motor auf den Null-
sich bei Bedarf selbst mit einem 3D- schalter (I1-I4) hinbewegt. Sollte das bei
Drucker aus . Ihrem Aufbau nicht der Fall sein, dann
tauschen Sie die Polarität am Motor.
Hintergrund Das Testprogramm ist relativ einfach
aufgebaut: Es importiert die Ftduino-
Der Roboter verwendet Impulsgeber, Bibliothek, mit der letztendlich alle nöti-
um festzustellen, an welchen Positionen gen Objekte bereitstehen. Die Funktion
sich die Achsen befinden. Sie erzeugen init_robot() umfasst alle Kommandos,
eine bestimmte Anzahl Impulse pro Um- die Sie brauchen, um die Maschine kor-
drehung. Diese zählen Sie, um die aktu- rekt zu initialisieren.
elle Position zu ermitteln. Allerdings er-
fassen die Pulsgeber nicht die Drehrich-
tung. Daher eignen sie sich dann nur Listing 1
sinnvoll als Positionsgeber, wenn Sie sie
01 ftduino.input_set_mode(Ftduino::I3,Ftduino::SWITCH);
vor dem Betrieb einmal initialisieren.
02 ftduino.motor_set(Ftduino::M3,Ftduino::RIGHT,Ftduino::MAX);
Es klingt vielleicht etwas banal, aber
03 while (!ftduino.input_get(Ftduino::I3)){}
achten Sie darauf, dass dem Roboterarm
keine Hindernisse im Weg stehen. Gera- 04 ftduino.motor_set(Ftduino::M3,Ftduino::BRAKE,Ftduino::MAX);

03-04/2019 www.raspberry-pi-geek.de 69
Open Hardware Fischertechnik steuern

Um eine Achse des Roboters zu initialisie- (Listing 1, Zeile 2), bis er seinen Endpunkt
ren, definieren Sie zunächst den Eingang erreicht (Listing 1, Zeile 3). Nun bremsen
des fraglichen Endschalters als Schalter Sie den Motor (Listing 1, Zeile 4).
(Listing 1, Zeile 1). Dann drehen Sie den Diese Schritte wiederholen Sie jetzt für
Motor der Achse so lange nach rechts alle drei Achsen und den Greifer. Bewe-
gen Sie die Achsen so, dass sie nach Mög-
lichkeit keine Kollisionen verursachen –
erst hoch-, dann einfahren und zum
Schluss drehen. Würden Sie den Arm im
ausgefahrenen Zustand drehen, wäre die
Wahrscheinlichkeit hoch, dass Sie irgend-
einen Gegenstand umwerfen. Wollen Sie
auf Nummer sicher gehen, aktivieren Sie
die jeweiligen Achsen einzeln.
Die Funktion init_robot() ruft das
Programm direkt aus der Funktion
setup() nach dem Initialisieren der Bib-
liothek auf. Die vier Kommandos motor_
counter() fahren jede Achse wieder ein
kleines Stück nach links, damit der Robo-
ter bei einem weiteren Testlauf nicht so-
fort in der Anfangsposition steht.
Bei genaueren Hinsehen fällt auf, dass
der Roboter alle Motoren gleichzeitig
bewegt: Das Bewegen eines Motors
geschieht nicht blockierend, und das
Programm läuft weiter. Das ist eigentlich
ein Vorteil, führt aber in manchen Fällen
zu Problemen, wie ein weiteres Testpro-
2 Die Verdrahtung ab Klemmleiste zum Roboter. Zur besseren Übersicht sollten Sie die gramm verdeutlicht (Listing 2). Die Funk-
einzelnen Schalter und Motoren des Roboters beschriften. tion loop() brauchen wir in diesem Test
nicht, daher bleibt sie leer. Man kann sie
aber nicht komplett löschen, da sonst
der Compiler einen Fehler wirft.

LC-Display
Um das LC-Display anzusteuern, benöti-
gen Sie zwei Bibliotheken. Um sie einzu-
binden, navigieren Sie in der Arduino-
IDE zu Sketch | Bibliothek einbinden |
Bibliotheken verwalten. In der Maske su-
chen Sie zuerst nach der Bibliothek Ada-
fruit_SSD1306 und installieren sie. An-
schließend suchen Sie nach Adafruit_
GFX und fügen diese Library ebenfalls
hinzu. Das LC-Display schließen Sie an
den I2C-Port des Ftduino an. Eine aus-
führliche Anleitung dazu finden Sie im
Kapitel 6.13.3 des Handbuchs . Auch
für das Display benötigen Sie wieder
einige Bibliotheken: Die Header-Datei
3 Die Verdrahtung vom Ftduino-Modul bis zur Klemmleiste. Ein Flachbandkabel gestal- Wire.h stellt die Unterstützung zur Kom-
tet hier den Aufbau etwas aufgeräumter. munikation über den I2C-Bus bereit,

70 www.raspberry-pi-geek.de 03-04/2019
Fischertechnik steuern Open Hardware

Adafruit_SSD1306.h enthält die Daten In der Funktion setup() baut das Pro-
für die Grundfunktionen des Displays. In gramm die Verbindung zum Display auf
Adafruit_GFX.h lagern alle Funktionen, (I2C-Adresse 0x3c) und aktiviert die
um Grafik und Text darzustellen. Alle Schnittstelle für den seriellen Monitor.
Operationen finden immer im Puffer- Die Funktion loop() enthält die zur An-
speicher des Ftduino statt, erst die Me- zeige von Text nötigen Kommandos. Die
thode display.display() überträgt die Methode display.print() zeigt die
Daten ins Display. Ausgabe an der zuvor mit display.set‑
Beim Testprogramm (Listing 3) für das Cursor() definierten Position an. Hier
Display handelt es sich um einen Zähler, gilt es zu beachten, dass die Funktion
der seinen aktuellen Stand sowohl auf die Parameter in Pixeln erwartet.
dem Bildschirm wie auf den seriellen
Monitor ausgibt. Das Programm beginnt
Müll entsorgen
mit der Definition einiger Werte und der
Initialisierung eines Objekts namens Im eigentlichen Programm besteht die
display, mit dem die Software alle Aufgabe des Roboters aber darin, den
weiteren Operationen ausführt. Abfall auf dem Schreibtisch zu greifen

Listing 2
#include <Ftduino.h>

void init_robot() { Listing 3


ftduino.input_set_mode(Ftduino::I3,Ftduino::SWITCH); #include <Wire.h>
ftduino.motor_set(Ftduino::M3,Ftduino::RIGHT,Ftduino::MAX); #include <Adafruit_GFX.h>
while (!ftduino.input_get(Ftduino::I3)){} #include <Adafruit_SSD1306.h>
ftduino.motor_set(Ftduino::M3,Ftduino::BRAKE,Ftduino::MAX);

#define SCREEN_WIDTH 96
ftduino.input_set_mode(Ftduino::I2,Ftduino::SWITCH);
#define SCREEN_HEIGHT 32
ftduino.motor_set(Ftduino::M2,Ftduino::RIGHT,Ftduino::MAX);
#define OLED_RESET 4
while (!ftduino.input_get(Ftduino::I2)){}
ftduino.motor_set(Ftduino::M2,Ftduino::BRAKE,Ftduino::MAX);
Adafruit_SSD1306 display(SCREEN_
WIDTH, SCREEN_HEIGHT, &Wire,
ftduino.input_set_mode(Ftduino::I1,Ftduino::SWITCH);
OLED_RESET);
ftduino.motor_set(Ftduino::M1,Ftduino::RIGHT,Ftduino::MAX);
int i=0;
while (!ftduino.input_get(Ftduino::I1)){}
ftduino.motor_set(Ftduino::M1,Ftduino::BRAKE,Ftduino::MAX);
void setup() {
Serial.begin(9600);
ftduino.input_set_mode(Ftduino::I4,Ftduino::SWITCH);
display.begin(SSD1306_
ftduino.motor_set(Ftduino::M4,Ftduino::RIGHT,Ftduino::MAX);
SWITCHCAPVCC, 0x3C);
while (!ftduino.input_get(Ftduino::I4)){}
ftduino.motor_set(Ftduino::M4,Ftduino::BRAKE,Ftduino::MAX); }
}
void loop() {
void setup() { display.clearDisplay();
ftduino.init(); display.setTextSize(1);
init_robot(); display.setTextColor(WHITE);
display.setCursor(32,0);
ftduino.motor_counter(Ftduino::M1,Ftduino::LEFT,Ftduino::MAX, 400); display.print("#:");
ftduino.motor_counter(Ftduino::M2,Ftduino::LEFT,Ftduino::MAX, 10); Serial.print("#:");
ftduino.motor_counter(Ftduino::M3,Ftduino::LEFT,Ftduino::MAX, 400); display.print(i);
ftduino.motor_counter(Ftduino::M4,Ftduino::LEFT,Ftduino::MAX, 10); Serial.println(i);
} i++;
display.display();
void loop() { delay(400);
} }

03-04/2019 www.raspberry-pi-geek.de 71
Open Hardware Fischertechnik steuern

Sie fragt die Taster I8 und I7 ab. Betäti- ren ihre Positionen erreicht haben, bevor
gen Sie einen der beiden, führt die Soft- das Programm weiterläuft. Dabei hilft
ware den dahinterliegenden Programm- die Methode ftduino.motor_counter_
code aus. Über die Methode ftduino. active(). Sie gibt true zurück, solange
motor_counter() geben Sie wiederum der Motor noch läuft. Erreicht er die ge-
für einen Motor eine bestimmte Anzahl wünschte Position, liefert sie ein false.
Umdrehungen in eine bestimmte Rich- Mithilfe einer While-Schleife halten Sie
tung vor. nun das Programm so lange an, bis einer
Da die Funktion nicht blockiert, dür- der Motoren sein Ziel erreicht hat. Haben
fen mehrere Motoren gleichzeitig laufen. Sie mehr als einen Motor gestartet, ver-
Sie benötigen allerdings eine Möglich- knüpfen Sie in der While-Schleife alle
keit, um herauszufinden, ob alle Moto- Rückgabewerte logisch.

und ihn fachgerecht zu entsorgen. Der Listing 4


Ablauf startet, sobald Sie den Taster I8 #include <Adafruit_GFX.h>
drücken. Da sich der Roboter direkt nach #include <Adafruit_SSD1306.h>
dem Einschalten initialisiert hat, kann er
direkt die Position anfahren, an der sich #define SCREEN_WIDTH 128
der Müllcontainer befindet. #define SCREEN_HEIGHT 64
#define OLED_RESET 4

Auf Tastendruck Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);


Drücken Sie den Taster I7, initialisiert sich
void init_robot() {
der Roboter neu. Da das Programm mit
display_message("Init");
relativen Koordinaten arbeitet, ist es
ftduino.input_set_mode(Ftduino::I3,Ftduino::SWITCH);
wichtig, dass der Roboter beim Start des
ftduino.motor_set(Ftduino::M3,Ftduino::RIGHT,Ftduino::MAX);
Programms immer an derselben Position while (!ftduino.input_get(Ftduino::I3)){}
steht. Er verfügt keine Sensoren, um ftduino.motor_set(Ftduino::M3,Ftduino::BRAKE,Ftduino::MAX);
seine Umgebung wahrzunehmen.
Aus diesem Grund funktioniert die ftduino.input_set_mode(Ftduino::I2,Ftduino::SWITCH);
Software nur, wenn alle beteiligten Ge- ftduino.motor_set(Ftduino::M2,Ftduino::RIGHT,Ftduino::MAX);
genstände immer an demselben Platz while (!ftduino.input_get(Ftduino::I2)){}
stehen. Das erreichen Sie etwa durch ftduino.motor_set(Ftduino::M2,Ftduino::BRAKE,Ftduino::MAX);
aufgeklebte Markierungen an den ent-
sprechenden Stellen. Alternativ ver- ftduino.input_set_mode(Ftduino::I1,Ftduino::SWITCH);
ftduino.motor_set(Ftduino::M1,Ftduino::RIGHT,Ftduino::MAX);
schrauben Sie den gesamten Aufbau auf
while (!ftduino.input_get(Ftduino::I1)){}
einer großen Platte aus Holz und passen
ftduino.motor_set(Ftduino::M1,Ftduino::BRAKE,Ftduino::MAX);
anschließend die Koordinaten im Pro-
gramm an diesen Aufbau an.
ftduino.input_set_mode(Ftduino::I4,Ftduino::SWITCH);
Fast alle Teile des Programms (Lis- ftduino.motor_set(Ftduino::M4,Ftduino::RIGHT,Ftduino::MAX);
ting 4) kennen Sie schon aus den ersten while (!ftduino.input_get(Ftduino::I4)){}
zwei Programmen. Die Funktion dis‑ ftduino.motor_set(Ftduino::M4,Ftduino::BRAKE,Ftduino::MAX);
play_message() kommt neu hinzu: Mit }
ihr zeigen Sie einfache Statusmeldun-
gen des Roboters auf dem Display an. void display_message(String s){
In der Funktion loop() befindet sich display.clearDisplay();
der Code zum Ansteuern des Roboters. display.setTextSize(3);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.print(s);
Dateien zum Artikel display.display();
herunterladen unter }
www.raspi-geek.de/dl/41132

72 www.raspberry-pi-geek.de 03-04/2019
Fischertechnik steuern Open Hardware

Bei den Impulsgebern der Motoren ist festzuhalten, lässt sich nur schwer
es wichtig zu wissen, dass die einfachen herausfinden. Je nachdem, wie der
Geber (Greifen und Ausfahren) vier Im- Greifer sie erwischt, erreicht die Soft-
pulse pro Motorumdrehung liefern. Die ware die vorgegebene Anzahl von
Motoren mit eingebautem Pulsgeber Schritten eventuell nie – dann bleibt
(Heben und Drehen) liefern hingegen das Programm hängen.
75 Impulse pro Umdrehung. So kommt Um das zu verhindern, fragt das Pro-
es, dass die Werte für die Anzahl der gramm beim Greifen nie den Counter ab.
Impulse so stark variieren. Sie geben eine Schrittanzahl vor, von der
Der Greifer stellt noch ein echtes Pro- Sie wissen, das sie gut passt, und warten
blem dar. Die korrekte Anzahl an Impul- anschließend nur eine gewisse Zeit, bis
sen, die nötig sind, um die Tonne gut Sie mit dem Ausführen fortfahren.

Mit diesem einfachen Trick umschiffen


void setup() { Sie das Problem mit der Koordination im
while(!Serial){}; Allgemeinen recht gut.
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
ftduino.init(); Fazit
init_robot();
ftduino.input_set_mode(Ftduino::I5,Ftduino::SWITCH); Es macht immer wieder Spaß, mit Fischer-
ftduino.input_set_mode(Ftduino::I6,Ftduino::SWITCH); technik zu arbeiten. Die Aufbauten er-
ftduino.input_set_mode(Ftduino::I7,Ftduino::SWITCH); weisen sich als robust und technisch aus-
ftduino.input_set_mode(Ftduino::I8,Ftduino::SWITCH); gereift. Möchten Sie dennoch etwas än-
display_message("Ready"); dern, stellt das meist kein Problem dar.
} Das Ftduino-Modul erweitert dieses Sys-
tem sinnvoll: Es bietet viele Möglichkei-
ten zum Ansteuern und ermöglicht so
void loop() { den Aufbau komplexer Modelle. Bei Be-
if(ftduino.input_get(Ftduino::I8)){ darf lassen sich über die I2C-Schnittstelle
display_message("Start"); auch mehrere Ftduino-Module kaskadie-
ftduino.motor_counter(Ftduino::M3,Ftduino::LEFT,Ftduino::MAX, 2000); ren, die ein Raspberry Pi dann alle an-
ftduino.motor_counter(Ftduino::M1,Ftduino::LEFT,Ftduino::MAX, 320); steuern könnte. Haben Sie sich schon
ftduino.motor_counter(Ftduino::M2,Ftduino::LEFT,Ftduino::MAX, 48); immer für Roboter interessiert und pro-
while(ftduino.motor_counter_active(Ftduino::M1)|| grammieren gerne, dann finden Sie in
ftduino.motor_counter_active(Ftduino::M3)|| dieser Hardware-Kombination also ein
ftduino.motor_counter_active(Ftduino::M2)); passendes Betätigungsfeld. (agr) n
display_message("Grab");
ftduino.motor_counter(Ftduino::M4,Ftduino::LEFT,Ftduino::MAX, 15);
delay(1000); Der Autor
display_message("Move");
Martin Mohr interessierte sich schon in
ftduino.motor_counter(Ftduino::M3,Ftduino::RIGHT,Ftduino::MAX, 2000);
früher Jugend für alles, was blinkt; eine
while(ftduino.motor_counter_active(Ftduino::M3));
Vorliebe, die eine Ausbildung zum Elektro-
ftduino.motor_counter(Ftduino::M1,Ftduino::LEFT,Ftduino::MAX, 900);
niker noch verstärkte. Nach einem Infor-
while(ftduino.motor_counter_active(Ftduino::M1));
matikstudium entwickelte er überwiegend
display_message("Drop");
Java-Applikationen. Mit dem RasPi er-
ftduino.motor_counter(Ftduino::M4,Ftduino::RIGHT,Ftduino::MAX, 15);
wachte seine Liebe zur Elektronik wieder.
delay(600);
display_message("End");
}
if(ftduino.input_get(Ftduino::I7)){
Weitere Infos und
init_robot();
interessante Links
}
} www.raspi-geek.de/qr/41132

03-04/2019 www.raspberry-pi-geek.de 73
Know-how Sonic Pi (Teil 3)

Audio-Programmierung mit Sonic Pi, Teil 3

© Olivier Le Moal, 123RF


Im Gleichtakt
Synchronisierte Live-Loops Die ersten beiden Teile unserer Sonic-Pi- Erinnerung ein einfaches Beispiel für
Serie haben die Grundlagen der Sprache deren Verwendung. Der Live-Loop :bd
und selbst erstellte Funkti- vorgestellt und gezeigt, wie Sie eigenes wiederholt den Code im zugehörigen
Klangmaterial einbauen sowie ganze Block (Zeilen 2 und 3) in einer Endlos-
onen helfen dabei, Sonic Pi Verzeichnisbäume dynamisch nach schleife, der Live-Loop :snap wiederholt
Sounds durchsuchen. In Teil 3 geht es die Zeilen 6 bis 10. Beide Loops arbeiten
wie ein Live-Instrument zu darum, wie Sie parallel laufende Live- in eigenen Threads, andernfalls würden
Loops synchronisieren und eigene Funk- sie nicht gleichzeitig spielen.
spielen. Pit Noack tionen schreiben. Ändern Sie den Code in einem der
Blöcke und drücken erneut den Run-
Dreh- und Angelpunkte Knopf oder [Alt]+[R], führt Sonic Pi beim
jeweils nächsten Schleifendurchgang
Ob live programmiert oder nicht: Live- den modifizierten Code aus. In Listing 1
Loops fungieren als Dreh- und Angel- böte es sich an, die Anzahl der Wieder-
punkt von Sonic Pi. Listing 1 zeigt zur holungen (3.times) oder die Dauer der

README Serie: Audio-Programmierung mit Sonic Pi


Mit etwas Übung spielen Sie Sonic Pi wie Einführung: Audio-Pro-
Teil 1 RPG 11-12/2018 http://www.raspi-geek.de/41258
grammierung mit Sonic Pi
ein Live-Instrument: Die Audio-Program-
Samples dynamisch
miersprache bietet die Möglichkeit, Code Teil 2 RPG 01-02/2019 http://www.raspi-geek.de/41259
auswählen und zerlegen
während der Ausführung zu modifizieren. Synchrone Live-Loops
Teil 3 RPG 03-04/2019 http://www.raspi-geek.de/41260
und eigene Funktionen
Die Synchronisation von Live-Loops und die
MIDI- und OSC-Ereignisse
Definition eigener Funktionen helfen dabei. Teil 4 RPG 05-06/2019 (erscheint am 04.04.2019)
verarbeiten

74 www.raspberry-pi-geek.de 03-04/2019
Know-how Sonic Pi (Teil 3)

Pausen zwischen den Schnipsern (sleep der Wiederholungen des Schnipsers in


0.5 / 3) im snap-Loop zu variieren. Da- Zeile 9 und den Teiler in Zeile 11 ändern
bei kann es schnell passieren, dass der und erhalten im Ergebnis immer einen
Loop aus dem Ruder läuft – etwa wenn rund laufenden Beat.
Sie zwischen Drittel- und Viertelschlägen Auch in Fehlersituationen erweist sich
wechseln oder schlichtweg die Dauer der cue-sync-Mechanismus als sehr nütz-
des Loops kein ganzzahliges Vielfaches lich. Wenn Sie etwa einen Fehler in einen
eines Schlags beträgt. Live-Loop einbauen und ihn ausführen,
Das parallele Ablaufen von Schleifen stoppt Sonic Pi den zugehörigen Thread.
unterschiedlicher Länge kann interes- Wenn Sie den Fehler korrigieren und den
sante musikalische Effekte liefern, wie Code dann erneut ausführen, sorgt sync
man sie aus afrikanischen Polyrhythmen für einen rhythmisch korrekten Einsatz
oder den Phasenverschiebungen des des neuen Threads.
Komponisten Steve Reich kennt. Hörens- Wollen Sie lediglich zwei Loops mitein-
wert ist hierzu das Beispiel Reich Phase in ander synchronisieren, dann können Sie
der eingebauten Sonic-Pi-Hilfe. auf die Verwendung von cue verzichten:
Jeder Live-Loop schickt automatisch ei-
Rädchen im Getriebe nen cue mit dem jeweils eigenen Namen.
Sie können also das Beispiel in Listing 2
Legen Sie es aber darauf an, mit Sonic Pi vereinfachen, indem Sie Zeile 2 streichen
etwa elektronische Tanzmusik zu produ- und Zeile 7 durch sync :bd ersetzen.
zieren, dann benötigen Sie einen Mecha- Übrigens: Unter Preferences | Editor
nismus zur Loop-Synchronisation. Den können Sie einen Cue-Log aktivieren und
liefert das Funktionspaar sync und cue, so alle Cues anzeigen lassen. Daneben
Listing 1 das ähnlich wie ein Mitnehmer in einem lässt sich die Funktion sync auch nutzen,
mechanischen Getriebe funktioniert. um auf MIDI- und OSC-Ereignisse zu war-
01 live_loop :bd do
Wann immer an einer Stelle im Code ten und diese zu verarbeiten – das wird
02 sample :bd_haus
sync Symbol steht, unterbricht Sonic Pi das Thema des vierten und letzten Teils
03 sleep 1
die Ausführung und wartet auf den Emp- unserer Sonic-Pi-Serie in der nächsten
04 end
fang des entsprechenden cue Symbol. Ausgabe sein.
05 live_loop :snap do
Cue bedeutet auf deutsch so viel wie
06 sleep 0.5
07 3.times do
Hinweis oder Einsatzzeichen. Eigene Funktionen
Listing 2 zeigt, wie die Loop-Synchro-
08 sample :perc_snap
nisation praktisch funktioniert. Zwei Zei- Bislang haben Sie ausschließlich ein-
09 sleep 0.5 / 3
len sind neu: In Zeile 2 schickt cue :ein‑ gebaute Funktionen verwendet. Der
10 end satz ein Einsatzzeichen. sync :einsatz Entwurf eigener Funktionen birgt jedoch
11 end in Zeile 7 unterbricht die Ausführung des wenig Geheimnisse. Sie nutzen zu die-
snap-Loops bis zum Empfang des nächs- sem Zweck die Funktion define. Genau-
ten entsprechenden cue. Im Ergebnis so wie live_loop oder times einen Block
Listing 2 startet der snap-Loop immer synchron erwarten, der den zu wiederholenden
01 live_loop :bd do
mit einem Schlag der Bassdrum. Sie kön- Code enthält, braucht define einen
nen nun nach Lust und Laune die Anzahl Codeblock, den Sonic Pi beim Aufruf der
02 cue :einsatz
neuen Funktion ausführen soll.
03 sample :bd_haus
Listing 3 zeigt eine solche Funktions-
04 sleep 1
Listing 3 definition. Die Verwendung läuft dann
05 end
define :schnipser do genauso ab wie bei den eingebauten
06 live_loop :snap do
Funktionen: Sie schreiben den Funktions-
07 sync :einsatz 8.times do
namen einfach hin (letzte Zeile). In un-
08 sleep 0.5 sample :perc_snap
09 3.times do sleep 1.0 / 8
10 sample :perc_snap end
11 sleep 0.5 / 3 end
Dateien zum Artikel
12 end
herunterladen unter
13 end schnipser www.raspi-geek.de/dl/41260

76 www.raspberry-pi-geek.de 03-04/2019
Sonic Pi (Teil 3) Know-how

serem Beispiel heißt die neue Funktion Möglichkeit, eigene Funktionsdefinitio-


schnipser und macht bei jedem Aufruf nen in die Datei ~/.sonic‑pi/init.rb
exakt dasselbe. zu schreiben, die Sonic Pi bei jedem Start
Eine zweite Version in Listing 4 bietet automatisch ausführt.
die Möglichkeit, mittels zweier Argumen- Für das Live-Coding bietet es sich an,
te die Ausführung der Funktion zu modi- Funktionsdefinitionen zur Laufzeit zu be- Listing 5
fizieren. Die Namen der Argumente arbeiten, anstatt direkt in den Live-Loops 01 define :schnipser do |dauer,
schreiben Sie direkt zu Beginn des Funk- Code zu ändern – das schafft deutlich teiler|
tionsblocks zwischen zwei Pipe-Zeichen mehr Übersicht. (jlu) n 02 with_fx :hpf do
(Zeile 1: |dauer, teiler|) und setzen 03 teiler.times do
sie dann an den entsprechenden Stellen
04 sample :perc_snap, rate:
der Funktion ein (Zeilen 2 und 4). Listing 4 rand(0.8..1.2)
Eine dritte Schnipser-Version (Listing 5) 01 define :schnipser do |dauer, 05 sleep dauer / teiler
bietet weitere Verbesserungen: Die Ab- teiler| 06 end
spielgeschwindigkeit des Samples vari- 02 teiler.times do 07 end
iert geringfügig (Zeile 4). Zudem schi- 03 sample :perc_snap 08 end
cken wir den Klang durch einen Hoch-
04 sleep dauer / teiler 09
passfilter, um störende tiefe Frequenzen
05 end 10 live_loop :schnips_loop do
zu entfernen (Zeilen 2 und 7).
06 end 11 schnipser 1.0, 4
Sonic Pi merkt sich die in einer Sitzung
07 12 schnipser 1.0, 8
definierten Funktionen. Sie können also
08 schnipser 1.0, 4 13 schnipser 1.0, 3
benötigte Funktionsdefinitionen in einen
09 schnipser 1.0, 8 14 sleep 1
eigenen Textbuffer schreiben und einmal
10 schnipser 1.0, 3 15 end
zu Beginn ausführen. Zudem besteht die

Linux-Zertifizierung LPIC-1 / LPIC-2


Mit Ingo Wichmann
n Lernen Sie mit LPI-zertifizierten Trainern und Dozenten!
n 100% abgestimmt auf die originalen Lehrpläne des LPI!
n Bereiten Sie sich optimal auf die LPIC-1- und LPIC-2-Prüfungen vor!

IT-Onlinetrainings
Mit Experten lernen.
LPIC-Prüfungsvorbereitung
mit Ingo Wichmann, Linuxhotel

LPIC-1 Kurs LPI 101 LPIC-2 Kurs LPI 201


299 € 299 €
LPIC-1 Kurs LPI 102 LPIC-2 Kurs LPI 202
299 € 299 €
LPIC-1 Paket (101+102) LPIC-2 Paket (201+202)
499 € 499 €

03-04/2019 www.raspberry-pi-geek.de
/ComputecAcademy www.computec-academy.de77
Know-how PIC-Toolchain

© Pavel Timofeev, 123RF


Programme für PIC-Mikrocontroller auf dem RasPi entwickeln

Alles aus einer Hand


Um einen Mikrocontroller zu Ein RasPi eignet sich nicht für jede Auf- falls aus der Firma Microchip stammen:
gabe; für manche ist er trotz seiner ge- die sogenannte PIC-Familie. Diese Chips
programmieren, genügt als ringen Größe immer noch überdimensi- sind günstig, sparsam im Betrieb und
oniert. In diese Kategorie fällt etwa das lassen sich mit einer minimalen Tool-
Basis ein RaspPi. Wir zeigen, Erfassen von analogen Sensordaten chain unter Linux und insbesondere auf
oder einfache Schaltaufgaben, bei dem RasPi programmieren. Dazu benöti-
was Sie noch benötigen. denen das System im Grunde fast nie gen Sie noch nicht mal einen leistungs-
etwas tut. Dafür stellt ein Mikrocontrol- starken Raspberry Pi, ein Headless-Sys-
Bernhard Bablok, Lothar Hiller ler die bessere Wahl dar. tem genügt schon.
Großer Beliebtheit erfreuen sich dabei
etwa die ATmega-Chips, die auf den ver- PIC-Familie
README breiteten Arduino-Boards in diversen
Varianten bereitstehen, breiten Support Die Mikroprozessoren von Microchip
Um einen Mikrocontroller zu programmie-
in der Community genießen und für die haben eine lange Historie, dementspre-
ren, brauchen Sie keine Entwicklungsum-
eine IDE bereitsteht, die Anfängern den chend viele Produkte waren und sind
gebung auf dem Desktop-PC: In vielen Fäl- Einstieg vergleichsweise leicht macht. Die auf dem Markt – aktuell über 400. Hier
len reichen bereits eine Handvoll Komman- ersten ATmega-Chips kamen von Atmel, den Überblick zu bewahren fällt nicht
dos. Wir zeigen, wie Sie die passenden mittlerweile hat das Unternehmen Micro- 1
leicht. Abbildung  zeigt eine grobe
chip diese Firma aber aufgekauft. Klassifizierung der aktuellen Chips.
Tools für die PIC-Familie des Herstellers
Im Mittelpunkt dieses Beitrags stehen Die Baseline-Familie gibt sich in Bezug
Microchip auf dem Raspberry Pi integrieren.
jedoch andere Modelle, die aber eben- auf die Ausstattung sehr mager (keine

78 www.raspberry-pi-geek.de 03-04/2019
PIC-Toolchain Know-how

Interrupts). Für den Elektronikfan inter- Als Alternativen mit mehr Funktionen
essant sind dagegen Controller wie die bieten sich der PIC16F690 (1,45 Euro,
PIC12Fxxx- und PIC16Fxxx-Modelle aus USART, I2C-Slave) und der PIC16F872
der mittleren Gruppe. Die Tabelle PIC: (2,80 Euro, USART, I2C-Master/Slave) an.
Midrange zeigt, welche Möglichkeiten
diese Klasse bietet. Als zusätzliche Hard- Programme flashen
ware-Module kommen hier etwa Timer
mit 8 oder 16 Bit, USART, CAN, ADC und Zum Laden von eigenen Programmen in
MSSP (SPI oder I2C) infrage. den Chip benötigen Sie ein Hardware-
Erfreulicherweise stellt Microchip aus- Interface, kurz Programmer oder Brenner
führliche Datenblätter zu jedem Aspekt genannt, sowie ein Steuerprogramm auf
der Controller bereit, so finden Sie meist dem PC oder einem RasPi. Auf Hardware-
recht einfach den passenden Chip für ein Seite haben Sie die Wahl zwischen den
Projekt. Allen Modellen gemeinsam ist Geräten des jeweiligen Herstellers, Bau-
ein einfacher Befehlssatz (lediglich 35 As- sätzen wie denen von Vellemann  oder
sembler-Befehle) und ein eingeschränk- Eigenkonstruktionen, für die Sie die ent-
tes Interrupt-Handling. Es gibt zwar je sprechenden Informationen  online
nach Modell bis zu 14 Interrupts, aber finden . Die Maker-Szene war hier sehr
nur eine Zieladresse, die man per Soft- kreativ und hat für die verschiedenen
ware korrekt verarbeiten muss.
Wegen der geringen Anzahl der Be-
fehle bietet sich das Programmieren in
Assembler an, selbst als Einstieg. Alterna- 8-Bit-MCUs 16-Bit-MCUs 32-Bit-MCUs
tiv weichen Sie auf C aus. Ohne Kenntnis
des Datenblatts und Erfahrung in ma-
24-Bit-Kern“ 24-Bit-Kern
schinennahem Programmieren kommen
PIC24-MCUs PIC32-Familie
Sie aber bei beiden Sprachen nicht weit. dsPIC-DSCs SAM-Familie
In diversen hier in RasPi Geek vorge-
stellten Projekten der Autoren (Mini-
USV , Pi-Infoscreen ) kommt als Ver-
treter der Midrange-Klasse der für 1 Euro
12-Bit-Kern 14-Bit-Kern 16-Bit-Kern
erhältliche PIC12F675 zum Einsatz  . Er2 Baseline High-Performance
verfügt über einen Programmspeicher Midrange
(Flash) mit einer Kapazität von 1024 PIC10Fxxx PIC12Fxxx Enhanced
Worten, 64 Bytes SRAM, 128 Bytes PIC16Fxxx PIC18Fxxx
K und J
EEPROM, 6 I/Os, einen 10-Bit-A/D mit
4 Kanälen, einen Comparator und je ei-
nen 8-Bit/16-Bit-Timer. Von den I/O-Pins 1 Die PICs von Microchip, gruppiert nach MCU und Kern.
ist einer (GP3) zusätzlich als Reset (MCLR)
belegt und kommt daher in aller Regel
für I/O-Funktionen nicht infrage.

PIC: Midrange
Datenwortbreite 8 Bit
Befehlswortbreite 14 Bit
Befehle etwa 35
Programmspeicher 1024 bis 8192 Worte
RAM 64 bis 368 Byte
EEPROM 0 bis 256 Byte
Stack-Tiefe 8
Interrupts einfach
max. Taktfrequenz 4 bis 20 MHz
2 Der PIC12F675 im DIL-Gehäuse (links der Anschluss zum Programmieren).

03-04/2019 www.raspberry-pi-geek.de 79
Know-how PIC-Toolchain

Mitglieder der PIC-Familie eigene Lösun- de R2 und R3 zum Entkoppeln der An-
gen abseits der offiziellen Hardware und wenderschaltung. Außerdem darf wäh-
Tools von Microchip entwickelt. Mit dem rend des Brennvorgangs keine Span-
RasPi ist das zumindest für diejenigen nung an Vdd anliegen.
PICs noch einfacher geworden, bei de- Als Steuerprogramm dient das Kom-
nen Sie 3,3 Volt Spannung zum Flashen mandozeilentool Pk2cmd von Microchip.
benötigen – das geht ohne Extra-Hard- Der Quellcode steht zwar auf Github
ware über eine direkte Verbindung der bereit , es handelt sich aber nicht um
RasPi-Pins an den PIC . Open Source im Sinn einer freien Lizenz.
Da der PIC12F675 eine Spannung von Der Kasten Installation beschreibt, wie
13 Volt beim Schreiben benötigt, fällt er Sie die Software ins System integrieren.
nicht in diese Kategorie. Die von den Au- Einmal installiert, verwenden Sie das Pro-
toren bevorzugte Programmer-Alternati- gramm mit den Befehlen aus Listing 1.
ve ist ein China-Nachbau des inzwischen Weitere Optionen beschreibt die Doku-
von Microchip nicht mehr erhältlichen mentation ausführlich.
3
PICkit2-Brenners  . Ihn erhalten Sie ein- Beim Einsatz des PICkit2 am Rasp-
schließlich eines hochwertigen USB- berry Pi sollten Sie in jedem Fall auf eine
Kabels und eines ICSP-Adapterkabels für ausreichende und stabile Stromversor-
weniger als 8 Euro (inklusive Versand) auf gung achten, denn sonst kommt es un-
Ebay – günstiger als jeder Selbstbau. ter Umständen im ungünstigen Moment
Der Adapter verwendet die ICSP- zu Problemen: Beim Parallelbetrieb mit
Schnittstelle, die es erlaubt, selbst einen anderen Geräten an den USB-Anschlüs-
verbauten PIC nachträglich noch mit sen überschreitet der Brenner eventuell
Software zu beladen. Die Beschaltung die maximale Leistung des Busses – im
4
sehen Sie in Abbildung  . Wichtig sind Zweifelsfall schalten Sie einen aktiven
hier insbesondere die beiden Widerstän- Hub dazwischen.

3 Der Adapter PICkit2 zum Flashen von Controllern findet sich nur noch als Nachbau
aus China, erledigt aber in der Praxis zuverlässig seinen Dienst.

Listing 1 Listing 2
### Abfrage Firmware $ sudo cp pk2cmd PK2DeviceFile.dat /usr/local/bin
$ pk2cmd ‑? V $ sudo chown root:staff /usr/local/bin/pk2cmd
### Angeschlossenen Chip identifizieren $ sudo chown root:staff usr/local/bin/PK2DeviceFile.dat
$ pk2cmd ‑P $ sudo chmod u+s /usr/local/bin/pk2cmd
### Speicherdump (auf 0x3FF steht OSCCAL)
$ pk2cmd ‑P PIC12F675 ‑GP 0x3F8‑0x3FF
### Löschen
Listing 3
$ pk2cmd ‑P PIC12F675 ‑X ‑E
### Programmieren $ sudo apt‑get ‑y install gputils

$ pk2cmd ‑P PIC12F675 ‑X ‑M ‑F code.hex $ gpasm ‑a inhx8m pic2.asm

80 www.raspberry-pi-geek.de 03-04/2019
PIC-Toolchain Know-how

Assembler
Neben kommerziellen Angeboten gibt es
auch ein Open-Source-Projekt, das die
PICs sehr gut unterstützt: Mit den gputils
installieren Sie auf dem RasPi den Assem-
bler im Handumdrehen (Listing 3, erste
Zeile). Das Kommando aus der zweiten
Listing-Zeile erzeugt aus dem Assembler-
Programm pic2.asm das Hex-File pic2.
hex; die Option ‑a inhx8m legt dabei das
Format fest. Weitere Optionen steuern
die Ausgabe zusätzlicher Informationen,
etwa ‑k für ein Fehlerprotokoll oder ‑m
für einen Speicherauszug.
Die Gputils auf „Stretch“ hinken der
aktuellen stabilen Version zwei Jahre hin-
terher, die ihrerseits aus dem Jahr 2016
stammt. Deshalb sollten Sie bei Proble-
men eventuell den Assembler aus den
Quellen kompilieren. Das gelingt ohne 4 Die ICSP-Beschaltung PIC12F675. Die beiden Widerstände R2 und R3 entkoppeln
Probleme (Listing 4) und im Handum- die Anwenderschaltung, Vdd muss während des Brennvorgangs stromlos bleiben.
drehen – selbst auf einem RasPi.
Suchen Sie einen handlichen Editor
zum Programmieren in Assembler, soll- boten für Windows. Viele davon gibt es
ten Sie einen Versuch mit Jed wagen: auch in einer kostenlosen Version mit
Der schlanke Emacs-Clone für die Kon- eingeschränktem Funktionsumfang.
sole lässt sich über Menüs bedienen und Sind Sie aber nicht darauf aus, bei Ihren
eignet sich damit auch für Anwender, Projekten nicht das letzte Bit aus der
die sich nicht mit den Emacs-Tastatur- selbstgeschriebenen Software heraus-
kürzeln auskennen. Online finden Sie holen, haben Sie hier schon einige
eine Modusdatei , die den Assembler- Kandidaten an der Hand. Die Compiler
5
Code einfärbt  . selbst dürften unter Wine laufen, wären
also im Prinzip Linux-fähig.
C-Compiler
Nicht jeder kann oder möchte maschi- Installation
nennah mit Assembler programmieren.
Den Quellcode von Pk2cmd finden Sie an die ersten beiden Dateien nach /usr/
Die PICs unterstützen deshalb auch C.
diversen Stellen im Netz, darunter auf Git- local/bin/ kopieren und die Rechte
Die Entwicklungsumgebung des Her-
hub . Außerdem sollten auf Ihrem Sys- anpassen (Listing 2).
stellers läuft zwar prinzipiell unter Linux,
tem die Metapakete build-essential und Die Anleitung ReadmeForPK2CMDLi‑
setzt aber eine 32-Bit-Umgebung vor-
libusb-dev installiert sein. Nach dem Klo- nux2‑6.txt empfiehlt zwar eine Udev-
aus. Das erfordert bei modernen 64-Bit-
nen des Repositorys wechseln Sie nach Regel statt des Setzens des Setuid-Bits,
Linux-Systemen etwas Bastelarbeit, zu-
pk2cmd/pk2cmd/ und starten dort mit aber die vorgeschlagene Regel funktioniert
dem fallen Lizenzkosten an.
make linux das Übersetzen der Software. auf heutigen Systemen nicht mehr – die
Suchen Sie nach einem alternativen
Danach finden Sie im aktuellen Verzeich- Zeiten von Kernel 2.6 sind vorbei. Die
C-Compiler für den PIC, findet sich eine
nis die Dateien pk2cmd, PK2Device‑ Befehle, vom Brennen über das Auslesen
ganze Reihe von kommerziellen Ange-
File.dat sowie PK2V023200.hex. Bei des Speichers bis hin zum Update der
Letzterer handelt es sich um die eigent- Firmware auf dem PICkit2, finden sich
liche Firmware für den PICkit2-Program- dagegen alle sauber in der Readme-Datei
Dateien zum Artikel mer, die Sie nur brauchen, falls Sie ein völ- dokumentiert. Außerdem spuckt ein
herunterladen unter lig veraltetes Gerät in Händen halten. Die pk2cmd ‑? die gesamte Hilfe zu den
www.raspi-geek.de/dl/42092 Installation schließen Sie ab, indem Sie Parametern für die Kommandozeile aus.

03-04/2019 www.raspberry-pi-geek.de 81
Know-how PIC-Toolchain

Nach dem Download entpacken und in-


stallieren Sie den Compiler einfach mit
den Kommandos aus den ersten drei
Zeilen von Listing 5. Danach können Sie
mit dem Befehl aus der letzten Zeile eine
C-Quelle übersetzen und linken. Der
Aufruf erzeugt bei korrektem Ablauf
neben dem Assembler-Code direkt die
Hex-Datei, die Sie wie oben beschrieben
auf den Chip brennen.

Fazit
5 Der Kommandozeilen-Editor Jed bietet neben einer einsteigertauglichen
Bedienung zusätzlich ein Syntax-Highlighting für Assembler. Wer sich abseits vom Arduino-Main-
stream mit Mikrocontrollern beschäfti-
gen will, der findet in den PICs eine ein-
Besser ist es aber, gleich auf den Small fache und kostengünstige Plattform
Device C Compiler zu setzen: Der quell- dazu. Es gibt die Bausteine schon sehr
offene SDCC unterstützt die wichtigsten lange. Dementsprechend hält das Inter-
8-Bit-MCUs und erstellt Dateien nicht nur net einen reichen Fundus an Beispielen
für die PICs, sondern auch für andere und Tutorials bereit.
Chips. Sie erhalten ihn als fertiges Paket Der Raspberry Pi eignet sich sehr gut
für den RasPi und diverse Distributionen. als Entwicklungsumgebung für PIC-
Allerdings sind verschiedene Pakete aus Mikrocontroller, da Sie mit drei schlan-
lizenzrechtlichen Gründen nicht kom- ken Kommandos die ganze Kette vom
plett. Deshalb sollten Sie sich für den Quellcode bis zum installierten Code auf
Raspberry Pi eine aktuelle Version des der Hardware durchlaufen. Das ließe sich
SDCC entweder selbst bauen oder ein bei Bedarf ohne Probleme in eine Skript
Binärpaket herunterladen. Seit Kurzem verpacken. Weitere Werkzeuge, wie ein
gibt es solche auch für die RasPi-Archi- Debugger und sogar ein Simulator, run-
tektur; Sie finden das Paket im Datei- den die Tool-Landschaft ab. (agr) n
bereich des Projekts auf Sourceforge 
im Ordner snapshot_builds/armv6l‑
unknown‑linux‑gnueabihf/. Weitere Infos und
interessante Links
www.raspi-geek.de/qr/42092
Listing 4
$ wget http://downloads.sourceforge.net/project/gputils/gputils/1.5.0/
gputils‑1.5.0‑1.tar.gz
$ tar zxvf gputils‑1.5.0‑1.tar.gz Die Autoren
$ cd gputils‑1.5.0‑1 Bernhard Bablok (mail@bablokb.de)
$ ./configure ‑‑prefix=/usr/local ‑‑disable‑html‑doc arbeitet bei der Allianz Technology SE als
$ make SAP-HR-Entwickler. Wenn er nicht Musik
hört oder mit dem Rad oder zu Fuß unter-
$ sudo make install
wegs ist, beschäftigt er sich mit Themen
rund um Linux, Programmierung und
Mini-Rechner. Bei Lothar Hiller, einem
Listing 5 Ingenieur für Nachrichtenbetriebsdienst
$ tar ‑xvjf sdcc‑snapshot‑armv6l‑unknown‑linux‑gnueabihf‑20181207‑10738. im Ruhestand und leidenschaftlichen
tar.bz2 Elektronikbastler, geht der Lötkolben so
gut wie nie aus. Er programmiert Mikro-
$ cd sdcc
computer wie PICs in Assembler und
$ sudo cp ‑a * /usr/local beschäftigt sich seit 2015 auch mit dem
$ sdcc ‑‑use‑non‑free ‑mpic14 ‑p12f675 blink.c Raspberry Pi im Heimbereich.

82 www.raspberry-pi-geek.de 03-04/2019
I2C-Workshop (Teil 24) Know-how

I2C-Workshop (Teil 24): Temperatursensor GY-906

Finger weg

© Danil Chepko, 123RF


Haben Sie sich schon mal an einem direkt in China zu bestellen : Bei ei- Ein Temperatursensor
harmlos aussehenden Bauteil ordentlich nem Bestellwert unter 22 Euro fallen
die Finger verbrannt, etwa an einem Ex- weder Zoll noch Steuern an . verrät Ihnen, ob Sie einen
truder oder Endstufentransistor? Man Der MLX90614 wurde für die präzise
sieht den Komponenten nicht an, wie Temperaturmessung ohne Kontakt ent- Gegenstand gefahrlos berüh-
heiß sie werden. wickelt. Er kommt unter anderem in
Um Unfälle dieser Art zu verhindern, Klimaanlagen, Industrieanlagen, beim ren dürfen. Beim Messen
benötigen Sie ein Thermometer, das die Messen von sich bewegenden Teilen,
Temperatur misst, ohne die Bauteile zu beim Erkennen von Bewegungen oder brauchen Sie dabei nicht
berühren. Hier kommt das GY-906 ins als Fieberthermometer zum Einsatz. Das
Spiel: Das Modul erfasst mithilfe eines komplette Spektrum des Sensors geht
einmal Kontakt zum Objekt.
Infrarot-Sensors die Temperatur von aber weit über die hier aufgezählten Ge-
Martin Mohr
Objekten, ohne dazu mechanischen biete hinaus. Der Kasten Prinzip erläutert
Kontakt zu brauchen. die generelle Funktionsweise des zentra-
len Bausteins.
Technische Daten Das in einem TO-39-Gehäuse unter-
gebrachte GY-906 hat einen Messbe- README
Auf dem GY-906 arbeitet der Sensor- reich von -70 bis +380 Grad Celsius. Der
Finger verbrannt? Mit einem hochpräzisen
baustein MLX90614, der für das Messen interne A/D-Wandler hat eine Auflösung
Temperatursensor verwandeln Sie den
der Temperatur zuständig zeichnet. Je von 17 Bit, das ermöglicht, die Tempera-
nachdem, wie Sie das Modul einsetzen tur mit einer Genauigkeit von 0,02 Grad RasPi in ein berührungsloses Thermometer,
möchten, hilft ein Blick ins Datenblatt Celsius zu messen. das Ihnen dabei hilft, Gefahrenquellen zu
des GY-906  oder des MLX90614 . Die Betriebsspannung beträgt laut Da- identifizieren – oder im Ernstfall sogar mal
Da der Sensor bei Amazon recht teuer tenblatt 5 Volt. Unser Testaufbau arbeite-
Fieber bei einem Menschen zu messen.
ist, lohnt es sich unter Umständen, ihn te mit 3,3 Volt, was ohne Probleme funk-

03-04/2019 www.raspberry-pi-geek.de 83
Know-how I2C-Workshop (Teil 24)

1 Der recht einfache


Testaufbau mit dem Sensor
auf einem Breadboard.

tionierte. Am I2C-Bus meldet sich der Um den Wert für die Temperatur eines
Sensor unter der Adresse 0x5a; es gibt entfernten Objekts zu messen, lesen Sie
keine Möglichkeit, das zu ändern. die Register 0x07 und 0x08 aus und ver-
arbeiten die Werte. Im Register 0x06
Testaufbau findet sich die Temperatur des Sensors
selbst. Für einen ersten Testlauf genügt
Softwareseitig kommt der Aufbau aus es, die beiden Register mit dem Kom-
Teil 18 dieser Reihe wieder zum Einsatz. mando aus Listing 2 kontinuierlich aus-
Im Beitrag lesen Sie bei Bedarf nach, wie zulesen und die Messwerte auf dem
Sie die I2C-Schnittstelle des RasPi aktivie- Bildschirm darzustellen.
ren und die passende Software installie- Der Sensor liefert hexadezimal kodier-
ren . Der Testaufbau fällt trivial aus  . 1 te Messwerte. Um das Ablesen zu verein-
Sie verbinden die gleich beschrifteten fachen, sollten Sie diese in Dezimalwerte
Kontakte des RasPis jeweils mit dem GY- umrechnen. Das ließe sich ebenfalls mit
906. Um zu prüfen, ob alles richtig ange- einem Shell-Kommando erledigen, ein
schlossen ist, verwenden Sie I2cdetect. kleines Programm macht die Sache aber
Dessen Ausgabe sollte Listing 1 gleichen. einfacher.

Testprogramm
Prinzip
Das in Go  geschriebene Programm
Um die Funktionsweise des berührungs- umso wärmer empfinden wir es. Ein
(Listing 3) verwendet Teile der Gobot-
losen Thermometers (Pyrometer) zu ver- Gegenstand mit einer Temperatur von
Bibliothek . Nachdem das Programm
stehen, hilft es, sich zu vergegenwärtigen, -273 Grad Celsius (0 Grad Kelvin, abso-
die nötigen Bibliotheken importiert hat
worum es sich bei Temperatur überhaupt luter Nullpunkt) emittiert folglich keine
(Zeile 3 bis 7), stellt es eine Verbindung
handelt. Was Sie dabei wahrnehmen, ist Strahlung mehr.
zum Gerät mit der Adresse 0x5a her (Zei-
die Schwingung von Elementarteilchen. Theoretisch eignen sich Infrarot-Thermo-
le 11). Anschließend liest es ein Daten-
Während die Teilchen schwingen, emittie- meter für den Temperaturbereich von
ren sie Licht im Infrarot-Bereich. Die Wel- -50 bis +3000 Grad Celsius. Praktisch
lenlänge des Lichts erlaubt dabei Rück- haben sie häufig einen für den jeweiligen
schlüsse auf die Temperatur: Je kürzer die Einsatz optimierten Messbereich, bei Dateien zum Artikel
Wellen, umso energiereicher ist die Strah- Fieberthermometern typischerweise von herunterladen unter
lung. Je energiereicher die Strahlung, 35 bis 42 Grad Celsius. www.raspi-geek.de/dl/42164

84 www.raspberry-pi-geek.de 03-04/2019
I2C-Workshop (Teil 24) Know-how

wort von der Adresse 0x07 ein (Zeile 13). Fazit


Die folgende Zeile errechnet aus den
Rohdaten die aktuelle Temperatur in Obwohl der Apotheker um die Ecke
Grad Celsius. Zu guter Letzt gibt das Pro- dann weniger Brandsalbe verkauft, ist
gramm die Rohdaten des Sensors sowie das berührungslose Messen von Tempe-
die Temperatur aus (letzte zwei Zeilen). raturen eine wirklich sinnvolle Sache.
Sie starten das Programm mit dem Be- Es finden sich viele interessante Anwen-
fehl go run gy906.go. dungen für den GY-906-Sensor. Möchten
Um den Sensor zu testen, halten Sie Sie ihn professionell einsetzen, dann
einfach die Hand darüber: Die Haut soll- sollten Sie sich das Datenblatt noch
te eine höhere Temperatur haben als die einmal genau ansehen. (agr/jlu) n Listing 3
Umgebung. Meldet das Programm et- 01 package main
was anderes, hapert es entweder am 02
Sensor oder am Aufbau. Listing 2 03 import (
Um die Funktion weiter auszutesten, 04 "fmt"
$ watch 'i2cget ‑y 1 0x5a 0x07 w'
messen Sie beispielsweise die Tempera- 05 "gobot.io/x/gobot/drivers/
tur einer Lötkolbenspitze. Enthält Ihr i2c"
Fundus einen guten temperaturgeregel- 06 "gobot.io/x/gobot/sysfs"
ten Lötkolben, dann haben Sie sogar die Weitere Infos und 07 )
Möglichkeit, unterschiedliche Tempera- interessante Links 08
turen einzustellen und zu prüfen, ob der 09 func main() {
www.raspi-geek.de/qr/42164 10 bus,_ := sysfs.
Sensor passende Werte liefert.
NewI2cDevice("/dev/i2c‑1")
11 device := i2c.
NewConnection(bus,0x5a)
Listing 1 12 defer device.Close()
$ i2cdetect ‑y 1 13 value,_ := device.
0 1 2 3 4 5 6 7 8 9 a b c d e f ReadWordData(0x07)
00: ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ 14 t :=
10: ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ (float32(value)*0.02)‑273.16
20: ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ 15 fmt.Printf("Sensor:%X\
30: ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ n",value)
40: ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ 16 fmt.Printf("Temperatur
50: ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ 5a ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ %f\n",t)
60: ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ 17
70: ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ ‑‑ 18 }

03-04/2019 www.raspberry-pi-geek.de 85
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 Raspberry 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 B Boards (Erweiterungen, 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 Bauanleitungen 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 Zubehö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 Elgin Grabe
Bildnachweis: 123rf.com, Freeimages.com und andere
Titelgrafik Judith Erb (Raspberry-Pi-Logo und Raspberry Pi DVB TV µHAT:
Raspberry Pi Foundation)
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 Dienstleistungen.
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
Foundation 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öffentlichung 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 Manuskripte 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 05-06/2019 erscheint am 04. April 2019

Thermo-Hygrometer
Gerade in den Wintertagen ist die Raum-
luft oft zu trocken. Wollen Sie die ent-
sprechenden Daten für mehrere Zimmer
erheben, bietet sich der Einsatz unab-
hängiger Messstationen an. Wir zeigen,
wie Sie diese auf Basis des ESP8266 kon-
struieren und die anfallenden Daten mit
Node-RED so zusammenführen, dass sich

Themen zu ändern oder zu streichen.


daraus ein schlüssiges Gesamtbild ergibt.

Die Redaktion behält sich vor,


Andrey Armyagov, 123RF
Make Munich 2019
Ob RasPi, Beaglebone, Arduino oder
3D-Druck – die Make Munich bietet seit
vielen Jahren Bastlern und Tüftlern die
Gelegenheit, Erfindungen auszustellen,
Trends nachzuspüren und neue Gadgets Info-Display mit E-Ink-Bildschirmen
für ihre Projekte kennenzulernen. Wenn
sich die Szene in diesem Jahr wieder E-Ink-Displays bieten den Vorteil, dass sie wesentlich weniger Strom benötigen, wenn
trifft, ist Raspberry Pi Geek natürlich mit die anzeigte Information nicht häufig wechselt: Einmal angesteuert, halten sie den
von der Partie – mit einem Rundgang Zustand bis zum nächsten Signal. Wir zeigen, wie Sie solche Bildschirme richtig
durch die vielen Stände. verdrahten und über eine Java-Software anschließend mit Daten befüllen.

Autoren Inserenten
Bernhard Bablok Ausgepackt: Aktuelle Hardware im Kurztest 8 Chemnitzer Linux-Tage chemnitzer.linux-tage.de 27
Fernsehempfang mit dem Raspberry Pi DVB TV µHAT 36
Computec IT-Academy www.computec-academy.de 77, 88
Alltagstauglicher RasPi-Infoscreen mit Bewegungssensor 62
PIC-Mikrocontroller via Raspberry Pi programmieren 78 Fernschule Weber GmbH www.fernschule-weber.de 23
Lothar Hiller PIC-Mikrocontroller via Raspberry Pi programmieren 78 Linux-Community www.linux-community.de 89
Frank Hofmann Report: Internet of Things mit dem Raspberry Pi 10
Linux-Magazin www.linux-magazin.de 57
Roman Jordan Eigenen Git-Server auf dem RasPi aufsetzen 30
Heike Jurzik Minimalinvasives Bienenstock-Monitoring 58 Linux-Magazin Online www.linux-magazin.de 85
Dr. Lars Jurzik Minimalinvasives Bienenstock-Monitoring 58 Linuxhotel www.linuxhotel.de 15
Christoph Langner Smarte Funktionen für die Hi-Fi-Anlage mit Volumio 2.5 52 LinuxUser www.linux-user.de 51, 57
Anzela Minosi Backup-Strategien für den Raspberry Pi 18
PC Games Hardware www.pcgameshardware.de 91
Martin Mohr Fischertechnik-Roboter mit dem Ftduino ansteuern 68
I2C-Workshop (Teil 24): Temperatursensor GY-906 83 Qube Solutions UG www.qube-solutions.de 29
Mandy Neumeyer Report: Internet of Things mit dem Raspberry Pi 10 Raspberry Pi Geek www.raspberry-pi-geek.de 45, 75
Hartmut Noack RasPi optimal für Audiosoftware konfigurieren 46
Reichelt Elektronik www.reichelt.de 17
Pit Noack Workshop Sonic Pi (Teil 3): Live-Loops synchronisieren 74
Uwe Vollbracht Angetestet: Aktuelle Software im Kurztest 6 Rheinwerk GmbH www.rheinwerk-verlag.de 92
Harald Zisler Texteditor Nano individuell einrichten 24 Tuxedo Computers GmbH www.linux-onlineshop.de 2

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