LEGO MINDSTORMS Education EV3 + MicroPython: programació d'un conjunt de construcció infantil en llenguatge d'adults

Hola, Habr! Nosaltres ja va dir sobre la plataforma LEGO MINDSTORMS Education EV3. Els objectius principals d'aquesta plataforma són aprendre a través d'exemples pràctics, desenvolupar habilitats STEAM i desenvolupar una mentalitat d'enginyeria. Es pot utilitzar per a treballs de laboratori per estudiar mecànica i dinàmica. Els bancs de laboratori fets amb maons LEGO i utilitats per registrar i processar dades fan que els experiments siguin encara més interessants i visuals i ajuden els nens a entendre millor la física. Per exemple, els estudiants poden recollir dades del punt de fusió i utilitzar l'aplicació per organitzar-les i presentar-les en un gràfic. Però això només és el principi: avui us explicarem com complementar aquest conjunt amb l'entorn de programació MicroPython i utilitzar-lo per ensenyar robòtica.

LEGO MINDSTORMS Education EV3 + MicroPython: programació d'un conjunt de construcció infantil en llenguatge d'adults

Aprèn a programar amb EV3

Els escolars moderns volen veure resultats colorits. Sí, s'avorreixen si el programa imprimeix números a la consola i volen mirar gràfics de color, diagrames i crear robots reals que es mouen i segueixen ordres. El codi normal també sembla massa complicat per als nens, així que és millor començar a aprendre amb alguna cosa més fàcil.

L'entorn de programació bàsic EV3 es basa en el llenguatge gràfic LabVIEW i permet especificar visualment algorismes per al robot: les ordres es presenten en forma de blocs que es poden arrossegar i connectar.

LEGO MINDSTORMS Education EV3 + MicroPython: programació d'un conjunt de construcció infantil en llenguatge d'adults

Aquest mètode funciona bé quan necessiteu mostrar com es construeixen els algorismes, però no és adequat per a programes amb un gran nombre de blocs. A mesura que els escenaris es fan més complexos, cal passar a la programació amb codi, però aquest pas és difícil de fer pels nens. 

Hi ha alguns trucs aquí, un dels quals és mostrar que el codi fa el mateix que els blocs. A l'entorn EV3, això és possible mitjançant la integració de MicroPython, de manera que els nens poden crear el mateix programa tant a l'entorn bàsic de programació de blocs com a Python al Visual Studio Code de Microsoft. Veuen que els dos mètodes funcionen igual, però resoldre problemes complexos amb codi és més convenient.

Canviant a MicroPython

L'entorn EV3 es basa en un processador ARM9 i els desenvolupadors van deixar l'arquitectura oberta deliberadament. Aquesta solució va permetre desplegar un firmware alternatiu, un dels quals era una imatge per treballar amb MicroPython. Us permet utilitzar Python per programar el vostre EV3, apropant encara més el kit a les tasques de la vida real. 

Per començar, cal descarregar-lo Imatge EV3 MicroPython a qualsevol targeta microSD, instal·leu-la al microordinador EV3 i engegueu-la. Aleshores cal instal·lar-lo extensió gratuïta per a Visual Studio. I pots començar a treballar. 

Programació del primer robot a MycroPython

LEGO MINDSTORMS Education EV3 + MicroPython: programació d'un conjunt de construcció infantil en llenguatge d'adults

En el nostre Online Hi ha diverses lliçons per dominar els conceptes bàsics de la robòtica. Els models EV3 introdueixen els nens als conceptes bàsics que s'utilitzen en cotxes autònoms, robots de muntatge de fàbrica i màquines CNC. 

Prenem l'exemple d'una màquina de dibuix, que es pot ensenyar a dibuixar patrons i formes geomètriques. Aquest cas és una versió simplificada de robots de soldadura o fresat per a adults i mostra com EV3 es pot utilitzar juntament amb MicroPython per ensenyar als escolars. I una màquina de dibuix pot marcar forats en una placa de circuit imprès per al pare, però aquest és un altre nivell que requereix matemàtiques.

Per treballar necessitem:

  • Set bàsic LEGO MINDSTORMS Education EV3; 
  • full de paper a quadres gran;
  • retoladors de colors. 

