Raspberry Pi

Aus ITA-Wiki
Version vom 28. September 2021, 09:30 Uhr von Marco Bakera (Diskussion | Beiträge) (Installiere Raspbian auf dem Raspberry Pi)
Wechseln zu: Navigation, Suche

Der Raspberry Pi ist ein kleiner und kostengünstiger Einplatinencomputer. Er wird während der Ausbildung in verschiedenen Bereichen eingesetzt.

Beschaffung

Raspberry Pi

Für den Einsatz eines Raspberry Pi im Unterricht werden folgende Komponenten zwingend benötigt:

  1. Raspberry Pi 4B (kleinste Ausstattung ist ausreichend, ca. 45 €)
  2. Gehäuse für den Raspberry Pi (die 40 Pins der GPIO-Schnittstelle müssen von oben gut zugänglich sein). Ein paar Beispiele:
    • Pibow 3 Ninja Coupé (Schichtgehäuse) (ca. 10 €)
    • Mepro Enclosure Case (Schichtgehäuse) (ca. 7 €)
    • OneNineDesign Gehäuse (ca. 6 €)
  3. USB-C Steckernetzteil (2 A, ca. 8 €) (Informationen zu den Netzteilen)
  4. microSD-Karte Class 10 mit mindestens 16 GB Speicher. (ca. 5 €)
Eine Analyse verschiedener Karten gibt es bei elinux.org und bei raspberrypi.org.

Folgende Ergänzungen stehen entweder bereits durch andere Elektronikgeräte wie PCs, Smartphones, Tablets und Digitalkameras zur Verfügung oder müssen neu angeschafft werden.

  • Netzwerkkabel (ca. 3 €)

Für die praktische Arbeit mit den GPIO-Pins des Pi müssen folgende Komponenten beschafft werden:

  • Box zur Aufbewahrung von Kleinteilen
  • Experimentierboard "Breadboard" mit ca. 830 Kontakten (ca. 3 €)
  • Steckbrücken "jumper wire" (ca. 4 €)
    Benötigt werden ca. 10 Stück in alle Varianten: männlich-weiblich, weiblich-weiblich, männlich-männlich. Häufig sind Bündel mit 40 Stück erhältlich, die auf 4 Schüler aufgeteilt werden können.

Optional kann ein HDMI-USB-Dongle für das Debugging hilfreich sein. Dieses Video (mirror) beschreibt die Funktion.

Bezugsquellen

Für den Versand bieten sich folgende Händler an: reichelt elektronik, Alternate, Pollin Electronic oder Conrad. Da die Preise schwanken, lohnt sich ein Vergleich. Auf den Shop-Seiten kann man nach "Starterkit" oder "Bundle" suchen, um Komplettangebote zu erhalten.

Vor der Bestellung bei Amazon-Händlern sollte darauf geachtet werden, aus welchem Land die Teile verschickt werden. Bei außereuropäischen Händlern sind lange Lieferzeiten einzuplanen.

Conrad hat viele Komponenten in den Ladengeschäften in Dortmund und Essen auch vorrätig.

Die offiziellen Seite von Raspberry Pi Foundation verlinkt verschiedene Shops.

Wenn sich mehrere Besteller:innen zusammentun, können hierdurch zusätzlich Versandkosten eingespart werden.

Inbetriebnahme

Vor dem ersten Einsatz, muss auf dem Raspberry Pi ein Betriebssystem auf einer SD-Karte installiert werden.

Im MagPi-Magazin werden in einem Troubleshooting Guide verschiedene Probleme bei der Einrichtung des Pi angesprochen. Schaue dort nach, wenn es Schwierigkeiten gibt.

Führe die folgenden Schritte nacheinander durch. Manchmal gibt es mehrere Möglichkeiten. Entscheide dich dann für eine Option.

Baue den Raspberry Pi zusammen.

Betriebssystem-Image herunterladen

Option 1: direkter Download

Ein aktuelles Image von Raspbian oder Raspbian lite gibt es unter raspberrypi.org.

