Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
So realisieren Sie Ihre Foto-, Video- und Audioprojekte mit dem Raspberry Pi, C/C++ und Bash
Haben Sie bereits Programmiererfahrung und möchten hardwarenahe Projekte realisieren? Sie wollen den Raspberry Pi nutzen, sind aber ein Linux-Neuling? In diesem Buch erfahren Sie alles, was Sie wissen müssen, um Projekte rund um Foto, Video & Audio mit dem Raspberry Pi, C/C++ und Bash erfolgreich in die Tat umzusetzen – mit und ohne zusätzliche Elektronik.
Folgende Themen erwarten Sie:
- Raspbian-Konfiguration, Bedienoberfläche, Backup & Restore
- Programmstart über Desktop-Icons, Programmieren mit Bash/C/C++, Skriptdateien mit ASCII-GUI, Entwicklungsumgebungen
- Schaltungen für den GPIO-Port, Einsatz von Sensoren & WiringPi
- Netzwerke & Fernzugriff: SSH-Server, Linux-PC als Client, PuTTY als Windows-Client, Zugriff über LAN/WLAN
- ALSA, Audiorecord, Audacity, Audiosignalanalyse, Sprachsynthese, Vokalerkennung
- Fotografieren & Filmen mit Webcam/Kameramodul, Videoplayer mit/ohne GPU-Nutzung
- Objekterkennung mit OpenCV & Motion
- Auf der Verlagswebsite: sämtliche Codebeispiele aus dem Buch
- Website zum Buch: www.progpi.de
- E-Book komplett in Farbe mit klickbaren Weblinks und Querverweisen, Syntax-Highlighting in der EPUB-Version
Beispielanwendungen liefern Ihnen Ideen für eigene Projekte – sei es ein Entfernungssensor mit LCD-Anzeige oder eine Kamera-Fernsteuerung. Das Grundlagenwissen aus diesem Buch ist nahezu auf jede Linux-Distribution anwendbar.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 1024
Veröffentlichungsjahr: 2018
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Harald Schmidt
Raspberry Pi programmieren mit C/C++ und Bash
Mehr als 50 Programme rund um Foto, Video und Audio
Die Autoren:
Harald Schmidt, München
Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autoren und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen – oder Teilen davon – entsteht.
Ebenso übernehmen Autoren und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw. frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen und MarkenschutzGesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.
Bibliografische Information der Deutschen Nationalbibliothek: Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) – auch nicht für Zwecke der Unterrichtsgestaltung – reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.
© 2018 Carl Hanser Verlag Münchenwww.hanser-fachbuch.de
Lektorat: Julia Stepp Herstellung: Isabell Eschenberg Umschlagrealisation: Stephan Rönigk
ISBN 978-3-446-45342-5 E-Book-ISBN 978-3-446-45349-4E-Pub-ISBN 978-3-446-45790-4
Verwendete Schriften: SourceSansPro und SourceCodePro (Lizenz) CSS-Version: 1.0
Titelei
Impressum
Inhalt
Widmung
Vorwort
1 Die Welt des Raspberry Pi
1.1 Die Modelle des Raspberry Pi
1.1.1 Energieversorgung
1.1.2 Der Raspberry Pi Zero W
1.1.3 Raspberry Pi 2 und Pi 3
1.2 SD-Karten und microSD-Karten
1.3 Von Wheezy zu Stretch – Downloads für Raspbian
1.3.1 Die Release Notes als Chronik
1.4 Über NOOBS zur Raspbian SD-Karte
1.4.1 NOOBS aus dem Internet holen und entpacken
1.4.2 NOOBS auf die leere (micro)SD-Karte kopieren
1.5 NOOBS auf dem Raspberry Pi
1.5.1 Wohin mit dem Bild?
1.5.2 Energie für NOOBS
1.6 Der NOOBS Recovery-Modus
2 Der Raspberry Pi und Linux
2.1 Das Abbild von Raspbian für die SD-Karte
2.1.1 Die Abbilddatei mit einem Linux-PC übertragen
2.1.2 Der Win32 Disk Imager
2.2 Die Grundkonfiguration des Raspbian Desktops
2.2.1 Tastaturlayout und Spracheinstellung
2.2.2 Konfiguration von Autologin, Hostname und Bootmodus
2.2.3 Passwortänderung
2.2.4 Freigabe für SSH und Abfrage der IP-Adresse
2.3 Der Raspberry Pi Desktop als Bedienoberfläche
2.3.1 Die Lage der Panelleiste ändern
2.3.2 Der Aufbau der Panelleiste
2.3.3 Programmstart über Tastaturkürzel
2.3.4 Eine symbolische Desktop-Verknüpfung hinzufügen
2.3.5 Eine neue Desktop-Datei erzeugen
2.3.6 Ein Programm der Anwendungsstartleiste hinzufügen
2.3.7 Miniprogramme im Panel
2.3.8 Das Konsolenkommando lxpanelctl
2.4 Der Main Menu Editor Alacarte
2.5 Das Erscheinungsbild anpassen mit LxAppearance
2.6 Der Raspbian Desktop auf dem PC oder Mac
2.7 Nützliche Programme ohne und mit grafischer Oberfläche
2.8 Autostart mit und ohne GUI
2.8.1 Die versteckte Datei .bashrc
2.8.2 Die Datei rc.local
2.9 Die Verwendung von LXTerminal in Desktop-Dateien
2.10 Pakete – Installation und Verwaltung
2.10.1 Der vorinstallierte Paketmanager pi-packages
2.10.2 Der Paketmanager Synaptic
2.10.3 Paketverwaltung über Konsolenkommandos
2.11 Die Bildschirmauflösung mit und ohne den RPi-Desktop einstellen
2.11.1 Über HDMI zum Fernseher
2.11.2 Über den HDMI/VGA-Adapter zum Monitor
2.11.3 Einstellung der Auflösung mit raspi-config
2.12 Audioumschaltung und Bluetooth-Lautsprecher
2.13 Systembackup im laufenden Betrieb
3 Betriebssysteme, Partitionen, Backup und Restore
3.1 SD-Karte, USB-Stick, Festplatte – was erkennt der Raspberry Pi?
3.2 SD-Karten mit Betriebssystem
3.2.1 Hinein in die Box
3.2.2 Der passende Aufkleber
3.2.3 Binäre Einheiten und die Kapazität von SD-Karten
3.3 SD-Karten identifizieren mit sd-label.sh
3.4 Hinweise zu Backup und Restore
3.5 Formatierung von SD-Karten
3.6 Das USB Image Tool
3.7 Direktkopie der SD-Karte mit piclone
3.8 Der Partitionsmanager GParted
3.9 Eine bootfähige SD-Karte mit sd-restore.sh erzeugen
3.10 Backup von SD-Karten mit sd-back.sh
3.10.1 Nullen vor dem Backup
3.11 Ein Blick in das Abbild der SD-Karte
3.12 Festplatten am Raspberry Pi
3.12.1 Der Einhängepunkt und die Systemkonsole
3.12.2 Einhängen der Partition über /etc/fstab
4 Programmieren mit dem Pi
4.1 Dateien und Programme zum Buch
4.2 Paketinstallation über die Skriptdateien zum Buch
4.3 Die Skriptdateien zum Buch – was ist wo?
4.4 Die Shell als Kommandointerpreter
4.4.1 Umgebungsvariablen
4.4.2 vcgencmd
4.5 Strings in Bash, C und C++
4.6 Programmieren mit Bash
4.6.1 Eingabe, Ausgabe und if else
4.6.2 Feldtrenner und float-Werte
4.6.3 Formatierte Ausgabe mit printfcalc.sh
4.6.4 Ausgabekommandos für ASCII-Dateien
4.6.5 Bash-Arrays mit numerischem Index
4.6.6 Assoziative Bash-Arrays mit Wortindex
4.6.7 Funktionen, Parameter und Exit-Codes
4.6.8 Ausgabeumleitung und Rückgabewerte
4.6.9 Ein Bash-Skript mit Funktionen und Indexsuche
4.6.10 Indexelemente sortieren und finden mit assosort.sh
4.6.11 Ausgabespalten neu anordnen mit dosdir.sh
4.6.12 Die Ausgabe Einlesen und die IFS-Trennzeichen
4.6.13 Filtern mit cut und grep
4.6.14 Farben in der Konsolenausgabe
4.6.15 Zeichen entfernen mit trim.sh
4.6.16 Dateinamen oder Pfade extrahieren
4.6.17 Die Position einer Zeichengruppe oder eines Strings finden
4.6.18 Ein Blick in raspi-config
4.7 Bash in Beispielen
4.7.1 Wie copydesk.sh funktioniert
4.7.2 Farbige Listings mit colordir.sh
4.7.3 Analyse von Partitionsgrößen mit sd-info.sh
4.7.4 Feldinhalte aus Audiodateien kompakt anzeigen
4.7.5 EXIF-Daten anzeigen mit jhead.sh
4.7.6 Metadaten ermitteln mit mediainfo.sh
4.7.7 Diagnose der Bildschirmauflösung mit scrreso.sh
4.7.8 Eine Bildschirmecke zur Videowiedergabe nutzen (OMXPlayer)
4.7.9 Prozesse anzeigen mit pgrep_htop.sh
4.8 Skriptdateien mit ASCII-GUI (whiptail/dialog)
4.8.1 Vom Skript zum Kommando
4.8.2 Eine allgemeingültige Dateiauswahl im Skript verwenden
4.8.3 Programmauswahl über Checkboxes
4.8.4 Bilder als ASCII-Art anzeigen
4.8.5 Programmstart mit fotomenu.sh
4.8.6 Programmstart über Desktop-Dateien und ASCII-Dialoge
4.8.7 Dateiauswahl bei sd-mount.sh
4.8.8 Der Programmstarter opencvgui.sh als ASCII-GUI
4.9 C-Programme mit Raspbian nutzen (hello_pi/GPU)
4.9.1 Videoprojektion auf eine rotierende Teekanne (hello_teapot.c)
4.9.2 Mathematische Kunst mit hello_triangle2.c
4.9.3 Das Skript helloGPU.sh auf einem "großen" Linux-PC starten
4.9.4 Mit make zum eigenen C-Programm
4.9.5 Das Skript helloGPU2.sh für weitere GPU-Programme
4.9.6 Programme starten mit system und popen
4.9.7 Zeit ist relativ
4.9.8 Mausklicks, Bewegungen und Scrollevents auswerten
4.9.9 Von der Mausbewegung zur Audioausgabe
4.10 Der Qt Creator als Entwicklungsumgebung
4.11 Die Entwicklungsumgebung Code::Blocks
4.12 GTK+ Programmierung
4.13 Die Geany-Entwicklungsumgebung
4.14 Python und IDLE als Entwicklungsumgebung
4.15 Zenity-Dialoge
4.16 GitHub und Raspbian
5 Elektronik und Programme für den GPIO-Port
5.1 Schaltungen aufbauen
5.1.1 Drähte oder Drahtbrücken
5.1.2 SMD-Adapter und ICs
5.1.3 Widerstände, Widerstandsnetzwerke und Kondensatoren
5.1.4 Der LED-Test
5.2 Eine LED per Software schalten (Ein/Aus)
5.3 Eine LED per Software dimmen (Pulsweitenmodulation)
5.4 Eine LED am Optokoppler
5.5 GPIO-Pins im Read-Modus (Bash)
5.5.1 GPIO-Pins zyklisch abfragen (Polling)
5.5.2 GPIO-Pins im Interrupt-Modus (Flankenerkennung)
5.5.3 Flankenerkennung bei mehreren Schaltern
5.6 WiringPi-Beispiele mit C-Quelltext
5.6.1 WiringPi im Interrupt-Modus
5.7 Experimente zur Impulswahl
5.7.1 Audiodateien durch Impulswahl abspielen
5.7.2 Impulsdiagramme mit GnuPlot
5.8 Von der Helligkeit zur Frequenz
5.8.1 Frequenzen messen mit dem Oszilloskop und mit r2f.cpp
5.9 Stufenschalter, Tastenfelder, Encoder und Codierschalter
5.10 Analog/Digital-Wandler für die SPI-Schnittstelle
5.10.1 Analoge Messwerte mit spiloop.c erfassen
5.11 Die I2C-Schnittstelle
5.12 Analog/Digital-Wandler für I2C
5.13 Ein LCD-Display am I2C-Bus
5.13.1 Ausgaben mit sysinfo.sh
5.13.2 PIDs auf dem LCD-Display mit pgrep_menuctrl.sh
5.14 Die C-Library bcm2835 für den GPIO-Port
5.15 Mehr Ampere mit externen Spannungsquellen
5.16 Vom Schaltplan zum Layout
5.16.1 EAGLE Light
6 Sensoren und Software für Infrarot und Ultraschall
6.1 LIRC als Empfänger
6.1.1 Kommandos per IR-Fernbedienung auslösen
6.1.2 Ein Auswahlmenü auf dem LCD-Display
6.2 Entfernungsmessung per Ultraschall
6.3 Ein Abstandswarner mit ultraloop.c im Qt Creator
6.4 Entfernungsmessung mit Infrarotlicht
6.4.1 Distanzmessung über den MCP3426 als A/D-Wandler
7 Netzwerke und der Fernzugriff auf den Raspberry Pi
7.1 Die automatische Vergabe von IP-Adressen
7.2 Netzwerkkabel, Übertragungsraten und ethtool
7.3 Eine Direktverbindung zum Raspberry Pi
7.3.1 Die Link-Local-IP
7.4 Netzwerkkameras
7.4.1 Eine Direktverbindung für Netzwerkkameras
7.5 Der SSH-Server und ein Linux-PC als Client
7.5.1 SSH und die Weiterleitung des X11-Fensters
7.5.2 Fingerabdrücke auf (micro)SD-Karten
7.6 Zwei Schlüssel zum Vergleich – SSH ohne Passwort
7.7 PuTTY als Windows-Client
7.8 Remote-Zugriff mit WinSCP und Krusader als Client
7.9 Der SSH-Fernzugriff per ASCII-GUI
7.9.1 Ein Desktop-Icon auf dem Client-PC
7.10 Ein Remote-Desktop mit TightVNC
7.11 Energie sparen mit TMux
7.12 Die ASCII-GUI pgrep_gui.sh
7.13 TMux und die ASCII-GUI pgrep_gui.sh
7.13.1 TMux-Skripting
7.14 WLAN-Verbindungen und WLAN-Sticks
7.14.1 WLAN-Verbindungen und wpa_gui
7.15 Die Netzwerk-Tools arp-scan und nmap
7.16 Netcat – vom Chatprogramm zum Videoempfänger
7.17 Fünf Wege zum Raspberry Pi
7.18 Über Android zum Raspberry Pi
7.18.1 Über F-Droid zu ConnectBot
7.19 Über USB OTG zum Raspberry Pi Zero
8 Audio und Composite Video am Pi
8.1 Buchsen, Kabel, Signale
8.2 Audiowiedergabe
8.3 Der AlsaMixer
8.4 Audioaufzeichnung und ALSA-Tools
8.4.1 SoX mit der Webcam als Audioquelle
8.4.2 SoX passt auf – Reaktion auf Geräusche
8.4.3 Informationen zur Audiodatei mit soxi
8.4.4 Audioaufzeichnung im Remote-Modus
8.4.5 Lautsprecherdurchsagen aus sicherem Abstand (remote)
8.4.6 Externe USB-Soundkarten und das Programm speaker-test
8.5 Sprachsynthese auf dem Linux-PC
8.5.1 Sprachausgabe mit eSpeak
8.5.2 Sprachausgabe über tts.sh mit eSpeak, SVOX-Pico und Festival
9 Videodaten – Aufzeichnung und Wiedergabe
9.1 Der OMXPlayer
9.1.1 Kommandos für den OMXPlayer (DBUS-Interface)
9.2 Videodateien aus dem Internet holen
9.3 Archivierte Videos abspielen mit guiPlay.sh
9.4 Videoplayer und multiplay.sh
9.5 Wiedergabe mit videoselect.sh und avplay
9.6 Wo ist das Videogerät?
9.7 Daten zum Videogerät mit dem V4L-Treiber
9.8 MPEG-Spezifikationen, Codecs und Containerdateien
9.9 Fotografieren und Filmen mit guvcview
9.10 Fotografieren mit fswebcam
9.11 Die libav-tools und avconv (bzw. ffmpeg)
9.11.1 Der Webcam-Zugriff mit avconv
9.11.2 Vertonung mit avconv
9.11.3 Bildschirmvideos mit dem Raspberry Pi
9.11.4 Videos konvertieren mit WinFF
9.12 Motion auf dem Pi
9.12.1 Der Programmstarter motiongui.sh
9.12.2 Der Blick auf die Uhr
9.12.3 Motion-Parameter geeignet festlegen
9.12.4 Namen für Bilder und Videodateien
9.12.5 Einblendung von Zeitstempeln und Texten
9.12.6 Markierte Bewegungen
9.12.7 Bewegungsalarm auf Teilbereichen des Bildes
9.12.8 Automatische E-Mails bei Ereignissen
9.12.9 Den Videostream anzeigen und weiterleiten
9.12.10 Parameteränderung per ASCII-GUI und setvalue.sh
10 Kameramodule zum Raspberry Pi
10.1 Das 8-Megapixel-Kameramodul mit Sony-IMX219-Sensor
10.2 Fotos mit raspistill
10.2.1 EXIF-Daten ermitteln
10.2.2 Fotografieren mit fotomenu.sh
10.2.3 Der manuelle Belichtungsmodus
10.2.4 Fotografieren mit Zeit-/ISO-Automatik
10.2.5 Farben und Spezialeffekte
10.2.6 Fotos bei sehr wenig Licht und im Signalmodus
10.3 Konverter für Einzelbilder
10.4 Bilder und das FBI
10.5 Videos aufzeichnen mit raspivid
10.6 Videodateien mit MP4Box und avconv verarbeiten
10.7 Der UV4L-Treiber zum Kameramodul des Raspberry Pi
10.7.1 Fotografieren mit multicam.sh
10.7.2 Filmen mit dd
10.8 Binning bei raspistill und raspivid
10.9 Motion und das Kameramodul
11 Automatischer Datentransfer
11.1 SFTP-Kommandos per Skript ausführen
11.2 Eine RAM-Disk als Zwischenpuffer
11.2.1 Bilder auf der RAM-Disk
11.2.2 Die RAM-Disk überwachen
11.3 Datentransfer mit FileZilla
12 Audiosignale analysieren
12.1 Audacity
12.2 Die Verwendung von libsndfile
12.2.1 Die Abtastwerte einer Audiodatei in Textform
12.2.2 Ein Blick auf die Dokumentation
12.2.3 Ausgabeumleitung für Audiodaten mit sndout.cpp
12.3 Pausenerkennung und Segmentierung
12.3.1 Audiosegmentierung und Sprachausgabe mit audiosegm.cpp
12.4 Die Library tinyalsa
12.4.1 Abtastraten mit tinypcminfo.c ermitteln
12.4.2 Audioaufnahmen mit capaudio.sh und tinycap.c
12.5 Der Pi als Papagei
12.6 Spektrogramme mit sndfile-tools und Audacity
12.7 Vokaltraining mit voxvokal.sh
12.8 Das Audioquiz
13 OpenCV und der Pi
13.1 Die Konfiguration von OpenCV
13.2 Mit dem Compiler zur ausführbaren Datei
13.3 OpenCV – Dokumentation und Beispielprogramme
13.4 OpenCV, CMakeGUI und Code::Blocks
13.5 Die Qt-Projektdateien zu den Beispielprogrammen
13.6 Das Programm fpsec.cpp auf dem Pi benutzen
13.6.1 Fenster und Tastaturcodes von fpsec.cpp
13.6.2 Konturbilder vom Webcambild
13.6.3 Konturbilder vom Videobild
13.6.4 FloodFill auf dem Videobild
13.7 Programmierung mit OpenCV
13.7.1 Grundlegende Datentypen und OpenCV-Klassen
13.7.2 Fenster, Steuerelemente und cv::waitKey
13.7.3 Optimierung von Farb- und Grauwertbildern per Tastendruck
13.7.4 Binarisierung von Bildern mit cv::threshold
13.7.5 Regionen und Beschriftungen
13.8 Konfiguration für die WITH_QT-Oberfläche
14 Objektsegmentierung mit OpenCV
14.1 Segmentierung von Textzeilen
14.2 Symbolerkennung mit iconreader.cpp
14.3 Symbolerkennung auf Webcambildern
14.3.1 Einsatzzweck, Bedienung und Tastaturcodes
14.3.2 Vom Graustufenbild zum Erkennungsresultat
14.3.3 Der Alarm und die Statistik
14.4 Die sprechende Lichtschranke
15 Experimente
15.1 Booten mit Sprachausgabe
15.2 Ein Eingabemodul mit IR-Detektor und LCD-Display
15.2.1 Den Schaltungsaufbau planen
15.2.2 Lötarbeiten für die Elektronik zum DOGM204 LCD-Display
15.2.3 Das LCD-Display testen
15.2.4 Das Eingabemodul eichen
15.2.5 Die Drehung des Codierschalters auswerten
15.3 Ein Client/Server-Konzept für das Eingabemodul
15.3.1 Nur mit Maus und Display?
15.4 Ein Client/Server-Konzept mit menuctrl.sh
15.4.1 Fotos mit MenuCtrl
15.5 Über MenuCtrl fswebcam starten/beenden
15.6 Die hello_pi GPU-Programme mit MenuCtrl starten/beenden
15.7 MenuCtrl im Infrarotlicht
15.8 MenuCtrl schon beim Booten starten
16 Schlusswort
17 Übersicht der Programme und Skriptdateien zum Buch
Meinem Patenonkel Josef Schmidt gewidmet
Der Raspberry Pi ist zum Computer mit Kultstatus geworden. Das mag einerseits an der umfangreichen Literatur liegen, die für dieses Gerät verfügbar ist. Ganz sicher ist dafür aber auch das von der Raspberry Pi Foundation getragene Konzept verantwortlich, auch die Hardware als Open Source zu betrachten. So konnte ein kleiner Computer entstehen, der sich als Steuerungscomputer für Elektronikbastler einsetzen lässt und dabei nur wenig Energie verbraucht.
Softwarebasis des Pi sind Betriebssysteme, die ihre Wurzeln in Linux haben. Am bekanntesten ist dabei vielleicht Raspbian, das aus einer Debian-Linux-Distribution entwickelt wurde. Dessen Bedienoberfläche ist einfach aufgebaut und ähnelt der klassischen Oberfläche von Windows XP.
Pi ist aber auch ein Benutzername (pi@raspi3) – und mit dessen Augen werden Sie in diesem Buch spannende Blicke auf Ihren Mini-PC und seine Umgebung werfen. Dieses Buch führt Sie zugleich auch in die Welt zweier recht unterschiedlicher Programmiersprachen ein:
Bash: für Ablaufsteuerungen und als Programmstarter mit Benutzeroberfläche
C/C++: für alle Fälle, in denen man tiefer einsteigen will und in denen Geschwindigkeit wichtig ist
Sie werden noch sehen, dass sich diese Programmiersprachen nicht widersprechen, sondern wunderbar ergänzen, denn letztlich ist auch Linux eine Kombination daraus.
Da wir Menschen hauptsächlich über das Sehen, Hören und Sprechen kommunizieren, ist es angemessen, auch einen Computer in dieser Hinsicht zu erweitern. Der Schwerpunkt der für dieses Buch erstellten Programme liegt deshalb in diesen Bereichen.
Was erwartet Sie in diesem Buch?
Kapitel 1 erklärt, welche Modelle des Raspberry Pi existieren und wie Sie Raspbian Jessie/Stretch konfigurieren und erstmals starten. Zahlreiche Verweise auf andere Kapitel und Abschnitte erleichtern Ihnen den Einstieg.
Kapitel 2 bringt Ihnen Linux und Raspbian näher. Raspbian ist derzeit das beliebteste Betriebssystem auf dem Raspberry Pi. Sie lernen viele Details der grafischen Oberfläche kennen, aber auch die Verwendung der Konsole und vieler interessanter Programme werden erklärt.
Kapitel 3 erklärt den praktischen Umgang mit der (micro)SD-Karte als Boot-Medium des Raspberry Pi. Sie erfahren einiges über Backup und Restore und wie einfach es ist, in die "Computerproduktion" einzusteigen, denn Raspbian Jessie hat mit PiClone ein hübsches Backupprogramm bekommen.
Kapitel 4 erklärt die Verwendung vieler Linux-Kommandos. Sie erhalten eine Einführung in Bash, welche Sie dazu befähigt, kleine effektive Werkzeuge bzw. Skriptdateien zu bauen. Selbst wenn Sie daran nur begrenzt Interesse haben sollten, erfahren Sie, wie Sie viele der Programme zum Buch durch Anklicken von Desktop-Icons ganz einfach starten können. Mit Bash können Sie sehr leicht ASCII-Dialoge aufbauen, die als einfacher und informativer Programmstarter verwendbar sind. Auch C/C++ Programme lassen sich so ganz ohne Vorkenntnisse über Compiler starten. In diesem Kapitel lernen Sie außerdem die GPU-Programme von Raspbian kennen – von der rotierenden Teekanne bis zum mathematischen Kunstwerk.
Kapitel 5 führt Sie in die Welt der Elektronik ein. Die Namen Faraday, Ohm und Tesla sollten Ihnen bekannt sein. Sie müssen aber kein Elektronikexperte sein, um funktionsfähige Schaltungen aufzubauen und anzusteuern. Lassen Sie eine LED blinken. Verwenden Sie einen lichtgesteuerten Widerstand, Optokoppler oder eine antike Wählscheibe. Nutzen Sie einen A/D-Wandler und die zugehörige Software am Raspberry Pi. Auch ein LCD-Display lässt sich verwenden.
Kapitel 6 erklärt die Verwendung einer IR-Fernbedienung am Raspberry Pi. Zusätzlich werden Entfernungen mit preisgünstigen Sensoren für Ultraschall und Infrarot gemessen.
Kapitel 7 bietet Ihnen Grundwissen zu Netzwerken. Wie werden IP-Adressen vergeben? Wie entsteht eine Direktverbindung zwischen dem Raspberry Pi und einem anderen PC? Wie gelingt ein Netzwerkzugriff? Nutzen Sie SSH, PuTTY, TMux und weitere Programme.
In Kapitel 8 lernen sie ALSA kennen – das Linux-Soundsystem. Dabei geht es weniger darum, aus dem Pi eine Stereoanlage zu machen, als den Minicomputer zum Lauschen und Zuhören zu bringen.
In Kapitel 9 erfahren Sie, wie Sie Videodateien abspielen und Ihre Webcam nutzen können: zum Fotografieren oder Filmen – auf Wunsch auch ereignisgesteuert.
Kapitel 10 zeigt die Verwendung der Kameramodule zum Raspberry Pi. Fotografieren und filmen Sie bei unterschiedlichen Lichtverhältnissen oder in Kombination mit einer Webcam.
Kapitel 11: Was geschieht mit den gewonnenen Daten? Auf der RAM-Disk ablegen, übertragen oder löschen? Cronjobs helfen bei der Organisation.
Kapitel 12 wendet sich nochmal dem Thema Audio zu, jetzt aber mit C/C++ Programmen, die es ermöglichen, Audiosignale zu analysieren. Lernen Sie Audiotools und Libraries kennen. Benutzen Sie den Raspberry Pi als Papagei, und lassen Sie sich von einem selbst gebauten Audioquiz überraschen.
In Kapitel 13 lernen Sie die Bildverarbeitung mit OpenCV kennen. Viele Open-Source-Programme werden mit Tools wie CMakeGUI konfiguriert und direkt aus dem C++ Quelltext erzeugt. Bei mehr als 100 OpenCV-Beispielprogrammen ist garantiert etwas Passendes für Sie dabei! Ergänzend wird das ebenfalls von mir verfasste Buch "OpenCV Basiswissen" empfohlen.
Kapitel 14 erläutert die Objekterkennung mit OpenCV – von der Kontrastspreizung und einfachen Segmentierung von Textzeilen bis hin zur anspruchsvolleren Symbolerkennung. Erleben Sie eine sprechende Lichtschranke!
In Kapitel 15 wird MenuCtrl als Client-/Server-Software vorgestellt. Schrittweise wird eine Platine aufgebaut, die als Eingabegerät mit LCD-Display verwendet wird. So entsteht eine autarke Hardware und Software (gegebenenfalls für den Akkubetrieb), bei der auf Tastatur, Maus und Monitor verzichtet werden kann.
Nach dem Schlusswort in Kapitel 16 folgt in Kapitel 17 eine Übersicht der Programme und Skriptdateien zum Buch.
Hinweise zur Arbeit mit diesem Buch
Die Programme zum Buch, weitere Zusatzmaterialien sowie einen elektronischen Anhang mit ergänzende Informationen können Sie sich hier herunterladen: http://downloads.hanser.de/978-3-446-45342-5
Käufer der gedruckten Ausgabe dieses Buches erhalten das E-Book kostenfrei zum Buch. Die erste Seite des Buches enthält einen Zugangscode für das E-Book. Das E-Book ist komplett in Farbe und enthält in der EPUB-Version auch ein farblich hervorgehobenes Syntax-Highlighting.
Für den Raspberry Pi hat sich die Kurzbezeichnung Raspi eingebürgert. Wenn in diesem Buch vom Raspberry Pi oder Raspi gesprochen wird, sind damit alle bisher erschienenen Modelle gemeint. Wenn nur vom Pi gesprochen wird, ist sowohl der Raspberry Pi als auch der Banana Pi gemeint – auch wenn dieser Mini-PC nicht den Schwerpunkt des Buches bildet.
Im Buch sind viele Links zu Webseiten angegeben. Autor und Verlag können nicht für die dauerhafte Gültigkeit garantieren.Oft führt eine Suche nach Schlüsselwörtern zur genannten Webseite ebenfalls zu guten Treffern. Manchmal ist auch nur der Server vorübergehend nicht erreichbar.
Autor und Verlag haften nicht für eventuelle Schäden, die durch die Benutzung der im Buch beschriebenen Hardware oder Software entstehen könnten. Die Informationen wurden allerdings mit größtmöglicher Sorgfalt zusammengestellt, und es sind Warnhinweise zum Umgang mit Elektronik und elektrischen Spannungen enthalten.
Danksagungen
So wie das Raspbian-Betriebssystem eine bestimmte Zeit benötigt hat, um zum heutigen Entwicklungsstand zu gelangen, geht es einem manchmal auch als Autor. Deshalb möchte ich ganz besonders Herrn Frank Baur danken, der mich in zahlreichen Fachgesprächen immer wieder auf neue Ideen gebracht hat. Zur grafischen Umsetzung dieses Buches hat Frau Barbara Schmitz mit guten Tipps beigetragen. Meinem Bruder Erhard Eugen danke ich für zahlreiche Tests der Software, die er als völliger Laie auf dem Gebiet der Programmierung erfolgreich gemeistert hat. Ein ganz großer Dank gebührt auch Frau Julia Stepp vom Hanser Verlag, die die Entstehung dieses Buches über einen recht langen Zeitraum geduldig begleitet hat.
1Mit "RASPBIAN" ist die Abbilddatei bzw. die Downloadmöglichkeit gemeint, während „Raspbian“ ein schon funktionsfähiges Betriebssystem beschreibt.
Tausende von E-Books und Hörbücher
Ihre Zahl wächst ständig und Sie haben eine Fixpreisgarantie.
Sie haben über uns geschrieben: