Outils pour utilisateurs

Outils du site


les_exposes:robot_moteur

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
les_exposes:robot_moteur [02/03/2015 14:04]
haber
les_exposes:robot_moteur [29/05/2016 15:50] (Version actuelle)
desousa [Pourquoi le robot ne va jamais tout droit?]
Ligne 1: Ligne 1:
-"Pour écrire un programme, on utilise des fonctions qui interrogent les +====== Pourquoi ​le robot ne va jamais tout droit? ======
-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+
  
-Pour faire avancer le robot, on utilise la fonction +{{:​les_exposes:​foto-moway.jpg?​200 |}}
-MOT_STR. Par exemple, l’ins- +
-truction +
-MOT_STR(50,​FWD,​TIME,​100);​ +
-fait avancer le robot à la vitesse 50, en +
-marche avant, pendant 10 secondes (100 dixièmes de seconde)+
  
- Le troisième argu- +Qu'​est ​ce qu'un robot ? 
-ment indique si l’on souhaite spécifier une durée ou une distance. Dans ce +Les robotssont essentiellement des ordinateurs munis de capteurs ​et d’actionneurs
-chapitrenous spécifierons toujours une durée ​et cet argument sera +
-TIME. +
-Le quatrième argument, compris entre +
-0 et 255, est la durée du mouve- +
-ment exprimée en dixièmes de second +
-es.+
  
-SOLUTION 1: On peut aussi faire avancer le +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 sortieou actionneursqui 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. 
-robot pendant ​un temps infini ​en donnantconventionnellementla +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.
-valeur 0 comme durée.+
  
-Le robot continue +===== Tout d'abord nous allons voir comment fonctionne ​un tel robot: =====
-alors son mouvement jusqu’à la fin, +
-à moins que ce mouvement ne soit +
-interrompu par l’initiation +
-dun autre mouvement. ​+
  
-En effet, si la poursuite de l’exéc 
-ution du programme 
-initie un second 
-mouvement, alors le premier mouv 
-ement est interrompu. 
  
-Le mouvement rectiligne ​est interrompu quelques fractions ​de +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 diminueMesurer en permanence la vitesse des moteurs et adapter leur tension dalimentation en fonction de l’écart, par rapport à la consigne, ​est le rôle du micro-contrôleur secondaire.
-secondes seulement après avoir été initiéIl n’est ​donc pas effectué.+
  
-SOLUTION 2: +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.
-Si on souhaite effectuer le mouvement rectiligne en entier, avant de +
-passer à la rotation, on doit utiliser la variable +
-MOT_END +
-qui prend la +
-valeur 0 (équivalent de +
-false +
-en C) quand le robot est en mouvement et +
-la valeur ​1 (équivalent ​de +
-true +
-en C) quand le robot est immobileAinsi, +
-quand on exécute l’instruction : +
-MOT_STR(50,​FWD,​TIME,​100);​ +
-while(!MOT_END){} +
-MOT_ROT(25,​FWD,​CENTER,​LEFT,​ANGLE,​50) +
-"+
  
 +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.
  
-EXPLICATION DES INTERRUPTIONS:​ +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. 
-"A + 
-LLER +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. 
-PLUS + 
-LOIN + 
-Les interruptions + 
-Organiser ​un programme ​en une grande boucle ​qui teste +===== En revenant à notre problématique:​ Pourquoi le robot ne va jamais tout droit? ===== 
-les capteurs ​en permanence est possible, mais souvent + 
-malcommodeOn donc introduit ​dans les langages de + 
-programmation des outils qui + 
-permettent d’exprimer la + 
-même chose de manière ​plus simple. Le programme + 
-décrit ​dune part ce qu’il faut faire quand tout se passe +C'est en premier lieu du au fait que les 2 moteurs ne peuvent pas être parfaitement identiquesEn conséquence,​ l'un des deux 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. ​ 
-normalement,​ par exemple avance + 
-r tout droitet d’autre + 
-part des conditions qui définissent des +Il y a bien évidement une foultitude ​de solutions techniques, des plus simples aux plus sophistiquées : 
-interruptions + 
-, par +  * Réduire la puissance ​d'un des moteurs en introduisant ​une résistance de faible valeur en série. Impossible de dire combien : il faut tâtonner. En outre la résistance doit être suffisamment solide pour ne pas brûler... 
-exemple ​le fait qu’un détecteur signale un obstacleet + 
-des instructions à exécuter ​en cas d’interruption, ​par +  * On peut améliorer cette solution avec un générateur de courant constant : LM117 accompagné de 2 résistances
-exemple faire tourner ​le robotCes différentes instruc- + 
-tions sont ensuite traduites +  * Réduire la puissance d'un moteur par PWM (c'est à dire par logiciel). Cela veut direqu'on coupe le courant 800 fois par seconde pendant un bref laps de temps (réglable), ​le moteur "​manque alors un peu de puissance"​. On peut ajuster cette régulation par logicielou ajouter un potentiomètre de réglage qui sera pris en compte ​par le Picaxe. A priori, on n'est déjà plus en Flowchart, mais plutôt en BASIC
-automatiquement en un pro- + 
-gramme ​qui, de manière répé +  * Utiliser ​un encodeur sur chaque moteur. L'​idée est de mesurer précisément la distance parcourue par chaque roue. Si on constate qu'une roue prends de l'​avance,​ on coupe son moteur un bref instant et on recommence tant que les deux roues ne tournent pas à la même vitesse. 
-tée, interroge les capteurs + 
-etselon qu’une interruption ​est déclenchée ou nonexé- +  * Sur les robots de haute gamme il y a des systèmes de positionnement ​qui contrôlent la trajectoire du robot indépendamment de la vitesse des rouesy compris si une roue patine (plateformes à inertie, accéléromètres,​ GPS,...). C'est hors de portée pour un débutant. 
-cute une instruction ​ou une autre+ 
-Cette manière +  * MAISd'​après certaines sources, tout cela n'est pas suffisant. Il faut donner un but au robot. Aller tout droitn'a pas de sens pour un robot. Il faut donc asservir, c'est-à-dire de mesurer l'​écart entre la valeur réelle de la grandeur à asservir et la valeur de consigne que l'on désire atteindre, et de calculer la commande appropriée à appliquer à un (ou des) actionneur(s) de façon à réduire cet écart
-réactive + 
-de programmer, permet ​de + 
-mieux prendre en compte le + 
-s aléas ​de l’environnement ​: + 
-d’une exécution d’un programme ​à une autre, un robot +//​**Vocabulaire**//​ 
-rencontre rarement deux fois la même situation et il + 
-doit s’adapter ​s’il rencontre une tache d’huil + 
-e sur le sol, + 
-des obstacles nouveaux, etc."+//  * 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 lordinateur et de lui demander de faire et répéter un grand nombre de fois tout ce qu’on peut faire à la main.//
  
-A FAIRE/​COMPLETER/​REFORMULER 
les_exposes/robot_moteur.1425301499.txt.gz · Dernière modification: 02/03/2015 14:04 par haber