Lade "Raspberry Pi OS with desktop and recommended software" und entpacke das Archiv. Darin findest du eine img-Datei.

Option 2: Download über einen BitTorrent-Client

Der langsame Download über den Webserver von raspberrypi.org kann mit einem BitTorrent-Client deutlich beschleunigt werden. Unter Windows, Linux und Mac kann hierfür z.B. Transmission genutzt werden. In Transmission kann unter "Editieren", "Eigenschaften", "Netzwerk" mit der Option "Lokale Peersuche verwenden" (Local Service Discovery) der Download innerhalb eines lokalen Netzes erheblich beschleunigt werden. Hierfür muss ein mDNS/Bonjour-Dienst installiert sein (s.u.).

Ein Webdienst, der Bittorrent ermöglicht, ist instant.io.

Installiere Raspbian auf dem Raspberry Pi

Kopiere das Image auf eine SD-Karte.

Option 1: Mit dem Win32 Disk Imager unter Windows

Nutze den Raspberry Pi Imager

Option 2: Mit dem dd-Befehl unter Linux

Unter Linux oder MacOS kann dies mit dem Befehl 'dd' geschehen.

USBImager ist ein kleines Programm zum Schreiben von ISO-Images, welches für alle gängigen Betriebssysteme existiert.

Eine ausführliche Anleitung für beide Varianten befindet sich in der Leseprobe des Raspberry Pi Buches.

Eine weitere kurze Anleitung ist in Ausgabe 36 von The MagPi (ab Seite 16). Auch der Setup-Guide von der RapberryPi-Foundation hält nützliche Informationen bereit.

Bonjourdienst/mDNS installieren

Um einen Rechner ohne einen DNS-Server über dessen Name zu erreichen, existiert "Multicast DNS" (mDNS).

Option 1: Windows Rechner für den Zugriff

Um auf den Pi über dessen Name zugreifen zu können, muss auf dem eigenen Windows-Laptop ein Bonjourdienst installiert werden - z.B. der Bonjour Druckdienst für Windows (von Apple). Danach ist der Pi unter hostname.local erreichbar - also standardmäßig raspberrypi.local.

Sollte der Rechner nicht über den Name erreichbar sein, so können Sie mit dns-sd -G v4 hostname.local die IP-Adresse ermitteln und den Pi anschließend damit ansprechen.

Option 2: Linux oder Apple-Rechner für den Zugriff

Bei Linux und MacOS kann die Installation entfallen, da die Dienste "avahi" unter Linux und "Bonjour" unter macOS bereits installiert sind.

Fernzugriff über die Konsole aktivieren

  • SSH (Secure SHell) ermöglicht, den sicheren Zugriff auf die Kommandozeile eines Rechners. Um diesen Fernzugriff mit ssh zu aktivieren, muss eine Datei mit dem Namen "ssh" im Verzeichnis "boot" abgelegt werden. [1] Dazu wird die SD-Karte in einen PC gesteckt, das Laufwerk "boot" ausgewählt und schließlich eine leere Datei "ssh" angelegt. Wichtig: Die Datei "ssh" darf keine Endung ("TXT" o.ä.) haben.
  • (optional) Damit sich der Pi direkt in ein WLAN-Netz einbucht, kann eine Datei "wpa_supplicant.conf" in dem Verzeichnis "boot" abgelegt werden [2][3]. Ihr Aufbau:
   # Datei wpa_supplicant.conf in der Boot-Partition der SD-Karte
   network={
      ssid="wlan-name"
      psk="ganz-geheimes-passwort"
      key_mgmt=WPA-PSK
   }

