Bauteil · Controller

Raspberry Pi

Der Raspberry Pi ist ein Linux-Rechner in Kartengröße – das Gehirn für Roboter, die Vision, ROS oder Rechenleistung brauchen, die ein Arduino nicht stemmt.

Was es ist

Der Raspberry Pi ist ein vollwertiger Rechner in Kreditkartengröße. Wo ein Arduino Uno ein Mikrocontroller ist, der ein Programm für immer fährt, läuft auf einem Pi Linux – er kann also eine Kamera treiben, mit dem Netzwerk sprechen, ROS 2 fahren und deinen Robotercode gleichzeitig ausführen. Es ist das Gehirn, zu dem man greift, wenn ein Roboter denken soll, nicht nur reagieren.

Diese Leistung ist auch ihr Preis: Linux-Multitasking macht den Pi schlechter in dem mikrosekundengenauen Timing, das ein Mikrocontroller mühelos beherrscht. Beide sind Partner, keine Rivalen.

Beschriftetes Diagramm eines Raspberry-Pi-Einplatinencomputers: eine grüne Leiterplatte mit 40-poliger GPIO-Stiftleiste aus Goldkontakten an der Oberkante, einem Broadcom-System-on-Chip und einem RAM-Chip in der Mitte, einem gestapelten USB- und Ethernetblock an der rechten Kante, HDMI und USB-C-Versorgung an der Unterkante sowie einem microSD-Kartensteckplatz links.
Ein Raspberry Pi packt einen Rechner auf eine Platine: SoC und RAM fahren Linux, die 40-polige GPIO-Leiste spricht mit Roboterhardware, die microSD hält das OS. SVG herunterladen

Wie es funktioniert

Der Pi startet ein Betriebssystem (meist Raspberry Pi OS) von einer microSD-Karte und verhält sich dann wie jeder Linux-Rechner. Für Robotik zählt die 40-polige GPIO-Leiste: digitale Ein- und Ausgänge plus I²C-, SPI- und UART-Busse, mit denen der Pi Sensoren liest und Hardware befiehlt. Obendrauf sitzen die Rechnerteile – USB, Ethernet, WLAN und eine Kameraschnittstelle –, die ein Mikrocontroller schlicht nicht hat.

Eine gängige Architektur ist ein Zwei-Gehirne-Roboter: Der Pi übernimmt Wahrnehmung und Planung (Vision, SLAM, ROS-Nodes) und reicht Motorbefehle an einen Arduino hinunter, der die Echtzeitsteuerung macht.

Wann man ihn verwendet

Zum Pi greifen, wenn der Roboter Rechnerfähigkeiten braucht:

  • Bildverarbeitung – eine Kamera plus OpenCV zum Erkennen von Markern, Objekten oder Linien.
  • ROS 2 – Nodes, Topics und den Navigationsstack fahren.
  • Kartierung / SLAM – in einer Karte aufbauen und lokalisieren.
  • Vernetzung – ein Webdashboard, Fernsteuerung oder Telemetrie.

Bei reinen Echtzeitsteuerjobs bei Arduino oder ESP32 bleiben – sie sind billiger, einfacher und besser im präzisen Timing.

Verdrahtung und Fallstricke

  • 3,3-V-Logik, und nicht 5-V-tolerant. 5 V an einem GPIO-Pin kann den Pi beschädigen. Signale von 5-V-Teilen pegelwandeln (etwa eine HC-05-TX-Leitung).
  • Motoren versorgt er trotzdem nicht. GPIO treibt Signale; Motorstrom geht durch einen Treiber wie den L298N.
  • Versorgung ist heikel. Stabile 5 V mit genug Strom geben; Brownouts korrumpieren die SD-Karte und verursachen zufällige Neustarts.
  • Sauber herunterfahren. Stromabziehen an einem laufenden Linux kann die Karte korrumpieren – ein sicheres Abschalten einplanen oder ein Read-only-Dateisystem verwenden.

