Pour afficher une présentation avec des images, des illustrations et des diapositives, télécharger son fichier et l'ouvrir dans PowerPoint sur ton ordinateur.
Contenu textuel des diapositives de présentation :"Algorithme de mouvement le long de la ligne noire avec un capteur de couleur" Cercle sur "Robotique" Enseignant à Yezidi Akhmed Elievich Au MBU DO "Shelkovskaya CTT" Pour étudier l'algorithme de mouvement le long de la ligne noire, un robot sera utilisé Lego Mindstorms EV3 avec un capteur de couleur Capteur de couleur Le capteur de couleur détecte 7 couleurs et peut détecter l'absence de couleur. Comme avec le NXT, il peut agir comme un capteur de lumière Terrain de compétition de robots "Ligne S" La piste "S" proposée vous permettra de faire un autre test intéressant des robots créés pour la vitesse et la réponse. Envisager l'algorithme le plus simple mouvement le long de la ligne noire sur un 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 à gauche et à droite et avançant progressivement L'algorithme est très simple: si le capteur voit une couleur noire, le robot tourne dans un sens, s'il est blanc - dans l'autre. Suivi de ligne en mode intensité lumineuse réfléchie avec deux capteurs couleurs blanches. La solution à ce problème est d'utiliser le capteur non pas en mode de détection de couleur, mais en mode de détection de luminosité en lumière réfléchie. Dans ce mode, connaissant les valeurs du capteur sur une surface sombre et claire, nous pouvons dire indépendamment ce qui sera considéré comme blanc et ce qui sera noir. Définissons maintenant les valeurs de luminosité sur les surfaces blanches et noires. Pour ce faire, dans le menu de la brique EV3, recherchez l'onglet Applications de la brique. Vous êtes maintenant dans le visualiseur de port et vous pouvez voir les lectures actuelles de tous les capteurs. nos capteurs doivent s'allumer en rouge, ce qui signifie qu'ils sont en mode de luminosité de la lumière réfléchie. S'ils brillent en bleu - dans la fenêtre de vue du port sur le port souhaité, appuyez sur le bouton central et sélectionnez le mode COL-REFLECT Nous allons maintenant placer le robot de sorte que les deux capteurs soient situés au-dessus de la surface blanche. Nous regardons les nombres dans les ports 1 et 4. Dans notre cas, les valeurs sont respectivement 66 et 71. Ce seront les valeurs de blanc des capteurs. Nous allons maintenant placer le robot de manière à ce que les capteurs soient situés au-dessus de la surface noire. Regardons à nouveau les valeurs des ports 1 et 4, nous avons respectivement 5 et 6. Ce sont les significations du noir. Ensuite, nous allons modifier le programme précédent. A savoir, nous allons modifier les réglages des switchs. Tant qu'ils ont Capteur de couleur -> Mesure -> Couleur installé. Nous devons définir le capteur de couleur -> Comparaison -> Intensité de la lumière réfléchie Nous devons maintenant définir le "type de comparaison" et la "valeur seuil". La valeur seuil est la valeur d'un certain "gris", les valeurs en dessous desquelles nous considérerons le noir, et plus encore - le blanc. Pour une première approximation, il convient d'utiliser la moyenne entre le blanc et le noir pour chaque capteur. Ainsi, la valeur seuil du premier capteur (port #1) sera (66 + 5) /2=35.5. Arrondissons à 35. La valeur de seuil du second capteur (port n°4) : (71 + 6) / 2 = 38,5. Arrondissons jusqu'à 38. Maintenant, nous définissons ces valeurs dans chaque commutateur en conséquence. C'est tout, les blocs avec des mouvements restent à leur place sans changement, car si nous mettons le signe "<», то все, что сверху (под галочкой) будет считаться черным, а снизу (под крестиком) – белым, как и было в предыдущей программе.Старайтесь ставить датчики так, чтобы разница между белым и черным была как можно больше. Если разница меньше 30 - ставьте датчики ниже.
Это было краткое руководство по программированию робота Lego ev3, для движения по черной линии, с одним и двумя датчиками цвета
Pour que le robot se déplace en douceur le long de la ligne noire, vous devez le forcer à calculer lui-même la vitesse de déplacement.
Une personne voit une ligne noire et sa bordure claire. Le capteur de lumière fonctionne un peu différemment.
C'est cette propriété du capteur de lumière - l'incapacité de distinguer clairement la bordure du blanc et du noir - et nous l'utiliserons pour calculer la vitesse de déplacement.
Dans un premier temps, nous introduisons le concept de « point de trajectoire idéal ».
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 blanches et noires, après quoi le robot se déplacera le long de la ligne noire.
Ici, en principe, l'emplacement du point se situe entre le blanc et le noir. Il ne sera pas possible de le poser 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 n'importe quelle direction, le robot doit revenir à ce point.
Composons description mathématique du problème.
Donnée initiale.
Pointe parfaite.
La lecture actuelle du capteur de lumière.
Résultat.
Puissance de rotation du moteur V.
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 entre dans la ligne noire, c'est l'inverse 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 ensemble.
Par conséquent, nous avons décidé de nous limiter uniquement au contrôleur P, qui répond de manière adéquate aux écarts par rapport à la ligne noire.
En langage mathématique, il s'écrira ainsi :
où Hb et Hc sont respectivement les puissances finales 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.
Itek - lectures actuelles du capteur de lumière.
I id - point idéal calculé.
k - coefficient de proportionnalité, est sélectionné 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, en tournant vers la gauche ou vers la droite et en 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
Cette tâche est classique, idéologiquement simple, elle peut être résolue plusieurs fois, et à chaque fois vous découvrirez quelque chose de nouveau.
Il existe de nombreuses approches pour résoudre le problème de suivi de ligne. Le choix de l'un d'entre eux dépend de la conception spécifique du robot, du nombre de capteurs, de leur emplacement par rapport aux roues et entre eux.
Dans notre exemple, trois exemples de robots seront démontés sur la base du modèle principal du didacticiel Robot Educator.
Pour commencer, nous assemblons le modèle de base du Robot Educator, pour cela vous pouvez utiliser les instructions du logiciel MINDSTORMS EV3.
De plus, par exemple, nous avons besoin de capteurs de couleur de lumière EV3. Ces capteurs de lumière, comme aucun autre, sont les mieux adaptés à notre tâche, lorsque nous travaillons avec eux, nous n'avons pas à nous soucier de l'intensité de la lumière ambiante. Pour ce capteur, dans les programmes, nous utiliserons le mode lumière réfléchie, dans lequel la quantité de lumière réfléchie de l'éclairage rouge du capteur est estimée. Les limites des lectures du capteur sont de 0 à 100 unités, respectivement pour "aucune réflexion" et "réflexion totale".
Par exemple, nous analyserons 3 exemples de programmes pour se déplacer le long d'un chemin noir représenté sur un fond clair et uniforme :
· Un capteur, avec régulateur P.
· Un capteur, avec régulateur PK.
· Deux capteurs.
Exemple 1. Un capteur, avec régulateur P.
Conception
Le capteur de lumière est monté sur un faisceau idéalement situé sur le modèle.
Algorithme
Le fonctionnement de l'algorithme est basé sur le fait que, selon le degré de recouvrement, le faisceau d'éclairage du capteur avec une ligne noire, les lectures renvoyées par le capteur varient selon un gradient. Le robot maintient la position du capteur de lumière sur le bord de la ligne noire. En convertissant les données d'entrée du capteur de lumière, le système de contrôle génère la valeur de la vitesse de rotation du robot.
Étant donné que sur une trajectoire réelle le capteur génère des valeurs dans toute sa plage de fonctionnement (0-100), la valeur à laquelle le robot s'efforce est de 50. Dans ce cas, les valeurs transmises à la fonction de rotation sont formées dans la plage -50 - 50, mais ces valeurs ne suffisent pas pour une rotation de trajectoire raide. Par conséquent, la plage doit être élargie d'une fois et demie à -75 - 75.
Enfin, dans le programme, la fonction calculatrice est un simple régulateur proportionnel. dont la fonction ( (a-50)*1.5 ) dans la plage de fonctionnement du capteur de lumière génère les valeurs de rotation conformément au graphique :
Un exemple d'algorithme
Exemple 2. Un capteur, avec contrôleur PK.
Cet exemple est compilé sur le même design.
Vous avez sans doute remarqué que dans l'exemple précédent, le robot se balançait trop, ce qui ne lui permettait pas d'accélérer suffisamment. Maintenant, nous allons essayer d'améliorer un peu cette situation.
À notre contrôleur proportionnel, nous ajoutons également un simple contrôleur de cube, qui ajoutera une touche à la fonction de contrôleur. Cela réduira le balancement du robot près de la limite souhaitée de la trajectoire, ainsi que des secousses plus fortes à une grande distance de celui-ci.
Dans cette leçon, nous allons continuer à explorer l'utilisation du capteur de couleur. Le matériel présenté ci-dessous est très important pour une étude plus approfondie du cours de robotique. Après avoir appris à utiliser tous les capteurs Lego mindstorms EV3 pour résoudre de nombreux problèmes pratiques, nous nous appuierons sur les connaissances acquises dans cette leçon.
6.1. Capteur de couleur - Mode d'intensité de la lumière réfléchie
Nous commençons donc à étudier le prochain mode de fonctionnement du capteur de couleur, qui s'appelle "Luminosité de la lumière réfléchie". Dans ce mode, le capteur de couleur dirige un faisceau de lumière rouge sur un objet ou une surface à proximité et mesure la quantité de lumière réfléchie. Les objets plus sombres absorberont la lumière, de sorte que le capteur lira une valeur inférieure à celle des surfaces plus claires. La plage de valeurs du capteur est mesurée à partir de 0 (très sombre) à 100 (tres brillant). Ce mode de fonctionnement du capteur de couleur est utilisé dans de nombreuses tâches en robotique, par exemple pour organiser le déplacement du robot le long d'un parcours donné le long d'une ligne noire tracée sur un revêtement blanc. Lors de l'utilisation de ce mode, il est recommandé de placer le capteur de manière à ce que la distance qui le sépare de la surface étudiée soit d'environ 1 cm (Fig. 1).
Riz. un
Passons aux exercices pratiques : le capteur de couleur est déjà installé sur notre robot et dirigé jusqu'à la surface du revêtement sur lequel notre robot va se déplacer. La distance entre le capteur et le sol est celle recommandée. Le capteur de couleur est déjà connecté au port "2" Brique EV3. Chargeons l'environnement de programmation, connectons le robot à l'environnement et utilisons le champ de bande de couleur que nous avons créé pour effectuer les tâches de la section 5.4 de la leçon n° 5 afin de prendre des mesures. Installez le robot de manière à ce que le capteur de couleur soit situé au-dessus de la surface blanche. "Page Matériel" les environnements de programmation passent en mode "Afficher les hublots" (Fig. 2 pos. 1). Dans ce mode, nous pouvons observer toutes les connexions que nous avons établies. Sur le Riz. 2 ports connectés affichés "B" et "C" deux gros moteurs, et au port "2" - capteur de couleur.
Riz. 2
Pour sélectionner l'option d'affichage des mesures du capteur, cliquez sur l'image du capteur et sélectionnez le mode souhaité (Fig. 3)
Riz. 3
Sur le Riz. 2 pos. 2 nous pouvons voir que la valeur de la lecture du capteur de couleur au-dessus de la surface blanche est 84 . Dans votre cas, vous pouvez obtenir une valeur différente, car cela dépend du matériau de la surface et de l'éclairage à l'intérieur de la pièce : une partie de la lumière, réfléchie par la surface, frappe le capteur et affecte ses lectures. Après avoir installé le robot de manière à ce que le capteur de couleur soit situé au-dessus de la bande noire, nous fixons ses lectures (Fig. 4). Essayez de mesurer vous-même les valeurs de lumière réfléchie au-dessus des bandes de couleur restantes. Quelles valeurs as-tu obtenu ? Écrivez votre réponse dans les commentaires de cette leçon.
Riz. 4
Résolvons maintenant des problèmes pratiques.
Problème numéro 11 : il est nécessaire d'écrire un programme pour le mouvement du robot, qui s'arrête lorsqu'il atteint la ligne noire.
Solution:
L'expérience nous a montré qu'au franchissement de la ligne noire, la valeur du capteur de couleur dans le mode "Luminosité de la lumière réfléchie"équivaut à 6 . Alors, pour remplir Tâches #11 notre robot doit se déplacer en ligne droite jusqu'à ce que la valeur souhaitée du capteur de couleur devienne plus petite 7 . Utilisons le bloc de programme qui nous est déjà familier "Attente" Palette orangée. Choisissons le mode de fonctionnement du bloc de programme requis par la condition du problème "En attente" (Fig. 5).
Riz. 5
Vous devez également configurer les paramètres du bloc de programme "Attente". Paramètre "Type de comparaison" (Fig. 6 pos. 1) peut prendre les valeurs suivantes : "Équivaut à"=0, "Inégal"=1, "Suite"=2, "Plus ou égal"=3, "Moins"=4, "Moins ou égal"=5. Dans notre cas, nous posons "Type de comparaison" en valeur "Moins". Paramètre "Seuil" fixé égal à 7 (Fig.6 pos. 2).
Riz. 6
Dès que la valeur du capteur de couleur est inférieure à 7 , que se passe-t-il lorsque le capteur de couleur est au-dessus de la ligne noire, nous devrons éteindre les moteurs, arrêtant le robot. Problème résolu (Fig. 7).
Riz. sept
Pour continuer nos études, nous allons devoir faire un nouveau champ, qui est un cercle noir d'environ 1 mètre de diamètre, appliqué sur un champ blanc. L'épaisseur de la ligne circulaire est de 2 à 2,5 cm.Pour la base du champ, vous pouvez prendre une feuille de papier de format A0 (841x1189 mm), coller ensemble deux feuilles de papier de format A1 (594x841 mm). Sur ce champ, marquez la ligne du cercle et peignez dessus avec de l'encre noire. Vous pouvez également télécharger la mise en page du champ, réalisée au format Adobe Illustrator, puis commander son impression sur tissu bannière dans une imprimerie. La taille de mise en page est de 1250x1250 mm. (Vous pouvez visualiser la mise en page téléchargée ci-dessous en l'ouvrant dans Adobe Acrobat Reader)
Ce champ nous sera utile pour résoudre plusieurs tâches classiques du cours de robotique.
Tâche numéro 12 : il faut écrire un programme pour un robot se déplaçant à l'intérieur d'un cercle bordé d'un cercle noir selon la règle suivante :
- le robot avance en ligne droite ;
- en atteignant la ligne noire, le robot s'arrête ;
- le robot recule de deux tours des moteurs ;
- le robot tourne à droite de 90 degrés ;
- le mouvement du robot est répété.
Les connaissances acquises dans les leçons précédentes vous aideront à créer un programme qui résout le problème 12 par vous-même.
Solution du problème n°12
- Commencez tout droit (Fig. 8 pos. 1);
- Attendez que le capteur de couleur franchisse la ligne noire (Fig. 8 pos. 2);
- Reculer de 2 tours (Fig. 8 pos. 3);
- Tourner à droite à 90 degrés (Fig. 8 pos. 4); la valeur de l'angle de rotation est calculée pour le robot assemblé selon l'instruction small-robot-45544 (Fig. 8 pos. 5);
- Répétez les commandes 1 à 4 dans une boucle sans fin (Fig. 8 pos. 6).
Riz. huit
Au fonctionnement du capteur de couleur en mode "Luminosité de la lumière réfléchie" nous y reviendrons plusieurs fois lorsque nous considérerons les algorithmes pour se déplacer le long de la ligne noire. En attendant, analysons le troisième mode de fonctionnement du capteur de couleur.
6.2. Capteur de couleur - Mode d'intensité lumineuse ambiante
Mode capteur de couleur "Luminosité de la lumière ambiante" très semblable au mode "Luminosité de la lumière réfléchie", seulement dans ce cas le capteur n'émet pas de lumière, mais mesure la lumière naturelle de l'environnement. Visuellement, ce mode de fonctionnement du capteur peut être déterminé par une LED bleue faiblement allumée. Les lectures du capteur varient de 0 (manque de lumière) à 100 (la lumière la plus brillante). Lors de la résolution de problèmes pratiques nécessitant de mesurer la lumière ambiante, il est recommandé de positionner le capteur de manière à ce qu'il reste aussi ouvert que possible et ne soit pas obstrué par d'autres pièces et structures.
Attachons le capteur de couleur à notre robot de la même manière que nous avons attaché le capteur tactile dans la leçon n°4 (Fig. 9). Connectez le capteur de couleur avec un câble au port "2" Brique EV3. Passons à la résolution de problèmes pratiques.
Riz. 9
Tâche 13 : il est nécessaire d'écrire un programme qui modifie la vitesse de notre robot en fonction de l'intensité de l'éclairage extérieur.
Pour résoudre ce problème, nous devons apprendre à obtenir la valeur actuelle du capteur. Et la palette jaune des blocs de programme, qui s'appelle "Capteurs".
6.3. Palette jaune - "Capteurs"
La palette jaune de l'environnement de programmation Lego mindstorms EV3 contient des blocs de programmation qui vous permettent de recevoir les lectures actuelles des capteurs pour un traitement ultérieur dans le programme. Contrairement, par exemple, au bloc de programme "Attente" Palette orange, blocs de programme à palette jaune transfèrent immédiatement le contrôle aux blocs de programme suivants.
Le nombre de blocs de programmation dans la palette jaune est différent dans les versions familiale et éducative de l'environnement de programmation. Dans la version domestique de l'environnement de programmation, il n'y a pas de blocs de programmation pour les capteurs qui ne sont pas inclus dans la version domestique du constructeur. Mais, si nécessaire, ils peuvent être connectés indépendamment.
La version éducative de l'environnement de programmation contient des blocs de programmation pour tous les capteurs pouvant être utilisés avec le constructeur Lego mindstorms EV3.
Revenons à la décision. Tâches #13 et voyez comment vous pouvez recevoir et traiter les lectures du capteur de couleur. Comme nous le savons déjà: la plage de valeurs du capteur de couleur en mode "Luminosité de la lumière ambiante" est dans la gamme de 0 avant de 100 . Le paramètre qui régule la puissance des moteurs a la même plage. Essayons d'ajuster la puissance des moteurs dans le bloc de programme en lisant le capteur de couleur "Pilotage".
Solution:
Riz. dix
Chargeons le programme résultant dans le robot et exécutons-le pour l'exécution. Le robot s'est-il déplacé lentement ? Allumons la lampe de poche LED et essayons de l'amener au capteur de couleur à différentes distances. Que se passe-t-il avec le robot ? Fermons le capteur de couleur avec la paume de la main - que s'est-il passé dans ce cas ? Écrivez les réponses à ces questions dans les commentaires de la leçon.
Tâche - Bonus
Chargez dans le robot et exécutez la tâche indiquée dans la figure ci-dessous. Répétez les expériences avec la lampe de poche LED. Partagez vos impressions dans les commentaires de la leçon.