Cours:RobotLegoEV3 : Différence entre versions
(→Suppression des fichiers) |
|||
Ligne 193 : | Ligne 193 : | ||
*[[Media:File-manager.pdf.uf2.zip]] | *[[Media:File-manager.pdf.uf2.zip]] | ||
+ | *http://www.legoengineering.com/ev3-gone-wrong/ |
Version du 1 septembre 2022 à 09:02
Précision sur quelques logos dans les énoncés :
Action à effectuer et comprendre sans besoin de compétences particulières | |
' | Problématique que vous devez résoudre |
https://makecode.mindstorms.com/fll
Vous devrez faire valider par un enseignant les différentes questions au fur et à mesure de votre avancement
Sommaire
TP 1
Prise en main
Découverte
- utiliser la led
- allumer et éteindre la led
- changer sa couleur
- différence “on start” “forever” ( "au démarrage" "toujours")
Exercices
- au démarrage, on allume successivement la led en rouge puis orange et on laisse l’orange allumée
- au démarrage, on allume en vert puis éteint, puis en rouge, et on passe en rouge tout le temps
- au démarrage, on fait un flash vert, puis on fait clignoter la led en rouge (sans utiliser red flash !)
- faire 3 fois une séquence rouge/orange, puis allumer la led verte
- faire 3 fois une séquence rouge/orange, puis faire clignoter en vert (sans green flash !)
Analyse de code
Gestion d'un événement
Entrées
- attendre un événement
- exécuter une action sur un événement
Exercices
- au démarrage on allume la led en rouge, elle doit s’éteindre à l’appui sur la touche enter
- la led est éteinte, on allume en vert sur appui du bouton Up, on éteint si appui sur Down
- led clignote en vert 3x au démarrage, chaque bouton (haut, bas, gauche, droite) change la couleur (rouge, vert, orange, éteint)
- led clignote 3x orange/rouge au démarrage, puis s’allumer en vert à l’appui sur le bouton et s’éteint lorsqu’on le relâche
Utilisation des variables
principe
A faire
- un bouton pour augmenter
- un pour diminuer
- un pour remettre à zéro la variable
Exercices complets
Exercice perceuse
2 moteurs branchés sur les sorties A (medium motor) et B(large motor)
- le moteur A permet de faire tourner le foret de la perceuse
- le moteur B permet de faire monter et descendre le foret
2 capteurs positionnés sur les entrées 1 et 4 permettent respectivement de savoir si la perceuse est en haut (entrée 1) ou en bas (entrée 4). Lorsque la perceuse est entre ces 2 positions nous n’avons pas d’information sur sa position.
Le fonctionnement devra être le suivant :
- à l’initialisation de la machine, on fera remonter la perceuse jusqu’à ce qu’elle soit arrivée en haut.
- on peut alors utiliser la machine de la façon suivant :
- il faut appuyer sur le bouton “enter” pour lancer un cycle de perçage.
- on met en route la rotation du foret
- on descend la perceuse jusqu’à atteindre la position basse
- on remonte alors la perceuse jusqu’à la position haute
- on arrête le foret
- on peut alors recommencer un cycle en appuyant de nouveau sur “enter”
Essayer ensuite d’ajouter les fonctionnalités suivantes :
- ajout d’un arrêt d’urgence (la machine s’arrête)
- utiliser un capteur ultrason pour avoir une grande vitesse loin et petite vitesse proche de la pièce
Exercices supplémentaires
- arrêter robot contact avec obstacle, remettre en route si plus d’obstacle
- suivi de ligne (donner cahier des charges, laisser chercher, indiquer méthode debug avec led)
- système industriel :
- bp pour mettre en route/arrêter moteur => drapeau
- bp pour mettre en route/arrêter lampe
- bp aru avec autre bp pour acquitter aru
TP 2
Déplacement du robot
Nous allons dans un premier juste utiliser les fonctions pour utiliser les moteurs du robot.
Dans un 1er temps, on vous demander juste de faire avancer le robot en ligne droite sur une distance d'environ 20cm, puis de reculer de 40cm.
Ce mouvement est effectué une seule fois.
Le mouvement commencera après l'appui de la touche entrée sur le robot.
Ecrire un programme répondant à ce cahier des charges.
On souhaite maintenant que le robot se déplace de tel sorte que sa trajectoire représente un carré de côté 20cm.
Lorsque le robot aura terminé, il devra tourner en rond sur place et s'arrêtera lorsqu'on appuie sur un bouton (au choix).
Ecrire un tel programme, un carré approximatif sera suffisant
Détection d'obstacles
On souhaite désormais concevoir un robot capable d'éviter les obstacles. Pour cela on utilisera un "touch sensor".
Le comportement du robot devra être le suivant :
- s'il n'y a pas d'obstacle
- le robot va en ligne droite
- sinon (par conséquent s'il y a un obstacle)
- le robot recule
- puis le robot tourne sur place de 90°
On comptera le nombre d'obstacles rencontrés, et après 5 obstacles, le robot devra s'arrêter.
Plutôt que d'utiliser un capteur de contact, on pourra utiliser un télémètre ultrason (qui nous donne la distance séparant le robot de l'obstacle).
Vous allez utiliser ce capteur de la façon suivante :
- si la distance à l'obstacle est supérieur à 40cm, le robot roule en ligne droite à vitesse maximale
- si il y a un obstacle dans la plage 20cm à 40cm, le robot continue en ligne droite à vitesse réduite (50%)
- s'il y a un obstacle à une distance inférieure à 20cm, le robot s'arrête, tourne sur place de 90° et on reprend le fonctionnement indiqué.
- si le capteur de contact est activé, le robot s'arrête.
Plusieurs capteurs
On souhaite maintenant utiliser 2 capteurs sur le robot, le capteur de couleur, ainsi que le capteur de contact.
Ecrire un programme tel que le robot avance en ligne droite, s'arrête lorsqu'il touche un obstacle, et fait un 1/2 tour à chaque fois qu'il rencontre une ligne noire.
Suivi de ligne
Dans cette partie le robot devra s'arrêter dès qu'il rencontre un obstacle. On pourra éventuellement utiliser un bouton pour le remettre en route.
Ecrire un programme pour que le robot puisse suivre une ligne noire sur un sol blanc
Vous avez à disposition une ligne épaisse avec plusieurs couleurs, essayer d'améliorer votre programme de suivi de ligne en utilisant toutes les couleurs à disposition.
Challenge
Le challenge consiste à utiliser tous les capteurs utilisés dans les TPs précédents. Il s'agit de récupérer un objet prédéfini et de le mettre dans une boîte en bord de table. Puis vient la navigation qui demande de l'imagination de votre part pour retrouver un cercle sur la table.
Le challenge se réalise de manière individuelle : il n'y a qu'un seul robot à la fois sur la table, donc pas de risque de heurter un autre robot. Pour faciliter votre réflexion, on vous propose de couper le challenge en deux parties.
Première partie
- Le robot est mis en position de départ.
- Il faut appuyer sur un bouton pour démarrer le programme.
- Suivi de ligne
- On récupère l'objet pendant le trajet le long de la ligne (on peut bouger un peut l'objet le long de la ligne => utilisation du télémètre).
- On continue de suivre la ligne jusqu'à la fin (ligne rouge)
- on tourne, on avance tout droit pour récupérer la ligne noire en entonnoir
- on avance jusqu'au bord de la table (capteur de contact).
- Indication : regardez bien comment est positionnée la plaque qui sert au contact
- on fait tomber l'objet dans la boite.
Deuxième partie
Maintenant, il vous faut trouver par vous même une méthode pour réaliser :
- le robot rentre se coucher dans le cercle bleu.
- terminé