Lego ev3 avance le long de la ligne. Commencez par les sciences. Capteur de couleur - Mode « Luminosité de la lumière ambiante »

Examinons l'algorithme le plus simple pour se déplacer le long de la ligne noire sur un capteur de couleur de l'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 à gauche et à droite et en avançant progressivement.

L'algorithme est très simple : si le capteur voit du noir, alors 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 ». Nous réglons le commutateur sur capteur de couleur - mesure - couleur. En bas, n'oubliez pas de changer "pas de couleur" en blanc. Vous devez également spécifier correctement tous les ports.

N'oubliez pas d'ajouter un cycle, le robot n'ira nulle part sans lui.

Vérifiez-le. 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 permettant de déplacer un robot le long d'une ligne noire à l'aide d'un seul capteur. Aujourd'hui, nous allons examiner le déplacement le long d'une 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 du blanc, nous avançons ;
Si l'un des capteurs voit du blanc et l'autre du noir, tournez-vous vers le noir ;
Si les deux capteurs voient du noir, nous sommes à une intersection (par exemple, nous nous arrêterons).

Pour mettre en œuvre l'algorithme, nous devrons surveiller les lectures des deux capteurs, et seulement après cela, mettre le robot en mouvement. Pour ce faire, nous utiliserons 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.
Connectons le capteur gauche au port n°1, celui de droite au port n°4.

Programme avec commentaires :

N'oubliez pas que nous démarrons les moteurs en mode « On » afin qu'ils fonctionnent aussi longtemps que nécessaire en fonction des lectures des capteurs. De plus, les gens oublient souvent la nécessité d'une boucle - 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. Envoyer une vidéo des tests du modèle

Le texte de l'ouvrage est affiché sans images ni formules.
La version complète de l'ouvrage est disponible dans l'onglet "Fichiers de travail" au format PDF

LEGO Mindstorms EV3

Étape préparatoire

Création et calibrage de programmes

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 modifié les aspects 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é et 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 concepteur de Mindstorms EV3 nous invite à entrer dans le monde fascinant des robots et à nous immerger dans l'environnement complexe des technologies de l'information.

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

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

    Écrivez des programmes pour que le robot se déplace en ligne droite à 30 cm, 1 m 30 cm et 2 m 17 cm.

    Constructeur Mindstorms EV3.

Pièces de construction - 601 pièces, servomoteur - 3 pièces, capteur de couleur, capteur de mouvement tactile, capteur infrarouge et capteur tactile. L'unité à microprocesseur EV3 est le cerveau du constructeur LEGO Mindstorms.

Un gros servomoteur est responsable du mouvement du robot, qui est connecté au micro-ordinateur EV3 et fait bouger le robot : avancer et reculer, tourner et parcourir un chemin donné. Ce servomoteur dispose d'un capteur de rotation intégré, qui permet de contrôler très précisément le mouvement et la vitesse du robot.

Vous pouvez faire effectuer une action au robot à l’aide du programme informatique EV3. Le programme se compose de différents blocs de contrôle. Nous travaillerons avec le bloc de mouvement.

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

    Étape préparatoire.

    Création d'un domaine technique.

Appliquons des marquages ​​sur le champ de travail du robot, à l'aide de ruban isolant et d'une règle, créons trois lignes de 30 cm de long - ligne verte, 1 m 15 cm - rouge et 2 m 17 cm - ligne noire.

    Calculs nécessaires :

Le diamètre de la roue du robot est de 5 cm 7 mm = 5,7 cm.

Un tour de roue du robot est égal à la longueur d'un cercle de 5,7 cm de diamètre. Nous trouvons la circonférence à l'aide de la formule.

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

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

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

Calculons le nombre de tours nécessaires pour conduire :

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

    1 m 30 cm = 130 cm

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 le programme en utilisant l'algorithme suivant :

Algorithme:

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

    Allumez les deux moteurs dans la direction indiquée.

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

    Éteignez les moteurs.

Nous chargeons le programme terminé dans l'unité de commande du robot. Nous plaçons le robot sur le terrain et appuyons sur le bouton de démarrage. EV3 traverse le champ et s'arrête au bout d'une ligne donnée. Mais pour obtenir une finition précise, vous devez effectuer un calibrage, car le mouvement est influencé par des facteurs externes.

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

    La surface du champ est lisse, donc une mauvaise adhérence des roues du robot au champ est possible.

    Lors du calcul du nombre de tours, nous avons dû arrondir les nombres et, par conséquent, en changeant les centièmes des tours, nous avons obtenu le résultat souhaité.

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, les spécifications techniques des compétitions de robotique indiquent toutes les dimensions du mouvement. 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.

