Categories
Bidouillability Technology

Contrôler un Lego EV3 avec une API Web

Vous aussi vous voudriez commander votre robot avec une simple API Web? Par exemple pour embêter le chat ou surveiller votre domicile à distance (avec une arme sur son épaule il pourrait impressionner un cambrioleur et ressemblerait même à Johnny 5).
Dans ce cas, vous devez tester ceci et me dire ce que vous en pensez.

Il s’agit d’un micro serveur Web destiné à être installé sur un Lego Mindstorms EV3 avec le système ev3dev (basé sur Debian). J’ai simplement utilisé Flask afin de définir quelques endpoints correspondants aux différentes actions (avancer, reculer, tourner à droite, tourner à gauche et stopper).

Le README explique les quelques étapes nécessaires pour l’installation ainsi que l’utilisation. C’est vraiment simple. L’exemple ci-dessous ordonnera au robot d’avancer indéfiniment.

$ GET http://192.168.1.16:5000/move/forward
{"message": "OK", "direction": "forward", "action": "move"}

Le robot se stoppera dès qu’il recevra une requête GET sur l’endpoint /move/stop. Évidemment d’autres paramètres sont fournis par ev3dev. Je vais essayer de les rendre accessibles via l’API de manière simple. Par exemple demander au robot de se déplacer sur une distance ou de faire une rotation de x degrés. Il faudra prendre en compte la nature du sol ainsi que le niveau de charge de la batterie.

Je vais également ajouter au serveur une petite page Web avec du JavaScript qui permettra de contrôler le robot avec des boutons directionnels. Ce sera pratique pour commander le robot depuis un smartphone.

Categories
Bidouillability Hardware Raspberry Pi

Quelques benchmarks avec Ackermann sur un Raspberry Pi

Raspberry Pi Model B - 512 Mo

Le pauvre, à peine arrivé je lui fais déjà passer des tests de performances (et une séance de shooting photo) 😉

pi@raspberrypi ~/ackermann $ time ./ackermann-c 3 12
Naive:     32765 (715664091 calls)

real    2m8.395s
user    2m7.960s
sys     0m0.120s

Après overclocking à 800 MHz:

pi@raspberrypi ~/ackermann $ time ./ackermann-c 3 12
Naive:     32765 (715664091 calls)

real    2m7.622s
user    2m7.320s
sys     0m0.020s

C’est tout de même un peu plus lent que mon test précédent effectué sur un processeur i7. Le résultat pour la version C était donc de 4.345s.

Concernant le Raspberry Pi, il est vraiment super. Pas si lent en fait pour un ordinateur de la taille d’une carte. Le système se lance extrêmement vite. Je n’ai pas encore de batterie USB, pour le moment il utilise le chargeur du Nexus S qui donne en sortie 5V 0.7A. C’est un peu sous alimenté, mais par chance le R-Pi semble ne pas avoir de problème. Il me manque aussi encore un dongle Wi-fi. D’ici là j’aurai j’espère une petite batterie USB sortant plutôt 1A. De ce que j’ai lu, c’est suffisant pour faire fonctionner une connexion Wi-fi. De cette manière je pourrai le connecter en HDMI sur la télé et éventuellement utiliser XBMC.

Categories
Bidouillability Hardware

Le Raspberry Pi modèle B avec 512 Mo de RAM

Le modèle B du Raspberry Pi passe à 512 Mo de RAM. Plus vite j’aurai le mien, plus vite je pourrai m’amuser avec. Je vais déjà constituer une liste de choses à faire avec.

Categories
Bidouillability Smartphone

Réparation de l’écran du Nexus S

Promis, maintenant je ferai super attention!

Si un jour vous avez à changer l’écran (i9020 ou i9023) d’un Nexus S, voici une excellente vidéo. Pour moi ça été un peu plus compliqué car j’ai vraiment changé uniquement l’écran, et non toute la façade avant.

En tout cas j’ai appris quelques petits trucs sur mon smartphone et je trouve que ça se démonte vraiment très bien. Bravo pour la bidouillabilité à Samsung.