Roomberry : Transformer un Roomba en robot de surveillance avec Raspberry Pi Zero W
Roomberry est un robot de surveillance personnalisé qui transforme un iRobot Roomba en plateforme caméra mobile alimentée par un Raspberry Pi Zero W et un module caméra CSI.
Dans ce guide, vous apprendrez à câbler l'interface ouverte (OI) du Roomba, alimenter le Pi depuis la batterie du Roomba, configurer le Raspberry Pi pour un fonctionnement sans écran (headless), et construire un boîtier compact offrant un accès complet à tous les ports.
Pour voir Roomberry en action, regardez la vidéo de démo montrant le mouvement du robot, la caméra en streaming direct et l'interface de contrôle web.
Comprendre l'OI du Roomba
Les séries Roomba 600/700/800 d'iRobot exposent un connecteur mini-DIN implémentant l'Interface Ouverte (OI). L'OI est un lien série TTL bidirectionnel (115 200 bauds) permettant d'envoyer des commandes de mouvement, lire les données des capteurs, et contrôler les LED et le haut-parleur du robot.
L'OI supporte quatre modes de fonctionnement :
- Off – État par défaut. Le robot écoute une commande
Start. - Passif – Vous pouvez lire les capteurs mais pas contrôler les moteurs.
- Safe – Contrôle moteur complet avec vérifications de sécurité (falaises, chute de roue, chargeur).
- Full – Contrôle moteur complet sans vérifications de sécurité – à utiliser avec prudence.
En mode Passif, le robot se met automatiquement en veille après cinq minutes d'inactivité. Les modes Safe et Full maintiennent le robot éveillé indéfiniment, pensez à revenir en Passif ou Off une fois la tâche terminée pour protéger la batterie.
Connexion série et conversion de niveau logique
La broche TxD du Roomba sort du 5 V, ce qui peut endommager la logique 3,3 V du Raspberry Pi Zero W. Utilisez un convertisseur de niveau logique bidirectionnel (ex: Adafruit bidirectional level shifter) ou un diviseur résistif pour données à basse vitesse. Le convertisseur doit gérer 115 200 bauds, un dispositif actif est recommandé.
Alimenter le Raspberry Pi depuis le Roomba
L'utilisation directe des broches d'alimentation 7 du mini-DIN (Vcc – Gnd) est limitée à 200 mA par un fusible PTC réarmable. Le Pi Zero W seul consomme 150-180 mA, mais la caméra ajoute des pics de 300-450 mA, ce qui faisait déclencher le fusible répétitivement.
La solution consiste à contourner le fusible et à prélever l'énergie sur les plots de la batterie sur la carte mère du Roomba. Après démontage partiel, soudez un couple de câbles sur le plot de batterie. Cela fournit la pleine sortie 10-20,5 V, qu'il faut abaisser à un 5 V régulé.
Nous recommandons un régulateur buck switching tel que le Pololu D24V5F5. Il accepte jusqu'à 36 V, sort 5 V avec 85-90 % d'efficacité, et supporte 500 mA — suffisant pour le Pi Zero et la caméra. Connectez la sortie du régulateur à un câble micro-USB branché sur l'entrée d'alimentation du Pi.
Boîtier et disposition matérielle
Pour une construction propre, nous utilisons un PCB 12 × 10 broches comme petit HAT hébergeant le convertisseur de niveau logique, un bouton reset momentané, et le Pi Zero W. Le boîtier est un boîtier Raspberry Pi standard modifié avec une encoche pour le câble micro-USB et un trou pour le connecteur CSI de la caméra.
Le bouton reset est câblé sur la broche RUN du Pi, permettant de redémarrer le système sans couper l'alimentation.
Configuration de Raspbian (Stretch Lite)
1. Désactiver la console série : raspi-config –> Interfacing Options –> Serial (mettre « Non » pour shell de connexion, « Oui » pour UART). Ou éditer /boot/config.txt pour commenter console=serial0,115200 et ajouter enable_uart=1.
2. Activer la caméra : raspi-config –> Interfacing Options –> Camera ou définir start_x=1, gpu_mem=128, disable_camera_led=1 dans /boot/config.txt.
3. Désactiver le swap et monter /tmp comme disque RAM de 50 Mo. Ajuster /etc/fstab et commit_time=30 pour réduire l'usure de la carte SD.
4. Optimisations d'économie d'énergie optionnelles : désactiver HDMI (tvservice -o), désactiver la LED d'activité, et désactiver Bluetooth (dtoverlay=pi3-disable-bt).
Test de l'interface série
Installez minicom (sudo apt-get install minicom) et connectez-vous au port série du Roomba :
minicom -b 115200 -o -D /dev/serial0Si le robot est sur sa base, vous devriez voir un flux de données de capteurs en direct. Appuyez sur Ctrl‑A puis X pour quitter.
Lancer Roomberry
Avec le Pi alimenté, la caméra activée et le lien série établi, vous pouvez maintenant lancer le script de contrôle Roomberry (non inclus ici). L'interface web permet de commander le mouvement, capturer des images et streamer la vidéo.
Pour une explication complète, regardez la vidéo de démo et suivez les instructions pas à pas ci-dessus.
Conseils de sécurité
- Remettez toujours le robot en mode Passif ou Off après utilisation pour éviter une décharge profonde de la batterie.
- Utilisez un régulateur buck réputé ; les clones chinois bon marché peuvent être peu fiables.
- En prélevant sur les plots de batterie, vérifiez bien la polarité et gardez le câblage propre pour éviter les courts-circuits.
- Fournissez une carte microSD neuve, haute capacité, pour prolonger sa durée de vie.
Processus de fabrication
- Construire un robot Arduino piloté par Raspberry Pi – Guide pas à pas
- BrickPi Bookreader : Automatiser la lecture Kindle avec Raspberry Pi et LEGO Mindstorms
- Robot DIY inspiré de Wall‑E : Raspberry Pi dans une boîte de CD recyclée
- Robot réveil roulant : Système mobile intelligent piloté par Raspberry Pi et Google Calendar
- Construire un robot Creeper motorisé Minecraft avec Arduino
- Archimède : Le hibou robotique IA à détection d'émotions
- Roomberry : Transformer un Roomba en robot de surveillance avec Raspberry Pi Zero W
- Construire un robot vision par ordinateur piloté par la parole sur Windows 10 IoT Core
- Robot ROS : Navigation pilotée par terminal sur Raspberry Pi