Trobot1
From Eric
Contents |
Objectifs
Un prétexte pour explorer le domaine de l'électronique...
Réalisation
La plateforme mécanique
TRobot1 est réalisé en plexiglas et aluminium plus ou moins bien coupés et assemblés. Il dispose de deux moteurs de propulsion à courant continu munis de leurs réducteurs planétaires (sorties coaxiales) et de deux magnifiques "roues folles" surdimensionnées.
Il est très laid et bien lourd.
Voici la chose dévoilant ses moteurs à courant continu.
Et son capteur infra-rouge monté sur son moteur pas-à-pas.
La plateforme électronique
La commande des moteurs
Au premier février 2011, la carte de commande des moteurs est achevée. La voici, sur le robot :
Il s'agit d'une carte hybride, mêlant wrapping et soudure. On y distingue les 8 MOSFET des pont en H de commande des moteurs de propulsion avec les drivers correspondants, et le L298 de commande du moteur pas-à-pas. J'y rajouterai sans doute un contrôle de l'intensité.
Les moteurs de propulsion sont commandés en PWM. Le signal PWM est généré de façon autonome par le microcontrôleur qui dispose de 2 voies PWM (timers 16 bits). La programmation des timers est décrite dans la section dédiés à l'Atmega32.
La carte de contrôle
La carte de contrôle reprend peu ou prou la carte à base d'Atmega 32 décrite ici. J'ai simplement supprimé l'écran, l'horloge temps-réel et la télécommande (pour l'instant), afin de libérer des broches d'entrée-sortie.
Voici la carte :
A terme, la carte disposera d'une fonction de télémétrie réalisée sur la base des coupleurs bluetooth BTM-5 ci-après :
Les fonctions principales
Détection d'obstacles
Détection d'obstacles par infra-rouge
Il s'agit d'estimer la distance à un obstacle --- et non seulement de déterminer la présence d'un obstacle --- par un moyen optique.
Le capteur de distance est un capteur optique Sharp qui fournit un signal analogique dont la valeur dépend de la distance à l'obstacle. Le signal d'entrée est simplement connecté à l'une des entrées analogique de la carte de contrôle.
L'acquision de la valeur du capteur s'effectue en deux phases :
- lancement de l'acquision
- traitement de l'interruption de fin de conversion
Il est à noter que la relation entre la valeur du signal et la distance n'est pas linéaire ; cette valeur est obtnue par interpolation à partir des données constructeur.
Détection d'obstacle par ultra-sons
Il s'agit d'estimer la distance à un obstacle --- et non seulement de déterminer la présence d'un obstacle --- par un moyen sonore (sonar).
Au 15 février 2011, ce mode de détection est encore en cours d'investigation. Un premier montage (voir photo ci-après) a été réalisé, mais il ne fournit pas un signal très "propre" : une refonte s'impose...
Détection d'obstacle par caméra vidéo
On se référera à la page intitulée utilisation d'une caméra avec un microcontrôleur pour une description détaillé des moyens d'acquisiion vidéos envisageables.
A supposer la capacité d'acquérir une image vidéo, comment peut-on en déduire une information sur la présence d'obstacle et, plus particulièrement, leur distance?
Marquage laser
Cette première solution consiste à projeter un marqueur (par ex. point lumineux issu d'un faisceau laser) au sol devant le robot. En l'absence d'obstacle, ce point est perçu à une position fixe dans une image capturée vers l'avant du robot. En cas de présence d'obstacle, le point lumineux va apparaître à une distance variable en fonction de l'endroit où le faisceau intersecte l'obstacle.
Si les seuls obstacles sont les murs ou tout objet présentant une surface plane perpendiculaire au plan du sol, on peut aussi déterminer la distance entre le robot et l'obstacle.
Cette solution a l'avantage de ne pas nécessiter de gros traitements d'images (comme ceux que l'on devrait réaliser si on voulait se baser sur la stéréoscopie (mise en correspondance de deux images prises de deux endroits différents situés à des distances connues).
Stéréoscopie
<<A compléter>>
Télémétrie
<<A compléter>>
Localisation
<<A compléter>>
Orientation par compas magnétique
Le robot est muni d'un compas électronique sur bus I2C. Ce compas utilise le composant MMC212xMG de MEMSIC. Il permet la mesure du champ magnétique selon deux axes ; l'orientation est déduite de ces deux valeurs. La mise en oeuvre de ce composant, sur un Atmega32 est donné ici.
Conclusions et leçons
Aucune...