Raspberry Pi Grundlagen
Inhaltsverzeichnis
Einleitung
Beim Raspberry Pi handelt es sich um einen kleinen Linux- Computer, der 2012 auf den Markt kam. Raspberry Pi bedeutet übersetzt 'Himbeerkuchen' und so ist auch die Himbeere das Logo der Raspberry Pi Foundation in Cambridge, England, von der er entwickelt wurde. Ähnlich wie die Arduino-Plattform war das Raspberry Pi-Board ursprünglich zum Unterrichten von Schülern und Studenten gedacht. Kurz nach seinem Erscheinen begann ein regelrechter Hype, so das die Boards für lange Zeit ausverkauft waren. Inzwischen wurde das Board über 17 Millionen Mal (Stand Ende 2017) verkauft. Das ist schon ein sensationeller Erfolg.
Das Board ist mit seinen Abmessungen von 56x85mm etwas größer als ein Arduino UNO. Aber darin steckt auch ein kompletter Computer mit Grafik, Soundausgabe, bis zu 4 USB Ports und 100Mb Netzwerk-Schnittstelle (1Gb beim Pi 3B+).
Das Raspberry Pi-Board
Erste Schritte
)Die erste Begegnung mit dem Raspberry Pi löst schon etwas Erstaunen aus. So ein kleines Board, und das soll ein richtiger Computer sein? Ja ist es, zwar nicht ganz so leistungsstark wie der PC-Bolide unter dem Schreibtisch, aber es reicht sogar für einen grafischen Desktop.
Was brauchen wir fürs Erste?
- ein Raspberry Pi-Board (Version B wird empfohlen - die Version A besitzt kein Netzwerk und nur einen USB-Anschluss.)
- einen Bildschirm mit HDMI-Eingang und ein Standard-HDMI-Kabel
- eine USB-Tastatur
- optional für den Grafik-Desktop eine USB-Maus
- Netzwerk-Kabel
- ein Stecker-Netzteil 5V/mind. 1A mit Micro-USB-Anschluss
- eine SD-Karte mit mindestens 4GB (SDHC-Typ 6 oder 10 - empfehlenswert sind 8GB oder mehr)
Die SD-Karte muss zunächst mit dem Raspberry Pi-Betriebssystem beschrieben werden, auf dem Board selbst ist kein Speicher für dieses vorgesehen. Dazu laden Sie sich am besten die aktuelle NOOBS-Version herunter. NOOBS ist ein Zip-Archiv und muss zur Installation lediglich entpackt und der komplette Inhalt dann auf die SD-Karte kopiert werden. Die SD-Karte wird in den SD-Card Slot des Raspberry Pi gesteckt, dann müssen Sie Tastatur und Monitor anschließen, das Bord mit Strom versorgen, und schon wird die Installation gestartet. Als Betriebssystem sollten Sie wie empfohlen +Raspian+ auswählen.
Nach dem ersten Neustart ist prinzipiell ein Login mit dem Usernamen pi und dem Passwort raspberry möglich. Aber Achtung - als Standardtastatur ist zunächst keine deutsche Tastatur eingestellt, also muss als Passwort raspberrz eingegeben werden.
Raspi-Config
Das Umstellen der Tastatur und andere wichtige Einstellungen erfolgen mittels des Konfigurationsprogramms raspi-config. Die wichtigste Änderung ist das Expandieren des Filesystems über +Expand Filesystem+, um die komplette Größe der SD-Karte nutzen zu können. Außerdem ist es sinnvoll, mittels +Change User Password+ gleich das Passwort zu ändern. Die Tastatur wiederum kann im Menüpunkt +Internationatisation Options+ umgestellt werden. Falls die gewünschte Tastatur nicht vorhanden sein sollte, wählen Sie einfach eine Generic-Tastatur mit deutschem Layout.
Raspberry Pi herunterfahren
Ein wichtiger Hinweis noch zum Schluss: Zum Ausschalten darf nicht einfach die Stromversorgung unterbrochen werden. Wie es sich für einen Computer gehört, möchte auch der Raspberry Pi heruntergefahren werden. Das geschieht mit folgendem Kommando:
sudo shutdown -h now
Die Parameter -h' bedeutet, dass der Rechner herunterfahren und anhalten soll. Der Parameter now ist obligatorisch und bedeutet sofort - das Herunterfahren kann nämlich auch zeitverzögert erfolgen.
Für einen Neustart verwenden Sie den folgenden Befehl:
sudo shutdown -r now
Hardware
Die Raspberry Pi-Hardware basiert auf einem System-on-Chip (SoC) mit Broadcom BCM2835. Darin steckt ein ARM Prozessor der Version 11, der ARM1176JZF, ein VideoCore IV-Grafikprozessor (GPU) und 256 bzw. 512MB Arbeitsspeicher. Neben Netzwerk und 2 USB-Host-Ports verfügt der Raspberry PI über einen HDMI-Videoausgang.
Es gibt noch einiges an sinnvollem Zubehör, das Sie sich optional zulegen sollten:
- Low Profile MicroSD-Kartenadapter (Die normale SD-Karte steht leider sehr weit aus dem Board hervor, die SD-Karten-Halterung bricht daher leider sehr leicht.)
- USB-WLAN-Modul (Hierdurch wird der Raspberry Pi mobil.)
- Adafruit Pi-Cobbler (eine für Steckplatinen taugliches Adapterboard für den Erweiterungs-Port)
- Stacking Header 2x13 (für eigene Lochraster-Erweiterung)
- Gehäuse zum Schutz der Elektronik
- I2C-A/D-Wandler - Adafruit ADS1015 oder PCF8591 (Der Raspberry Pi hat selbst keinen A/D-Wandler.)
- Pegelwandler für 3,3V in 5V - z.B. 4-Channel I2C-Safe Logic Level Converter
[
Vergleich der Raspberry Pi Versionen
Pi Zero | Pi Zero W / WH | Pi 1 Model A | Pi 1 Model A+ | Pi 1 Model B | Pi 1 Model B+ | Pi 2 Model B | Pi 2 Model B v1.2 | Pi 3 Model B | Pi 3 Model B+ | ||
---|---|---|---|---|---|---|---|---|---|---|---|
Veröffentlichungsdatum | Nov. ’15 | Feb. ’17 / Jan. ’18 | Feb. ’12 | Nov. ’14 / Aug. ’16 | Apr.–Jun. ’12 | Jul. ’14 | Feb. ’15 | Sep. ’16 | Feb. ’16 | Mär. ’18 | |
Preisempfehlung in US$ | 5<ref name="RaspberrypiZero" /> | 10<ref name=":1" /> | 25 | 20 | 35 | ||||||
Platinenmaße in mm |
Länge | 65,0 | 85,6 | 65,0 | 85,6 | ||||||
Breite | 30,0 | 56,0 | 56,0 | ||||||||
Gesamtgröße in mm |
Länge | 65,0 | 93,0 | 70,4 | 93,0 | ||||||
Breite | 31,2 | 63,5 | 57,2 | 63,5 | |||||||
Höhe | 5,0 | 17,0 | 12,0 | 20,0 | |||||||
Gewicht in g | 9 | 9 | 31 | 23 | 40 | 45 | 40 | 40 | 40 | ||
SoC (Broadcom): | BCM2835 | BCM2836 | BCM2837 | BCM2837B0 | |||||||
CPU | Type | ARM1176JZF-S | ARM Cortex-A7 | ARM Cortex-A53 | |||||||
Kerne | 1 | 4 | |||||||||
Takt in MHz | 1000 | 700 | 900 | 1200 | 1400 | ||||||
Architektur | ARMv6 | ARMv7 (32-bit) | ARMv8 (64-bit) | ||||||||
Familie | ARM11 | ARM Cortex-A | |||||||||
GPU | Typ | Broadcom Dual Core VideoCore IV, OpenGL-ES 1.1/2.0, Full HD 1080p30 | |||||||||
Takt in MHz | 250 | 300/400 | |||||||||
Videoausgabe | Composite Video (FBAS); Mini‑HDMI (Typ C) |
Composite Video (FBAS); HDMI (Typ A) | |||||||||
Tonausgabe | HDMI (digital) | HDMI (digital); 3,5-mm-Klinkenstecker (analog) | |||||||||
Arbeitsspeicher (LPDDR2-SDRAM) in MB |
512 | 256 | 512/(256) | 512/(256) | 512 | 1024 | |||||
Nicht-flüchtiger Speicher | microSD-Kartenleser | SD-Kartenl. | microSD-Kartenl. | SD-Kartenl. | microSD-Kartenl. | ||||||
USB-2.0-Anschlüsse | 1 OTG) | 1 | 2 (über Hub) | 4 (über Hub) | 4 (über Hub) | ||||||
Netzwerk | Ethernet | – | 10/100 MBit | 10/100 MBit | 10/100/1000 MBit | ||||||
WLAN | – | Broadcom BCM43143 2,4 GHz, b/g/n |
– | Broadcom BCM43143 2,4 GHz, b/g/n |
Broadcom BCM43455 2,4/5 GHz, ac | ||||||
Bluetooth | – | 4.1 LE | – | 4.1 LE | 4.2 LS BLE | ||||||
Pins | 40 | 26 | 40 | 26 | 40 | ||||||
GPIO-Pins | 26 | 17 | 26 | 17 | 26 | ||||||
weitere Schnittstellen | 1 × CSI; 1 × I2C | 1 × CSI; 1 × DSI; 1 × I2C | |||||||||
Leistung (Stromaufnahme) in W (mA) | 0,5–0,7 (100–140) | 2,5 (500) | 0,5–1,2 (100–230) | 3,5 (700) | 2,5–3 (500–600) | max. 4 (800) | max. 7 | ||||
Betriebsspannung<ref name="RP" /> in V | 5,0; Micro-USB-Anschluss (Micro-USB-B) | ||||||||||
Betriebssysteme | GNU/Linux, BSD, Plan 9, RISC OS | …, Windows 10 IoT Core | …, webOS OSE | ||||||||
Pi Zero | Pi Zero W / WH | Pi 1 Model A | Pi 1 Model A+ | Pi 1 Model B | Pi 1 Model B+ | Pi 2 Model B | Pi 2 Model B+ v1.2 | Pi 3 Model B | Pi 3 Model B+ |
Stromversorgung
Der Raspberry Pi benötigt eine Betriebsspannung von 3,3V. Als Stromversorgung ist eine externe 5V-Spannungsquelle erforderlich. Der Power-Anschluss auf dem Raspberry Pi-Board ist über eine Micro-USB Buchse realisiert. Da die Stromaufnahme des Boards den maximal zulässigen Strom eines USB-Ports überschreiten kann, ist dazu ein 5V-Netzteil mit Micro-USB-Port erforderlich, ausgelegt für mindestens 1A Strom.
Ein- und Ausgänge
Der Raspberry Pi lässt sich ähnlich wie der Arduino mit zusätzlicher Hardware erweitern, z.B mit einer 26-poligen Stiftleiste im 2,54mm-Raster. Hier das Wichtigste zu den Ein- bzw. Ausgängen im Überblick:
- Die Ein-Ausgänge des Raspberry Pi sind nur 3,3V-kompatibel und nicht 5V-tolerant.
- Es gibt 4 PWM-fähige Ausgänge (GPIO 12,13,18,19).
- An Schnittstellen verfügbar sind UART, I2C und SPI.
- Es gibt keine A/D-Wandler-Eingänge.
800px Raspberry - Pinout Diagramm
Schnittstellen
Auf der 26-poligen Stiftleiste befinden sich auch die Signalleitungen für UART, SPI und I2C. Doch anders als beim Arduino sind diese Schnittstellen nicht so einfach zugänglich. Zunächst muss die entsprechende Schnittstelle freigeschaltet werden. Au muss auch noch ein Treiber installiert werden.
Hier einige Anmerkungen zur Treiberinstallation bzw. zum generellen Zugriff auf Systembereiche des Raspberry Pi-Boards. Wie unter Linux allgemein üblich arbeitet der normale Nutzer mit eingeschränkten Rechten. Zum Zugriff auf Treiber, Hardware oder Systembereiche sind aber Admin-Rechte erforderlich. Um temporär für einen Befehl Admin-Rechte zu erlangen, gibt es den Befehl sudo, was soviel heißt wie "Tue es als Administrator" (englisch "super user do").
Die Freischaltung erfolgt über zwei Konfigurationsdateien. Das ist zunächst die Datei /etc/modprobe.d/raspi-blacklist.conf. Hier sind bei den Standardeinstellungen die SPI- und die I2C-Schnittstelle gesperrt. Freigeschaltet werden die Schnittstellen durch Auskommentieren der entsprechenden Zeile(n). Die Datei wird im Editor mit folgendem Befehl geöffnet:
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Sie dürfte etwa so aussehen:
blacklist spi-bcm2708 blacklist i2c-bcm2708
Am Anfang der Zeile mit der freizugebenden Schnittstelle fügen wir ein +#+-Zeichen ein und speichern die Datei.
blacklist spi-bcm2708 #blacklist i2c-bcm2708
Im nächsten Schritt sorgen wir dafür, dass die entsprechenden Kernel-Treiber beim Starten geladen werden. Dazu wird die Datei +/etc/modules+ verwendet. Auch diese öffnen wir mit dem folgenden Befehl:
sudo nano /etc/modules
Die Datei sieht zunächst so aus:
/etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. # Parameters can be specified after the module name. snd-bcm2835
Es wird lediglich das Sound-Modul geladen. Um den I2C-Treiber zu laden, fügen wir folgende Zeilen an:
i2c-bcm2708 i2c-dev
Nach dem Speichern der Datei führen wir einen Neustart des Raspberry Pi-Boards mit Eingabe des folgenden Befehls durch:
sudo reboot
Die I2C-Schnittstelle kann von der Kommandozeile aus genutzt werden. Dazu gibt es das Paket +i2ctools+. Dieses lässt sich mit folgendem Befehl installieren:
sudo apt-get install i2ctools
Für die Nutzung von der Kommandozeile stehen die Befehle i2cdetect i2cget und i2cset zur Verfügung. Wenn Sie z.B. den Befehl sudo i2cdetect -y 1 eingeben, wird der I2C-Bus nach angeschlossenen Geräten durchsucht und die Adressen ausgegeben.
pi@raspberrypi ~ $ sudo i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- pi@raspberrypi ~ $