Raspberry Pi programmieren mit C/C++ und Bash (eBook)

Mehr als 50 Programme rund um Foto, Video & Audio. Inkl. Einsatz von WiringPi, ALSA & OpenCV

(Autor)

eBook Download: PDF | EPUB
2018
816 Seiten
Carl Hanser Verlag GmbH & Co. KG
978-3-446-45790-4 (ISBN)

Lese- und Medienproben

Raspberry Pi programmieren mit C/C++ und Bash - Harald Schmidt
Systemvoraussetzungen
Systemvoraussetzungen
37,99 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

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.

Dipl.-Ing. Harald Schmidt ist seit über 20 Jahren mit Algorithmen zur Bildverarbeitung und Mustererkennung vertraut. Sein Interesse gilt dabei hauptsächlich der Programmiersprache C++ und Qt als Entwicklungsumgebung.

Inhaltsverzeichnis 6
Vorwort 18
1 Die Welt des Raspberry Pi 22
1.1 Die Modelle des Raspberry Pi 22
1.1.1 Energieversorgung 26
1.1.2 Der Raspberry Pi Zero W 27
1.1.3 Raspberry Pi 2 und Pi 3 31
1.2 SD-Karten und microSD-Karten 34
1.3 Von Wheezy zu Stretch – Downloads für Raspbian 35
1.3.1 Die Release Notes als Chronik 36
1.4 Über NOOBS zur Raspbian SD-Karte 37
1.4.1 NOOBS aus dem Internet holen und entpacken 38
1.4.2 NOOBS auf die leere (micro)SD-Karte kopieren 40
1.5 NOOBS auf dem Raspberry Pi 41
1.5.1 Wohin mit dem Bild? 41
1.5.2 Energie für NOOBS 42
1.6 Der NOOBS Recovery-Modus 48
2 Der Raspberry Pi und Linux 52
2.1 Das Abbild von Raspbian für die SD-Karte 53
2.1.1 Die Abbilddatei mit einem Linux-PC übertragen 57
2.1.2 Der Win32 Disk Imager 57
2.2 Die Grundkonfiguration des Raspbian Desktops 59
2.2.1 Tastaturlayout und Spracheinstellung 60
2.2.2 Konfiguration von Autologin, Hostname und Bootmodus 68
2.2.3 Passwortänderung 69
2.2.4 Freigabe für SSH und Abfrage der IP-Adresse 70
2.3 Der Raspberry Pi Desktop als Bedienoberfläche 71
2.3.1 Die Lage der Panelleiste ändern 72
2.3.2 Der Aufbau der Panelleiste 72
2.3.3 Programmstart über Tastaturkürzel 73
2.3.4 Eine symbolische Desktop-Verknüpfung hinzufügen 74
2.3.5 Eine neue Desktop-Datei erzeugen 75
2.3.6 Ein Programm der Anwendungsstartleiste hinzufügen 77
2.3.7 Miniprogramme im Panel 78
2.3.8 Das Konsolenkommando lxpanelctl 80
2.4 Der Main Menu Editor Alacarte 80
2.5 Das Erscheinungsbild anpassen mit LxAppearance 81
2.6 Der Raspbian Desktop auf dem PC oder Mac 83
2.7 Nützliche Programme ohne und mit grafischer Oberfläche 85
2.8 Autostart mit und ohne GUI 92
2.8.1 Die versteckte Datei .bashrc 93
2.8.2 Die Datei rc.local 95
2.9 Die Verwendung von LXTerminal in Desktop-Dateien 97
2.10 Pakete – Installation und Verwaltung 99
2.10.1 Der vorinstallierte Paketmanager pi-packages 100
2.10.2 Der Paketmanager Synaptic 101
2.10.3 Paketverwaltung über Konsolenkommandos 102
2.11 Die Bildschirmauflösung mit und ohne den RPi-Desktop einstellen 110
2.11.1 Über HDMI zum Fernseher 114
2.11.2 Über den HDMI/VGA-Adapter zum Monitor 115
2.11.3 Einstellung der Auflösung mit raspi-config 117
2.12 Audioumschaltung und Bluetooth-Lautsprecher 119
2.13 Systembackup im laufenden Betrieb 122
3 Betriebssysteme, Partitionen, Backup und Restore 124
3.1 SD-Karte, USB-Stick, Festplatte – was erkennt der Raspberry Pi? 126
3.2 SD-Karten mit Betriebssystem 129
3.2.1 Hinein in die Box 129
3.2.2 Der passende Aufkleber 130
3.2.3 Binäre Einheiten und die Kapazität von SD-Karten 130
3.3 SD-Karten identifizieren mit sd-label.sh 131
3.4 Hinweise zu Backup und Restore 134
3.5 Formatierung von SD-Karten 136
3.6 Das USB Image Tool 138
3.7 Direktkopie der SD-Karte mit piclone 140
3.8 Der Partitionsmanager GParted 142
3.9 Eine bootfähige SD-Karte mit sd-restore.sh erzeugen 145
3.10 Backup von SD-Karten mit sd-back.sh 150
3.10.1 Nullen vor dem Backup 154
3.11 Ein Blick in das Abbild der SD-Karte 156
3.12 Festplatten am Raspberry Pi 158
3.12.1 Der Einhängepunkt und die Systemkonsole 162
3.12.2 Einhängen der Partition über /etc/fstab 163
4 Programmieren mit dem Pi 164
4.1 Dateien und Programme zum Buch 165
4.2 Paketinstallation über die Skriptdateien zum Buch 167
4.3 Die Skriptdateien zum Buch – was ist wo? 169
4.4 Die Shell als Kommandointerpreter 171
4.4.1 Umgebungsvariablen 174
4.4.2 vcgencmd 175
4.5 Strings in Bash, C und C++ 177
4.6 Programmieren mit Bash 178
4.6.1 Eingabe, Ausgabe und if else 178
4.6.2 Feldtrenner und float-Werte 181
4.6.3 Formatierte Ausgabe mit printfcalc.sh 183
4.6.4 Ausgabekommandos für ASCII-Dateien 183
4.6.5 Bash-Arrays mit numerischem Index 184
4.6.6 Assoziative Bash-Arrays mit Wortindex 186
4.6.7 Funktionen, Parameter und Exit-Codes 187
4.6.8 Ausgabeumleitung und Rückgabewerte 188
4.6.9 Ein Bash-Skript mit Funktionen und Indexsuche 191
4.6.10 Indexelemente sortieren und finden mit assosort.sh 194
4.6.11 Ausgabespalten neu anordnen mit dosdir.sh 195
4.6.12 Die Ausgabe Einlesen und die IFS-Trennzeichen 197
4.6.13 Filtern mit cut und grep 200
4.6.14 Farben in der Konsolenausgabe 207
4.6.15 Zeichen entfernen mit trim.sh 209
4.6.16 Dateinamen oder Pfade extrahieren 210
4.6.17 Die Position einer Zeichengruppe oder eines Strings finden 210
4.6.18 Ein Blick in raspi-config 212
4.7 Bash in Beispielen 214
4.7.1 Wie copydesk.sh funktioniert 214
4.7.2 Farbige Listings mit colordir.sh 215
4.7.3 Analyse von Partitionsgrößen mit sd-info.sh 217
4.7.4 Feldinhalte aus Audiodateien kompakt anzeigen 220
4.7.5 EXIF-Daten anzeigen mit jhead.sh 222
4.7.6 Metadaten ermitteln mit mediainfo.sh 225
4.7.7 Diagnose der Bildschirmauflösung mit scrreso.sh 229
4.7.8 Eine Bildschirmecke zur Videowiedergabe nutzen (OMXPlayer) 231
4.7.9 Prozesse anzeigen mit pgrep_htop.sh 233
4.8 Skriptdateien mit ASCII-GUI (whiptail/dialog) 238
4.8.1 Vom Skript zum Kommando 242
4.8.2 Eine allgemeingültige Dateiauswahl im Skript verwenden 244
4.8.3 Programmauswahl über Checkboxes 246
4.8.4 Bilder als ASCII-Art anzeigen 249
4.8.5 Programmstart mit fotomenu.sh 255
4.8.6 Programmstart über Desktop-Dateien und ASCII-Dialoge 258
4.8.7 Dateiauswahl bei sd-mount.sh 261
4.8.8 Der Programmstarter opencvgui.sh als ASCII-GUI 264
4.9 C-Programme mit Raspbian nutzen (hello_pi/GPU) 266
4.9.1 Videoprojektion auf eine rotierende Teekanne (hello_teapot.c) 268
4.9.2 Mathematische Kunst mit hello_triangle2.c 269
4.9.3 Das Skript helloGPU.sh auf einem „großen“ Linux-PC starten 270
4.9.4 Mit make zum eigenen C-Programm 271
4.9.5 Das Skript helloGPU2.sh für weitere GPU-Programme 274
4.9.6 Programme starten mit system und popen 275
4.9.7 Zeit ist relativ 278
4.9.8 Mausklicks, Bewegungen und Scrollevents auswerten 280
4.9.9 Von der Mausbewegung zur Audioausgabe 285
4.10 Der Qt Creator als Entwicklungsumgebung 289
4.11 Die Entwicklungsumgebung Code::Blocks 294
4.12 GTK+ Programmierung 297
4.13 Die Geany-Entwicklungsumgebung 300
4.14 Python und IDLE als Entwicklungsumgebung 303
4.15 Zenity-Dialoge 307
4.16 GitHub und Raspbian 308
5 Elektronik und Programme für den GPIO-Port 310
5.1 Schaltungen aufbauen 313
5.1.1 Drähte oder Drahtbrücken 316
5.1.2 SMD-Adapter und ICs 318
5.1.3 Widerstände, Widerstandsnetzwerke und Kondensatoren 319
5.1.4 Der LED-Test 321
5.2 Eine LED per Software schalten (Ein/Aus) 322
5.3 Eine LED per Software dimmen (Pulsweitenmodulation) 325
5.4 Eine LED am Optokoppler 327
5.5 GPIO-Pins im Read-Modus (Bash) 328
5.5.1 GPIO-Pins zyklisch abfragen (Polling) 329
5.5.2 GPIO-Pins im Interrupt-Modus (Flankenerkennung) 330
5.5.3 Flankenerkennung bei mehreren Schaltern 333
5.6 WiringPi-Beispiele mit C-Quelltext 336
5.6.1 WiringPi im Interrupt-Modus 337
5.7 Experimente zur Impulswahl 338
5.7.1 Audiodateien durch Impulswahl abspielen 342
5.7.2 Impulsdiagramme mit GnuPlot 343
5.8 Von der Helligkeit zur Frequenz 346
5.8.1 Frequenzen messen mit dem Oszilloskop und mit r2f.cpp 347
5.9 Stufenschalter, Tastenfelder, Encoder und Codierschalter 352
5.10 Analog/Digital-Wandler für die SPI-Schnittstelle 354
5.10.1 Analoge Messwerte mit spiloop.c erfassen 357
5.11 Die I2C-Schnittstelle 359
5.12 Analog/Digital-Wandler für I2C 360
5.13 Ein LCD-Display am I2C-Bus 365
5.13.1 Ausgaben mit sysinfo.sh 370
5.13.2 PIDs auf dem LCD-Display mit pgrep_menuctrl.sh 372
5.14 Die C-Library bcm2835 für den GPIO-Port 374
5.15 Mehr Ampere mit externen Spannungsquellen 376
5.16 Vom Schaltplan zum Layout 378
5.16.1 EAGLE Light 379
6 Sensoren und Software für Infrarot und Ultraschall 384
6.1 LIRC als Empfänger 385
6.1.1 Kommandos per IR-Fernbedienung auslösen 391
6.1.2 Ein Auswahlmenü auf dem LCD-Display 394
6.2 Entfernungsmessung per Ultraschall 397
6.3 Ein Abstandswarner mit ultraloop.c im Qt Creator 402
6.4 Entfernungsmessung mit Infrarotlicht 407
6.4.1 Distanzmessung über den MCP3426 als A/D-Wandler 409
7 Netzwerke und der Fernzugriff auf den Raspberry Pi 410
7.1 Die automatische Vergabe von IP-Adressen 413
7.2 Netzwerkkabel, Übertragungsraten und ethtool 422
7.3 Eine Direktverbindung zum Raspberry Pi 423
7.3.1 Die Link-Local-IP 427
7.4 Netzwerkkameras 428
7.4.1 Eine Direktverbindung für Netzwerkkameras 430
7.5 Der SSH-Server und ein Linux-PC als Client 431
7.5.1 SSH und die Weiterleitung des X11-Fensters 436
7.5.2 Fingerabdrücke auf (micro)SD-Karten 438
7.6 Zwei Schlüssel zum Vergleich – SSH ohne Passwort 439
7.7 PuTTY als Windows-Client 441
7.8 Remote-Zugriff mit WinSCP und Krusader als Client 445
7.9 Der SSH-Fernzugriff per ASCII-GUI 449
7.9.1 Ein Desktop-Icon auf dem Client-PC 449
7.10 Ein Remote-Desktop mit TightVNC 450
7.11 Energie sparen mit TMux 453
7.12 Die ASCII-GUI pgrep_gui.sh 458
7.13 TMux und die ASCII-GUI pgrep_gui.sh 462
7.13.1 TMux-Skripting 464
7.14 WLAN-Verbindungen und WLAN-Sticks 466
7.14.1 WLAN-Verbindungen und wpa_gui 470
7.15 Die Netzwerk-Tools arp-scan und nmap 472
7.16 Netcat – vom Chatprogramm zum Videoempfänger 474
7.17 Fünf Wege zum Raspberry Pi 475
7.18 Über Android zum Raspberry Pi 477
7.18.1 Über F-Droid zu ConnectBot 478
7.19 Über USB OTG zum Raspberry Pi Zero 481
8 Audio und Composite Video am Pi 484
8.1 Buchsen, Kabel, Signale 484
8.2 Audiowiedergabe 488
8.3 Der AlsaMixer 495
8.4 Audioaufzeichnung und ALSA-Tools 497
8.4.1 SoX mit der Webcam als Audioquelle 500
8.4.2 SoX passt auf – Reaktion auf Geräusche 506
8.4.3 Informationen zur Audiodatei mit soxi 509
8.4.4 Audioaufzeichnung im Remote-Modus 510
8.4.5 Lautsprecherdurchsagen aus sicherem Abstand (remote) 513
8.4.6 Externe USB-Soundkarten und das Programm speaker-test 514
8.5 Sprachsynthese auf dem Linux-PC 518
8.5.1 Sprachausgabe mit eSpeak 519
8.5.2 Sprachausgabe über tts.sh mit eSpeak, SVOX-Pico und Festival 520
9 Videodaten – Aufzeichnung und Wiedergabe 524
9.1 Der OMXPlayer 525
9.1.1 Kommandos für den OMXPlayer (DBUS-Interface) 527
9.2 Videodateien aus dem Internet holen 529
9.3 Archivierte Videos abspielen mit guiPlay.sh 533
9.4 Videoplayer und multiplay.sh 541
9.5 Wiedergabe mit videoselect.sh und avplay 545
9.6 Wo ist das Videogerät? 546
9.7 Daten zum Videogerät mit dem V4L-Treiber 549
9.8 MPEG-Spezifikationen, Codecs und Containerdateien 552
9.9 Fotografieren und Filmen mit guvcview 553
9.10 Fotografieren mit fswebcam 557
9.11 Die libav-tools und avconv (bzw. ffmpeg) 563
9.11.1 Der Webcam-Zugriff mit avconv 564
9.11.2 Vertonung mit avconv 566
9.11.3 Bildschirmvideos mit dem Raspberry Pi 567
9.11.4 Videos konvertieren mit WinFF 569
9.12 Motion auf dem Pi 571
9.12.1 Der Programmstarter motiongui.sh 574
9.12.2 Der Blick auf die Uhr 579
9.12.3 Motion-Parameter geeignet festlegen 581
9.12.4 Namen für Bilder und Videodateien 587
9.12.5 Einblendung von Zeitstempeln und Texten 588
9.12.6 Markierte Bewegungen 589
9.12.7 Bewegungsalarm auf Teilbereichen des Bildes 590
9.12.8 Automatische E-Mails bei Ereignissen 593
9.12.9 Den Videostream anzeigen und weiterleiten 594
9.12.10 Parameteränderung per ASCII-GUI und setvalue.sh 597
10 Kameramodule zum Raspberry Pi 598
10.1 Das 8-Megapixel-Kameramodul mit Sony-IMX219-Sensor 602
10.2 Fotos mit raspistill 604
10.2.1 EXIF-Daten ermitteln 609
10.2.2 Fotografieren mit fotomenu.sh 610
10.2.3 Der manuelle Belichtungsmodus 612
10.2.4 Fotografieren mit Zeit-/ISO-Automatik 614
10.2.5 Farben und Spezialeffekte 617
10.2.6 Fotos bei sehr wenig Licht und im Signalmodus 621
10.3 Konverter für Einzelbilder 625
10.4 Bilder und das FBI 626
10.5 Videos aufzeichnen mit raspivid 629
10.6 Videodateien mit MP4Box und avconv verarbeiten 632
10.7 Der UV4L-Treiber zum Kameramodul des Raspberry Pi 634
10.7.1 Fotografieren mit multicam.sh 638
10.7.2 Filmen mit dd 642
10.8 Binning bei raspistill und raspivid 643
10.9 Motion und das Kameramodul 646
11 Automatischer Datentransfer 652
11.1 SFTP-Kommandos per Skript ausführen 653
11.2 Eine RAM-Disk als Zwischenpuffer 657
11.2.1 Bilder auf der RAM-Disk 658
11.2.2 Die RAM-Disk überwachen 660
11.3 Datentransfer mit FileZilla 662
12 Audiosignale analysieren 664
12.1 Audacity 666
12.2 Die Verwendung von libsndfile 668
12.2.1 Die Abtastwerte einer Audiodatei in Textform 670
12.2.2 Ein Blick auf die Dokumentation 671
12.2.3 Ausgabeumleitung für Audiodaten mit sndout.cpp 672
12.3 Pausenerkennung und Segmentierung 676
12.3.1 Audiosegmentierung und Sprachausgabe mit audiosegm.cpp 677
12.4 Die Library tinyalsa 682
12.4.1 Abtastraten mit tinypcminfo.c ermitteln 684
12.4.2 Audioaufnahmen mit capaudio.sh und tinycap.c 685
12.5 Der Pi als Papagei 689
12.6 Spektrogramme mit sndfile-tools und Audacity 691
12.7 Vokaltraining mit voxvokal.sh 700
12.8 Das Audioquiz 704
13 OpenCV und der Pi 708
13.1 Die Konfiguration von OpenCV 709
13.2 Mit dem Compiler zur ausführbaren Datei 712
13.3 OpenCV – Dokumentation und Beispielprogramme 716
13.4 OpenCV, CMakeGUI und Code::Blocks 719
13.5 Die Qt-Projektdateien zu den Beispielprogrammen 721
13.6 Das Programm fpsec.cpp auf dem Pi benutzen 724
13.6.1 Fenster und Tastaturcodes von fpsec.cpp 725
13.6.2 Konturbilder vom Webcambild 726
13.6.3 Konturbilder vom Videobild 727
13.6.4 FloodFill auf dem Videobild 728
13.7 Programmierung mit OpenCV 729
13.7.1 Grundlegende Datentypen und OpenCV-Klassen 729
13.7.2 Fenster, Steuerelemente und cv::waitKey 731
13.7.3 Optimierung von Farb- und Grauwertbildern per Tastendruck 732
13.7.4 Binarisierung von Bildern mit cv::threshold 735
13.7.5 Regionen und Beschriftungen 737
13.8 Konfiguration für die WITH_QT-Oberfläche 738
14 Objektsegmentierung mit OpenCV 740
14.1 Segmentierung von Textzeilen 740
14.2 Symbolerkennung mit iconreader.cpp 743
14.3 Symbolerkennung auf Webcambildern 746
14.3.1 Einsatzzweck, Bedienung und Tastaturcodes 748
14.3.2 Vom Graustufenbild zum Erkennungsresultat 753
14.3.3 Der Alarm und die Statistik 759
14.4 Die sprechende Lichtschranke 761
15 Experimente 762
15.1 Booten mit Sprachausgabe 762
15.2 Ein Eingabemodul mit IR-Detektor und LCD-Display 765
15.2.1 Den Schaltungsaufbau planen 768
15.2.2 Lötarbeiten für die Elektronik zum DOGM204 LCD-Display 770
15.2.3 Das LCD-Display testen 771
15.2.4 Das Eingabemodul eichen 773
15.2.5 Die Drehung des Codierschalters auswerten 776
15.3 Ein Client/Server-Konzept für das Eingabemodul 777
15.3.1 Nur mit Maus und Display? 783
15.4 Ein Client/Server-Konzept mit menuctrl.sh 786
15.4.1 Fotos mit MenuCtrl 791
15.5 Über MenuCtrl fswebcam starten/beenden 794
15.6 Die hello_pi GPU-Programme mit MenuCtrl starten/beenden 795
15.7 MenuCtrl im Infrarotlicht 797
15.8 MenuCtrl schon beim Booten starten 802
16 Schlusswort 804
17 Übersicht der Programme und Skriptdateien zum Buch 806
Stichwortverzeichnis 812

