LEGO® MINDSTORMS®
Il s'agit du programme qui te permet de créer et de transmettre tes instructions au robot.
Lancement du programme
Pour le lancer, soit tu vas sur l'application launcher de ton mac.
Soit tu utilises le champs de recherche Spotlight, en cliquant sur commande + barre d'espace.
et ensuite tu tapes "MINDSTORMS", il devrait rapidement te proposer le programme LEGO® MINDSTORMS®,
avec l'icone suivante:
Clique dessus pour lancer le programme.
L'interface
Une fois le programme lancé tu te retrouves avec cette interface tu peux choisir entre faire un des 5
modèles proposés, reprendre un des projets que tu as en cours ou cliquer en bas à droite sur "code"
pour débuter un nouveau projet.
Ensuite on te demande si tu veux coder en bloc de code ou en python. Le python cela sera pour plus
tard, donc tu choisis "bloc de code". Et tu peux nommer ton projet.
Tu te trouves maintenant dans l'interface de développement avec à gauche tous les différents blocs de
code triés par catégorie.
Tu peux changer le nom du projet en haut à gauche.
En haut à droite tu peux voir si le hub est connecté.
Pour connecter le hub choisi Bluetooth et fais les étapes qui sont décrites après.
Quand le hub est connecté tu peux voir tous les moteur et capteurs qui sont connectés.
Si tu désires plus d'informations sur les moteurs ou les différents capteurs tu pourras trouver des
informations dans l'aide.
ROBOT INVENTOR
Le hub
Le Hub est une unité de commande programmable à laquelle il est possible de connecter des capteurs et
des moteurs LEGO®. Le Hub possède une interface intuitive composée de voyants et de boutons, et peut
fonctionner de manière autonome ou en mode Visionnage direct.
Le Hub dispose de six ports d'entrée/sortie qui peuvent accepter n’importe quel moteur ou capteur
avec le même type de port.
Le Hub dispose d'un capteur d'unités de mesure inertiel à six axes qui permet de détecter l'angle,
les mouvements, l'orientation, l'accélération et la vitesse angulaire du Hub.
Le Hub dispose d'une interface à trois boutons. Les boutons flèche gauche et flèche droite peuvent
être utilisés pour sélectionner l'un des programmes stockés dans le Hub ou pour réaliser des actions
dans les programmes. Le bouton central est utilisé pour activer le Hub, exécuter et interrompre des
programmes.
Le Hub dispose d'un bouton permettant d'activer le Bluetooth afin de se connecter à des appareils
tels que des téléphones, des tablettes et des ordinateurs. Une connexion physique via USB est
également possible pour se connecter aux appareils et charger la batterie.
Fonctionnalités du Hub
L'orientation fait référence au côté du Hub qui est orienté vers le haut.
- Avant : le côté avec la matrice d'affichage
- Arrière : le côté avec la batterie
- Gauche : le côté avec les ports A, C et E
- Droit : le côté avec les ports B, D et F
- Dessous : le côté avec le haut-parleur
- Dessus : le côté avec le port USB
Tangage, Roulis, Lacet
L'angle du Hub est mesuré par rapport à une position de base, le Hub posé à plat sur une table plane,
les témoins LED orientés vers le haut Les points des axes permettant de mesurer les degrés commencent
au centre du Hub.
Le Tangage fait basculer le Hub vers l'avant et vers l'arrière. Plage de -90 à 90
Le Roulis fait basculer le Hub d'un côté et de l'autre. Plage de -180 à 179
Le Lacet est une rotation du Hub par rapport à sa position de départ lors du démarrage du programme
ou de l'utilisation du bloc Réinitialisation du lacet. Plage illimitée. Le Lacet est sensible à la
dérive gyroscopique et dépend de la vitesse angulaire du Hub.
Accélération
Mesure sur un axe particulier par rapport à la gravité de -1000 à 1000.
- X correspond aux côtés gauche et droit du Hub
- Y correspond aux côtés supérieur et inférieur du Hub
- Z correspond à la face de l'avant vers l’arrière du Hub
Gyroscope ou vitesse angulaire
Mesure de la vitesse à laquelle le Hub tourne dans un axe spécifié.
- X tourne le long des côtés gauche et droit du Hub
- Y tourne le long des côtés supérieur et inférieur du Hub
- Z toume le long de l'axe avant arrière du Hub
Gestes
Actions lisibles spécifiques affectant le Hub.
- Secouement : si le Hub est déplacé rapidement d'avant en arrière
- Tapotement : le Hub est tapoté avec ton doigt ou un autre objet
- Chute : le Hub tombe le long de n'importe quel axe
- Double tapotement : le Hub est tapoté deux fois de suite avec ton doigt ou un autre objet
Orientation de l'écran
L'écran de la matrice LED lumineuse 5x5 peut être pivoté pour donner aux modèles une expression
appropriée. Il existe quatre options d'orientation. L'écran se repositionnera en fonction de l'endroit
où se trouve le pixel en position 1x1. Cela fera également pivoter l'affichage pour toute animation,
motif ou texte sur la matrice 5x5.
- à l'endroit (par défaut) 1x1 à côté du port A
- à gauche 1x1 à côté du port E
- à droite 1x1 à côté du port B
- à l'envers 1x1 à côté du port F
Commencer à coder
Quand tu as terminé la construction de ton robot Proxima, tu peux débuter la programmtion avec les blocs! Tu verras c'est facile! Surtout que tu vas pouvoir essayer
pleins de choses!
Premier pas
Ta première mission ? Faire avancer le robot avec une partie des blocs suivants.
À toi de les assembler dans le bon ordre pour faire avancer le robot.
Quand tu penses avoir réalisé le programme. N'oublie pas de toujours mettre ton robot à terre avant de
lancer le programme. Cela évitera que le robot ne tombe de la table. Car je te rappelle qu'il est fragile
et cher.
Pour lancer le programme que tu viens d'écrire va en bas à droite de ton écran où il y a un numéro suivi
d'un carré et d'un triangle.
Choisit le numéro du programme que tu veux assigner à ton code. Puis clique sur la flèche pour
télécharger le programme sur ton robot. Ensuite regarde si le résultat est celui que tu voulais. Si oui
bravo sinon c'est pas grave, réessaye!
Mission 1.2
Que se passe-t-il si tu inverse le C et le D du bloc "Définir les moteurs de déplacements pour D + C" ?
Mission 1.3
Et si ton robot dessinait un carré en avançant ? Comment t'y prendrais-tu ?
Solutions
Voici les solutions des premières missions.
Mission 1.1
La première chose à faire est d'initialiser les moteurs. Lui dire que nous allons utiliser les moteurs C
et D.
Maintenant que le programme sait quels moteurs utiliser, il nous reste à lui dire à quelle vitesse il
doit
aller. Ici une vitesse à 50 % est bien pour commencer.
Voici le code que tu peux avoir :
Télécharge ce code en cliquant sur ce lien, ou sur
l'image ci-dessus !
Mission 1.2
Que se passe-t-il quand on a interverti le moteur C et le moteur D ?
Eh bien, le véhicule va dans le sens inverse.
Télécharge ce code en cliquant sur ce lien, ou
sur l'image ci-dessus !
C'est un peu comme si on avait fait le premier programme, mais au lieu de lui dire d'avancer, on lui
avait dit de reculer.
Télécharge ce code en cliquant sur ce lien, ou
sur l'image ci-dessus !
Tu peux voir qu'il y a plusieurs façons de coder qui arrive au même résultat.
Mission 1.3
Pour que le robot dessine un carré en roulant, il suffit de lui donner les instructions suivantes.
- Avance de 10 cm.
- Puis tourne.
- Avance de 10 cm.
- Puis tourne.
- Avance de 10 cm.
- Puis tourne.
- Avance de 10 cm.
- Puis tourne.
Télécharge ce code en cliquant sur ce lien, ou
sur l'image ci-dessus !
Et ainsi de suite jusqu'à ce qu'il dessine un carré.
On peut simplifier le code en ajoutant une boucle qui va répéter 4 fois l'instruction "Avancer de
10 cm,
puis tourner". Quelle économie de temps !
Télécharge ce code en cliquant sur ce lien, ou
sur l'image ci-dessus !
Au lieu de donner des distances en centimètres au robot, on peut aussi lui donner un nombre de
rotations.
Pour cela, il va falloir définir les centimètres que le robot va parcourir avec une rotation de
moteur.
Cela peut se calculer mathématiquement, mais là, pour les roues que nous avons, nous savons
qu'approximativement une rotation c'est 17,5 cm.
Télécharge ce code en cliquant sur ce lien, ou
sur l'image ci-dessus !
Capteur de distance
Le capteur de distance peut mesurer la distance par rapport à un objet ou une surface à l'aide de la
technologie ultrasonique, comme les chauves-souris.
C'est le bloc rectangulaire qui ressemble à des yeux sur ton robot. En outre, le capteur a un voyant
autour des yeux qui sont divisés en 4 segments pouvant être allumés individuellement.
La distance mesurable est d'environ 5 à 200 cm.
Le pourcentage est un pourcentage de la distance mesurable maximale, par exemple une distance de 20 cm
sera représentée par 10%.
Mission 2.1
Maintenant que tu sais faire avancer et tourner ton robot. Essayons d'en faire un robot autonome, à
savoir qu'il va tourner dès qu'il va détecter un obstacle à une distance d’environ 20 cm.
Tu vas avoir besoin :
Des blocs "Capteur de distance"
Et du contrôle si alors.
D'une boucle infinie.
Du bloc avancer sans distance définie
Pour rendre le mouvement plus fluide, le bloc réglage de l'accélération sur "équilibré"
Je te laisse faire le code qui va faire que le robot tourne dès le moment où il détecte un obstacle à
moins de 20 cm.
Voici le pseudo code.
- Démarrer ton programme
- Définir les déplacements des moteurs C et D, la vitesse de déplacement, ainsi que la distance pour une
rotation d'un moteur
- Faire une boucle infinie
- Le robot avance en continue
- S'il détecte quelque chose à moins de 20 cm.
- Il tourne.
- Puis il continue sa boucle infinie.
Mission 2.2
Ajoutons un peu d'aléatoire pour que quand le robot détecte un obstacle, il tourne aléatoirement à gauche
ou à droite.
Tu vas avoir besoin de l'opérateur, nombre aléatoire.
Tu peux par exemple choisir un nombre aléatoire entre 1 et 10 et dire que si il est plus petit que 6, tu
tournes à droite. Sinon, tu tournes à gauche.
Cela rajoute un peu de « hasard » dans le comportement de ton robot.
Capteur de couleur
Le capteur peut détecter la couleur, la réflectivité ou la lumière ambiante. Le capteur peut également
être utilisé comme sortie lumineuse.
Couleurs détectables :
- Noir (0)
- Magenta (1)
- Bleu (3)
- Bleu vert (4)
- Vert (5)
- Jaune (7)
- Rouge (9)
- Blanc (10)
- Autre couleur (-1)
La lumière réfléchit, mesure la quantité de lumière réfléchie par une surface sur le capteur de
couleur,
le capteur étant la source de la lumière.
Mission 3.1
Tu vas devoir coder un robot qui avance jusqu'à ce qu'il détecte la couleur noire, et ensuite il
s'arrête net.
Tu auras ces blocs à ta disposition.
Télécharge ce code en cliquant sur ce lien, ou
sur l'image ci-dessus !
Mission 3.2
Ta mission sera de coder un robot qui doit rester dans l'arène.
Cela veut dire que quand il détectera une bordure noire, le robot doit tourner soit tout le temps dans
le même sens. Soit aléatoirement comme on a déjà vu dans le 2e cours.
Tu auras ces blocs à ta disposition.
Télécharge ce code en cliquant sur ce lien, ou
sur l'image ci-dessus !
Mission 3.3
C'est exactement la même mission que la mission 2 mais simplement au lieu de détecter la couleur noire
tu
devras utiliser le capteur de couleur en mode réflexivité.
Le capteur de couleur a une lampe qui éclaire la surface sur laquelle il se trouve.
La réflexivité est le pourcentage de lumière qui est réfléchi.
Cela se traduit de la manière suivante, sur une feuille blanche, on est proche de 100% de réflexivité
et sur du noir on est proche de 0%.
À toi de tester en mettant sur différentes surfaces pour voir quel est le pourcentage qu'il affiche.
Si ton robot a un pourcentage de réflexivité plus petit que 50%, il doit tourner.
Voici le pseudo code pour ce programme:
- Initialiser les moteurs de déplacement.
- Initialiser la vitesse de déplacement.
- Régler l'accélération du déplacement.
- Définir une rotation de moteur.
- Répétez indéfiniment.
- Déplacement en ligne droite.
- Si le capteur de couleur a un pourcentage de réflexivité plus petit que 50%
- Faire tourner le robot.
Tu auras ces blocs à ta disposition.
Télécharge ce code en cliquant sur ce lien, ou
sur l'image ci-dessus !
Mission 3.4
Suivre une ligne.
Tu vas devoir choisir. Quel capteur sera utilisé pour suivre une ligne, le gauche ou le droite ? Je te
laisse trouver le bon port.
Le robot devra suivre le bord de la ligne, donc tu devras choisir si tu veux suivre le bord droite ou
le
bord gauche de la ligne.
Le comportement de ton robot sera le suivant. Si le capteur voit du noir, alors il tournera à droite.
Et
s'il voit du blanc, il tournera à gauche.
Tu peux inverser la droite et la gauche. Cela revient au même au final.
Tu auras ces blocs à ta disposition.
Télécharge ce code en cliquant sur ce lien, ou
sur l'image ci-dessus !
Gyroscope
Le Gyroscope te permet de mesurer des angles de manière beaucoup plus précise qu'avec simplement les
rotations des roues.
Mission 4.1
Tu vas refaire le programme pour dessiner un carré, mais cette fois en utilisant les angles de lacet.
Tu auras ces blocs à ta disposition.
Télécharge ce code en cliquant sur ce lien, ou
sur l'image ci-dessus !
L’angle n'est pas de 90 degrés précisément car il y a un temps d'attente (temps de latence) entre le
moment où le hub détecte que l'angle de lacet est plus grand que cette valeur et le moment où il va
s'arrêter.
Mission 4.2
Maintenant que tu sais dessiner un carré, si tu essayais d'autres formes ? Je te donne les valeurs
mathématiques pour différentes formes ci-dessous.
Nom |
Nombre de cotés |
Angle |
Rectangle (Pas le cas particulier du carré !) |
4 |
360° / 4 = 90° |
Pentagone |
5 |
360°/ 5 = 72° |
Hexagone |
6 |
360°/ 6 = 60° |
Heptagone |
7 |
360°/ 7 = 51.5° (Environ) |
Octogone |
8 |
360°/ 8 = 45° |
Ennéagone ou nonagone |
9 |
360° / 9 = 43.3° (Environ) |
Décagone |
10 |
360° / 10 = 36° |
Hendécagone ou undécagone |
11 |
360° / 11 = 32.7° (Environ) |
Dodécagone |
12 |
360° / 12 = 30° |
Défi 1 : Les quilles
Ejecter les piles de l'arène SANS EN SORTIR!
Défi 2 : le combat de sumo
Ejecte ton adversaire de l'arène! Pour cela il faut que ses 2 grandes roues soient totalement en
dehors!
Défi 3 : Le contre la montre
Fais le tour de l'arène le plus rapidement possible, mais le plus précisément aussi!