Mouvement de la ligne noire Lego ev3. Lego EV3

Pour que le robot se déplace en douceur le long de la ligne noire, vous devez lui faire calculer la vitesse de déplacement elle-même.

Une personne voit une ligne noire et sa limite claire. Le capteur de lumière fonctionne un peu différemment.

C'est cette propriété du capteur de lumière - l'incapacité à distinguer clairement la frontière entre le blanc et le noir - que nous allons utiliser pour calculer la vitesse de déplacement.

Introduisons tout d'abord la notion de « Point idéal de la trajectoire ».

Les lectures du capteur de lumière vont de 20 à 80, le plus souvent sur le blanc, les lectures sont d'environ 65, sur le noir, d'environ 40.

Le point idéal est un point conditionnel approximativement au milieu des couleurs blanche et noire, après quoi le robot se déplacera le long de la ligne noire.

Ici, l'emplacement du point est fondamental - entre le blanc et le noir. Il ne sera pas possible de le régler exactement sur blanc ou noir pour des raisons mathématiques, pourquoi - ce sera clair plus tard.

Empiriquement, nous avons calculé que le point idéal peut être calculé à l'aide de la formule suivante :

Le robot doit se déplacer strictement le long du point idéal. Si une déviation se produit dans l'une ou l'autre direction, le robot doit revenir à ce point.

composons description mathématique du problème.

Donnée initiale.

Pointe parfaite.

Les lectures actuelles du capteur de lumière.

Résultat.

Puissance moteur B.

Puissance de rotation du moteur C.

Solution.

Considérons deux situations. Premièrement : le robot a dévié de la ligne noire vers la blanche.

Dans ce cas, le robot doit augmenter la puissance de rotation du moteur B et diminuer la puissance du moteur C.

Dans une situation où le robot roule dans la ligne noire, c'est le contraire qui est vrai.

Plus le robot s'écarte du point idéal, plus il doit y revenir rapidement.

Mais la création d'un tel régulateur est une tâche assez difficile, et elle n'est pas toujours requise dans son intégralité.

Par conséquent, nous avons décidé de nous limiter à un régulateur P qui répond de manière adéquate aux écarts par rapport à la ligne noire.

En langage mathématique, cela s'écrirait ainsi :

où Hb et Hc sont respectivement les puissances totales des moteurs B et C,

Hbase - une certaine puissance de base des moteurs, qui détermine la vitesse du robot. Il est sélectionné expérimentalement, en fonction de la conception du robot et de la netteté des virages.

Itech - lectures actuelles du capteur de lumière.

I id - point idéal calculé.

k est le coefficient de proportionnalité, choisi expérimentalement.

Dans la troisième partie, nous verrons comment programmer cela dans l'environnement NXT-G.

Considérons l'algorithme le plus simple pour se déplacer le long d'une ligne noire sur un seul capteur de couleur sur EV3.

Cet algorithme est le plus lent, mais le plus stable.

Le robot ne se déplacera pas strictement le long de la ligne noire, mais le long de sa bordure, tournant soit vers la gauche, soit vers la droite et avançant progressivement.

L'algorithme est très simple: si le capteur voit noir, le robot tourne dans un sens, s'il est blanc - dans l'autre.

Implémentation dans l'environnement Lego Mindstorms EV3

Dans les deux blocs de mouvement, sélectionnez le mode "activer". Le commutateur est réglé sur le capteur de couleur - mesure - couleur. En bas, n'oubliez pas de changer "pas de couleur" en blanc. De plus, vous devez spécifier correctement tous les ports.

N'oubliez pas d'ajouter une boucle, le robot n'ira nulle part sans elle.

Vérifier. Pour de meilleurs résultats, essayez de modifier les paramètres de direction et de puissance.

Mouvement avec deux capteurs :

Vous connaissez déjà l'algorithme pour déplacer le robot le long de la ligne noire à l'aide d'un capteur. Aujourd'hui, nous allons considérer le mouvement le long de la ligne à l'aide de deux capteurs de couleur.
Les capteurs doivent être installés de manière à ce que la ligne noire passe entre eux.


L'algorithme sera le suivant :
Si les deux capteurs voient blanc, nous avançons ;
Si l'un des capteurs voit du blanc et l'autre du noir, on se tourne vers le noir ;
Si les deux capteurs voient noir, nous sommes à une intersection (par exemple, stop).

