LEGO MINDSTORMS Education EV3 + MicroPython: programación dun set de construción infantil en linguaxe adulta

Ola, Habr! Nós xa contou sobre a plataforma LEGO MINDSTORMS Education EV3. Os obxectivos principais desta plataforma son aprender a través de exemplos prácticos, desenvolver habilidades STEAM e desenvolver unha mentalidade de enxeñería. Pódese utilizar para traballos de laboratorio para estudar mecánica e dinámica. Os bancos de laboratorio feitos con ladrillos LEGO e as utilidades para rexistrar e procesar datos fan que os experimentos sexan aínda máis interesantes e visuais e axudan aos nenos a comprender mellor a física. Por exemplo, os estudantes poden recoller datos do punto de fusión e usar a aplicación para organizalos e presentalos nun gráfico. Pero isto é só o comezo: hoxe imos contarvos como complementar este conxunto co entorno de programación MicroPython e empregalo para ensinar robótica.

LEGO MINDSTORMS Education EV3 + MicroPython: programación dun set de construción infantil en linguaxe adulta

Aprende a programar usando EV3

Os escolares modernos queren ver resultados coloridos. Si, están aburridos se o programa imprime números na consola, e queren mirar gráficos en cores, diagramas e crear auténticos robots que se moven e seguen ordes. O código normal tamén parece demasiado complicado para os nenos, polo que é mellor comezar a aprender con algo máis sinxelo.

O contorno básico de programación EV3 baséase na linguaxe gráfica LabVIEW e permite especificar visualmente algoritmos para o robot: os comandos preséntanse en forma de bloques que se poden arrastrar e conectar.

LEGO MINDSTORMS Education EV3 + MicroPython: programación dun set de construción infantil en linguaxe adulta

Este método funciona ben cando precisa mostrar como se constrúen os algoritmos, pero non é adecuado para programas con gran número de bloques. A medida que os escenarios se fan máis complexos, é necesario pasar á programación con código, pero este paso é difícil para os nenos. 

Hai algúns trucos aquí, un dos cales é mostrar que o código fai o mesmo que os bloques. No entorno EV3, isto é posible mediante a integración de MicroPython, polo que os nenos poden crear o mesmo programa tanto no contorno básico de programación de bloques como en Python no Visual Studio Code de Microsoft. Ven que ambos métodos funcionan igual, pero resolver problemas complexos mediante código é máis conveniente.

Cambiando a MicroPython

O ambiente EV3 está construído nun procesador ARM9 e os desenvolvedores deixaron deliberadamente aberta a arquitectura. Esta solución permitiu lanzar un firmware alternativo, un dos cales era unha imaxe para traballar con MicroPython. Permíteche usar Python para programar o teu EV3, achegando o kit aínda máis ás tarefas da vida real. 

Para comezar, cómpre descargar Imaxe EV3 MicroPython en calquera tarxeta microSD, instálaa no microordenador EV3 e acéndea. Entón cómpre instalar extensión gratuíta para Visual Studio. E podes comezar a traballar. 

Programando o primeiro robot en MycroPython

LEGO MINDSTORMS Education EV3 + MicroPython: programación dun set de construción infantil en linguaxe adulta

No noso On-line Hai varias leccións para dominar os conceptos básicos da robótica. Os modelos EV3 introducen aos nenos nos conceptos básicos que se usan en coches autónomos, robots de montaxe de fábrica e máquinas CNC. 

Tomaremos o exemplo dunha máquina de debuxar, á que se pode ensinar a debuxar patróns e formas xeométricas. Este caso é unha versión simplificada de robots de soldadura ou fresado para adultos e mostra como se pode usar EV3 en conxunto con MicroPython para ensinar aos escolares. E unha máquina de debuxo pode marcar buratos nunha placa de circuíto impreso para o pai, pero ese é outro nivel que require matemáticas.

Para traballar necesitamos:

  • LEGO MINDSTORMS Education EV3 Core Set; 
  • folla grande de papel a cadros;
  • rotuladores de cores. 

A montaxe do propio robot está en instrucións, e veremos un exemplo de programación.

Primeiro inicializamos a biblioteca de módulos 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

Montamos unha plataforma que xira o mango como un motor no porto B. Axustamos a relación de transmisión dun tren de engrenaxes de dúas etapas cun número de dentes de 20-12-28, respectivamente.

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

Configuramos o mecanismo de elevación da empuñadura como motor no porto C:

seesaw_motor = Motor(Port.C)

Configuramos o xiroscopio, que mide o ángulo de inclinación do asa, no porto 2:

gyro_sensor = GyroSensor(Port.S2)

Configuramos o sensor de cor no porto 3. O sensor úsase para detectar papel branco baixo a máquina de debuxo:

color_sensor = ColorSensor(Port.S3)

Configuramos o sensor táctil no porto 4. O robot comeza a debuxar cando se preme o sensor:

touch_sensor = TouchSensor(Port.S4)

Definimos as funcións que suben e baixan o asa:

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)

Definimos unha función para xirar o asa a un determinado ángulo ou a un determinado ángulo:

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

Se o ángulo obxectivo é maior que o ángulo do sensor do xiroscopio actual, continúa no sentido das agullas do reloxo cunha velocidade positiva:

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

Se o ángulo obxectivo é menor que o sensor do xiroscopio actual, móvese no sentido antihorario:

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

Detén a plataforma xiratoria cando se alcance o ángulo obxectivo:

  turntable_motor.stop(Stop.BRAKE)

Establece a posición inicial do mango na posición superior:

pen_holder_raise()

Agora vén a parte principal do programa: un ciclo infinito. EV3 agarda primeiro a que o sensor de cor detecte un papel branco ou un cadrado de inicio azul e a que se preme o sensor táctil. Despois debuxa un patrón, volve á posición inicial e repite todo de novo.

Cando o dispositivo non está listo, os LEDs do controlador vólvense vermellos e móstrase unha imaxe de "polgar cara abaixo" na pantalla LCD:

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

Agardamos ata que o sensor de cor conte azul ou branco, configuramos a cor do LED en verde, mostramos unha imaxe de "pulgar cara arriba" na pantalla LCD e informamos de que o dispositivo está listo para o seu uso:

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

Agardamos a que se preme o sensor táctil, asignamos o valor do ángulo 0 ao sensor xiroscópico e comezamos a debuxar:

  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)

Levante o portabolígrafos e volva á súa posición orixinal:

  pen_holder_raise()
  pen_holder_turn_to(0)</i>

Este é o programa sinxelo que creamos. E agora lanzámolo e miramos o robot de deseño en acción. 

Que ofrecen estes exemplos?

LEGO MINDSTORMS Education EV3 + MicroPython: programación dun set de construción infantil en linguaxe adulta

EV3 é unha ferramenta de orientación profesional para carreiras STEM e un punto de entrada nas carreiras de enxeñaría. Dado que se pode utilizar para resolver problemas prácticos, os nenos adquiren experiencia no desenvolvemento técnico e na creación de robots industriais, aprenden a simular situacións reais, comprenden programas e analizan algoritmos e dominan construcións básicas de programación.

O soporte de MicroPython fai que a plataforma EV3 sexa axeitada para o ensino de secundaria. Os estudantes poden probarse como programadores nunha das linguaxes modernas máis populares e familiarizarse con profesións relacionadas coa programación e o deseño de enxeñería. Os kits EV3 demostran que a codificación non dá medo, prepárano para serios retos de enxeñería e axúdanche a dar o primeiro paso para dominar as habilidades técnicas. E para os que traballan nas escolas e están vinculados á educación, temos preparado programas de lección e materiais educativos. Describen en detalle que habilidades se desenvolven ao realizar determinadas tarefas e como se relacionan as habilidades adquiridas cos estándares de formación.

Fonte: www.habr.com

Compre hospedaxe fiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra aloxamento web fiable con protección DDoS, servidores VPS VDS | ProHoster