MINIBOT PLUS
Commander le robot par radio avec un Joystick
Utiliser une minicaméra sans fil pour avoir une vue panoramique de l'environnement du robot et faire de l'analyse d'image .
Avec le Minibot vous avez vu comment faire un robot avec assez peu de moyens et de temps.
Mais nous avions choisi ce robot pour qu'il soit trés facile a améliorer.
Parmi les choses qu'on peut lui ajouter nous avons choisi :
- une liaison radio qui va nous permettre de le piloter , a distance, a partir d'un ordinateur soit en cliquant sur des icônes soit en maniant un joystick
- une mini caméra vidéo pour qu'il nous montre ce qu'il voit en se baladant et quon entende le bruit de ses moteurs en prime. Cette mini caméra permet de fair de l'analyse d'images.
ça en fait un robot explorateur déja beaucoup plus intéressant, mais qui perd un peu de vitesse (il se déplace a environ 4 métres /minute avec les servomoteurs actuels ) en prenant du poids.
Commander le robot par liaison radio
- nous avons choisi 2 petits émetteurs / récepteurs Easyradio (vendus chez Robopolis) : deux ER400TRS dont un monté sur une petite carte qui permet de le brancher sur un port USB du PC , ce qui permet d'utiliser ce port comme un "faux" port série pour envoyer des messages radio (environ 140 euros pour l'ensemble des 2 modules, fin 2007)
- pour le module qui s'enfiche dans la plaque a trous coté robot il faut lire la notice technique (sur le site d'Easyradio) pour voir les connections .En résumant: ce module se place au dessus de 14 trous de la plaque de montage , mais il n'a que 9 pattes : 2 vers une extremité (On numerotera les espaces de 1 a 14 en partant de cette extrémité) et 7 vers l'autre extrémité.Sur la patte 1 on branche une antenne (un bout de fil de liaison de 16,5 cm) , la 2 est relié a la terre, la 10 et la 11 sont reliées a deux pattes du Propeller par des résistances intermédiaires de 22 KOhm , la 12 est reliée a la terre , la 13 au 5 volts, la 14 a la terre. (les 8 et 9 ne nous servent pas !)
- Coté PC on envoie les codes de commandes sur le port USB/série grace a un petit programme en Visual C# (la version Express suffit et on peut la télécharger gratuitement sur le site de Microsoft).Ces commandes contiennent surtout 3 données : le nombre d'impulsions à envoyer aux 2 moteurs et pour chaque moteur la durée du signal haut (de 1,3 a 1,7 milliseconde) qui lui sera envoyé.
- Coté robot on utilise un petit programme en Spin (le langage du microprocesseur Propeller qui est sur la carte du robot) Ce programme récupére les valeurs des impulsions (durées ) a envoyer aux moteurs droit et gauche, ainsi que le nombre d'impulsions a envoyer.Puis il envoie les commandes correspondantes aux moteurs.
- Si vous connaissez le langage Visual Basic, ces 2 programmes ne devraient pas poser probléme.
Piloter a distance avec un Joystick : grace a deux petits programmes
- coté robot :le montage radio et le programme restent a peu prés les mêmes.Il faut simplement lire les données du joystick reçues par radio et les utiliser pour commander les 2 servomoteurs. La , on apprécie le fonctionnement paralléle du Propeller : sur l'un des Cogs on utilise les variables "Vdroite" et "Vgauche" pour régler la vitesse des deux servo moteurs , sur l'autre Cog on recoit les messages radio et on calcule les nouvelles valeurs de Vdroite et Vgauche. Comme les variables Vdroite et Vgauche sont déclarées dans la zone VAR des variables partagées par tous les Cogs : dés qu'elles sont modifiées la vitesse des moteurs change.
- par contre côté PC : il faut lire rapidement les données du joystick: pour cela j'utilise un programme trouvé sur internet (celui écrit par Mark Harris : site Codeproject.com ou celui écrit par Ambroise Garel : site forum.irrlicht.fr . Merci à eux , ca simplifie la vie !) et les envoyer au robot par radio.
- il n'y a aucun matériel supplémentaire a acheter si vous avez déja un joystick.
Voir ce qu'explore le robot , en lui ajoutant une mini caméra
- on peut acheter une mini caméra espion sur des sites comme videosurveillancediscount.com; légére (moins de 20 g) , alimentable avec des bateries de 8 a 9v, transmettant ses images par radio (et un peu de son ). Elle est vendue avec un boitier de réception radio qu'on peut brancher sur un écran de télé.( environ 67 euros l'ensemble, fin 2007)
- les images sont bonnes et suffisamment fréquentes pour ne pas se dégrader quand le robot bouge.
- si vous avez un servomoteur standard (pas a rotation continue) fixez la minicaméra dessus et fixez l'ensemble sur le dessus du Minibot, cela vous permettra de faire tourner la caméra et de mieux repérer ou se trouve le robot , grace a cette vue panoramique.
Analyser les images : suivre ou éviter des objets selon leur couleur ou leur forme
- Nous utilisont des modules d'analyse d'image de Roborealm (roborealm.com) installés sur un PC de bureau qui reçoit les images par radio, ils permettent de repérer des objets selon leurs couleurs ou leurs arêtes , de repérer le centre de gravité des taches colorées, de définir des variables dans un module en VBscript pour stocker ces coordonnées, d'envoyer les valeurs des variables sur un port série (donc par radio vers le robot)
- Ces modules d'analyse d'image sont vraiment simples d'emploi et efficaces , ils permettent sans difficulté de faire suivre au robot une ligne colorée tracée sur le sol .
- Nous n'avons eu qu'un probléme pour les utiliser : les conditions d'éclairage peuvent tout changer: passage dans des zones d'ombre ou de plein soleil, lumiére naturelle ou lampes a incandescence ou tubes néon. Pour nous affranchir des conditions d'éclairage , une solution consiste a ajouter une barette avec 4 LED a forte luminosité sur l'avant du robot (1 euro la LED chez Sélectronic) et de diriger le capteur de la caméra dans le cone d'éclairage des LED.
- d'autres modules permettent des tas d'autres repérages: objets de forme et/ou couleur particuliére, bas des murs...Mais il faut faire quelques efforts pour comprendre comment ils fonctionnent et les associer au mieux.
Circuler "de nuit"
- grâce a la même barette de 4 LED , le robot peut suivre une ligne , ou être guidé au joystick même dans une piéce non éclairée
Ajouter une tête qui tourne
- un servomoteur suffit pour faire tourner la tête de droite a gauche
- on peut ajouter 2 LED de couleur pour avoir des yeux
Lui faire faire de la musique
- pour avoir un son acceptable un buzzer est insuffisant il faut un haut parleur (un petit 8 Ohms coute environ 1 euro)
- pour piloter le haut parleur il faut amplifier le signal émis par une patte du microcontrolleur , un petit circuit LM386 fera l'affaire (pour son branchement voir la data sheet; en fait on ajoute 3 condensateurs pour filtrer les fréquences , une résistance de 10 Ohms et un potentiométre de 10K)
- pour émettre les sons de la gamme , on fait basculer (entre plus et moins) la patte du microcontrolleur avec cette fréquence (on trouve sur le net les fréquences correspondant aux notes de la gamme)
- on peut même trouver des exemples le petites musiques simples adaptées pour des robots (voir Fitousi sur le site des Fribotte)