Voila, je me présente, je suis Zorglub42, ou Zorg, pour les intimes
En temps que geek, je suis fainéant, et si une machine (ou un logiciel) peut faire le boulot à ma place, ça me va bien!
Alors, l'aspi robot, c'était bien tentant ! Ceci dit j'ai mis le temps : après avoir (un peu) réfléchi à la question je trouvais ça "un peu cher"... MAIS.... après avoir essayé un robot aspi dans la maison ou j'étais pendant les vacances (un roomba) j'ai été convaincu et je suis passé du coté obscur ...euh.... lumineux (!) de la force
Le blog de Cedric a été une mine, d'autant plus intéressante qu'il n'y a pas de partis pris derrière et on y sent une impartialité rassurante.
Mes critères principaux étaient avant tout les capacités de nettoyage.
Après, si on peut faire mieux, et en particulier "hacker" la bête c'est encore mieux!
C'est comme ça que mon choix s'est arrêté sur un neato, surtout quand j'ai vu ce lien
Et voila comment un XV Signature affectueusement surnommé "NooNoo" est arrivé chez moi.
Bon, le 1er hack a été facile, lui donner une allure plus sympathique
Facile......
Ensuite.... ben.... ben....ben.....
En premier lieu, j'ai essayé de me connecter en USB pour voir ce que ça donne.
Donc, le port USB du bestiau, c'est la ==>
Branchement du câble entre l'api et le PC, allumage (sortie de veille quoi....) de NooNoo et hop ! j'ai pu me connecter directement a la bête.
Je précise que je suis sous Linux (sur une variante d'Ubuntu) et je n'ai rien eu a installer de particulier. Sous Windows, je crois qu'il faut installer des pilotes spécifiques dispo sur le site de neato.
Enfin... hop! .. ouais..... en vrai voila les détails:
1) AVANT de connecter NooNoo, dans une fenêtre de commande Linux, j'ai listé les ports serie dispo sur le PC
- Code: Tout sélectionner
ls /dev/tty*
2) ENSUITE j'ai branché NooNoo et relancé la même commande, ça m'a permis de voir que sur mon laptop il apparait en temps que /dev/ttyACM3
3) J'ai enfin lancé un outil pour "causer" a un port série:
- Code: Tout sélectionner
minicom -D /dev/ttyACM3
Et là, oui: hop ! j'ai pu jouer avec les commandes du PDF cité ci dessus
Enfin... pour dire vrai, il semble que juste après la connexion il soit dans un état un peu bâtard, appuyer 1 ou 2 fois sur ENTREE règle le pb.
Cooooooool !
D'apres la doc, le neato repose sur un Linux embarqué. Une image de CD est téléchargeable sur le site de Neato, mais ce CD ne contient "que" les sources des composants opensource de linux que Neato a modifiés pour distribuer ses aspis (c'est une obligation légale), mais absolument pas la "distro" réellement embarquée sur la bête.
En d'autre terme, pour l'instant ce n'est pas une piste pour aller plus loin (du moins pour moi).
J'ai vu sur le net des anglo-saxons qui ont aussi pu se connecter avec un "vrai" port série en raccordant directement des connecteurs sur les cartes électroniques dans l'api.
En fait, ça ne change rien on arrive sur le même interpreteur de commande "made in neato".
D'une certaine façon, c'est logique..... sur un UNIX standard (comme Linux) sur les ports serie on lance le programme qui check le mot de passe et qui lance ensuite le "shell".
Ici, point de login mais directement l'interpreteur de commande "made in neato" en guise de shell.
Ceci dit, il y a tout de même matière a jouer !
Ainsi j'ai pu réaliser ce petit programme vite fais ou mon laptop contrôle NooNoo
Pour les plus démoniaques d'entre vous, le code du fameux programme:
- Code: Tout sélectionner
#!/bin/bash
#Initialize serial port
stty -F /dev/ttyACM3 cs8 9600 ignbrk -brkint -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts
sleep 1
#Ensure that XV is ready to receive instructions
echo "" > /dev/ttyACM3
sleep 1
#Switch to "controled by usb for all commands" mode
echo "testmode on" > /dev/ttyACM3
sleep 1
#Just for fun
echo "playsound 1" > /dev/ttyACM3
sleep 1
#Let's move!
echo "setmotor 392 0 300" > /dev/ttyACM3
sleep 2
echo "setmotor 600 600 200" > /dev/ttyACM3
sleep 3
echo "setmotor 392 0 300" > /dev/ttyACM3
sleep 2
echo "setmotor 600 600 200" > /dev/ttyACM3
sleep 3
echo "setmotor 392 0 300" > /dev/ttyACM3
sleep 2
echo "setmotor 600 600 200" > /dev/ttyACM3
sleep 3
echo "setmotor 392 0 300" > /dev/ttyACM3
sleep 2
echo "setmotor 600 600 200" > /dev/ttyACM3
sleep 3
#just for fun
echo "playsound 2" > /dev/ttyACM3
sleep 1
#restore to default mode (required if you plan to use you vaccum as a vaccum......)
echo "testmode off" > /dev/ttyACM3
Pour l'instant, prendre la main sur le Linux sous jasent, je n'y crois guère..... Il faudrait trouver une faille dans l'interpreteur Neato pour qu'il "claque" et me donne la main en mode "dieu"...... Ca fait beaucoup de "si" et reclamme des compétences que je ne suis pas sûr d'avoir.
En revanche, j'ai bon espoir de connecter un micro-serveur type rapberry-pi de façon à faire un NooNoo connecté.
L'idée, c'est d'avoir des infos sur lui depuis internet, lancer un nettoyage, voir même de le piloter tel un kart avec un smartphone à la maison.... (j'ai vu une video sur le blog de Cedric ou un type fait ça en bluetooth entre son smartphone et son PC puis en USB entre le PC et le neato)
Mais on en est pas là...... d'ailleurs, si on lance la commande de nettoyage
- Code: Tout sélectionner
clean
sur l'api, il demande a débrancher le câble USB.... Ca veut dire qu'il va falloir jouer du transistor et autres binious électroniques avant d'en arriver la.....
Voici un lien fort intéressant (en grand breton) http://xv11hacking.wikispaces.com/
Pour l'instant, demain c'est la rentrée et le temps dispo pour "jouer" va se restreindre.......
To be continued.......