On va pouvoir piloter le robot à distance avec les modules XBee. Une bonne occasion de faire un peu de télémétrie pour recevoir les différents événements qui se produisent à bord.
L’idée est d’installer sur ordinateur tout un tas de petites applets de visualisation : consignes de vitesse, vitesses des servomoteurs, positionnement par odométrie, vision par capteurs Sharp, etc...
Premier essai
On aura pour commencer :
– la production des consignes de vitesse, grâce à notre panneau de contrôle (il n’est pas parfait mais il fonctionne) :
– la consommation pour affichage dans un graphique
– la consommation pour envoi au robot Pobot Easy
Voici les projets pour P5 [1] 1.0.3.
Et le code côté Arduino :
Le principe est d’utiliser des sockets de connexion réseau pour gérer la production d’information et leur consommation. Avec Processing, c’est très simple :
import processing.net.* ;
// le serveur qui diffusera les consignes de vitesses
Server myServer ;
// démarre le serveur sur un port quelconque
myServer = new Server(this, 5204) ;
// envoyer les valeurs de vitesse
myServer.write(0xFF) ;
myServer.write((int)vg) ;
myServer.write((int)vd) ;
Et le client :
import processing.net.* ;
// un des clients qui recevra les valeurs envoyées par le serveur
Client myClient ;
// initier le client en se connectant au même port et sur l’IP du serveur (ici, local)
myClient = new Client(this, "127.0.0.1", 5204) ;
int val ;
// tester s’il y a des données disponibles
if (myClient.available() > 1)
val = myClient.read() ;
Fabrice a amélioré l’algorithme de calcul des vitesses. La nouvelle version v2 de Easy Control est vraiment plus pratique.
Seconde version
Maintenant, on va s’occuper de représenter le parcours du robot, c’est le programme "Easy Visualisation Map". Pour l’instant, il est basé sur les consignes de vitesse, mais plus tard il y aura la position "réelle" du robot basée sur les odomètres.
Voici le projet pour P5.
Troisième version
On met de côté la cartographie, le temps d’intégrer les odomètres. Dans cette version, on visualise les valeurs brutes des compteurs incrémentés par le robot.