Hack Roomba
Introduction
On avait acheté un des premiers aspirateurs dits-autonomes :
un Roomba de chez I-robot.
Pas mal : il tournait dans la maison, seul, selon un parcours quelque-peu aléatoire, sans autre capteur que celui du choc frontal, et retournant à sa base de chargement, à partir de rayons infrarouges. (un truc du genre)
Sauf que : nos tabourets hauts (que vous pouvez voir dans la 3D), ont un pied circulaire au sol, dans lequels il avait tendance à se bloquer.
Sans compter, certainement un de mes pricipaux défauts : les câbles !
… une fâcheuse tendance à “avaler” les câbles. 😒
Dans cet esprit, je voulais voir s’il n’était pas possible d’améliorer son parcours … en le guidant moi-même.
Expérience
Je ne me souviens plus exactement, mais il me semble que j’avais trouvé sur Internet son protocole et le câblage de sa prise DIN d’administration sur le dessus.

Composants
C’était en février 2016 : il y avait encore peu de matériel Libre de disponible.
Mais j’avais sous la main une Rasperry Pi (model B, je crois), avec un dongle Wifi, alimentée par un adaptateur d’allume-cigare/USB de voiture (oui il y a un semblant de 12V continu de disponible à partir des batteries, et la Raspberry s’alimente en 5V via USB…).
Pour finir, un simple adaptateur USB-Serial TTL Arduino, le tout branché sur la DIN, et voilà !
Programme
J’ai retrouvé le code dans les “oldies” 😁
~src/oldies/hack_roomba/ $ tree pycreate/
pycreate/
├── controller.py
├── create.py
├── dance.py
├── graphics.py
├── light.py
├── move.py
├── readme.rst
├── sense.py
├── sound.py
├── test
│ ├── test_dance.py
│ ├── test_light.py
│ ├── test_move.py
│ ├── test_sense.py
│ ├── test_sound.py
│ └── test_via.py
├── test.py
├── via.py
└── wander.py
2 directories, 18 files
Un simple PySerial, qui envoit les codes appropriés.
Aujourd’hui, les équipements sont plus élaborés (et plus compliqués d’accès pour certains totalement fermés), mais la démarche est la même : c’est faisable !
Démo
Je sais qu’on a une vidéo filmée par mon épouse, sur laquelle je le démarre de mon PC portable… si je remets la main dessus…