Emuler un Nabaztag/tag sur un Karotz

Après avoir débriquer des Nabaztag/tag, j’ai eu envie de ressortir un vieux sujet que je n’avais pas réussi terminer : tester un émulateur de Nabaztag/tag sur un Karotz.

Bon, dit comme ça, ça semble idiot. Comme si des gens voulaient émuler une vieille console sur une nouvelle et que le fabricant vendait ça à prix d’or. Plus sérieusement, l’idée est d’utiliser la plateforme matérielle de Karotz, qui peut se connecter en Ethernet, en WPA2, dispose d’un haut-parleur plus puissant, etc. Par contre, le Karotz n’a plus vraiment de fonctions intéressantes, même avec Open Karotz. L’idée est donc de le transformer en Nabaztag/tag avec un petit logiciel, pour le connecter à un serveur Nabaztag/tag. Bon, en vrai, ça ne sert pas tellement : même avec un serveur, le Nabaztag/tag ne sert à rien. Mais c’est rigolo quand même.

Karotz as a Nabaztag/tag

L’émulateur de Nabaztag/tag

J’ai utilisé le logiciel open source de ccarlo64, avec quelques modifications à cause de ma configuration un peu spéciale. En gros, son programme a été pensé pour des Karotz qui se connectent sur un serveur Nabaztag/tag public, avec authentification, et mon serveur Nabaztag/tag est privé et pas à jour (il tourne sur un Raspberry Pi depuis quelques années).

Première étape, il faut un Karotz sous Open Karotz, avec un accès telnet et un accès FTP (astuce : de base, le login est karotz, sans mot de passe). Mon Karotz était déjà sous Open Karotz, avec une connexion en filaire.

Connexion en telnet

J’ai eu un peu de mal avec l’installation. Premièrement, le script intégré ne fonctionne pas si je le modifie depuis mon Mac. A priori des erreurs liées aux caractères de fins de lignes, mais ça ne veut absolument pas. Seule solution valable, balancer un fichier compressé (je vous le mets là) à décompresser depuis le lapin lui-même, en telnet. Il faut donc copier le fichier files.tar dans /usr/openkarotz/Extra (via FTP) et exécuter la commande suivante en telnet.

tar -xvf files.tar

Il faut rendre le script exécutable et ne pas le modifier via FTP (ou le copier).

chmod +x script.sh

Ensuite, il faut modifier le fichier nabemu.py, qui contient le script qui gère le tout. Alors, impossible de le modifier sur le lapin (sauf à aimer vi, mais soyons sérieux). Dans la pratique, j’ai du modifier la ligne qui détecte l’adresse MAC du lapin, pour indiquer manuellement (sans les :) celle de l’adaptateur Ethernet. Sans ça, il récupère l’adresse de la carte Wi-Fi (donc vous pouvez laisser le tout en place si vous êtes en Wi-Fi).

Dans mon cas, ça donne ça :

mac = "00606E435876" ################ CHANGE HERE
#mac = open('/sys/class/net/wlan0/address').readline().replace('\n', '').replace(':','') #automac (pixel :) )

Deuxième étape, supprimer la partie qui gère l’authentification par mot de passe. Même chose, c’est inutile si vous utilisez un serveur public, mais avec mon serveur privé, ça empêche le lapin de se connecter. Il faut donc supprimer/commenter les lignes suivantes.

### 1 # test if already register (file user.txt with mac address)
already=''
if os.path.exists(pathUser):
already = open(pathUser).read().replace('\n','')
if already!=mac:
m = ""
d = sendANDreceive(s,m)
m=""+mac+""+passwordX+""
d = sendANDreceive(s,m)

Enfin, il faut mettre l’adresse du serveur dans la section *** MAIN ***. Le fichier en propose plusieurs, il suffit de choisir (ou de mettre l’adresse de votre serveur).

h = 'ojn.raspberry.pi'

Une fois que c’est fait, il faut ajouter le lapin dans votre serveur (via son adresse MAC) et ça devrait fonctionner en lançant le script avec la commande suivante.

python nabemu.py

Dans ma fenêtre telnet, ça donne ça, et le lapin se connecte à mon serveur.

Le résultat


Sur mon serveur

Dernière étape, lancer le tout au démarrage. J’ai eu des soucis pour une bonne raison : tous mes logiciels ajoutent des caractères de fin de ligne qui bloquent le lapin. Ma solution, qui semble marcher, est un peu casse-pieds.

• Se connecter en telnet sur lapin.
• Modifier le fichier /usr/www/cgi-bin/start_ok avec vi.
• Ajouter python /usr/openkarotz/Extra/nabemu.py à la fin du fichier.
• Vérifier les droits, le cas échéant avec la commande chmod 777 start_ok

Si jamais, comme moi, vous avez tout cassé avec un transfert FTP, il reste possible de supprimer les caractères gênants avec les commandes suivantes.

tr -d '^M' start_ok_bis (le ^M s’obtient en pressant control suivi de v et m)
rm start_ok
mv start_ok_bis strat_ok
chmod 777 start_ok

Ce qui marche

Une fois configuré, le lapin allume sa LED centrale comme la LED inférieure d’un Nabaztag/tag, on peut lancer l’heure, les surprises, etc. Le bouton sur la tête ne semble pas fonctionner, mais ça vient peut-être de ma configuration. Mais en gros, le Karotz me donne l’heure, fait son taichi, dit de temps en temps des trucs idiots et pulse comme mes autres Nabaztag/tag. Et c’est déjà pas mal. A noter, comme d’hab’, que les couleurs dans l’interface ne correspondent pas à la réalité, mais c’est lié à Karotz. La couleur de l’image est – selon l’interface – du blanc. Mais Karotz décale fortement les valeurs RGB classiques.

Ceci est du blanc.