Cours:RobotLegoEV3

De troyesGEII
Révision datée du 6 septembre 2021 à 09:27 par Bjacquot (discussion | contributions) (Prise en main)
Aller à : navigation, rechercher

Précision sur quelques logos dans les énoncés :

Todo.jpg Action à effectuer et comprendre sans besoin de compétences particulières
Question.jpg ' Problématique que vous devez résoudre


Vous devrez faire valider par un enseignant les différentes questions au fur et à mesure de votre avancement


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

LegoAnalyseSequence1.png

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

LegoCompteAppuis.png LegoCompteAppuisPause.png

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.

Question.jpg 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).

Question.jpg 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.

Question.jpg Codez !


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).

Question.jpg 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.

Question.jpg 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.

Question.jpg Ecrire un programme pour que le robot puisse suivre une ligne noire sur un sol blanc

Question.jpg 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é