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

Voici comment une personne voit la ligne :

Voici comment le robot le voit :


Nous utiliserons cette fonctionnalité lors de la conception et de la programmation d’un robot pour la catégorie compétition « Trajectoire ».

Il existe de nombreuses façons d’apprendre à un robot à voir une ligne et à la suivre. Il existe des programmes complexes et des programmes très simples.

Je veux parler d'une méthode de programmation que même les enfants de la 2e à la 3e année peuvent maîtriser. A cet âge, il leur est beaucoup plus facile d'assembler des structures selon des instructions, et programmer un robot est pour eux tâche difficile. Mais cette méthode permettra à l'enfant de programmer le robot sur n'importe quel itinéraire de la piste en 15 à 30 minutes (en tenant compte des tests étape par étape et de l'ajustement de certaines caractéristiques de la trajectoire).

Cette méthode a été testée lors de concours de robotique municipaux et régionaux dans la région de Surgut et dans l'Okrug-Yugra autonome de Khanty-Mansi et a valu à notre école les premières places. Là, j'ai acquis la conviction que ce sujet est très pertinent pour de nombreuses équipes.

Eh bien, commençons.

Lors de la préparation de ce type de concours, la programmation n'est qu'une partie de la solution à la tâche. Vous devez commencer par concevoir un robot pour un itinéraire spécifique. Dans le prochain article, je vous expliquerai comment procéder. Eh bien, comme les mouvements le long d’une ligne se produisent très souvent, je vais commencer par la programmation.

Considérons l'option d'un robot doté de deux capteurs de lumière, car elle est plus compréhensible pour les élèves du primaire.

Les capteurs de lumière sont connectés aux ports 2 et 3. Moteurs vers les ports B et C.
Les capteurs sont placés aux bords de la ligne (essayez d’expérimenter en plaçant les capteurs à différentes distances les uns des autres et à différentes hauteurs).
Point important. Pour meilleur travail Pour un tel schéma, il est conseillé de sélectionner une paire de capteurs en fonction des paramètres. Dans le cas contraire, il faudra introduire un bloc d'ajustement des valeurs des capteurs.
Installation des capteurs sur le châssis selon schéma classique(triangle), à ​​peu près comme sur la photo.

Le programme sera composé d'un petit nombre de blocs :


1. Deux unités de capteur de lumière ;
2. Quatre blocs de « Mathématiques » ;
3. Deux blocs moteurs.

Deux moteurs sont utilisés pour contrôler le robot. La puissance de chacun est de 100 unités. Pour notre schéma, nous prendrons la valeur moyenne de la puissance du moteur égale à 50. C'est-à-dire que la vitesse moyenne lors d'un déplacement en ligne droite sera égale à 50 unités. En s'écartant du mouvement en ligne droite, la puissance des moteurs augmentera ou diminuera proportionnellement, en fonction de l'angle de déviation.

Voyons maintenant comment connecter tous les blocs, configurer le programme et ce qui s'y passera.
Configurons deux capteurs de lumière et attribuons-leur les ports 2 et 3.
Prenez le bloc mathématique et sélectionnez « Soustraction ».
Connectons les capteurs de lumière des sorties "Intensité" par des bus du bloc mathématique aux entrées "A" et "B".
Si les capteurs du robot sont installés symétriquement par rapport au centre de la ligne de voie, alors les valeurs des deux capteurs seront égales. Après soustraction, nous obtenons la valeur – 0.
Le prochain bloc de mathématiques sera utilisé comme coefficient et vous devrez y définir « Multiplication ».
Pour calculer le coefficient, vous devez mesurer les niveaux « blanc » et « noir » à l'aide du bloc NXT.
Supposons : blanc -70, noir -50.
Ensuite, nous calculons : 70-50 = 20 (la différence entre le blanc et le noir), 50/20 = 2,5 (nous fixons la valeur de puissance moyenne lors d'un déplacement en ligne droite dans les blocs mathématiques à 50. Cette valeur plus la puissance ajoutée lors du réglage, le mouvement doit être égal à 100)
Essayez de définir la valeur sur 2,5 à l'entrée « A », puis sélectionnez-la avec plus de précision.
À l’entrée « B » du bloc mathématique « Multiplication », connectez la sortie « Résultat » du bloc mathématique précédent « Soustraction ».
Vient ensuite une paire - un bloc mathématique (addition) et le moteur B.
Mise en place d'un bloc mathématique :
L'entrée « A » est réglée sur 50 (la moitié de la puissance du moteur).
La sortie du bloc « Résultat » est reliée par un bus à l'entrée « Puissance » du moteur B.
La paire suivante est un bloc mathématique (soustraction) et un moteur C.
Mise en place d'un bloc mathématique :
L’entrée « A » est réglée sur 50.
L'entrée « B » est reliée par un bus à la sortie « Résultat » du bloc mathématique « Multiplication ».
La sortie du bloc « Résultat » est reliée par un bus à l'entrée « Puissance » du moteur C.

À la suite de toutes ces actions, vous obtiendrez le programme suivant :

Puisque tout cela fonctionnera dans un cycle, on ajoute « Cycle », on le sélectionne et on déplace le tout vers « Cycle ».

Essayons maintenant de comprendre comment fonctionnera le programme et comment le configurer.


Pendant que le robot se déplace en ligne droite, les valeurs des capteurs coïncident, ce qui signifie que la sortie du bloc « Soustraction » sera la valeur 0. La sortie du bloc « Multiplication » donne également la valeur 0. Cette valeur est fournie en parallèle à la paire de commande du moteur. Puisque ces blocs sont réglés à 50, l’ajout ou la soustraction de 0 n’affecte pas la puissance des moteurs. Les deux moteurs fonctionnent à la même puissance de 50 et le robot roule en ligne droite.

Supposons que la piste fasse un virage ou que le robot s'écarte d'une ligne droite. Que va-t-il se passer ?

La figure montre que l'éclairage du capteur connecté au port 2 (ci-après dénommés capteurs 2 et 3) augmente à mesure qu'il se déplace sur le champ blanc, et que l'éclairage du capteur 3 diminue. Supposons que les valeurs de ces capteurs deviennent : capteur 2 – 55 unités et capteur 3 – 45 unités.
Le bloc « Soustraction » déterminera la différence entre les valeurs de deux capteurs (10) et la transmettra au bloc de correction (en multipliant par un coefficient (10*2,5=25)) puis aux blocs de contrôle.
moteurs.
Dans le bloc mathématique (Ajout) de la commande moteur B à la valeur de vitesse moyenne de 50
25 seront ajoutés et une valeur de puissance de 75 sera fournie au moteur B.
Dans le bloc mathématique (Soustraction) pour contrôler le moteur C, 25 seront soustraits de la valeur de vitesse moyenne de 50 et une valeur de puissance de 25 sera fournie au moteur C.
De cette façon, l’écart par rapport à la ligne droite sera corrigé.

Si la piste tourne brusquement sur le côté, le capteur 2 s'avère blanc et le capteur 3 est noir. Les valeurs d'éclairement de ces capteurs deviennent : capteur 2 - 70 unités et capteur 3 - 50 unités.
Le bloc « Soustraction » déterminera la différence entre les valeurs de deux capteurs (20) et la transmettra au bloc de correction (20*2,5=50) puis aux unités de commande du moteur.
Désormais, dans le bloc mathématique (addition) de la commande du moteur B, une valeur de puissance de 50 +50 = 100 sera fournie au moteur B.
Dans le bloc mathématique (Soustraction) de la commande du moteur C, une valeur de puissance de 50 – 50 = 0 sera fournie au moteur C.
Et le robot fera un virage serré.

Sur les champs blancs et noirs, le robot doit rouler en ligne droite. Si cela ne se produit pas, essayez de sélectionner des capteurs avec les mêmes valeurs.

Créons maintenant un nouveau bloc et utilisons-le pour déplacer le robot le long de n'importe quel itinéraire.
Sélectionnez le cycle, puis dans le menu « Edition » sélectionnez la commande « Créer mon bloc ».

Dans la boîte de dialogue « Block Designer », donnez un nom à notre bloc, par exemple « Go », sélectionnez une icône pour le bloc et cliquez sur « TERMINÉ ».

Nous disposons désormais d'un bloc qui peut être utilisé dans les cas où nous devons nous déplacer le long d'une ligne.

L’un des mouvements de base de la construction légère consiste à suivre la ligne noire.

Théorie générale et exemples spécifiques La création du programme est décrite sur le site wroboto.ru

Je vais décrire comment nous implémentons cela dans l'environnement EV3, car il existe des différences.

La première chose que le robot doit savoir est la signification du « point idéal » situé à la frontière du noir et du blanc.

L'emplacement du point rouge sur la figure correspond exactement à cette position.

L'option de calcul idéale consiste à mesurer les valeurs en noir et blanc et à prendre la moyenne arithmétique.

Vous pouvez le faire manuellement. Mais les inconvénients sont immédiatement visibles : même sur une courte période, l'éclairage peut changer et la valeur calculée sera incorrecte.

Vous pouvez donc demander à un robot de le faire.

Au cours des expériences, nous avons découvert qu'il n'est pas nécessaire de mesurer à la fois le noir et le blanc. Seul le blanc peut être mesuré. Et la valeur idéale du point est calculée comme la valeur du blanc divisée par 1,2 (1,15), en fonction de la largeur de la ligne noire et de la vitesse du robot.

La valeur calculée doit être écrite dans une variable pour pouvoir y accéder ultérieurement.

Calcul du « point idéal »

Le prochain paramètre impliqué dans le mouvement est le coefficient de rotation. Plus il est grand, plus le robot réagit brusquement aux changements d'éclairage. Mais trop grande importance fera vaciller le robot. La valeur est sélectionnée expérimentalement individuellement pour chaque conception de robot.

Le dernier paramètre est la puissance de base des moteurs. Cela affecte la vitesse du robot. L'augmentation de la vitesse de déplacement entraîne une augmentation du temps de réponse du robot aux changements d'éclairage, ce qui peut conduire à un écart de trajectoire. La valeur est également sélectionnée expérimentalement.

Pour plus de commodité, ces paramètres peuvent également être écrits dans des variables.

Rapport de rotation et puissance de base

La logique du déplacement le long de la ligne noire est la suivante : l'écart par rapport au point idéal est mesuré. Plus il est grand, plus le robot doit s'efforcer d'y revenir.

Pour ce faire, nous calculons deux nombres - la valeur de puissance de chacun des moteurs B et C séparément.

Sous forme de formule, cela ressemble à ceci :

Où Isens est la valeur des lectures du capteur de lumière.

Enfin, l'implémentation dans EV3. Il est plus pratique de le disposer sous la forme d’un bloc séparé.

Implémentation de l'algorithme

C'est exactement l'algorithme qui a été implémenté dans le robot pour la catégorie intermédiaire du WRO 2015.



Afin 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 limite 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 le blanc du noir - que nous utiliserons pour calculer la vitesse de déplacement.

Tout d’abord, introduisons le concept de « point de trajectoire idéal ».

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

Le point idéal est un point conventionnel approximativement au milieu des couleurs blanche et noire, à la suite duquel le robot se déplacera le long de la ligne noire.

Ici, la localisation du point est fondamentale – entre le blanc et le noir. Il ne sera pas possible de le définir exactement sur le blanc ou le noir pour des raisons mathématiques qui apparaîtront clairement 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. S'il y a un écart dans une direction, le robot doit revenir à ce point.

Composons description mathématique du problème.

Donnée initiale.

Point idéal.

Lectures actuelles 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 s'est écarté de la ligne noire vers la ligne blanche.

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

Dans une situation où le robot entre dans la ligne noire, c’est l’inverse.

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

Mais créer 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 uniquement au régulateur P, qui répond de manière adéquate aux écarts par rapport à la ligne noire.

En langage mathématique cela s’écrira ainsi :

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

Base – 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.

Iid – point idéal calculé.

k – coefficient de proportionnalité, sélectionné expérimentalement.

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

Algorithmes de contrôle d'un robot LEGO mobile. Mouvement de ligne avec deux capteurs de lumière

Enseignant en formation complémentaire

Kazakova Lyubov Alexandrovna


Mouvement le long de la ligne

  • Deux capteurs de lumière
  • Contrôleur proportionnel (contrôleur 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, alors la puissance du moteur gauche (par exemple B) diminue ou s'arrête
  • Si le capteur de lumière gauche touche la ligne noire, alors la puissance d'un autre des moteurs (par exemple C) diminue (revient à la ligne), diminue ou s'arrête
  • Si les deux capteurs sont en blanc ou en noir, un mouvement linéaire se produit

Le mouvement s'organise en changeant la puissance d'un des moteurs


Exemple de programme pour rouler sur une ligne noire sans contrôleur P

Le mouvement s'organise en changeant l'angle de rotation


  • Un contrôleur proportionnel (contrôleur P) permet d'ajuster le comportement du robot en fonction de la différence entre son comportement et celui souhaité.
  • Plus le robot s’écarte du but, plus il doit fournir d’efforts 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)
  • Maintenir la position du manipulateur
  • Mouvement de ligne (capteur de lumière)
  • Mouvement le long du mur (capteur de distance)

Mouvement de ligne avec un capteur

  • Le but est de longer la frontière « blanc-noir »
  • Une personne peut distinguer la frontière entre le blanc et le noir. Un robot ne le peut pas.
  • L'objectif du robot est en gris

Conduire aux intersections

Lors de l'utilisation de deux capteurs de lumière, il est possible d'organiser le mouvement le long d'itinéraires plus complexes



Algorithme de conduite sur une autoroute avec intersections

  • Les deux capteurs sont en blanc : le robot roule tout droit (les deux moteurs tournent avec la même puissance)
  • Si le capteur de lumière droit touche la ligne noire et celui de gauche touche la ligne blanche, alors un virage à droite se produit.
  • Si le capteur de lumière gauche touche la ligne noire et que celui de droite touche la ligne blanche, alors il tourne à gauche.
  • Si les deux capteurs sont noirs, un mouvement linéaire se produit. Vous pouvez compter les intersections ou effectuer n'importe quelle action


Principe de fonctionnement du régulateur P

Position du capteur

O=O1-O2


Algorithme de déplacement le long de la ligne noire avec un contrôleur proportionnel

HC = K*(C-T)

  • Ts - valeurs cibles (prendre les lectures du capteur de lumière sur le blanc et le noir, calculer la moyenne)
  • T - valeur actuelle - obtenue à partir du capteur
  • K - coefficient de sensibilité. Plus il y en a, plus la sensibilité est élevée


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 contrôleur à relais, le principe général de mouvement d'un 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é présenté.
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 vers la gauche. Si les deux capteurs sont au-dessus d'une surface sombre, alors. cas général, le robot continue à 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 il détermine simplement comment 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. Par conséquent, il doit être placé dans une boucle qui fournira cette vérification répétée :

Tellement jolie programme simple fournira une vitesse de déplacement assez élevée du robot le long de la ligne sans voler au-delà de ses limites, s'il est configuré correctement vitesse maximum lors d'un déplacement dans les états I et IV, et également définir la meilleure façon freinage dans les états II et III - plus les virages sur autoroute 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 de freiner en coupant l'alimentation ou même en réduisant complètement 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.



 


Lire:



Cheesecakes au fromage cottage dans une poêle - recettes classiques de cheesecakes moelleux Gâteaux au fromage à partir de 500 g de fromage cottage

Cheesecakes au fromage cottage dans une poêle - recettes classiques de cheesecakes moelleux Gâteaux au fromage à partir de 500 g de fromage cottage

Ingrédients : (4 portions) 500 gr. de fromage cottage 1/2 tasse de farine 1 œuf 3 c. l. sucre 50 gr. raisins secs (facultatif) pincée de sel bicarbonate de soude...

Salade de perles noires aux pruneaux Salade de perles noires aux pruneaux

salade

Bonne journée à tous ceux qui recherchent de la variété dans leur alimentation quotidienne. Si vous en avez marre des plats monotones et que vous souhaitez faire plaisir...

Recettes de lecho à la pâte de tomate

Recettes de lecho à la pâte de tomate

Lecho très savoureux à la pâte de tomate, comme le lecho bulgare, préparé pour l'hiver. C'est ainsi que nous transformons (et mangeons !) 1 sac de poivrons dans notre famille. Et qui devrais-je...

Aphorismes et citations sur le suicide

Aphorismes et citations sur le suicide

Voici des citations, des aphorismes et des paroles pleines d'esprit sur le suicide. Il s'agit d'une sélection assez intéressante et extraordinaire de véritables « perles...

image de flux RSS