1.  Die Welt des Raspberry Pi

Als der Bauingenieur Konrad Zuse 1941 den Z3 als ersten programmierbaren Computer mit binärer Gleitkommarechnung und insgesamt 2200 Relais erfand, waren Betriebssysteme noch nicht existent. Bei einem Hauptspeicher aus 1600 Relais dürfte das auch nicht weiter verwundern. Weniger bekannt ist, dass Zuse auch einen A/D-Wandler und erste Prozesssteuerungen erfand.

75 Jahre später arbeiten die meisten Computer fast unbemerkt und immer noch ohne Betriebssystem. Wenn Ihre Waschmaschine Temperatur, Drehzahl und Wasserstand ermittelt, dann leiten einige Sensoren die gemessenen Daten an einen Embedded Computer weiter, der einen vom Hersteller programmierten Mikrocontroller enthält und so eine Spezialaufgabe erfüllt.

Der Arduino ist ein sehr preisgünstiger Minicomputer, der ohne angeschlossene Peripherie allerdings absolut nutzlos ist. Mit angeschlossenen Sensoren und nach dem Transfer eines am PC entwickelten Programms können Sie damit hingegen Messwerte erfassen oder Relais ansteuern. Ein 8-Bit-Mikrocontroller führt das Programm aus, wobei der Arduino weder einen Monitoranschluss noch ein Betriebssystem hat.

