LEGO MINDSTORMS Education EV3 + MicroPython: nous programmons un constructeur pour enfants dans une langue adulte

Bonjour, Habr! Nous avons déjà parlé de la plateforme LEGO MINDSTORMS Education EV3. Les principaux objectifs de cette plateforme sont la formation sur des exemples pratiques, le développement des compétences STEAM et la formation de la pensée d'ingénierie. Il peut effectuer des travaux de laboratoire pour étudier la mécanique et la dynamique. Les supports de laboratoire constitués de blocs LEGO et d'utilitaires pour l'enregistrement et le traitement des données rendent les expériences encore plus intéressantes et visuelles et aident les enfants à mieux comprendre la physique. Par exemple, les élèves peuvent collecter des données sur la température de fusion et utiliser l'application pour les organiser et les présenter dans un graphique. Mais ce n'est qu'un début: aujourd'hui, nous vous expliquerons comment compléter cet ensemble avec l'environnement de programmation MicroPython et l'utiliser pour enseigner la robotique.



Apprenez à programmer avec EV3


Les étudiants modernes veulent voir un résultat coloré. Oui, ils s'ennuient si le programme affiche des nombres dans la console, et ils veulent regarder des nuanciers, des diagrammes et créer de vrais robots qui se déplacent et exécutent des commandes. Le code ordinaire semble également trop compliqué pour les enfants, il est donc préférable de commencer à apprendre quelque chose de plus facile.

L'environnement de programmation de base EV3 est basé sur le langage graphique LabVIEW et vous permet de définir visuellement des algorithmes pour le robot: les commandes sont présentées sous forme de blocs qui peuvent être glissés et joints.



Cette méthode fonctionne bien lorsque vous devez montrer comment les algorithmes sont construits, mais elle ne convient pas aux programmes avec un grand nombre de blocs. Lors de la complication des scénarios, il est nécessaire de passer à la programmation à l'aide de code, mais il est difficile pour les enfants de suivre cette étape.

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

Passer à MicroPython


L'environnement EV3 est basé sur le processeur ARM9, et les développeurs ont intentionnellement laissé l'architecture ouverte. Cette solution nous a permis de déployer un firmware alternatif, dont l'un était l'image pour travailler avec MicroPython. Il vous permet d'utiliser Python pour programmer EV3, ce qui rend la saisie encore plus proche des tâches réelles.

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

Nous programmons le premier robot sur MycroPython





Notre site propose plusieurs leçons pour maîtriser 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 d'assemblage en usine et les machines CNC.

Nous prenons comme exemple une machine à dessiner qui peut apprendre à dessiner des motifs et des formes géométriques. Ce cas est une version simplifiée de robots de soudage ou de fraiseuses pour adultes et montre comment vous pouvez utiliser EV3 avec MicroPython pour enseigner aux étudiants. Et une machine à dessiner peut marquer des trous dans une carte de circuit imprimé pour papa, mais c'est un autre niveau qui nécessite des calculs mathématiques.

Pour le travail, nous avons besoin de:

  • Ensemble de base LEGO MINDSTORMS Education EV3
  • une grande feuille de papier quadrillé;
  • marqueurs de couleur.

L'assemblage du robot lui-même est dans les instructions , et nous considérerons un exemple de programmation.

Tout d'abord, initialisez la bibliothèque de 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 

Nous avons mis en place une plate-forme qui fait tourner la poignée comme un moteur dans le port B. Nous avons défini le rapport de réduction de la transmission à deux vitesses avec le nombre de dents 20-12-28, respectivement.

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

Nous configurons le mécanisme de levage de la poignée comme moteur dans le port C:

 seesaw_motor = Motor(Port.C) 

Nous avons installé un gyroscope mesurant l'angle de la poignée, dans le port 2:

 gyro_sensor = GyroSensor(Port.S2) 

Configurez le capteur de couleur dans le port 3. Le capteur est utilisé pour détecter le papier blanc sous la machine à dessiner:

 color_sensor = ColorSensor(Port.S3) 

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

 touch_sensor = TouchSensor(Port.S4) 

Définissez les fonctions qui soulèvent et abaissent la poignée:

 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) 

Nous déterminons la fonction de rotation de la poignée d'un angle donné ou d'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, continuez à vous déplacer dans le sens horaire 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 au capteur gyroscopique actuel, déplacez-vous dans le sens antihoraire:

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

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

   turntable_motor.stop(Stop.BRAKE) 

Réglez la position initiale de la poignée en position haute:

 pen_holder_raise() 

Vient maintenant la partie principale du programme - une boucle sans fin. Dans un premier temps, EV3 attend que le capteur de couleur détecte du papier blanc ou une cellule de départ bleue, et le capteur tactile sera pressé. Puis il dessine un motif, revient à sa position d'origine et répète tout à nouveau.

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

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

Nous attendons que le capteur de couleur considère le bleu ou le blanc, définissons la couleur des LED sur vert, affichons l'image du pouce vers le haut sur l'écran LCD et informons que l'appareil est prêt à l'emploi:

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

Nous attendons que le capteur tactile soit pressé, affectons la valeur de l'angle 0 au capteur gyroscopique et commençons à 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) 

Soulevez le porte-stylo et remettez-le dans sa position d'origine:

   pen_holder_raise()  pen_holder_turn_to(0)</i> 

Ici, nous avons un programme si simple. Et maintenant, nous le lançons et regardons le dessinateur de robot en action.

Que donnent de tels exemples?




EV3 est un outil d'orientation professionnelle pour les professions STEM et un point d'entrée dans les spécialités d'ingénierie. Puisqu'il est possible d'y résoudre des problèmes pratiques, les enfants acquièrent de l'expérience dans le développement technique et la création de robots industriels, apprennent à simuler des situations réelles, à comprendre des programmes et à analyser des algorithmes, à maîtriser les constructions de programmation de base.

La prise en charge de MicroPython rend la plate-forme EV3 adaptée au lycée. Les élèves peuvent s'essayer en tant que programmeurs dans l'un des langages modernes les plus populaires, se familiariser avec les professions liées à la programmation et à la conception technique. Les kits EV3 montrent que l'écriture de code n'est pas effrayante, ils se préparent à de graves problèmes d'ingénierie et aident à faire le premier pas vers la maîtrise des spécialités techniques. Et pour ceux qui travaillent à l'école et sont associés à l'éducation, nous avons préparé des programmes de formation et du matériel de formation. Ils décrivent en détail quelles compétences se forment lors de l'exécution de certaines tâches et comment les compétences acquises sont liées aux normes de formation.

Source: https://habr.com/ru/post/fr474562/


All Articles