Raspberry Pi Grundlagen

Aus eLAB Wiki
Wechseln zu: Navigation, Suche

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+).

RaspberryPi-Pose.JPG

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.


Raspi-Pinout.png Raspberry - Pinbelegung

Raspi-Pindiagram.png 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 ~ $

Weiterführende Links