Die 40-polige Leiste, und welche Pins man nutzen kann

Die Leiste hat 40 Pins und nur 26 davon sind nutzbares GPIO. Der Rest ist Versorgung und Masse.

Funktion Pins (BCM-Nummerierung) Hinweise
I²C-1 GPIO 2 (SDA), GPIO 3 (SCL) Feste 1,8-kΩ-Pull-ups nach 3,3 V auf der Platine
SPI0 GPIO 10 (MOSI), 9 (MISO), 11 (SCLK), 8/7 (CE0/CE1)
UART GPIO 14 (TX), 15 (RX) Standardmäßig von der Linux-Konsole belegt – muss freigegeben werden
Hardware-PWM GPIO 12, 13, 18, 19 Nur diese vier; alles andere ist Software-PWM
Versorgung 3,3 V, 5 V 5 V kommen direkt vom Eingang – keine Regelung
Allzweck Der Rest

Zwei dieser Zeilen kosten regelmäßig einen Abend.

Der UART ist die Konsole. Ab Werk tragen GPIO 14/15 einen Linux-Login-Prompt. Ein GPS-Modul oder Arduino daran verdrahten, und man bekommt Login-Rauschen statt Daten. Per sudo raspi-config → Interface Options → Serial Port → Login-Shell: nein, Hardware-Seriell: ja freigeben. Ab Pi 3 gibt es eine weitere Tücke: Der gute UART dient standardmäßig Bluetooth, und auf der Leiste liegt ein schwächerer „Mini-UART“, dessen Baudrate mit dem CPU-Takt driftet. dtoverlay=disable-bt in /boot/config.txt eintragen, um zu tauschen.

Software-PWM zittert. Nur vier Pins haben Hardware-PWM. Alles andere erzeugt der Kernel – und der Linux-Scheduler unterbricht es: was sich an einem Servo als sichtbares Zucken zeigt. Das ist die klarste Anschauung dessen, was ein Pi schlecht kann.

Das Timingproblem, klar ausgesprochen

Das ist das Wichtigste, was man über einen Pi im Roboter verstehen muss – und kein Defekt, sondern was ein Betriebssystem ist.

Ein Mikrocontroller in loop() führt deinen Code aus und sonst nichts – ein 1-ms-Intervall ist also 1 ms. Linux teilt Zeit: Der Kernel kann deinen Prozess verdrängen, um ein Netzwerkpaket zu bedienen, einen Plattenschreib zu leeren oder irgendeine von hundert Hintergrundaufgaben zu fahren.

Aufgabe Mikrocontroller Raspberry Pi (Standard-Linux)
1-kHz-Regelschleife Trivial, exakt Möglich, mit gelegentlichen Ausreißern im Millisekundenbereich
Servo-PWM Felsenfest Sichtbar zittrig an Software-PWM-Pins
Encoder bei 20 kHz lesen Routine mit Interrupts Unzuverlässig – Flanken gehen verloren
Ultraschall-Echozeit Mikrosekundengenau Zufällige Fehler von mehreren Zentimetern
Vision, Planung, Vernetzung Unmöglich Genau wofür er da ist

Die Folge ist die Zwei-Gehirne-Architektur – kein Kompromiss, sondern der normale Entwurf eines ernsthaften Roboters:

Raspberry Pi                        Microcontroller
- camera, vision                    - encoder counting
- SLAM, path planning       <-->    - PID motor control
- ROS 2 nodes                       - servo timing
- networking, dashboard             - emergency stop
         high-level goals                  hard real time

Sie sprechen über USB-Seriell, UART oder I²C, und jeder tut, worin er gut ist. Ein Pi, der Encoderflanken zählen will, verliert sie; ein Arduino, der OpenCV fahren will, kann nicht.

Versorgen, und das SD-Karten-Problem

Versorgung ist der Ort, wo Pi-Roboter scheitern – und die Fehlermode ist ungewöhnlich teuer: Ein Brownout während eines Schreibens korrumpiert die SD-Karte, und das ganze Systemabbild ist verloren.

Modell Empfohlene Versorgung Unter Last
Pi Zero 2 W 5 V, 2,5 A ~350 mA typisch
Pi 3B+ 5 V, 2,5 A ~500 mA, Spitzen nahe 1,2 A
Pi 4B 5 V, 3 A (USB-C) ~600 mA, Spitzen nahe 1,5 A
Pi 5 5 V, 5 A (USB-C PD) Noch höher

Daraus folgende Regeln:

  • Nie Motoren und Pi an derselben Schiene versorgen. Motoreinschaltstrom ist exakt die Transiente, die eine Karte korrumpiert.
  • Einen Schaltregler verwenden, keinen linearen, wenn man von einer Batterie heruntergeht. Ein Linearregler von 11,1 V auf 5 V bei 1 A verbrennt 6 W.
  • Auf den Blitz achten. Der Pi zeigt ein Unterspannungswarnsymbol und loggt es; vcgencmd get_throttled meldet es ebenfalls. Alles ungleich null heißt: Versorgung unzureichend – und korrumpiert irgendwann eine Karte.
  • Sauber herunterfahren. sudo shutdown -h now vor dem Stromabschalten. Ein Roboter, der per Kippschalter ausgeschaltet wird, braucht entweder einen Abschalttaster an einem GPIO oder ein Read-only-Root-Dateisystem.

Das Read-only-Dateisystem verdient ernsthafte Erwägung für einen eingesetzten Roboter: Mit aktiviertem overlayfs wird während des Betriebs nie auf die Karte geschrieben, und Strom kann jederzeit folgenlos getrennt werden. Man verliert die Fähigkeit, Daten lokal zu speichern – meist ein fairer Tausch.

Welches Modell für einen Roboter

Modell RAM Warum es wählen
Pi Zero 2 W 512 MB Winzig und leicht. Reicht für Kamera und einfache Vision
Pi 3B+ 1 GB Billig, ausreichend für ROS 2 mit bescheidenen Nodes
Pi 4B (4 GB) 4 GB Der praktische Sweet Spot für ROS 2 plus Vision
Pi 5 4–16 GB Merklich schneller; braucht mehr Leistung und aktive Kühlung

Für ROS 2 mit Kamera sind 4 GB der Punkt, ab dem es aufhört zu frustrieren. RViz, eine Visionsnode und ein Navigationsstack zusammen brauchen über 1 GB – und ein Pi, der auf die SD-Karte auslagert, wird unbrauchbar langsam und verschleißt die Karte.

Zwei Zubehöre, die in der Praxis nicht optional sind: ein Kühlkörper oder Lüfter (ein Pi 4 unter Dauerlast drosselt bei 80 °C – und ein gedrosselter Pi verliert Frames) und eine gute microSD-Karte der A2-Klasse – oder besser: von USB-SSD booten. Kartengeschwindigkeit ist weit öfter der Flaschenhals als CPU.

Fehlersuche

Symptom Wahrscheinliche Ursache Lösung
Zufällige Neustarts Unzureichende Versorgung vcgencmd get_throttled prüfen; 3-A-Versorgung verwenden
SD-Karte korrumpiert wiederholt Stromabschaltung während Schreibens Sauber herunterfahren oder Read-only-Dateisystem
Blitzsymbol Unterspannung Bessere Versorgung und besseres Kabel – Kabel zählen
Seriell liefert Login-Rauschen Konsole noch auf dem UART Login-Shell in raspi-config deaktivieren
Serielle Baudrate falsch Mini-UART hängt am CPU-Takt dtoverlay=disable-bt für den guten UART
Servo zuckt Software-PWM plus Scheduler PCA9685 verwenden oder Mikrocontroller
Encoderzählungen falsch Verlorene Flanken unter Last Auf einem Mikrocontroller zählen
Wird nach Minuten langsam Thermische Drosselung Kühlkörper oder Lüfter
GPIO-Pin arbeitet nicht mehr 5 V an einem 3,3-V-Pin Pegelwandeln; der Pin ist wahrscheinlich beschädigt
I²C-Bauteil nicht erkannt Schnittstelle nicht aktiviert raspi-config, dann i2cdetect -y 1

Pi oder Mikrocontroller?

Arduino / ESP32 Raspberry Pi
Fährt Deinen Code, allein Linux, und deinen Code unter vielen Prozessen
Timing Deterministisch bis zur Mikrosekunde Best-Effort, Jitter im Millisekundenbereich
Startzeit Instant 20–30 Sekunden
Stromabschaltung Harmlos Kann das Dateisystem korrumpieren
Vision, ROS 2, Vernetzung Nein Ja
Leistungsaufnahme Milliampere Hunderte Milliampere bis Ampere
Kosten 3–8 $ 35–80 $

Die ehrliche Rahmung: Das sind keine Konkurrenten. Ein Pi kann keinen Encoder zuverlässig zählen und ein Mikrocontroller kein OpenCV fahren. Fast jeder fähige Hobbyroboter endet mit beiden – und das früh zu erkennen spart viel Mühe, eines zum Job des anderen zu zwingen.

Passt das Gesamtverhalten deines Roboters in eine Regelschleife – Linienfolger, Hindernisvermeider, Labyrinthlöser –, brauchst du gar keinen Pi: Einer dazu macht den Roboter langsamer im Start, fragiler und schwerer zu debuggen.

Den Graphen erkunden

Verwendet in diesen Bauprojekten

Projekte, Lernpfade und Simulatoren, die Raspberry Pi verwenden.

Vergleich

Alternativen

Fragen

FAQ zu Raspberry Pi

Was ist ein Raspberry Pi?

Ein Raspberry Pi ist ein kleiner, preiswerter Einplatinencomputer mit vollständigem Linux-Betriebssystem. Anders als ein Arduino, der ein Programm auf einem Mikrocontroller fährt, ist ein Pi ein echter Rechner – er kann Kamera, Browser, ROS und deinen Robotercode gleichzeitig betreiben.

Raspberry Pi gegen Arduino – welchen brauche ich?

Einen Arduino für Echtzeitsteuerung von Motoren und Sensoren nehmen; einen Raspberry Pi, wenn der Roboter Vision, Kartierung, ROS oder Vernetzung braucht. Viele Roboter nutzen beide – den Pi als übergeordnetes Gehirn und einen Arduino als Echtzeithände. Das Linux-Multitasking des Pi macht ihn für mikrosekundengenaues Timing schlechter, nicht besser.

Kann ein Raspberry Pi Motoren steuern?

Seine GPIO-Pins können PWM- und Richtungssignale senden – aber wie ein Arduino kann er keinen Motor aus einem Pin versorgen. Motoren treibt man weiter über eine H-Brücke wie den L298N an. Die Pi-Pins sind außerdem 3,3 V – also Logikpegel beachten, wenn man 5-V-Teile verdrahtet.

Braucht man einen Raspberry Pi für einen Roboter?

Nein. Die meisten Anfängerroboter (Linienfolger, Hindernisvermeider) laufen fröhlich auf einem Arduino für einen Bruchteil von Kosten und Komplexität. Zum Pi erst greifen, wenn die Aufgabe wirklich einen Rechner braucht – Bildverarbeitung, SLAM, ROS 2 oder eine Weboberfläche.

Welche Raspberry-Pi-Modelle eignen sich für Robotik?

Raspberry Pi 4 und Pi 5 sind die üblichen Kandidaten – genug CPU und RAM für Bildverarbeitung und ROS. Der Pi Zero 2 W ist eine winzige, sparsame Option für leichtere Roboter, wo Platz und Akku mehr zählen als rohe Geschwindigkeit. Die ältesten Modelle (Pi 1 und 2) für Rechenhungriges auslassen.

Weiterführende Literatur

Quellen