Pour implémenter l'algorithme, nous devons suivre les lectures des deux capteurs, et seulement après cela, régler le robot pour qu'il se déplace. Pour ce faire, nous allons utiliser des commutateurs imbriqués dans un autre commutateur. Ainsi, nous interrogerons d'abord le premier capteur, puis, quelles que soient les lectures du premier, nous interrogerons le deuxième capteur, après quoi nous définirons l'action.
Connectez le capteur gauche au port #1, le capteur droit au port #4.

Programme commenté :

N'oubliez pas que nous démarrons les moteurs en mode "Activer" afin qu'ils fonctionnent aussi longtemps que nécessaire en fonction des lectures des capteurs. De plus, la nécessité d'une boucle est souvent oubliée - sans elle, le programme se terminera immédiatement.

http://studrobots.ru/

Le même programme pour le modèle NXT :

Étudiez le programme de mouvement. Programmez le robot. Télécharger la vidéo de test du modèle

Algorithmes de contrôle pour un robot LEGO mobile. Suivi de ligne avec deux capteurs de lumière

Enseignant de l'enseignement complémentaire

Kazakova Lyubov Alexandrovna


Mouvement de ligne

  • Deux capteurs de lumière
  • Régulateur proportionnel (régulateur P)

Algorithme pour se déplacer le long de la ligne noire sans contrôleur proportionnel

  • Les deux moteurs tournent avec la même puissance
  • Si le capteur de lumière droit atteint la ligne noire, la puissance du moteur gauche (par exemple B) diminue ou s'arrête
  • Si le capteur de lumière gauche touche la ligne noire, la puissance de l'autre des moteurs (par exemple, C) diminue (revient à la ligne), diminue ou s'arrête
  • Si les deux capteurs sont sur blanc ou noir, alors il y a un mouvement rectiligne

Le mouvement est organisé en changeant la puissance d'un des moteurs


Exemple de programme pour se déplacer le long de la ligne noire sans contrôleur P

Le mouvement est organisé en changeant l'angle de rotation


  • Le contrôleur proportionnel (contrôleur P) vous permet d'ajuster le comportement du robot, en fonction de la différence entre son comportement et celui souhaité.
  • Plus le robot s'écarte de la cible, plus il faut de force pour y revenir.

  • Le contrôleur P est utilisé pour maintenir le robot dans un certain état :
  • Maintenir la position du manipulateur Se déplacer le long d'une ligne (capteur de lumière) Se déplacer le long d'un mur (capteur de distance)
  • Maintien de la position du manipulateur
  • Mouvement de ligne (capteur de lumière)
  • Se déplacer le long d'un mur (capteur de distance)

Suivi de ligne avec un seul capteur

  • Le but est de se déplacer le long de la frontière "blanc-noir"
  • Une personne peut distinguer la frontière du blanc et du noir. Le robot ne peut pas.
  • La cible pour le robot est sur la couleur grise

Traversées

Lors de l'utilisation de deux capteurs de lumière, il est possible d'organiser le trafic sur des itinéraires plus difficiles



Algorithme pour rouler le long d'une autoroute avec des intersections

  • Les deux capteurs sont allumés en blanc - le robot roule en ligne droite (les deux moteurs tournent avec la même puissance)
  • Si le capteur de lumière droit touche la ligne noire et celui de gauche sur la ligne blanche, alors il tourne à droite
  • Si le capteur de lumière gauche touche la ligne noire et que le droit touche la ligne blanche, alors il tourne à gauche
  • Si les deux capteurs sont sur le noir, alors un mouvement rectiligne se produit. Vous pouvez compter les intersections ou effectuer une sorte d'action


Le principe de fonctionnement du régulateur P

Emplacement des capteurs

O=O1-O2


Algorithme pour se déplacer le long de la ligne noire avec un contrôleur proportionnel

SW \u003d K * (C-T)

  • C - valeurs cibles (prenez les lectures du capteur de lumière sur blanc et noir, calculez la moyenne)
  • T - valeur actuelle - reçue du capteur
  • K est le coefficient de sensibilité. Plus il y en a, plus la sensibilité est élevée.


Le texte de l'œuvre est placé sans images ni formules.
La version complète de l'ouvrage est disponible dans l'onglet "Job Files" au format PDF

Lego Mindstorms EV3