Lors de la prochaine étape de connaissance du robot Lego Mindstorms EV3, vous devrez apprendre à programmer des virages sous un certain angle, des mouvements en cercle et des spirales.

Travailler avec le designer est très intéressant. En en apprenant davantage sur ses capacités, vous pouvez résoudre n'importe quel problème technique. 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 vers la robotique pour les niveaux 5-6." - M. : Binom. Laboratoire de connaissances, 2012 - 286 p.

    Filippov S. A. « Robotique pour enfants et parents » - « Science » 2010

    Ressources Internet

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

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

    http://www. lego com/éducation/

Ce problème est classique, idéologiquement simple, il peut être résolu plusieurs fois, et à chaque fois vous découvrirez quelque chose de nouveau.

Il existe de nombreuses approches pour résoudre le problème du 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 robot seront analysés sur la base du modèle pédagogique principal de Robot Educator.

Pour commencer, nous assemblons le modèle de base du robot éducatif Robot Educator ; pour cela vous pouvez utiliser les instructions du logiciel MINDSTORMS EV3.

De plus, par exemple, nous aurons 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 environnante. 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 par le rétroéclairage rouge du capteur est estimée. Les limites des lectures du capteur sont respectivement de 0 à 100 unités, pour « aucune réflexion » et « réflexion totale ».

A titre d'exemple, nous analyserons 3 exemples de programmes permettant de se déplacer le long d'une trajectoire noire représentée sur un fond plat et clair :

· Un capteur, avec régulateur P.

· Un capteur, avec régulateur PC.

· Deux capteurs.

Exemple 1. Un capteur, avec régulateur P.

Conception

Le capteur de lumière est installé sur un faisceau idéalement situé sur le modèle.


Algorithme

Le fonctionnement de l'algorithme est basé sur le fait que, en fonction du degré de chevauchement du faisceau d'éclairage du capteur avec une ligne noire, les lectures renvoyées par le capteur varient progressivement. 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 une valeur pour la vitesse de rotation du robot.


Puisque sur une trajectoire réelle, le capteur génère des valeurs sur toute sa plage de fonctionnement (0-100), 50 est sélectionné comme valeur vers laquelle le robot s'efforce. Dans ce cas, les valeurs transmises aux fonctions de rotation sont générées en. la plage -50 - 50, mais ces valeurs ne suffisent pas pour un virage serré de la trajectoire. Par conséquent, la plage devrait être élargie d'une fois et demie jusqu'à -75 - 75.

De ce fait, dans le programme, la fonction calculatrice est un simple contrôleur proportionnel. Dont la fonction ( (a-50)*1,5 ) dans la plage de fonctionnement du capteur de lumière, il génère des valeurs de rotation conformément au graphique :

Exemple de fonctionnement de l'algorithme

Exemple 2. Un capteur, avec régulateur PK.

Cet exemple est basé sur la même construction.

Vous avez probablement remarqué que dans l’exemple précédent le robot oscillait excessivement, ce qui ne lui permettait pas d’accélérer suffisamment. Nous allons maintenant essayer d'améliorer un peu cette situation.

À notre contrôleur proportionnel, nous ajoutons également un simple contrôleur cubique, qui ajoutera une certaine flexibilité à la fonction du 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 lorsqu'il s'en éloigne.

Dans cette leçon, nous continuerons à 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 du constructeur 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 "Luminosité lumière réfléchie"

Nous commençons donc à étudier le prochain mode de fonctionnement du capteur de couleur, appelé "Luminosité de la lumière réfléchie". Dans ce mode, le capteur de couleur dirige un flux de lumière rouge sur un objet ou une surface proche et mesure la quantité de lumière réfléchie. Les objets plus sombres absorberont le flux lumineux, le capteur affichera donc une valeur inférieure par rapport aux surfaces plus claires. La plage de valeurs du capteur est mesurée à partir de 0 (très sombre) à 100 (très lumineux). Ce mode de fonctionnement du capteur couleur est utilisé dans de nombreuses tâches robotiques, par exemple pour organiser le mouvement d'un robot le long d'un itinéraire donné le long d'une ligne noire imprimée sur un revêtement blanc. Lors de l'utilisation de ce mode, il est recommandé de positionner le capteur de manière à ce que la distance entre celui-ci et la surface étudiée soit d'environ 1 cm (Fig.1).