Der Raspberry Pi ist im Gegensatz zum Arduino durch die Nutzung von Betriebssystemen viel universeller verwendbar und bindet Sie nicht an eine bestimmte Programmiersprache. Wie bei einem großen PC können Sie einen Bildschirm anschließen, eine Internetverbindung herstellen oder USB-Geräte anstecken. Zusätzlich kann dieser Mini-PC aber auch relativ leicht mit bestimmten Sensoren verbunden werden. Dort, wo ein Laptop zu groß, zu schwer und zu teuer ist, beginnt die Welt des Raspberry Pi.

1.1 Die Modelle des Raspberry Pi

Als im Jahr 2012 der erste Raspberry Pi Computer auf den Markt kam, ahnte wohl noch niemand, dass sich daraus eine ganze Produktfamilie (siehe Bild 1.6) mit bislang mehr als 19 Millionen verkauften Exemplaren (März 2018) entwickeln würde. Alle Raspberry Pi Einplatinencomputer haben einen recht geringen Energieverbrauch, der von der Prozessorleistung des jeweiligen Modells, aber auch von den angeschlossenen Geräten abhängt.

Kann man für Preise zwischen 11 und 45 € (je nach Modell und Bezugsquelle) auch wirklich einen vollwertigen Computer erwarten? Nicht ganz, denn Sie bekommen nur ein vollständig bestücktes Mainboard. Gehäuse, Netzteil, (micro)SD-Karte, HDMI-Kabel und ein USB-Hub sind nicht enthalten.

 