Phase préparatoire

Créer et calibrer un programme

Conclusion

Littérature

1. Introduction.

La robotique est l'un des domaines les plus importants du progrès scientifique et technologique, dans lequel les problèmes de la mécanique et des nouvelles technologies entrent en contact avec les problèmes de l'intelligence artificielle.

Ces dernières années, les progrès de la robotique et des systèmes automatisés ont changé les domaines personnels et professionnels de nos vies. Les robots sont largement utilisés dans les transports, l'exploration terrestre et spatiale, la chirurgie, l'industrie militaire, la recherche en laboratoire, la sécurité, la production de masse de biens industriels et de consommation. De nombreux appareils qui prennent des décisions sur la base des données reçues des capteurs peuvent également être considérés comme des robots - comme, par exemple, les ascenseurs, sans lesquels notre vie est déjà impensable.

Le constructeur Mindstorms EV3 nous invite à entrer dans le monde fascinant des robots, à nous plonger dans l'environnement complexe des technologies de l'information.

Objectif : Apprendre à programmer un robot pour qu'il se déplace en ligne droite.

    Familiarisez-vous avec le constructeur Mindstorms EV3 et son environnement de programmation.

    Ecrire des programmes pour le déplacement du robot en ligne droite sur 30 cm, 1 m 30 cm et 2 m 17 cm.

    Constructeur Mindstorms EV3.

Pièces design - 601 pièces, servomoteur - 3 pièces, capteur de couleur, capteur de mouvement, capteur infrarouge et capteur tactile. Le bloc à microprocesseur EV3 est le cerveau des LEGO Mindstorms.

Un gros servomoteur est responsable du mouvement du robot, qui se connecte à la brique EV3 et fait bouger le robot : avancer et reculer, faire demi-tour et rouler le long d'une trajectoire donnée. Ce servomoteur dispose d'un capteur de rotation intégré, ce qui vous permet de contrôler très précisément le mouvement du robot et sa vitesse.

Vous pouvez faire effectuer une action à un robot à l'aide du logiciel EV3. Le programme se compose de différents blocs de contrôle. Nous allons travailler avec le bloc mouvement.

Le bloc de mouvement contrôle les moteurs du robot, l'allume, l'éteint, le fait fonctionner conformément aux tâches. Vous pouvez programmer le mouvement sur un certain nombre de tours, ou degrés.

    Phase préparatoire.

    Création d'un terrain technique.

Nous allons marquer le champ de travail du robot, à l'aide de ruban électrique et d'une règle, créer trois lignes de 30 cm de long - une ligne verte, 1 m 15 cm - des lignes rouges et 2 m 17 cm - des lignes noires.

    Calculs nécessaires :

Diamètre de la roue du robot - 5 cm 7 mm = 5,7 cm.

Un tour de la roue du robot est égal à la circonférence d'un cercle d'un diamètre de 5,7 cm. La circonférence est trouvée par la formule

Où r est le rayon de la roue, d est le diamètre, π = 3,14

l = 5,7 * 3,14 = 17,898 = 17,9.

Celles. Pour un tour de roue, le robot parcourt 17,9 cm.

Calculer le nombre de tours nécessaires pour passer :

N=30 : 17,9=1,68.

    1m 30cm = 130cm

N=130 : 17,9=7,26.

    2 m 17 cm = 217 cm.

N = 217 : 17,9 = 12,12.

    Création et calibrage du programme.

Nous allons créer un programme selon l'algorithme suivant :

Algorithme:

    Sélectionnez un bloc de mouvement dans le logiciel Mindstorms EV3.

    Allumez les deux moteurs dans la direction donnée.

    Attendez que la lecture du capteur de rotation de l'un des moteurs passe à la valeur spécifiée.

    Éteignez les moteurs.

Le programme terminé est chargé dans l'unité de commande du robot. Nous mettons le robot sur le terrain et appuyons sur le bouton de démarrage. L'EV3 traverse un champ et s'arrête à la fin d'une ligne donnée. Mais pour obtenir une finition précise, vous devez calibrer, car des facteurs externes influencent le mouvement.

    Le terrain est installé sur les pupitres des étudiants, une légère déviation de la surface est donc possible.

    La surface du terrain est lisse, une mauvaise adhérence des roues du robot sur le terrain n'est donc pas exclue.

    En calculant le nombre de révolutions, nous avons dû arrondir les nombres, et donc, en changeant les centièmes des révolutions, nous avons obtenu le résultat requis.