Riz. 1

Passons aux exercices pratiques : le capteur de couleur est déjà installé sur notre robot et est dirigé vers la surface du revêtement le long de laquelle 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" Module EV3. Chargeons l'environnement de programmation, connectons le robot à l'environnement et, pour prendre des mesures, utilisons le champ à bandes colorées que nous avons réalisé pour réaliser les tâches de la section 5.4 de la leçon n°5. Installons le robot de manière à ce que le capteur de couleur soit situé au dessus de la surface blanche. "Page Matériel" passer l'environnement de programmation en mode "Voir les ports" (Fig. 2, élément 1). Dans ce mode, nous pouvons observer toutes les connexions que nous avons établies. Sur Riz. 2 la connexion aux ports s'affiche "B" Et "C" deux gros moteurs, et au port "2" - capteur de couleur.

Riz. 2

Pour sélectionner une option d'affichage des lectures du capteur, cliquez sur l'image du capteur et sélectionnez le mode souhaité (Fig.3)

Riz. 3

Sur Riz. 2 pos. 2 nous voyons que la valeur du capteur de couleur lue au-dessus de la surface blanche est 84 . Dans votre cas, vous pouvez obtenir une valeur différente, car elle dépend du matériau de la surface et de l'éclairage à l'intérieur de la pièce : une partie de l'éclairage, 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 enregistrons ses lectures (Fig.4). Essayez de mesurer vous-même les valeurs de lumière réfléchie au-dessus des bandes de couleurs restantes. Quelles valeurs avez-vous obtenues ? Écrivez votre réponse dans les commentaires de cette leçon.

Riz. 4

Résolvons maintenant des problèmes pratiques.

Tâche n°11 : Il est nécessaire d'écrire un programme pour le mouvement d'un 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 en mode "Luminosité de la lumière réfléchie" est égal 6 . Alors, pour effectuer Problèmes n°11 notre robot doit se déplacer en ligne droite jusqu'à ce que la valeur souhaitée du capteur de couleur devienne inférieure 7 . Utilisons un bloc de programme déjà familier "Attente" Palette orange. Sélectionnons le mode de fonctionnement du bloc logiciel requis par les conditions problématiques "En attente" (Fig. 5).

Riz. 5

Il faut également configurer les paramètres du bloc programme "Attente". Paramètre "Type de comparaison" (Fig. 6, élément 1) peut prendre les valeurs suivantes : "Égal"=0, "Pas égal"=1, "Plus"=2, "Supérieur ou égal à"=3, "Moins"=4, "Inférieur ou égal à"=5. Dans notre cas, posons "Type de comparaison" dans le sens "Moins". Paramètre "Valeur seuil" mettre à égalité 7 (Fig.6, élément 2).

Riz. 6

Dès que la valeur du capteur de couleur est réglée sur une valeur inférieure 7 , ce qui se passera, c'est que lorsque le capteur de couleur sera situé au-dessus de la ligne noire, nous devrons éteindre les moteurs, arrêtant ainsi le robot. Problème résolu (Fig.7).

Riz. 7

Pour continuer nos leçons, nous devrons créer un nouveau champ, qui est un cercle noir d'un diamètre d'environ 1 mè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 au format A0 (841x1189 mm), coller ensemble deux feuilles de papier au format A1 (594x841 mm). Dans ce champ, tracez une ligne circulaire et peignez-la avec de l'encre noire. Vous pouvez également télécharger une mise en page de terrain réalisée au format Adobe Illustrator, puis la commander imprimée sur du tissu de bannière dans une imprimerie. La taille de la mise en page est de 1250x1250 mm. (Vous pouvez voir la mise en page téléchargée ci-dessous en l'ouvrant dans Adobe Acrobat Reader)

Ce domaine nous sera utile pour résoudre plusieurs problèmes classiques du cours de robotique.

Tâche n°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 de 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 de manière indépendante un programme qui résout le problème n°12.