Funktionsprüfung

  1. Schließe den Pi mit einem Netzteil an eine Steckdose an.
  2. Verbinde ihn mit einem Ethernetkabel direkt mit dem PC/Laptop. Zwei LED an den Ethernetbuchse des Pi zeigen an, ob eine Verbindung besteht.
  3. Öffne ein Terminal oder die Eingabeaufforderung und versuche ihn mit ping raspberrypi.local zu erreichen.
    Hinweis: Bei aktuellen Windowsversionen funktioniert der direkte Zugriff über den Hostnamen nicht mehr. Durch die Eingabe von ping -4 raspberrypi.local in der Eingabeaufforderung, erhält man die IPv4 Adresse des Raspberry Pi. Mit dieser IP-Adresse ist der Fernzugriff möglich.
  4. Wenn alles geklappt hat, bekommst du eine Antwort vom Pi.
  5. Verbindung mit SSH: Öffne die Powershell/Eingabeaufforderung (Windows) oder ein Terminal (Linux, MacOS) und stelle eine Verbindung mit ssh raspberrypi.local her.

Der Standardbenutzername und Passwort des Pi lauten pi und raspberry.

Hostname ändern

Damit sich der Pi namentlich von den anderen Pis unterscheidet, muss der Hostname geändert werden. Verzichte auf Leerzeichen und Umlaute im Hostnamen und verwende am besten nur Klein- und Großbuchstaben ohne öäüß.

Option 1: Über das Netzwerk

Du kannst den Pi in einem Netzwerk oder einer direkten Verbindung unter dem Name "raspberrypi.local" erreichen.

  • Windows: Verbinde dich mit dem Programm putty per SSH auf raspberrypi.local verbinden (Bonjour-Dienst notwendig)
  • Linux: Mit ssh raspberrypi.local verbinden

Nach dem Verbinden kannst du den Hostname mit "sudo raspi-config" ändern.

Option 2: SD-Karte im Linuxrechner

Stecke die SD-Karte in einen Linuxrechner und suche die Datei "/etc/hostname" auf der SD-Karte. Darin kannst du einen neuen Hostnamen eintragen. Danach muss der Pi neu gestartet werden.

Option 3: Verbindung mit der seriellen Schnittstelle (für Experten)

Verbinde einen Rechner über die serielle Schnittstelle mit dem Pi. Hierfür benötigst du einen Adapter, der zwischen dem USB-Port und den GPIO-Pins des Pi angeschlossen wird. Mit dem Programm putty (Windows) oder screen (Linux) kannst du dich dann auf den Pi verbinden.

Nach dem Verbinden kannst du mit dem Befehl "sudo raspi-config" den Hostname ändern.

Pi herunterfahren und mit dem Internet verbinden

Der Pi kann nach dem Ändern des Hostname eindeutig identifiziert und daher in einem lokalen LAN betrieben werden. Fahre dazu den Pi mit sudo halt oder sudo poweroff herunter.

Achtung! Ziehe nicht einfach den Netzstecker des Pi, ohne ihn korrekt herunterzufahren. Dies kann zu Beschädigungen der Hardware führen.

Der Pi kann mit einem LAN-Kabel mit dem Raumnetz/LAN verbunden und damit in das Internet gebracht werden. Nach dem Start ist er unter dem neuen Namen erreichbar - Endung .local nicht vergessen.

Fernzugriff über eine grafische Oberfläche aktivieren

Option 1: Virtual Network Computing (VNC)

Mit dem VNC-Protokoll kann man über das Netzwerk auf den Bildschirm eines entfernten Rechners zugreifen. Für den Raspberry Pi ist es in der VNC-Dokumentation beschrieben.

Lade einen VNC-Viewer wie z.B. RealVNC herunter und verbinden dich mit deinem Pi.

Falls das Bild zu klein ist, kann die Bildschirmauflösung über "Einstellungen → Raspberry Pi Konfiguration → Auflösung festlegen" geändert werden. Alternativ kann über SSH auf dem Pi mit dem Befehl vncserver ein virtueller Bildschirm erzeugt werden. Auf diesen kann man sich mit meinraspberrypi.local:1 verbinden.

Neben der Bildübertragung bietet der Zugriff über VNC auch die Möglichkeit, Dateien zu übertragen.

Option 2: Remote Desktop Protokoll (RDP)

Nutze diese Option nur, wenn die erste Option nicht funktioniert!

Das "Remote Desktop Protocol" erlaubt die Steuerung des Pi über eine grafische Oberfläche. Dafür muss der Dienst "xrdp" auf dem Pi installiert werden. Als Client für den Zugriff gibt es unter Windows die "Remote Desktop-Verbindung" und unter Linux "rdesktop".

Bei der aktuellen Version von Raspbian wird der RealVNC-Server mitinstalliert, der nicht mit xrdp zusammenarbeitet. Daher ist vor der Installation von xrdp eine Deinstallation des VNC-Servers notwendig.

 $ sudo apt-get remove realvnc-vnc-server xrdp

Nun kann xrdp installiert werden. Hierfür ist eine Verbindung mit dem Internet notwendig. Ob eine solche Verbindung besteht, kann z.B. mit ping 8.8.8.8 (Ping an einen DNS-Server von Google) geprüft werden - Abbruch mit STRG-C. Wenn die Internetverbindung besteht, erfolgt die Installation mit dem folgenden Befehl.

 $ sudo apt-get install xrdp

Notiere die MAC-Adressen (Hardware Adressen) der Netzwerkschnittstellen

Notiere die MAC-Adresse des Pi - am besten direkt auf dem Gehäuse. Sie beginnen mit B8:27:EB und du erhältst sie mit dem Befehl

 $ ip link show

Da der Pi ab Version 3 über eine Ethernet-Schnittstelle mit einem Kabel (eth0) und einen WLAN-Chip (wlan0) verfügt, existieren mehrere Adressen. Notiere sie alle!

Mehr Informationen stehen auf den Seiten des Elektronik Kompendiums

Passwort ändern

Verbinde dich mit dem Pi und ändere das Passwort. Notiere es und merke es dir gut. Dies kannst du mit "passwd pi" oder "raspi-config" tun.

Installiere das Paket espeak und die Sprachfiles (optional)

Mit diesem optionalen Schritt wird der Pi um eine Sprachausgabe erweitert.

 $ sudo apt-get install espeak espeak-data

Über die Audioausgabe kann der Pi seine eigene IP-Adresse ausgeben, damit wir ihn im Netz wiederfinden, ohne einen Monitor jedesmal anschließen zu müssen. Die Anleitung IP-Sprachausgabe einrichten, beschreibt das genauere Vorgehen.

Backup erstellen

Erstelle ein Backup der SD-Karte und speichere es an einem sicheren Ort. Sollte es später einmal Probleme geben, kannst du auf dieses Backup zurückgreifen.

Du kannst hierfür wieder Win32-DiskImager benutzen.

Probleme?

Notiere bei Problemen die genaue Fehlermeldung oder mache ein Bild davon. Beschreibe auch, welche Schritte du gemacht hast.

Hallo Welt: Eine blinkende LED

In deinem ersten kleinen Projekt soll eine LED zum Blinken gebracht werden. Du benötigst dafür folgendes Zubehör:

  • 1 Breadboard
  • 2 Jumper-Wire (Female-Male)
  • 1 Widerstand mit 150 Ω
  • 1 Leuchtdiode (LED) der Farbe deiner Wahl

Wähle den richtigen Widerstand aus. Überlege, welche Farbringe auf dem Bauteil sein müssen. Überprüfe deine Auswahl durch eine Widerstandsmessung mit dem Multimeter.

Hast du die richtigen Bauteile ausgewählt, kannst du die folgende Schaltung auf dem Steckbrett aufbauen.

Ledschaltung.png

Um die Pins am Raspberry Pi richtig abzuzählen, informiere dich auf https://pinout.xyz über die Pinbelegung. Achte darauf, dass du die Pins 2 und 4 (mit 5 V) nicht versehentlich verwendest.

Auf dem Steckbrett stehen viele Kontakte für den Aufbau der Schaltung zur Verfügung. In jeden Kontakt passt ein Beinchen eines Bauteils. Manche Kontakte sind miteinander verbunden. Schaue dir folgendes Bild an, um herauszufinden, wie dein Steckbrett von innen aussieht.

Breadboard intern.jpg

Wie funktioniert die Schaltung?

Die Leuchtdiode benötigt zum Leuchten eine elektrische Spannung. Um den Strom zu begrenzen, muss zusätzlich ein Vorwiderstand in Reihe geschaltet werden. Die Spannung kommt vom Raspberry Pi. Pin 16 ist ein GPIO-Pin, der sich über ein kleines Python-Programm ein- oder ausschalten lässt. Der Stromkreis wird über den Masse-Pin (Ground, GND) Pin 6 geschlossen. Da der Strom nur in eine Richtung durch die LED fließen kann, musst du darauf achten, dass die LED richtig herum in der Schaltung steckt.

Das Programm

Mit folgendem Programmtext kannst du die Schaltung testen:

   import RPi.GPIO as GPIO
   import time
   
   LED = 16    # Pin 16 (GPIO 23)
   
   GPIO.setmode(GPIO.BOARD)     # Nummerierung Board wählen
   GPIO.setup(LED, GPIO.OUT)    # LED-Pin als Ausgang
   
   print("Hallo Welt")
   
   try:
       while True:
           GPIO.output(LED, True) # LED an
           print("blink")
           time.sleep(0.5)
           GPIO.output(LED, False) # LED aus
           time.sleep(1)
   except KeyboardInterrupt:
       GPIO.cleanup()

Und jetzt?

Hier ein paar Vorschläge:

  • Verändere die Blink-Geschwindigkeit der LED. Wie schnell kannst du sie maximal blinken lassen?
  • Erweitere die Schaltung um eine weitere LED.
  • Lass beide Leuchtdioden im Gegentakt blinken.
  • Es gibt einen kleinen Infozettel, den du ausdrucken und dem RaspberryPi beilegen kannst. Darauf findest du die wichtigsten Informationen zur Hardware-Ansteuerung.

Eingabe-Ausgabe-Modul

Eingabe-Ausgabe-Modul für den RaspberryPI

Im Unterricht wird ein Eingabe-Ausgabe-Hardware-Modul erstellt und über Software angesteuert. Viele Informationen darüber inkl. einer Dokumentation ist unter dem Projektnamen eapi bei github verfügbar.

Das E/A-Modul ist eine kleine Platine, die über zwei Taster für Eingaben und drei Leuchtdioden (rot, gelb und grün) für Ausgaben verfügt. Die Ansteuerung erfolgt über die GPIO-Schnittstelle des Raspberry Pi. Es wird an fünf GPIO-Pins des PI angeschlossen und benötigt zusätzlich einen 3,3-V-Pin und einen Masse-Pin für die Spannungsversorgung.

Die Software liegt als Modul im Python-Package-Index (PyPi) unter dem Namen eapi. Sie kann mit pip3 install eapi installiert werden. Wenn die Installation nur lokal für einen User erfolgen soll, heißt der Befehl pip3 install --user eapi.

Links

  • Webseite von RaspberryPi
  • Raspberry Pi Imager ist ein Tool, das bei vielen der oben genannten Schritte weiterhilft. Mit CTRL-SHIFT-X öffnet sich eine Oberfläche, über die Hostname, WiFi-Zugang, Passwort etc. konfiguriert werden können. In c't uplink 37.8 (ab 24:45) wird das Vorgehen vorgestellt.
  • Raspbian - Das Betriebssystem für den RaspberryPi. Es basiert auf dem Betriebssystem Debian.
  • Win32 Disk Imager schreibt unter Windows Disk-Images auf SD-Karten. Unter Linux klappt dies mit dem dd-Befehl.
  • Die grundlegende Softwareinstallation kann auch über das Projekt rpi-provision erzielt werden.
  • Mit PiBakery können vorkonfigurierte Raspian Images erstellt werden.