Bild 1.1 Ein Raspberry Pi 1 mit PS2/USB-Adapter, passivem USB-Hub, USB-Stick und WLAN-Stick

Was macht den Raspberry Pi so attraktiv? Es ist nicht nur der Preis, sondern vielleicht auch die Möglichkeit der Erweiterung und die Fähigkeit, externe Hardware vergleichsweise einfach anzusteuern. Wofür ist dieser kleine Computer zu empfehlen? Auf jeden Fall für den lautlosen Dauerbetrieb und für viele Arten von Spezialaufgaben, bei denen Tastatur und Monitor entfallen können – aber nicht müssen. Zusammen mit OpenCV können Sie z. B. eine Alarmanlage basteln, bei der verdächtige Bilder drahtlos zu einem anderen Rechner übertragen werden. Sehr oft wird der Raspberry Pi im eigenen Netzwerk eingesetzt und ist als einziger Computer permanent eingeschaltet.

A, A+, B, B+, Pi 2, Pi 3, Pi Zero W – welcher Raspberry Pi ist nun der richtige? Sämtliche lieferbaren Modelle werden auf der Website der Raspberry Pi Foundation beschrieben: https://www.raspberrypi.org

Der Raspberry Pi 3 und der ganz neue Pi Zero W sind mit einem WLAN-Chip ausgestattet. Beim Pi Zero W ist das besonders wichtig, denn dieses Minimodell hat keine Ethernet-Buchse. Letztlich hängt die Entscheidung davon ab, welche Rechenleistung und welche Schnittstellen Sie benötigen. Auf den Monitor kann man gegebenenfalls verzichten, wenn Sie den Raspberry Pi über SSH (SecureShell) fernsteuern. Ein WLAN-Stick kann bei allen Modellen über USB angeschlossen werden.

