Table des matières

Pourquoi le robot ne va jamais tout droit?

Qu'est ce qu'un robot ? Les robots, sont essentiellement des ordinateurs munis de capteurs et d’actionneurs.

Comme un ordinateur ou un téléphone, un robot est formé d’un processeur, d’une mémoire et de périphériques. Ces derniers se divisent en périphériques de sortie, ou actionneurs, qui permettent au robot de se mouvoir et d’agir sur son environnement, et ses périphériques d’entrée, ou capteurs, qui lui permettent d’analyser cet environnement. Le robot contient une batterie rechargeable qui le rend autonome, mais il peut dialoguer avec un ordinateur par radio ou par un réseau WiFi.

Tout d'abord nous allons voir comment fonctionne un tel robot:

Pour faire tourner un moteur à une vitesse déterminée, il ne suffit pas de fixer la tension d’alimentation du moteur, car la vitesse dépend aussi de la masse du robot, de la nature du terrain sur lequel le robot se déplace, des conditions climatiques si le robot est à l’extérieur, etc. La méthode appelée contrôle en boucle fermée utilise un capteur pour mesurer la vitesse du moteur, compare cette dernière à la vitesse souhaitée et réajuste la commande du moteur en fonction de l’écart constaté : si cette vitesse est inférieure à la vitesse souhaitée, on augmente la tension d’alimentation du moteur, si elle est supérieure, on la diminue. Mesurer en permanence la vitesse des moteurs et adapter leur tension d’alimentation en fonction de l’écart, par rapport à la consigne, est le rôle du micro-contrôleur secondaire.

Pour mesurer la vitesse de la roue du robot, on utilise un capteur de vitesse formé d’un disque qui alterne des zones opaques et transparentes, fixé sur l’axe du moteur et éclairé par une source de lumière. On calcule la vitesse du moteur en comptant le nombre de fois que la lumière est occultée par unité de temps. La fréquence de ce clignotement est proportionnelle à la vitesse. On utilise donc un circuit qui convertit cette fréquence en valeur de vitesse, de façon à pouvoir la contrôler.

On programme le robot mOway en chargeant dans sa mémoire un programme, depuis un ordinateur ordinaire. Comme on l’a vu, ce programme est ensuite exécuté par le microcontrôleur principal. Ce programme doit être écrit, non en Java, mais en C.

On commence donc par écrire un programme et le compiler. On utilise pour cela l’environnement de développement MPLAB. On le transmet ensuite au robot à l’aide d’un câble USB et du programme mOwayGUI.

Pour écrire un programme, on utilise des fonctions qui interrogent les capteurs et commandent les actionneurs. Ces fonctions ne font pas partie du langage C lui-même, mais d’une extension de C fournie par le fabricant du robot.

En revenant à notre problématique: Pourquoi le robot ne va jamais tout droit?

C'est en premier lieu du au fait que les 2 moteurs ne peuvent pas être parfaitement identiques. En conséquence, l'un des deux a un peu plus de puissance que l'autre et fait dévier la trajectoire, c'est quelque chose de très très courant. La dispersion de fabrication dans les moteurs est en général assez énorme.

Il y a bien évidement une foultitude de solutions techniques, des plus simples aux plus sophistiquées :

Vocabulaire

* Flowchart: C’est un schéma de type diagramme qui représente de façon normalisée un processus, étape par étape.

* PWM: La modulation de largeur d'impulsions (MLI ; en anglais : Pulse Width Modulation, soit PWM), est une technique couramment utilisée pour synthétiser des signaux continus à l'aide de circuits à fonctionnement tout ou rien.

* Visual Basic: Il s'agit simplement d'un langage qui permet de communiquer avec l’ordinateur et de lui demander de faire et répéter un grand nombre de fois tout ce qu’on peut faire à la main.