Le javascript est désactivé sur votre navigateur
 
Prononcer /'po.bot/
Accueil du siteNos robotsRobots du clubBase roulante "Pobot Easy"
  publication inférieure à 7 jours
  publié < 7j sous cette rubrique
     
À propos de l'article
    Publié le 2 mars 2009
    par Julien H.

    Mis à jour le 23 novembre 2009
Mots-clés de cet article
    Kits et cartes de développement :
    Arduino ,
    Intelligence artificielle :
    IA
Choisir votre langue :

Pilotage du Pobot Easy

interfaces de télécommande et de télémétrie

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...

Premières interfaces
Interface supplémentaire
Visualisation de l’odométrie
En haut les odomètres, en bas les consignes de vitesse.

 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

Premières interfaces

Voici les projets pour P5 [1] 1.0.3.

Easy Control v2
consignes de vitesse en polaire et en cartésien
Easy Robot
transmission des consignes et gestion de la liaison série
Easy Visualisation Consignes
graphe temps réel des consignes

Et le code côté Arduino :

Code Arduino pour télécommande

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.

Interface supplémentaire

Voici le projet pour P5.

Easy Visualisation Map
affichage de la position supposée

 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.

Visualisation de l’odométrie
En haut les odomètres, en bas les consignes de vitesse.
Code Arduino v2
La télécommande + compteur des odomètres
Easy Robot v2
avec lecture de la télémétrie du robot
Easy Visualisation Odométrie
 

[1] P5 = Processing = Proce55ing

Répondre à cet article
Vous avez aimé cet article ? Merci de nous recommander !