Solution au problème n°12

  1. Commencer un mouvement direct (Fig. 8, élément 1);
  2. Attendez que le capteur de couleur franchisse la ligne noire (Fig. 8, point 2);
  3. Reculer de 2 tours (Fig. 8, point 3);
  4. Tournez à droite à 90 degrés (Fig. 8, point 4); la valeur de l'angle de rotation est calculée pour un robot assemblé selon les instructions small-robot-45544 (Fig. 8, point 5);
  5. Répétez les commandes 1 à 4 dans une boucle sans fin (Fig. 8, point 6).

Riz. 8

Pour faire fonctionner le capteur de couleur en mode "Luminosité de la lumière réfléchie" Nous y reviendrons plusieurs fois lorsque nous examinerons les algorithmes permettant de se déplacer le long de la ligne noire. Pour l’instant, regardons le troisième mode de fonctionnement du capteur couleur.

6.2. Capteur de couleur - Mode « Luminosité de la lumière ambiante »

Mode de fonctionnement du capteur de couleur "Luminosité de la lumière externe" très similaire au mode "Luminosité de la lumière réfléchie", seulement dans ce cas, le capteur n'émet pas de lumière, mais mesure l'éclairage naturel de l'environnement. Visuellement, ce mode de fonctionnement du capteur peut être déterminé par une LED bleue faiblement brillante. Les lectures du capteur varient de 0 (pas de lumière) jusqu'à 100 (la lumière la plus brillante). Lors de la résolution de problèmes pratiques nécessitant la mesure de l'éclairage externe, il est recommandé de positionner le capteur de manière à ce qu'il reste aussi ouvert que possible et ne soit pas bloqué 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" Module EV3. Passons à la résolution de problèmes pratiques.

Riz. 9

Tâche n°13 : nous devons écrire un programme qui modifie la vitesse de notre robot en fonction de l'intensité de l'éclairage externe.

Pour résoudre ce problème, nous devons savoir comment obtenir la valeur actuelle du capteur. Et la palette jaune de blocs de programme, appelée "Capteurs".

6.3. Palette jaune - "Capteurs"

La palette jaune de l'environnement de programmation Lego mindstorms EV3 contient des blocs logiciels qui vous permettent d'obtenir les lectures actuelles du capteur pour un traitement ultérieur dans le programme. Contrairement par exemple à un bloc de programme "Attente" Dans la palette Orange, les blocs de programme de la palette Jaune transfèrent immédiatement le contrôle aux blocs de programme suivants.

Le nombre de blocs de programme de la palette Jaune diffère selon les versions domestique et éducative de l'environnement de programmation. La version domestique de l'environnement de programmation ne dispose pas de blocs logiciels pour les capteurs qui ne sont pas inclus dans la version domestique du concepteur. Mais si nécessaire, vous pouvez les connecter vous-même.

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 solution Problèmes n°13 et voyons 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 externe" est dans la plage de 0 à 100 . Le paramètre qui régule la puissance du moteur a la même plage. Essayons d'utiliser la lecture du capteur de couleur pour réguler la puissance des moteurs dans le bloc logiciel "Pilotage".

Solution:


Riz. 10

Chargeons le programme résultant dans le robot et exécutons-le pour l'exécution. Le robot a-t-il roulé 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 ? Couvrons le capteur de couleur avec notre paume - que s'est-il passé dans ce cas ? Écrivez les réponses à ces questions dans les commentaires de la leçon.

Défi - Bonus

Chargez-le dans le robot et exécutez la tâche indiquée dans la figure ci-dessous. Répétez les expériences avec une lampe de poche LED. Partagez vos impressions dans les commentaires de la leçon.

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, on envisageait une méthode où le capteur de lumière semblait surveiller son bord gauche ou droit : dès que le robot entrait dans la partie blanche du champ, le contrôleur renvoyait le robot jusqu'à la frontière, le capteur a commencé à s'enfoncer plus profondément dans la ligne noire - le régulateur l'a redressé.
Bien que l'image ci-dessus soit présentée pour un régulateur à relais, le principe général de mouvement d'un régulateur proportionnel (régulateur P) 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 un autre, en plus des virages, un mouvement vers l'avant. a été introduit.
Afin de permettre au robot d'avancer dans certaines zones, une zone étroite a été allouée dans la plage de valeurs produites par le capteur de lumière, que l'on pourrait classiquement appeler « le capteur est en bordure de la ligne ».
Cette approche présente un léger inconvénient : si le robot « suit » la limite gauche de la ligne, alors dans les virages à droite, il ne détecte pas immédiatement la courbure de la trajectoire et, par conséquent, passe plus de temps à rechercher la ligne et à tourner. De plus, on peut affirmer avec certitude que plus le virage est serré, plus cette recherche est longue.
La figure suivante montre que si le capteur n'était pas du côté gauche de la bordure, mais du côté droit, il aurait déjà détecté la courbure de la trajectoire et commencerait à effectuer des manœuvres de virage.

