LEGO MINDSTORMS Education EV3 + MicroPython : programmez le jouet éducatif avec un langage destiné aux adultes

Bonjour, Habr ! Nous avons déjà ont raconté à propos de la plateforme LEGO MINDSTORMS Education EV3. Les principales missions de cette plateforme sont l'apprentissage par l'exemple, le développement des compétences STEAM et la formation à la pensée ingénieur. Elle permet de réaliser des travaux pratiques sur la mécanique et la dynamique. Les bancs d'essai en blocs LEGO et les utilitaires pour l'enregistrement et le traitement des données rendent les expériences encore plus intéressantes et visuelles, aidant ainsi les enfants à mieux comprendre la physique. Par exemple, les élèves peuvent collecter des données sur la température de fusion et, à l'aide d'une application, les organiser et les présenter sous forme de graphique. Mais ce n'est que le début : aujourd'hui, nous allons vous montrer comment compléter cet ensemble avec l'environnement de programmation MicroPython et l'utiliser pour l'enseignement de la robotique.

LEGO MINDSTORMS Education EV3 + MicroPython : programmez le jouet éducatif avec un langage destiné aux adultes

Nous enseignons la programmation avec EV3

Les élèves modernes veulent voir des résultats colorés. Oui, ils s'ennuient si le programme affiche des chiffres dans la console et veulent voir des graphiques colorés, des diagrammes et créer de véritables robots qui se déplacent et exécutent des commandes. Le code classique semble également trop complexe pour les enfants, donc il est préférable de commencer l'apprentissage par quelque chose de plus simple.

L'environnement de programmation de base EV3 est basé sur le langage graphique LabVIEW et permet de définir visuellement les algorithmes pour le robot : les commandes sont présentées sous forme de blocs que l'on peut glisser-déposer et relier.

LEGO MINDSTORMS Education EV3 + MicroPython : programmez le jouet éducatif avec un langage destiné aux adultes

Cette méthode fonctionne bien lorsqu'il s'agit de montrer comment les algorithmes sont construits, mais elle n'est pas adaptée aux programmes avec un grand nombre de blocs. Lorsqu'il s'agit de scénarios complexes, il est nécessaire de passer à la programmation par code, mais les enfants ont du mal à faire cette transition. 

Il existe quelques astuces, dont l'une consiste à montrer que le code accomplit les mêmes tâches que les blocs. Dans l'environnement EV3, cela peut être fait grâce à l'intégration avec MicroPython : les enfants créent le même programme dans l'environnement de programmation de base avec des blocs et dans le langage Python avec Visual Studio Code de Microsoft. Ils voient que les deux méthodes fonctionnent de la même manière, mais il est plus pratique d'utiliser le code pour résoudre des tâches complexes.

Passons à MicroPython

L'environnement EV3 est basé sur un processeur ARM9, et les développeurs ont spécifiquement laissé l'architecture ouverte. Cette solution a permis de charger des firmwares alternatifs, dont une image pour travailler avec MicroPython. Cela permet d'utiliser Python pour programmer l'EV3, ce qui rend le travail avec le kit encore plus proche des tâches de la vie réelle. 

Pour commencer à travailler, vous devez télécharger l'image EV3 MicroPython sur n'importe quelle carte microSD, l'installer dans le micro-ordinateur EV3 et l'allumer. Ensuite, il faut installer une extension gratuite pour Visual Studio. Et vous pouvez commencer à travailler. 

Programmer notre premier robot en MicroPython

LEGO MINDSTORMS Education EV3 + MicroPython : programmez le jouet éducatif avec un langage destiné aux adultes

Sur notre site il y a plusieurs leçons pour apprendre les concepts de base de la robotique. Les modèles sur EV3 initient les enfants aux bases utilisées dans les voitures autonomes, les robots assembleurs d'usine, et les machines à commande numérique. 

Prenons en exemple une machine à dessin, que l'on peut apprendre à dessiner des motifs et des formes géométriques. Ce cas est une version simplifiée des robots soudeurs ou fraisants pour adultes et montre comment utiliser l'EV3 avec MicroPython pour éduquer les élèves. De plus, la machine à dessin peut marquer des trous dans une carte imprimée pour un parent, mais c'est un autre niveau, nécessitant des calculs mathématiques.

Pour travailler, nous avons besoin de :

  • un ensemble de base LEGO MINDSTORMS Education EV3 ; 
  • une grande feuille de papier à carreaux ;
  • des marqueurs colorés. 

L'assemblage du robot se trouve dans des instructions, et nous allons examiner un exemple de programmation.

Commençons par initialiser la bibliothèque des modules EV3 :

#!/usr/bin/env pybricks-micropython
from pybricks import ev3brick as brick
from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor, GyroSensor)
from pybricks.parameters import Port, Stop, Direction, Color, ImageFile
from pybricks.tools import wait

Configurer la plateforme qui tourne le stylo comme moteur dans le port B. Définir le rapport de démultiplication de l'engrenage à deux étages avec 20-12-28 dents respectivement.

turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])

Configurer le mécanisme de levage pour le stylo comme moteur dans le port C :

seesaw_motor = Motor(Port.C)

Configurer le gyroscope, mesurant l'angle d'inclinaison du stylo, dans le port 2 :

gyro_sensor = GyroSensor(Port.S2)

Configurer le capteur de couleur dans le port 3. Le capteur est utilisé pour reconnaître le papier blanc sous la machine à dessin :

color_sensor = ColorSensor(Port.S3)

Configurer le capteur tactile dans le port 4. Le robot commence à dessiner lorsque le capteur est activé :

touch_sensor = TouchSensor(Port.S4)

Définir les fonctions qui lèvent et abaissent le stylo :

def pen_holder_raise():
  seesaw_motor.run_target(50, 25, Stop.HOLD)
  wait(1000)

def pen_holder_lower():
  seesaw_motor.run_target(50, 0, Stop.HOLD)
  wait(1000)

Définissons une fonction pour tourner le porte-mine à un angle donné ou jusqu'à un certain angle :

def pen_holder_turn_to(target_angle):
  if target_angle > gyro_sensor.angle():

Si l'angle cible est supérieur à l'angle actuel du capteur gyroscopique, continuons à tourner dans le sens des aiguilles d'une montre avec une vitesse positive :

    turntable_motor.run(70)
	
while gyro_sensor.angle() < target_angle:
  	
pass
  elif target_angle < gyro_sensor.angle():

Si l'angle cible est inférieur à celui du capteur gyroscopique actuel, nous nous déplaçons dans le sens inverse des aiguilles d'une montre :

    turntable_motor.run(-70)
	
while gyro_sensor.angle() > target_angle:
  	
pass

Arrêtons la plateforme tournante lorsque l'angle cible est atteint :

  turntable_motor.stop(Stop.BRAKE)

Établissons la position initiale du porte-mine en position haute :

pen_holder_raise()

Nous entrons maintenant dans la partie principale du programme : une boucle infinie. D'abord, l'EV3 attend que le capteur de couleur détecte du papier blanc ou une case de départ bleue, et que le capteur tactile soit pressé. Ensuite, il dessine un motif, retourne à la position de départ et recommence.

Lorsque l'appareil n'est pas prêt, les LED sur le contrôleur deviennent rouges et l'écran LCD affiche l'image « pouce vers le bas » :

while True:
  brick.light(Color.RED)
  brick.display.image(ImageFile.THUMBS_DOWN)

Attendez que le capteur de couleur détecte la couleur bleue ou blanche, changez la couleur des LED en vert, affichez l'image « pouce vers le haut » sur l'écran LCD, et signalez que l'appareil est prêt à fonctionner :

  while color_sensor.color() not in (Color.BLUE, Color.WHITE):
	
wait(10)
  brick.light(Color.GREEN)
  brick.display.image(ImageFile.THUMBS_UP)

Attendez que le capteur tactile soit pressé, attribuez la valeur d'angle 0 au capteur gyroscopique et commencez à dessiner :

  while not touch_sensor.pressed():
	
wait(10)
  gyro_sensor.reset_angle(0)
  pen_holder_turn_to(15)
  pen_holder_lower()
  pen_holder_turn_to(30)
  pen_holder_raise()
  pen_holder_turn_to(45)
  pen_holder_lower()
  pen_holder_turn_to(60)

Levez le porte-mine et remettez-le en position de départ :

  pen_holder_raise()
  pen_holder_turn_to(0)

Voici le programme simple que nous avons créé. Maintenant, lançons-le et regardons le robot dessinateur à l'œuvre. 

Que nous apportent de tels exemples

LEGO MINDSTORMS Education EV3 + MicroPython : programmez le jouet éducatif avec un langage destiné aux adultes

EV3 est un outil d'orientation professionnelle dans le cadre des métiers STEM et un point d'entrée dans les spécialités d'ingénierie. Étant donné qu'il permet de résoudre des problèmes pratiques, les enfants acquièrent de l'expérience en développement technique et en création de robots industriels, apprennent à modéliser des situations réelles, à comprendre des programmes et à analyser des algorithmes, et maîtrisent les concepts de base de la programmation.

Le support de MicroPython rend la plateforme EV3 adaptée à l'enseignement dans les classes supérieures. Les élèves peuvent essayer d'être des programmeurs dans l'un des langages modernes les plus populaires, découvrir des professions liées à la programmation et à la conception technique. Les ensembles EV3 montrent que coder n'est pas effrayant, préparent à des tâches d'ingénierie sérieuses et aident à faire le premier pas vers l'apprentissage des spécialités techniques. Pour ceux qui travaillent dans les écoles et sont liés à l'éducation, nous avons développé des programmes de cours et des supports pédagogiques. Ils détaillent les compétences acquises lors de l'exécution de certaines tâches, ainsi que la manière dont ces compétences se relient aux normes éducatives.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster