Raspberry Pi (RPi)


Dokumentation/Tutorials


Raspberry 3

Hierbei handelt es sich um ein vollausgestattes Modell mit

  • 4 USB-Anschlüsse
  • WLAN Modul
  • Ethernet Adapter
  • Kamera-Port
  • Display Port Anschluß für ein Touch Screen
  • GPIO-Anschlüsse verfügbar

Raspberry Pi Zero

Der Raspberry PI Zero ist das kleinste Modell und mit 5 Euro extrem günstig. Er bringt allerdings auch keinen Netzwerkanschluß mit und nur einen einzigen USB-Anschluß für Periperiegeräte (ein USB-Anschluß steht zurätzlich für die Stromversorgung zur Verfügung).

Die GPIO Anschlüsse müssen noch eingelötet werden.

Aber für 5 Euro ... ein Einstieg in IoT ist gemacht.

GPIOs einlöten


GPIO - General Purpose Input Output

Mit den GPIOs lassen sich

  • Eingaben (z. B. Taster)
  • Ausgaben (z. B. LEDs, Displays)

integrieren, um sie in einer Software zu benutzen (z. B. Steuerung für einen MP3 Player).

Zudem bieten GPIOs verschiedene Stromversorgungen an (3,3V und 5V).

Breadboard

Hiermit lassen sich GPIO-Verbindungen ohne Löten aufbauen ... also sehr praktisch zum Rumprobieren. Man benötigt hierzu Female-Male-Kabel, das Female-Ende steckt man auf den GPIO und das Male-Ende in das Breadboard - damit führt man den GPIO-PIN aus dem Raspberry PI Motherboard raus und schafft Platz für LEDs, Schalter, ... die auf das Breadboard verbaut werden. Wenn man alle GPIO Pins auf das Board rausführt, dann belegt man schon 20 Zeilen auf dem Breadboard - je nach Größe des Breadboards bleiben dann viel oder wenige Reihen zum Aufbau der eigenen Schaltung.

Mit einem GPIO Extension Board - ca. 10 Euro lassen sich ALLE GPIO Anschlüsse auf ein Breadboard rausführen. Man benötigt dann keine Female Kabel mehr und hat alle Anschlüsse außerhalb des Motherboards zur Verfügung. Das ist sehr praktisch, wenn man seinen Raspberry schon in ein Gehäuse verpacken will und der Zugang zu den GPIOs nur mit Aufwand möglich ist.

Man kann auf das Breadboard auch n

Programmieren mit Python

"Bevor man einen GPIO als Eingang oder Ausgang benutzen kann, muss dieser konfiguriert bzw. eingestellt werden. Leider merkt sich der Raspberry Pi diese Einstellung nicht. Deshalb muss die Einstellung bei jedem Neustart erneut ausgeführt werden." (GPIO konfigurieren/einstellen)

Programmieren mit Java und pigpio

Die meisten Java-Biliotheken für RPi müssen die Programme mit sudo als root laufen lassen, weil Raspbian den Zugriff auf die I/O-Ports sonst verweigert. Das will man aber natürlich nicht mal auf seinem RPi. pigpio verwendet einen Dämon-Prozess (= Server), der die Befehle im Auftrag ausführt.

Installation auf dem Raspberry per

wget https://github.com/joan2937/pigpio/archive/master.zip
unzip master.zip
cd pigpio-master
make
sudo make install
sudo /usr/local/bin/pigpiod -s 10 # server/daemon start

pigpiod hat noch nichts mit Java zu tun ... es liefert aber eine Schnittstelle zur Hardware. Mit der Java-Bibliothek jpigpio kommuniziert später das selbst-geschriebene Java-Programm mit dem pigpio-Dämon. Verwendet man jpigpio.Pigpio, so muß das Programm auf dem Raspberry-Pi laufen. Verwendet man hingegen jpigpio.PigpioSocket, so kann das eigene Java-Programm lokal (z. B. auf einem Laptop) laufen - PigpioSocket kommuniziert dann remote.

Programmieren mit Java und PI4J

ACHTUNG: Die Verwendung von Java statt Python hat den Nachteil, daß bei Java noch Bytecode mittels Java-Compiler aus dem Source-Code erzeugt werden muß. Beim interpretierten Python kann man den Source-Code einfach ändern.

Notwendige Vorbereitungen:

Ich meinem Raspberry Pi 3 B+ hat die Nutzung von WiringPi nicht funktioniert. Nachdem sudo apt-get install wiringpi zu "undefined Symbol: wiringPiVersion" führte, versuchte ich mich an der Installation per Git-Repository. Das erste Problem bei der Installation von git-core (fehlendes Python Modul ConfigParser) konnte ich noch lösen, indem ich auf meinem System Python 2 als Default eingestellt habe (via update-alternatives). Das nachfolgende Problem "Unable to determine hardware version. I see: Hardware BCM2835 - expecting BCM2708 or BCM2709" war zu hartnäckig. Weder die beschriebene Installation über Git (mit build) hat funktioniert, noch die Installation der Latest Version via sudo dpkg -i wiringpi-latest.deb hat funktioniert.

Ich habe dann aufgegeben ...

Arcade Button

Arcade-Buttons sind schöne Taster wie man sie früher an Arcade Spielautomaten fand.

Erste kleine Schaltungen mit programmatischer Steuerung

ACHTUNG: man sollte vermeiden, die Schaltung aufzubauen während der RPi läuft, denn bei falscher Beschaltung können die elektronischen Teile zerstört werden. Hier ist ein Breadboard mit Extension Board sehr praktisch: man trennt das Flachbandkabel vom Breadboard (wodurch der RPi nicht mehr mit der Schaltung verbunden ist), baut die Schaltung auf, kontrolliert sie nochmals und verbindet RPi und Breadboard wieder mit Flachbandkabel. Somit muß man den RPi nicht runterfahren, um eine neue Schaltung aufzubauen.


Betriebssystem

Das Betriebssystem wird auf einer SD-Karte installiert. Hierzu braucht man einen PS/Laptop, um das Betriebssystem auf die Karte zu bekommen.

Formatierung SD-Karte

Der SD Card Formatter wird auf einem Laptop installiert und danach die SD-Karte formatiert.

Option 1: Installation über Noobs

Noobs ist ein Installer für verschiedene Raspberry Betriebssysteme. Noobs wird auf dem Raspberry installiert und kann sich dann verschiedene andere Betriebssysteme aus dem Internet ziehen und installieren.

Folgende Schritte durchführen:

  • Noobs-Zip-Archiv entpackt auf die formatierte SD Karte kopieren
  • SD-Karte in den Raspberry stecken
  • einen Bildschirm über HDMI anstecken
  • WLAN Modul über USB einstecken
  • Tastatur über USB anschließen
  • Raspberry über USB mit Strom versorgen

Jetzt bootet das System in den Noob-Installer. Hier wählt man das gewünschte Betriebssystem aus, das im Anschluß aus dem Internet gezogen und installiert wird.

Option 2: Installation über ein Image File

Möchte man keine Installation über Noobs machen, so kann man sich vorab auch für ein Betriebssystem entscheiden, das man auf die SD-Karte kopiert. Hierzu:

Nicht wundern, daß Windows die Karte nun mit 62 MB Größe anzeigt. Hierbei handelt es sich ausschließlich um die Boot-Partition (enthält u. a. kernel.img). Das Image hat noch mehr Speicher belegt, aber das zeigt Windows nicht an.

Jetzt kann das System über die SD-Karte gebootet werden.

Bei mir hat das mit einem Rasspberry PI Zero nicht auf Anhieb geklappt. Der über HDMI angeschlossene Monitor blieb einfach schwarz. Vielleicht liegt es an der Micro-SD, die vielleicht nicht kompatibel ist: http://elinux.org/RPi_SD_cards

Option 3: Installation ohne Monitor und WLAN

Scheinbar schnell gemacht und unspektakulär.

Raspbian

Raspian kann über Noob oder direkt installiert werden (siehe oben).

Nach der Installation bootet das System per default in Runlevel 3 ... also keine grafische Oberfläche. Über ein Konsolenfenster startet man per startx die grafische Oberfläche.

Konfiguration

Die Konfiguration erfolgt über sudo raspi-config. Hier lassen sich Einstellungen für

  • Boot
  • Netzwerk
  • Lokalisierung (Sprache und Tastatur)
  • Dienste
    • ssh
    • VNC
  • Hardarware
    • Kamera

vornehmen.


Betrieb ohne Monitor

Nach der Erstinstallation (für die man zur Auswahl des per Noob zu installierenden Betriebssystems eine grafische Ausgabe benötigt) braucht man keinen Bildschirm mehr. Eine Textkonsole bekommt man per ssh und eine grafische Oberfläche per VNC (geht auch ssh mit X11-Forwarding?) ... allerdings geht die Kommunikation dann übers Netzwerk (Performance?).

ssh

Dies ist die typischste Verwendungsform und sollte auf jeden Fall konfiguriert werden. Per X11-Forwarding und einem lokalen X11-Server (z. B. Xming) kann man dann auch auf Remote Desktop Connections via VNC verzichten.

Remote Desktop Connection

In der Microsoft-Windows-Welt sind Remote-Desktop-Connections üblich - Windows verwendet hierzu das Remote-Desktop-Protocol (RDP) und bringt auch das passende Tool (mstsc.exe) mit.

Auf dem Raspberry Pi ein RDP-Server per sudo apt-get install xrdp installiert werden. Danach kann man sich von einem Windows-Rechner per Remote-Desktop-Connection verbinden und erhält die grafische Oberfläche des Raspberry PI.

VNC

VNC-Server per sudo aptitude install tightvncserver auf dem Raspberry installieren und per tightvncserver starten. Danach eine VNC Session auf dem Raspberry mit vncserver :1 -geometry 1024x728 -depth 24 erstellen.

Mit einem VNC kompatiblen Client (z. B. RealVnc) auf einem Laptop kann man sich dann - eine Netzwerkverbindung vorausgesetzt - mit dem Raspberry verbinden.


WLAN

USB Stick-Kompatibilität

Man sollte darauf achten einen Raspberry PI Zero kompatiblen WLAN Sstick zu verwenden. Außerdem darauf achten, daß der WLAN-Stick nicht zuviel Strom benötigt (die er über einen aktiven USB-Hub bekommen könnte) ... je nach Anwendungsfall kann das aber auch kein Problem darstellen.

  • NETGEAR WNA1000M-100PES N150 kostet nur 6 Euro
  • LogiLink WL0084E Wireless-LAN Nano-Adapter kostet nur 6 Euro
  • TP-Link TL-WN823N v1 für 10 Euro sollte passen (ABER ACHTUNG: angeblich nur die v1 - nicht die v2).

Inbetriebnahme


Programmierung

Node RED

Hiermit lassen sich sehr komfortabel Aktionsketten programmieren/konfigurieren.

Installation per

sudo apt-get install nodered

Zubehör

Zubehör gibt es häufig auch als Starter Kits ... das macht auf jeden Fall Sinn, um schon mal eine Basisausstattung zu haben.


Bastelideen


results matching ""

    No results matching ""