5. Conclusion.

La possibilité de programmer un robot pour qu'il se déplace en ligne droite sera utile pour créer des programmes plus complexes. En règle générale, toutes les dimensions du mouvement sont indiquées dans les termes de référence des compétitions de robotique. Ils sont nécessaires pour que le programme ne soit pas surchargé de conditions logiques, de boucles et d'autres blocs de contrôle complexes.

À l'étape suivante de la connaissance du robot Lego Mindstorms EV3, vous apprendrez à programmer des virages sous un certain angle, des mouvements en cercle, des spirales.

C'est très intéressant de travailler avec le designer. En savoir plus sur ses capacités, vous pouvez résoudre tous les problèmes techniques. Et à l'avenir, peut-être, créez vos propres modèles intéressants du robot Lego Mindstorms EV3.

Littérature.

    Koposov D. G. "Le premier pas dans la robotique pour les élèves de la 5e à la 6e année." - M. : Binom. Laboratoire des connaissances, 2012 - 286 p.

    Filippov S. A. "Robotique pour les enfants et les parents" - "Science" 2010

    Ressources Internet

    http://lego. rkc-74.ru/

    http://www.9151394.ru/projects/lego/lego6/beliovskaya/

    http://www. légo. fr/éducation/

15.01.2012, 18:51

Jusqu'à présent, dans les articles sur les algorithmes utilisés lors du déplacement le long d'une ligne, une telle méthode était envisagée lorsque le capteur de lumière suivait, pour ainsi dire, sa bordure gauche ou droite: dès que le robot se déplaçait vers la partie blanche du champ, le le contrôleur a ramené le robot à la frontière, le capteur a commencé à se déplacer profondément dans les lignes noires - le régulateur l'a redressé.
Malgré le fait que l'image ci-dessus concerne un contrôleur de relais, le principe général du mouvement d'un régulateur proportionnel (P-régulateur) sera le même. Comme déjà mentionné, la vitesse moyenne d'un tel mouvement n'est pas très élevée, et plusieurs tentatives ont été faites pour l'augmenter en compliquant légèrement l'algorithme : dans un cas, un freinage "doux" a été utilisé, dans l'autre, en plus des virages, mouvement vers l'avant a été introduit.
Afin de permettre au robot d'avancer dans certaines zones, une section étroite a été allouée dans la plage de valeurs produites par le capteur de lumière, qui pourrait être conditionnellement appelée "le capteur est au bord de la ligne".
Cette approche présente un petit inconvénient - si le robot "suit" le bord gauche de la ligne, alors dans les virages à droite, il ne semble pas déterminer immédiatement la courbure de la trajectoire et, par conséquent, passe plus de temps à rechercher la ligne et tournant. De plus, il est sûr de dire que plus le virage est raide, plus cette recherche prend du temps.
La figure suivante montre que si le capteur n'était pas situé du côté gauche de la bordure, mais du côté droit, alors il aurait déjà détecté une courbure de la trajectoire et commencerait à effectuer des manœuvres de virage.

Par conséquent, il est judicieux d'équiper le robot de deux capteurs à la fois, qui sont situés sur les côtés opposés de la ligne et, par conséquent, aideraient le robot à réagir plus rapidement à un changement de direction de mouvement.
Il est maintenant nécessaire de déterminer comment un tel changement de conception affectera le programme. Pour simplifier, il faut à nouveau commencer par le contrôleur de relais le plus simple, et donc, tout d'abord, nous nous intéressons aux positions possibles des capteurs par rapport à la ligne :

En fait, un autre état acceptable peut être distingué - sur les itinéraires difficiles, ce sera l'intersection d'une intersection ou une sorte d'épaississement sur le chemin.
Les autres positions des capteurs ne seront pas considérées, car soit elles sont dérivées de celles présentées ci-dessus, soit il s'agit des positions du robot lorsqu'il a quitté la ligne et ne pourra plus y revenir grâce aux informations des capteurs. En conséquence, l'ensemble des dispositions ci-dessus peut être ramené à la classification suivante :
  • le capteur gauche, ainsi que le capteur droit, est au-dessus d'une surface claire
  • capteur gauche au-dessus de la surface claire, capteur droit au-dessus de l'obscurité
  • capteur gauche au-dessus de la surface sombre, capteur droit au-dessus de la lumière
  • les deux capteurs sont au-dessus de la surface sombre
