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.
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_throttledmeldet es ebenfalls. Alles ungleich null heißt: Versorgung unzureichend – und korrumpiert irgendwann eine Karte. - Sauber herunterfahren.
sudo shutdown -h nowvor 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