Im Jahr 2013 war der Raspberry Pi (Modell B) wahrscheinlich der weltweit bekannteste Einplatinencomputer mit folgenden Anschlüssen und Eigenschaften:

  • Broadcom BMC2835-Prozessor, 700 MHz (ohne Overclock)

  • Broadcom VideoCore-4-GPU mit OpenGL ES 2.0, h.264/MPEG-4

  • 512 MB Hauptspeicher (DDR2-SDRAM)

  • USB 2.0 (leider nur 2-fach)

  • Micro-USB zur Spannungsversorgung (min. 700 mA)

  • Netzwerkbuchse RJ 45 (Ethernet mit 10/100 MBit/s)

  • HDMI-Ausgang (adaptierbar auf DVI)

  • Cinchbuchse als analoger FBAS-Videoausgang

  • 3,5 mm Klinkensteckerbuchse für den Ton (Ausgang)

  • CSI-Interface für das Kameramodul

  • DSI-Interface für spezielle externe LCD-Displays

  • GPIO-Port mit 26 Pins (z. B. für Sensoren, Relais etc.)

  • Slot für eine SD-Karte mit Betriebssystem

  • Energieverbrauch: 3,5 Watt bei 700 mA

 

Bild 1.2 Raspberry Pi 1 (Modell B) mit aktiven LEDs für Power und Action