Si à un certain moment le programme du robot détecte une de ces positions, il devra réagir en conséquence :
    Si les deux capteurs sont au-dessus de la surface blanche, il s'agit d'une situation normale dans laquelle la ligne est entre les capteurs, le robot doit donc aller tout droit. Si le capteur gauche est toujours au-dessus de la surface lumineuse et que le capteur droit est déjà au-dessus de la sombre, alors le robot a conduit son côté droit sur la ligne, ce qui signifie qu'il doit tourner vers la droite pour que la ligne soit à nouveau entre les capteurs. Si le capteur gauche est au-dessus de la surface sombre et que le droit est toujours au-dessus la lumière, alors le robot doit tourner vers la gauche pour s'aligner. Si les deux capteurs sont au-dessus de la surface sombre, alors dans le cas général, le robot continue à nouveau tout droit.

Le diagramme ci-dessus montre immédiatement comment exactement le comportement des moteurs doit changer dans le programme. Maintenant, écrire un programme ne devrait pas être difficile. Vous devriez commencer par choisir quel capteur sera interrogé en premier. Cela n'a pas vraiment d'importance, alors laissez-le être. Il faut déterminer s'il s'agit d'une surface claire ou foncée :
Cette action ne permet pas encore de dire dans quelle direction le robot doit aller. Mais il divisera les états énumérés ci-dessus en deux groupes : (I, II) pour la branche supérieure et (III, IV) pour la branche inférieure. Chacun des groupes a maintenant deux états, vous devez donc en sélectionner un. Si vous regardez attentivement les deux premiers états I et II, ils diffèrent par la position du capteur droit - dans un cas, il se trouve au-dessus d'une surface claire, dans l'autre - au-dessus d'une surface sombre. C'est ce qui déterminera le choix de l'action à entreprendre :
Vous pouvez maintenant insérer des blocs qui définissent le comportement des moteurs selon les tableaux ci-dessus : la branche supérieure de la condition imbriquée définit la combinaison "les deux capteurs allumés", la branche supérieure - "gauche allumé clair, droite foncé" :
La branche inférieure de la condition principale est responsable d'un autre groupe d'états III et IV. Ces deux états diffèrent également l'un de l'autre par le niveau d'éclairement que capte le bon capteur. Il déterminera donc le choix de chacun d'entre eux :
Les deux branches résultantes sont remplies de blocs de mouvement. La branche supérieure est responsable de l'état "gauche sur sombre, droite sur clair", et la branche inférieure est responsable de "les deux capteurs sur sombre".
Il convient de noter que cette conception ne détermine que la façon d'allumer les moteurs en fonction des lectures des capteurs à un certain endroit sur le terrain, naturellement, après un moment, le programme doit vérifier si les lectures ont changé afin de corriger le comportement des moteurs en conséquence, et après un moment encore, encore, et ainsi de suite. .d. Par conséquent, il doit être placé dans une boucle qui fournira cette vérification répétée :

Un programme aussi simple fournira une vitesse assez élevée du robot se déplaçant le long de la ligne sans dépasser ses limites, si vous définissez correctement la vitesse maximale lors du déplacement dans les états I et IV, et définissez également la méthode optimale de freinage dans les états II et III - plus les virages sont raides sur la piste, plus le freinage doit être "dur" - la vitesse doit chuter plus vite, et vice versa - avec des virages doux, il est tout à fait possible d'appliquer le freinage en coupant l'énergie ou même par un légère baisse de vitesse.

Quelques mots distincts doivent également être dits sur le placement des capteurs sur le robot. Bien entendu, les mêmes recommandations s'appliqueront à l'emplacement de ces deux capteurs par rapport aux roues que pour un capteur, seul le milieu du segment reliant les deux capteurs est pris comme sommet du triangle. La distance même entre les capteurs doit également être choisie en fonction des caractéristiques de la piste : plus les capteurs sont proches les uns des autres, plus le robot se stabilisera souvent (effectuera des virages relativement lents), mais si les capteurs sont suffisamment espacés , alors il y a un risque de sortir de la piste, vous devrez donc effectuer des virages plus serrés et un mouvement plus lent dans les lignes droites.