Cours:RobotLegoEV3 : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(principe)
 
(12 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 7 : Ligne 7 :
 
|}
 
|}
  
 +
https://makecode.mindstorms.com/
  
 
  {{Rouge|Vous devrez faire valider par un enseignant les différentes questions au fur et à mesure de votre avancement}}
 
  {{Rouge|Vous devrez faire valider par un enseignant les différentes questions au fur et à mesure de votre avancement}}
  
 +
{{Rouge|De préférence utiliser Google Chrome}}
  
=TP 1=
+
{{Rouge|Ne pas activer la traduction des pages sur le navigateur !!}}
 +
 
 +
 
 +
 
 +
=Partie 1=
  
 
==Prise en main==
 
==Prise en main==
Ligne 28 : Ligne 34 :
 
*faire 3 fois une séquence rouge/orange, puis allumer la led verte
 
*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 !)
 
*faire 3 fois une séquence rouge/orange, puis faire clignoter en vert (sans green flash !)
 +
 +
 +
===Analyse de code===
 +
 +
[[Image:legoAnalyseSequence1.png|300px]]
  
 
==Gestion d'un événement==
 
==Gestion d'un événement==
Ligne 59 : Ligne 70 :
 
*un pour remettre à zéro la variable
 
*un pour remettre à zéro la variable
  
==Utilisation des capteurs==
+
==Exercices complets==
 +
 
 +
===Exercice feux de circulation===
 +
 
 +
Vous devez gérer un croisement de routes avec passage piéton :
 +
*utiliser la led pour le feu tricolore
 +
*utiliser l'écran lcd pour le passage des piétons
 +
*penser à éviter les accidents !
 +
 
 +
 
 +
===Exercices robot===
  
=TP 2=
+
*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
 +
 
 +
<br><br><br><br>
 +
 
 +
=Partie 2=
  
 
==Déplacement du robot==
 
==Déplacement du robot==
Ligne 124 : Ligne 154 :
  
 
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.
 
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.
 
*Le robot est mis en position de départ.
 
** Il faut appuyer sur un bouton pour démarrer le programme.
 
** Il faut appuyer sur un bouton pour démarrer le programme.
Ligne 138 : Ligne 168 :
 
*on fait tomber l'objet dans la boite.
 
*on fait tomber l'objet dans la boite.
  
 +
=Tweak=
  
===Deuxième partie===
+
*Suppression des fichiers
Maintenant, il vous faut trouver par vous même une méthode pour réaliser :
+
**Télécharger le fichier File-manager.pdf.uf2 sur le robot : [[Media:File-manager.pdf.uf2.zip]]
 
+
**Lancer le programme correspondant et sélectionner les fichiers à supprimer
*le robot rentre se coucher dans le cercle bleu.
+
*Firmware
 +
**Démarrer en mode maj de firmware (touches droite+milieu) : http://www.legoengineering.com/ev3-gone-wrong/
 +
**Sur un pc windows : https://ev3manager.education.lego.com/
  
*terminé
+
=divers=
 +
*https://makecode.mindstorms.com/fll

Version actuelle datée du 5 septembre 2022 à 14:41

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

https://makecode.mindstorms.com/

Vous devrez faire valider par un enseignant les différentes questions au fur et à mesure de votre avancement
De préférence utiliser Google Chrome
Ne pas activer la traduction des pages sur le navigateur !!


Partie 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 feux de circulation

Vous devez gérer un croisement de routes avec passage piéton :

  • utiliser la led pour le feu tricolore
  • utiliser l'écran lcd pour le passage des piétons
  • penser à éviter les accidents !


Exercices robot

  • 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





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

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

Tweak

divers