El muntatge del mateix robot està en marxa instruccions, i veurem un exemple de programació.

Primer inicialitzem la biblioteca de mòduls 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

Muntem una plataforma que fa girar el mànec com un motor al port B. Establem la relació d'engranatges d'un tren d'engranatges de dues etapes amb un nombre de dents de 20-12-28, respectivament.

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

Configurem el mecanisme d'elevació del mànec com a motor al port C:

seesaw_motor = Motor(Port.C)

Configurem el giroscopi, que mesura l'angle d'inclinació del mànec, al port 2:

gyro_sensor = GyroSensor(Port.S2)

Configurem el sensor de color al port 3. El sensor s'utilitza per detectar paper blanc sota la màquina de dibuix:

color_sensor = ColorSensor(Port.S3)

Configurem el sensor tàctil al port 4. El robot comença a dibuixar quan es prem el sensor:

touch_sensor = TouchSensor(Port.S4)

Definim les funcions que pugen i baixen el mànec:

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)

Definim una funció per girar el mànec a un angle determinat o a un angle determinat:

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

Si l'angle objectiu és més gran que l'angle actual del sensor del giroscopi, continueu en el sentit de les agulles del rellotge amb una velocitat positiva:

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

Si l'angle objectiu és inferior al sensor del giroscopi actual, moveu-vos en sentit contrari a les agulles del rellotge:

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

Atureu la plataforma giratòria quan s'arribi a l'angle objectiu:

  turntable_motor.stop(Stop.BRAKE)

Estableix la posició inicial del mànec a la posició superior:

pen_holder_raise()

Ara ve la part principal del programa: un bucle sense fi. L'EV3 primer espera que el sensor de color detecti un paper blanc o un quadrat d'inici blau i que es prem el sensor tàctil. Després dibuixa un patró, torna a la posició inicial i ho repeteix tot.

Quan el dispositiu no està preparat, els LED del controlador es tornen vermells i es mostra una imatge de "polze cap avall" a la pantalla LCD:

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

Esperem fins que el sensor de color compti blau o blanc, establim el color del LED en verd, mostrem una imatge de "polze cap amunt" a la pantalla LCD i informem que el dispositiu està preparat per utilitzar-lo:

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

Esperem que es prem el sensor tàctil, assignem el valor d'angle 0 al sensor giroscòpic i comencem a dibuixar:

  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)

Aixequeu el suport del bolígraf i torneu-lo a la seva posició original:

  pen_holder_raise()
  pen_holder_turn_to(0)</i>

Aquest és el programa senzill que hem creat. I ara el posem en marxa i mirem el robot de dibuix en acció. 

Què aporten aquests exemples?

LEGO MINDSTORMS Education EV3 + MicroPython: programació d'un conjunt de construcció infantil en llenguatge d'adults

EV3 és una eina d'orientació professional per a les carreres STEM i un punt d'entrada a les carreres d'enginyeria. Com que es pot utilitzar per resoldre problemes pràctics, els nens adquireixen experiència en el desenvolupament tècnic i la creació de robots industrials, aprenen a simular situacions reals, entendre programes i analitzar algorismes i dominar les construccions bàsiques de programació.

El suport de MicroPython fa que la plataforma EV3 sigui adequada per a l'ensenyament de secundària. Els estudiants poden provar-se com a programadors en un dels llenguatges moderns més populars i familiaritzar-se amb professions relacionades amb la programació i el disseny d'enginyeria. Els kits EV3 mostren que la codificació no fa por, et preparen per a grans reptes d'enginyeria i t'ajuden a fer el primer pas per dominar les habilitats tècniques. I per als que treballen a les escoles i estan vinculats a l'educació, ho hem preparat programes de lliçons i materials educatius. Descriuen amb detall quines habilitats es desenvolupen en realitzar determinades tasques i com es relacionen les habilitats adquirides amb els estàndards de formació.

Font: www.habr.com

Compreu allotjament fiable per a llocs amb protecció DDoS, servidors VPS VDS 🔥 Compra allotjament web fiable amb protecció DDoS, servidors VPS VDS | ProHoster