Par conséquent, c'est une bonne idée d'équiper le robot de deux capteurs à la fois, situés sur les côtés opposés de la ligne et, par conséquent, aideraient le robot à réagir plus rapidement aux changements de direction de mouvement.
Nous devons maintenant déterminer comment ce changement de conception affectera le programme. Pour plus de simplicité, il faut repartir avec le contrôleur de relais le plus simple et donc, tout d'abord, on s'intéresse aux positions possibles des capteurs par rapport à la ligne :

En fait, une autre condition acceptable peut être identifiée - sur des itinéraires complexes, ce sera l'intersection d'une intersection ou une sorte d'épaississement sur le chemin.
Les autres positions des capteurs ne seront pas prises en compte, car soit elles sont dérivées de celles présentées ci-dessus, soit ce sont les positions du robot lorsqu'il aura quitté la ligne et ne pourra plus y revenir grâce aux informations des capteurs. . En conséquence, l’ensemble des dispositions ci-dessus peuvent être ramenées à la classification suivante :
  • le capteur gauche, comme celui de droite, est au-dessus d'une surface claire
  • capteur gauche sur une surface claire, capteur droit sur une surface sombre
  • capteur gauche sur surface sombre, capteur droit sur surface claire
  • les deux capteurs sont situés au-dessus d'une surface sombre
Si à un moment donné 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 se trouve entre les capteurs, donc le robot doit 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 surface blanche. sombre, alors le robot a poussé 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 d'une surface sombre et que celui de droite est toujours. au-dessus d'une surface claire, alors pour aligner, le robot doit tourner à gauche. Si les deux capteurs sont au-dessus d'une surface sombre, alors en général, le robot continue de se déplacer 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 devez commencer par choisir quel capteur sera interrogé en premier. Cela n'a pas vraiment d'importance, alors laissez tomber. Il faut déterminer s'il se trouve au-dessus d'une surface claire ou sombre :
Cette action ne permet pas encore de dire dans quelle direction le robot doit aller. Mais il divisera les états listés ci-dessus en deux groupes : (I, II) pour la branche supérieure et (III, IV) pour la branche inférieure. Chaque groupe a désormais deux états, vous devez donc en choisir 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 des actions à 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 sur la lumière », la branche supérieure - « gauche sur la lumière, droite sur l'obscurité » :
La branche inférieure de la condition principale est responsable d'un autre groupe de conditions III et IV. Les deux états diffèrent également par le niveau de lumière détecté par le capteur droit. Cela signifie qu'il déterminera le choix de chacun d'eux :
Les deux branches résultantes sont remplies de blocs de mouvement. La branche supérieure est responsable de l'état « gauche dans l'obscurité, droite dans la lumière », et la branche inférieure est responsable des « deux capteurs dans l'obscurité ».
Il convient de noter que cette conception détermine uniquement la manière d'allumer les moteurs en fonction des lectures des capteurs à un certain endroit du champ ; naturellement, après un moment, le programme doit vérifier si les lectures ont changé afin d'ajuster le comportement des moteurs en conséquence, et après un moment encore, encore, etc. .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 de déplacement assez élevée du robot 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, ainsi que la méthode optimale de freinage dans les états II et III - plus les virages sur la piste sont raides, plus le freinage doit être « dur » - la vitesse doit être réduite plus rapidement, et vice versa - avec des virages en douceur, il est tout à fait possible d'appliquer un freinage en coupant l'énergie ou même en en réduisant légèrement la vitesse.

Il convient également de dire quelques mots distincts concernant l'emplacement des capteurs sur le robot. Bien évidemment, les mêmes recommandations pour l'emplacement de ces deux capteurs par rapport aux roues s'appliqueront comme pour un capteur, seul le sommet du triangle est pris comme milieu du segment reliant les deux capteurs. La distance entre les capteurs elle-même doit également être choisie à partir 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, il faudra donc effectuer des virages plus « durs » et réduire la vitesse sur les sections droites.



Chargement...Chargement...