Inzwischen wird dieses weitverbreitete, aber ältere Modell mit SD-Karte als Raspberry Pi 1 (Modell B) bezeichnet (Bild 1.2). Die Modellreihe A ist preisgünstiger und etwas sparsamer ausgestattet. Zunächst geschah das durch Weglassen von Bauteilen auf der Platine. Die A+ Modellreihe (Bild 1.3) hat dagegen eine kleinere, fast quadratische Platine.

Die älteren Modelle A und B des Raspberry Pi (vor Juni 2014) werden nur noch selten als Neuware angeboten, haben aber immer noch einen teilweise erstaunlichen Sammlerwert. Bei beiden Modellen wird eine SD-Karte zum Booten des Betriebssystems benötigt. Die neueren Modelle (A+, B+, Zero, Pi 2, Pi 3) verwenden stattdessen eine microSD-Karte (Bild 1.4).

Beachten Sie bitte auch, dass es unterschiedliche Gehäuseformen gibt. Das Gehäuse aus Bild 1.2 ist für lediglich zwei USB-Buchsen vorgesehen, während die neueren Modelle der Reihe B über vier USB-Buchsen verfügen, wie in Bild 1.5 zu sehen. Nicht alle Gehäusehersteller haben Öffnungen für das Displaymodul und das Kameramodul vorgesehen. Die seriellen Anschlüsse dazu werden als DSI und CSI bezeichnet.

 

