E-Puck

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Robot E-puck mobile

Le e-puck est un petit robot pour l’enseignement et la recherche. Il a été conçu à l’origine par Francesco Mondada et Michael Bonani à l’EPFL (Lausanne, Suisse) en 2004. Une version 2 plus récente a vu le jour en 2006. Le e-puck est open hardware et open source. Plusieurs compagnies le fabriquent et le vendent.

Bien que le e-puck ait été développé pour l’éducation, son prix bas et son grand nombre de capteur le rendent intéressant pour la recherche. Il a été utilisé en robotique collective, en robotique évolutionnaire, et en robotique artistique.

Caractéristiques[modifier | modifier le code]

  • Diamètre : 70 mm
  • Hauteur : 50 mm
  • Poids : 200 g
  • Vitesse maximale : 13 cm/s
  • Autonomie en déplacement : 2 h
  • Processeur : DsPIC30F6014A @ 30 MHz (15 MIPS)
  • RAM : 8 KB
  • Flash : 144 KB
  • 2 moteur pas à pas
  • 8 capteurs de distance infrarouge (TCRT1000)
  • Camera couleur VGA (640 × 480)
  • Anneau de 8 LEDs + 1 LED frontale + 1 LED centrale
  • Accéléromètre 3D
  • 3 microphones
  • 1 haut-parleur

Extensions[modifier | modifier le code]

Les fonctionnalités du e-puck peuvent être étendues par l’utilisation de cartes d’extension qui s’empilent sur un connecteur au sommet du e-puck.

Listes des extensions :

  • Une carte de 3 caméras linéaire, plaçable selon plusieurs configurations, appelée le "fly-vision turret"
  • Trois capteurs infrarouges au sol, nommés "ground sensors", permettant le suivi de ligne, la détection de surface au-dessous du robot (nous aurions par exemple apprécié de developper une application où le robot pourrait librement se déplacer sur une table, sans barrière, puisqu'il détecterait lui-même l'absence de surface), ou encore la détection de niveau de gris
  • Un émetteur-récepteur ZigBee
  • Une caméra omnidirectionnelle
  • Des roues aimantées
  • Un anneau de 8 DELs multicolores, le "Colour LED Communication Turret", qui peut être utilisé pour faire de la communication visuelle grâce à la caméra du robot
  • Un lecteur de cartes SD

Programmation[modifier | modifier le code]

Environnement de programmation[modifier | modifier le code]

Il est nécessaire de disposer d’une version de Windows XP ou plus haute afin de pouvoir utiliser l’IDE "MPLAB" ainsi que "Tiny Boot Loader". "MPLAB" est essentiel pour le développement d’applications embarquées utilisant des PIC et autres microcontrôleur, notamment pour compiler les programmes pour e-puck. Ce logiciel est gratuit, et comprend une foule de composants logiciels libres pour le développement rapide d’applications. Il n’y a pas de débugger fourni avec l’IDE permettant de débugger les e-puck une fois le programme chargé.

Langage de programmation[modifier | modifier le code]

La programmation du e-puck est assurée par GNU C. Il sera compilé par l’IDE sus-nommé, qui génèrera un fichier exécutable ".hex" qui sera ensuite uploader vers le robot.

Exportation du programme vers le robot[modifier | modifier le code]

Pour ce faire, il est nécessaire d’installer "Tiny Boot Loader" afin d’uploader le programme dans le PIC 8 bits du e-puck. Le transfert s’effectue par liaison matériel bluetooth. Les E-Puck possèdent des numéros d’identification uniques, permettant notamment d’accéder à ceux-ci afin de charger le fichier ".hex".

Différentes approches/techniques utilisées pour la programmation du e-puck[modifier | modifier le code]

  • Il est possible d’accèder aux divers composants du robot via
    • Des variables (comme l'instruction LED0 = 1 qui permet d’accèder à la diode 0 de l’anneau et de l’allumer ou IR0 qui permet d’accéder au capteur infrarouge 0)
    • Des méthodes (comme la fonction e_set_led(0, 1) qui permettent lui aussi d’accèder à la diode 0 de l’anneau et de l’allumer
  • Il est possible d’effectuer une boucle infinie via
    • Un while(1) classique
    • La méthode e_activate_agenda(nom_de_la_méthode, cycle_en_millisecondes) en ayant au préalable correctement initialisé les "agendas" au moyen de e_start_agenda_processing()

Pour les deux techniques abordées, les secondes alternatives sont les plus propres.

Liens externes[modifier | modifier le code]