Component · Controller
Raspberry Pi
Volledige Linux-computer ter grootte van een kaart: het brein voor robots die beeldverwerking, ROS of rekenkracht nodig hebben die een Arduino tekortschiet.
Wat het is
De Raspberry Pi is een volledige computer ter grootte van een creditcard. Waar een Arduino Uno een microcontroller is die één programma eindeloos uitvoert, draait een Pi Linux—hij kan een camera aansturen, met het netwerk praten, ROS 2 draaien en je robotcode allemaal tegelijk uitvoeren. Het is het brein dat je kiest wanneer een robot moet denken en niet alleen reageren.
Die kracht is ook de afweging: multitasking in Linux maakt de Pi minder goed in timing op microsecondeniveau, waar een microcontroller dat moeiteloos doet. De twee zijn partners, geen concurrenten.
Hoe het werkt
De Pi start een besturingssysteem (meestal Raspberry Pi OS) vanaf een microSD-kaart en gedraagt zich daarna als elke andere Linux-machine. Voor robotica is het 40-pins GPIO-header het belangrijkste: digitale ingangen en uitgangen, plus I²C-, SPI- en UART-bussen, waarmee de Pi sensoren kan uitlezen en hardware kan aansturen. Daar bovenop zitten de computeronderdelen—USB, Ethernet, Wi-Fi en een camera-interface—die een microcontroller simpelweg niet heeft.
Een veelvoorkomende architectuur is een robot met twee breinen: de Pi verzorgt waarneming en planning (beeldverwerking, SLAM, ROS-nodes) en geeft motorcommando’s door aan een Arduino die de real-time besturing doet.
Wanneer je hem gebruikt
Kies een Pi wanneer de robot de mogelijkheden van een computer nodig heeft:
- Computer vision — een camera plus OpenCV voor markers, objecten of lijnen detecteren.
- ROS 2 — nodes, topics en de navigatiestack draaien.
- Kartering / SLAM — een kaart opbouwen en de robot daarin lokaliseren.
- Netwerk — een webdashboard, afstandsbesturing of telemetrie.
Blijf bij een Arduino of ESP32 voor zuivere real-time besturingstaken—ze zijn goedkoper, eenvoudiger en beter in precieze timing.
Aansluiting en aandachtspunten
- 3,3 V-logica, en niet tolerant voor 5 V. Een GPIO-pin voeden met 5 V kan de Pi beschadigen. Gebruik een levelshifter voor signalen van 5 V-onderdelen (bijvoorbeeld de TX-lijn van een HC-05).
- De Pi kan nog steeds geen motoren voeden. GPIO stuurt signalen; motorstroom loopt via een driver zoals de L298N.
- De voeding is kieskeurig. Geef hem stabiele 5 V met voldoende stroom; brown-outs beschadigen de SD-kaart en veroorzaken willekeurige herstarts.
- Schakel de Pi netjes uit. De stroom wegtrekken terwijl Linux draait, kan de kaart beschadigen—ontwerp een veilige uitschakelprocedure of gebruik een alleen-lezen bestandssysteem.
De 40-pins header en welke pins je kunt gebruiken
De header heeft 40 pins, waarvan slechts 26 bruikbare GPIO-pins zijn. De rest zijn voeding en ground.
| Functie | Pins (BCM-nummering) | Opmerkingen |
|---|---|---|
| I²C-1 | GPIO 2 (SDA), GPIO 3 (SCL) | Vaste pull-ups van 1,8 kΩ naar 3,3 V op het bord |
| SPI0 | GPIO 10 (MOSI), 9 (MISO), 11 (SCLK), 8/7 (CE0/CE1) | |
| UART | GPIO 14 (TX), 15 (RX) | Wordt standaard door de Linux-console gebruikt — moet worden vrijgemaakt |
| Hardware-PWM | GPIO 12, 13, 18, 19 | Alleen deze vier; al het andere is software-PWM |
| Voeding | 3,3 V, 5 V | 5 V komt rechtstreeks van de ingang — geen spanningsregeling |
| Algemeen | De rest |
Twee van die rijen kosten mensen regelmatig een avond.
De UART is de console. Standaard geven GPIO 14/15 een Linux-loginprompt. Sluit daarop een GPS-module of Arduino aan en je krijgt inloggeluid in plaats van gegevens. Maak ze vrij met sudo raspi-config → Interface Options → Serial Port → login shell: no, hardware serial: yes. Bij een Pi 3 en later is er nog een complicatie: de goede UART wordt standaard door Bluetooth gebruikt en die op de header is een minderwaardige „mini-UART” waarvan de baudrate met de CPU-klok meedrijft. Voeg dtoverlay=disable-bt toe aan /boot/config.txt om ze te verwisselen.
Software-PWM zorgt voor jitter. Slechts vier pins hebben hardware-PWM. Al het andere wordt door de kernel gegenereerd, en de Linux-scheduler onderbreekt dat — bij een servo zie je dat als zichtbaar schokken. Dit is de duidelijkste illustratie van waar een Pi zwak in is.
Het timingprobleem, helder uitgelegd
Dit is het belangrijkste om te begrijpen over een Pi in een robot, en het is geen defect — het is hoe een besturingssysteem werkt.
Een microcontroller die loop() uitvoert, draait je code en verder niets, dus een interval van 1 ms is 1 ms. Linux verdeelt de tijd: de kernel kan je proces onderbreken om een netwerkpakket te bedienen, een schijfschrijfactie te voltooien of een van de honderden achtergrondtaken uit te voeren.
| Taak | Microcontroller | Raspberry Pi (standaard Linux) |
|---|---|---|
| 1 kHz-regellus | Triviaal, exact | Mogelijk, maar af en toe wordt de deadline van één millisecond gemist |
| Servo-PWM | Zeer stabiel | Zichtbaar trillend op software-PWM-pins |
| Encoder uitlezen op 20 kHz | Gewoon met interrupts | Onbetrouwbaar — flanken worden gemist |
| Ultrasone echotiming | Nauwkeurig op microseconden | Willekeurige fouten van meerdere centimeters |
| Visie, planning, netwerk | Onmogelijk | Precies waarvoor het is bedoeld |
Het gevolg is de twee-breinenarchitectuur, en dat is geen compromis maar het normale ontwerp voor een serieuze robot:
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
Ze praten via USB-serie, UART of I²C met elkaar, en elk doet waar het goed in is. Een Pi die encoderflanken telt, zal ze missen; een Arduino die OpenCV draait, kan dat niet.
Voeding en het SD-kaartprobleem
Voeding is waar Pi-robots falen, en de storingsmodus is ongewoon duur: een brown-out tijdens een schrijfactie beschadigt de SD-kaart, en daarmee verlies je het hele systeembeeld.
| Model | Aanbevolen voeding | Onder belasting |
|---|---|---|
| Pi Zero 2 W | 5 V, 2,5 A | ~350 mA typisch |
| Pi 3B+ | 5 V, 2,5 A | ~500 mA, pieken bijna 1,2 A |
| Pi 4B | 5 V, 3 A (USB-C) | ~600 mA, pieken bijna 1,5 A |
| Pi 5 | 5 V, 5 A (USB-C PD) | Nog hoger |
Daaruit volgen regels:
- Voed motoren en een Pi nooit via dezelfde rail. De inschakelstroom van een motor is precies de tijdelijke belasting die een kaart beschadigt.
- Gebruik een schakelende regulator, geen lineaire, als je van een batterij naar een lagere spanning gaat. Een lineaire regulator die 11,1 V naar 5 V verlaagt bij 1 A, verbrandt 6 W.
- Let op de bliksemflits. De Pi toont een waarschuwingspictogram voor onderspanning en logt die;
vcgencmd get_throttledmeldt het ook. Alles wat niet nul is, betekent dat de voeding onvoldoende is en uiteindelijk een kaart beschadigt. - Schakel netjes uit. Gebruik
sudo shutdown -h nowvoordat je de stroom onderbreekt. Een robot die met een tuimschakelaar wordt uitgeschakeld, heeft een uitschakelknop op een GPIO nodig, of een alleen-lezen wortelbestandssysteem.
Het alleen-lezen bestandssysteem is het overwegen waard voor een ingezette robot: met overlayfs ingeschakeld wordt er tijdens het gebruik nooit iets op de kaart geschreven en kan de stroom op elk moment worden afgebroken zonder gevolgen. Je verliest de mogelijkheid om lokaal gegevens op te slaan, wat meestal een redelijke afweging is.
Welk model voor een robot
| Model | RAM | Waarom je het kiest |
|---|---|---|
| Pi Zero 2 W | 512 MB | Klein en licht. Voldoende voor een camera en eenvoudige beeldverwerking |
| Pi 3B+ | 1 GB | Goedkoop, voldoende voor ROS 2 met bescheiden nodes |
| Pi 4B (4 GB) | 4 GB | De praktische balans voor ROS 2 plus beeldverwerking |
| Pi 5 | 4–16 GB | Merkbaar sneller; vraagt meer stroom en actieve koeling |
Voor ROS 2 met een camera is 4 GB het punt waarop het niet meer frustrerend wordt. RViz, een beeldverwerkingsnode en een navigatiestack gebruiken samen meer dan 1 GB, en een Pi die naar de SD-kaart moet wisselen wordt onbruikbaar langzaam—en slijt de kaart op.
Twee accessoires zijn in de praktijk niet optioneel: een koellichaam of ventilator (een Pi 4 remt bij langdurige belasting af bij 80 °C en een afgeremde Pi laat beelden vallen) en een goede A2-klasse microSD-kaart, of nog beter opstarten vanaf een USB-SSD. De snelheid van de kaart is vaker de knelpunt dan de CPU.
Problemen oplossen
| Klacht | Waarschijnlijke oorzaak | Oplossing |
|---|---|---|
| Willekeurige herstarts | Onvoldoende voeding | Controleer vcgencmd get_throttled; gebruik een 3 A-voeding |
| SD-kaart wordt steeds beschadigd | Stroom onderbroken tijdens een schrijfactie | Netjes uitschakelen, of een alleen-lezen bestandssysteem |
| Bliksemflitspictogram | Onderspanning | Betere voeding en betere kabel — kabels maken uit |
| Seriële verbinding geeft inloggeluid | Console staat nog op UART | Schakel de login-shell uit in raspi-config |
| De baudrate van de seriële verbinding is verkeerd | Mini-UART gekoppeld aan de CPU-klok | dtoverlay=disable-bt om de goede UART te krijgen |
| Servo schokt | Software-PWM plus de scheduler | Gebruik een PCA9685, of een microcontroller |
| Encodertellingen zijn verkeerd | Flanken onder belasting gemist | Tel ze op een microcontroller |
| Wordt na enkele minuten traag | De processor wordt door warmte afgeremd | Koellichaam of ventilator |
| GPIO-pin werkt niet meer | 5 V op een 3,3 V-pin | Niveau verschuiven; de pin is waarschijnlijk beschadigd |
| I²C-apparaat niet gedetecteerd | Interface niet ingeschakeld | raspi-config, daarna i2cdetect -y 1 |
Pi of microcontroller?
| Arduino / ESP32 | Raspberry Pi | |
|---|---|---|
| Draait | Alleen je code | Linux, met je code tussen veel processen |
| Timing | Deterministisch op microsecondenniveau | Een benadering met jitter op millisecondenniveau |
| Opstarttijd | Direct | 20–30 seconden |
| Stroomonderbreking | Onschadelijk | Kan het bestandssysteem beschadigen |
| Visie, ROS 2, netwerk | Nee | Ja |
| Stroomverbruik | Milliampères | Honderden milliampères tot ampères |
| Kosten | $3–8 | $35–80 |
Eerlijk gezien: dit zijn geen concurrenten. Een Pi kan een encoder niet betrouwbaar tellen en een microcontroller kan geen OpenCV draaien. Vrijwel elke capabele hobbyrobot heeft uiteindelijk beide, en dat vroeg herkennen bespaart veel werk aan het proberen de taak van de ander te doen.
Als het volledige gedrag van je robot in één regellus past — een lijnvolger, een obstakelvermijder, een doolhofoplosser — heb je helemaal geen Pi nodig. Het toevoegen van een Pi maakt de robot juist langzamer opstartend, kwetsbaarder en lastiger om te diagnosticeren.
Verken de graaf
Gebruikt in deze bouwprojecten
Projecten, leerroutes en simulators waarin de Raspberry Pi voorkomt.
Vergelijken
Alternatieven
Vragen
FAQ over de Raspberry Pi
Wat is een Raspberry Pi?
Een Raspberry Pi is een kleine, goedkope computer op één bord met een volledig Linux-besturingssysteem. Anders dan een Arduino, dat één programma op een microcontroller draait, is een Pi een echte computer—hij kan een camera, een browser, ROS en je robotcode tegelijk draaien.
Raspberry Pi versus Arduino—wat heb ik nodig?
Gebruik een Arduino voor real-time besturing van motoren en sensoren; gebruik een Raspberry Pi wanneer de robot beeldverwerking, kartering, ROS of netwerkfunctionaliteit nodig heeft. Veel robots gebruiken beide—de Pi als brein op hoog niveau en een Arduino die in real-time de motoren bestuurt. Door multitasking in Linux is de Pi minder goed in timing op microsecondeniveau, niet beter.
Kan een Raspberry Pi motoren aansturen?
De GPIO-pins kunnen PWM- en richtingsignalen sturen, maar—zoals een Arduino—kunnen ze geen motor rechtstreeks voeden. Je bestuurt motoren nog steeds via een H-brug zoals de L298N. De pins van de Pi zijn ook 3,3 V, dus let op logische niveaus bij het aansluiten van 5 V-onderdelen.
Heb je een Raspberry Pi nodig voor een robot?
Nee. De meeste beginnersrobots (een lijnvolger, een obstakelvermijder) draaien prima op een Arduino voor een fractie van de kosten en complexiteit. Kies pas een Pi wanneer de taak echt een computer nodig heeft—beeldverwerking, SLAM, ROS 2 draaien of een webinterface.
Welke Raspberry Pi-modellen zijn het beste voor robotica?
De Raspberry Pi 4 en Pi 5 zijn de gebruikelijke keuzes—voldoende CPU en RAM voor beeldverwerking en ROS. De Pi Zero 2 W is een kleine, energiezuinige optie voor lichtere robots waar ruimte en batterij belangrijker zijn dan absolute snelheid. Vermijd de oudste modellen (Pi 1 en 2) voor alles wat veel rekenkracht vraagt.
Verder lezen