Composant · Contrôleur
Raspberry Pi
Le Raspberry Pi est un ordinateur Linux de la taille d'une carte — le cerveau des robots qui ont besoin de vision, ROS, ou de calcul qu'un Arduino ne gère pas.
Présentation
Le Raspberry Pi est un ordinateur complet de la taille d’une carte de crédit. Là où un Arduino Uno est un microcontrôleur qui exécute un programme pour toujours, un Pi fait tourner Linux — il peut donc piloter une caméra, parler au réseau, exécuter ROS 2 et votre code robot en même temps. C’est le cerveau à prendre quand un robot doit penser, pas juste réagir.
Cette puissance est aussi son compromis : le multitâche Linux rend le Pi moins bon dans la temporisation précise à la microseconde qu’un microcontrôleur fait sans effort. Les deux sont partenaires, pas rivaux.
Fonctionnement
Le Pi démarre un système d’exploitation (généralement Raspberry Pi OS) depuis une carte microSD, puis se comporte comme toute machine Linux. Pour la robotique, l’important est le connecteur GPIO 40 broches : entrées et sorties numériques, plus bus I²C, SPI et UART, qui permettent au Pi de lire des capteurs et commander du matériel. Au-dessus se trouvent les parties ordinateur — USB, Ethernet, Wi-Fi et interface caméra — qu’un microcontrôleur n’a tout simplement pas.
Une architecture fréquente est un robot à deux cerveaux : le Pi gère perception et planification (vision, SLAM, nœuds ROS) et transmet les consignes moteur à un Arduino qui fait la commande temps réel.
Quand l’utiliser
Prenez un Pi quand le robot a besoin des capacités d’un ordinateur :
- Vision par ordinateur — une caméra plus OpenCV pour détecter des marqueurs, objets ou lignes.
- ROS 2 — faire tourner nœuds, topics et la pile de navigation.
- Cartographie / SLAM — construire une carte et s’y localiser.
- Réseau — tableau de bord web, télécommande ou télémétrie.
Restez avec un Arduino ou un ESP32 pour les purs travaux de commande temps réel — moins chers, plus simples et meilleurs en temporisation précise.
Câblage et pièges
- Logique 3,3 V, non tolérante au 5 V. Mettre du 5 V sur une broche GPIO peut endommager le Pi. Adaptez les niveaux depuis les pièces 5 V (par ex. la ligne TX d’un HC-05).
- Il ne peut toujours pas alimenter des moteurs. Les GPIO pilotent des signaux ; le courant moteur passe par un contrôleur comme le L298N.
- L’alimentation est exigeante. Donnez-lui un 5 V stable à courant suffisant ; les baisses corrompent la carte SD et provoquent des redémarrages aléatoires.
- Éteignez-le proprement. Arracher l’alimentation d’un système Linux en marche peut corrompre la carte — prévoyez une extinction sûre ou un système de fichiers en lecture seule.
Le connecteur 40 broches, et quelles broches utiliser
Le connecteur fait 40 broches et seules 26 sont des GPIO utilisables. Le reste est alimentation et masse.
| Fonction | Broches (numérotation BCM) | Notes |
|---|---|---|
| I²C-1 | GPIO 2 (SDA), GPIO 3 (SCL) | Pull-ups 1,8 kΩ fixes au 3,3 V sur la carte |
| SPI0 | GPIO 10 (MOSI), 9 (MISO), 11 (SCLK), 8/7 (CE0/CE1) | |
| UART | GPIO 14 (TX), 15 (RX) | Utilisé par la console Linux par défaut — à libérer |
| PWM matériel | GPIO 12, 13, 18, 19 | Seulement ces quatre ; tout le reste est PWM logiciel |
| Alimentation | 3,3 V, 5 V | Le 5 V vient direct de l’entrée — sans régulation |
| Usage général | Le reste |
Deux de ces lignes coûtent régulièrement une soirée.
L’UART est la console. D’origine, GPIO 14/15 portent une invite de connexion Linux. Câblez-y un
module GPS ou un Arduino et vous obtenez du bruit de connexion au lieu de données. Libérez-les avec
sudo raspi-config → Interface Options → Serial Port → login shell : no, hardware serial :
yes. Sur Pi 3 et suivants, subtilité supplémentaire : le bon UART sert au Bluetooth par
défaut, et celui du connecteur est un « mini UART » moindre dont le débit dérive avec l’
horloge CPU. Ajoutez dtoverlay=disable-bt à /boot/config.txt pour les permuter.
Le PWM logiciel tremble. Seules quatre broches ont du PWM matériel. Tout le reste est généré par le noyau, et l’ordonnanceur Linux l’interrompra — ce qui sur un servomoteur se voit en tressautements. C’est l’illustration la plus claire de ce qu’un Pi fait mal.
Le problème de temporisation, dit plainement
C’est la chose la plus importante à comprendre sur un Pi dans un robot, et ce n’est pas un défaut — c’est ce qu’est un système d’exploitation.
Un microcontrôleur exécutant loop() exécute votre code et rien d’autre, donc un intervalle de 1 ms fait
1 ms. Linux partage le temps : le noyau peut préempter votre processus pour servir un paquet réseau,
vider une écriture disque, ou faire tourner une centaine de tâches de fond.
| Tâche | Microcontrôleur | Raspberry Pi (Linux standard) |
|---|---|---|
| Boucle de commande 1 kHz | Triviale, exacte | Possible, avec des ratés occasionnels à l’échelle milliseconde |
| PWM servo | Parfaitement stable | Visiblement tremblé sur broches PWM logicielles |
| Lire un codeur à 20 kHz | Routinier avec interruptions | Peu fiable — des fronts sont manqués |
| Minutage d’écho ultrason | Précis à la microseconde | Erreurs aléatoires de plusieurs centimètres |
| Vision, planification, réseau | Impossible | Exactement ce pour quoi il est fait |
La conséquence est l’architecture à deux cerveaux, et ce n’est pas un compromis mais la conception normale d’un robot sérieux :
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
Ils parlent en série USB, UART ou I²C, et chacun fait ce qu’il fait bien. Un Pi essayant de compter des fronts de codeur les manquera ; un Arduino essayant de faire tourner OpenCV ne le peut pas.
L’alimenter, et le problème de la carte SD
L’alimentation est là où les robots Pi échouent, et le mode de panne est inhabituellement cher : une baisse pendant une écriture corrompt la carte SD, et vous perdez toute l’image système.
| Modèle | Alimentation recommandée | En charge |
|---|---|---|
| Pi Zero 2 W | 5 V, 2,5 A | ~350 mA typique |
| Pi 3B+ | 5 V, 2,5 A | ~500 mA, pics près de 1,2 A |
| Pi 4B | 5 V, 3 A (USB-C) | ~600 mA, pics près de 1,5 A |
| Pi 5 | 5 V, 5 A (USB-C PD) | Encore plus |
Règles qui en découlent :
- N’alimentez jamais moteurs et Pi depuis le même rail. L’appel de courant des moteurs est exactement le transitoire qui corrompt une carte.
- Utilisez un régulateur à découpage, pas linéaire, si vous partez d’une batterie. Un régulateur linéaire passant de 11,1 V à 5 V à 1 A brûle 6 W.
- Guettez l’éclair. Le Pi affiche une icône de sous-tension et la journalise
aussi ;
vcgencmd get_throttledla rapporte. Toute valeur non nulle signifie une alimentation insuffisante, et elle corrompra une carte tôt ou tard. - Éteignez proprement.
sudo shutdown -h nowavant de couper l’alimentation. Un robot qu’on éteint avec un interrupteur veut soit un bouton d’arrêt câblé à un GPIO, soit un système de fichiers racine en lecture seule.
Le système de fichiers en lecture seule vaut sérieuse considération pour un robot déployé : avec
overlayfs actif, rien n’est jamais écrit sur la carte en fonctionnement, et on peut couper
l’alimentation à tout moment sans conséquence. On perd la sauvegarde locale de données, ce qui est
généralement un bon échange.
Quel modèle pour un robot
| Modèle | RAM | Pourquoi le choisir |
|---|---|---|
| Pi Zero 2 W | 512 Mo | Minuscule et léger. Assez pour une caméra et de la vision simple |
| Pi 3B+ | 1 Go | Économique, suffisant pour ROS 2 avec des nœuds modestes |
| Pi 4B (4 Go) | 4 Go | Le point idéal pratique pour ROS 2 plus vision |
| Pi 5 | 4–16 Go | Nettement plus rapide ; veut plus d’alimentation et un refroidissement actif |
Pour ROS 2 avec caméra, 4 Go est le point où cela cesse d’être frustrant. RViz, un nœud vision et une pile de navigation prendront ensemble plus d’1 Go, et un Pi qui commence à swapper sur la carte SD devient inutilisable lent — et use la carte.
Deux accessoires non optionnels en pratique : un dissipateur ou ventilateur (un Pi 4 en charge soutenue s’étrangle à 80 °C, et un Pi étranglé perd des trames), et une carte microSD de bonne qualité classe A2, ou mieux, un démarrage sur SSD USB. La vitesse de carte est le goulot bien plus souvent que le CPU.
Dépannage
| Symptôme | Cause probable | Solution |
|---|---|---|
| Redémarrages aléatoires | Alimentation insuffisante | Vérifiez vcgencmd get_throttled ; utilisez une alimentation 3 A |
| Carte SD corrompue à répétition | Coupure d’alimentation en écriture | Extinction propre, ou système de fichiers en lecture seule |
| Icône éclair | Sous-tension | Meilleure alimentation et meilleur câble — les câbles comptent |
| La série donne du bruit de connexion | Console encore sur l’UART | Coupez le shell de connexion dans raspi-config |
| Débit série faux | Mini UART lié à l’horloge CPU | dtoverlay=disable-bt pour récupérer le bon UART |
| Servo qui tressaille | PWM logiciel plus ordonnanceur | Utilisez un PCA9685, ou un microcontrôleur |
| Comptes de codeur faux | Fronts manqués en charge | Comptez-les sur un microcontrôleur |
| Ralentit après quelques minutes | Étranglement thermique | Dissipateur ou ventilateur |
| Broche GPIO morte | 5 V dans une broche 3,3 V | Adaptez les niveaux ; la broche est probablement endommagée |
| Périphérique I²C non détecté | Interface non activée | raspi-config, puis i2cdetect -y 1 |
Pi ou microcontrôleur ?
| Arduino / ESP32 | Raspberry Pi | |
|---|---|---|
| Exécute | Votre code, seul | Linux, et votre code parmi bien des processus |
| Temporisation | Déterministe à la microseconde | Au mieux, gigue à l’échelle milliseconde |
| Démarrage | Instantané | 20–30 secondes |
| Coupure d’alimentation | Sans danger | Peut corrompre le système de fichiers |
| Vision, ROS 2, réseau | Non | Oui |
| Tirage | Milliampères | Centaines de milliampères à ampères |
| Coût | 3–8 $ | 35–80 $ |
Le cadrage honnête : ce ne sont pas des concurrents. Un Pi ne peut pas compter un codeur sûrement et un microcontrôleur ne peut pas faire tourner OpenCV. Presque tout robot amateur capable finit avec les deux, et le reconnaître tôt épargne beaucoup d’efforts à vouloir faire faire à l’un le travail de l’autre.
Si tout le comportement de votre robot tient dans une boucle de commande — un suiveur de ligne, un éviteur d’obstacles, un solveur de labyrinthe — vous n’avez pas besoin de Pi du tout, et en ajouter un rend le robot plus lent à démarrer, plus fragile et plus dur à déboguer.
Explorer le graphe
Utilisé dans ces réalisations
Projets, parcours d'apprentissage et simulateurs qui intègrent le composant Raspberry Pi.
Comparer
Alternatives
Questions
FAQ : Raspberry Pi
Qu'est-ce qu'un Raspberry Pi ?
Un Raspberry Pi est un petit ordinateur monocarte à bas coût qui fait tourner un système d'exploitation Linux complet. Contrairement à un Arduino, qui exécute un programme sur un microcontrôleur, un Pi est un vrai ordinateur — il peut faire marcher une caméra, un navigateur, ROS et votre code robot en même temps.
Raspberry Pi vs Arduino — lequel faut-il ?
Utilisez un Arduino pour la commande temps réel des moteurs et capteurs ; utilisez un Raspberry Pi quand le robot a besoin de vision, cartographie, ROS ou réseau. Beaucoup de robots utilisent les deux — le Pi comme cerveau haut niveau et un Arduino comme mains temps réel. Le multitâche Linux du Pi le rend pire, pas meilleur, en temporisation précise à la microseconde.
Un Raspberry Pi peut-il commander des moteurs ?
Ses broches GPIO peuvent envoyer signaux PWM et de sens, mais — comme un Arduino — il ne peut pas alimenter un moteur depuis une broche. Vous pilotez toujours les moteurs via un pont en H comme le L298N. Les broches du Pi sont aussi en 3,3 V, donc attention aux niveaux logiques en câblant vers des pièces 5 V.
Faut-il un Raspberry Pi pour un robot ?
Non. La plupart des robots débutants (suiveur de ligne, éviteur d'obstacles) tournent très bien sur un Arduino pour une fraction du coût et de la complexité. Ne prenez un Pi que quand la tâche veut vraiment un ordinateur — vision par ordinateur, SLAM, ROS 2, ou interface web.
Quels sont les meilleurs modèles de Raspberry Pi pour la robotique ?
Les Raspberry Pi 4 et Pi 5 sont les choix habituels — assez de CPU et RAM pour la vision par ordinateur et ROS. Le Pi Zero 2 W est une option minuscule et sobre pour les robots plus légers où place et batterie comptent plus que la puissance brute. Évitez les plus vieux modèles (Pi 1 et 2) pour tout calcul lourd.
Pour aller plus loin