Bild 1.3 Das Modell A+ des Raspberry Pi 1 (© Bild: Raspberry Pi Foundation)

Ein signifikantes Merkmal aller Raspberry Pi Computer ist eine Stiftleiste, die als GPIO-Port bezeichnet wird. In Bild 1.2 sind das 2 * 13 = 26 Kontakte für den GPIO-Port. Es gibt jede Menge Hardware, die über General Purpose Input/Output (GPIO) anschließbar ist. Da die neueren Raspberry Pi Modelle 40 Kontakte haben, passt die eine oder andere Aufsteckplatine nur über einen zwischengeschalteten Adapter. Wie Sie elektronische Schaltungen über GPIO ansteuern, erfahren Sie in Kapitel 5.

 

Bild 1.4 Die neueren Modelle des Raspberry Pi (ab Juni 2014)

Der Raspberry Pi B+ ist ein Nachfolger des allerersten Raspberry Pi B Modells und kostet derzeit ca. 25 €. Der Hauptunterschied zum älteren Modell (Bild 1.2) liegt in einer 40-poligen Stiftleiste und in der nun 4-poligen Klinkensteckerbuchse. Es spricht aber aus meiner Sicht nur noch wenig für dieses Modell, das von "unten" und von "oben" Konkurrenz aus dem eigenen Haus bekommen hat. Aber wer nicht viel Geld ausgeben möchte und eine Ethernet-Buchse braucht, ist mit diesem Modell gut bedient. Die Anschlüsse stimmen mit den wesentlich schnelleren Modellen Pi 2 und Pi 3 überein.

 

Bild 1.5 Anschlüsse am Modell B+, dem Raspberry Pi 2 und dem Pi 3 ...

Erscheint lt. Verlag 10.9.2018
Reihe/Serie makers DO IT
Verlagsort München
Sprache deutsch
Themenwelt Informatik Weitere Themen Hardware
Schlagworte Audio • Bash • Elektronik • Foto • Hardware • Linux • Maker • makers • OpenCV • Programmierung • Projekte • Raspberry Pi • Raspi • Raspian • Video
ISBN-10 3-446-45790-9 / 3446457909
ISBN-13 978-3-446-45790-4 / 9783446457904
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 70,3 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

EPUBEPUB (Wasserzeichen)
Größe: 41,2 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich