¡Hola Habr! Nosotros ya sobre la plataforma LEGO MINDSTORMS Education EV3. Los principales objetivos de esta plataforma son aprender a través de ejemplos prácticos, desarrollar habilidades STEAM y desarrollar una mentalidad de ingeniería. Se puede utilizar para trabajos de laboratorio para estudiar mecánica y dinámica. Las mesas de laboratorio hechas con ladrillos LEGO y las utilidades para registrar y procesar datos hacen que los experimentos sean aún más interesantes y visuales y ayudan a los niños a comprender mejor la física. Por ejemplo, los estudiantes pueden recopilar datos sobre el punto de fusión y utilizar la aplicación para organizarlos y presentarlos en un gráfico. Pero esto es sólo el comienzo: hoy te contamos cómo complementar este set con el entorno de programación MicroPython y utilizarlo para enseñar robótica.

Aprenda a programar usando EV3
Los escolares modernos quieren ver resultados coloridos. Sí, se aburren si el programa imprime números en la consola y quieren mirar gráficos en color, diagramas y crear robots reales que se mueven y siguen órdenes. El código normal también parece demasiado complicado para los niños, por lo que es mejor empezar a aprender con algo más fácil.
El entorno de programación básico de EV3 se basa en el lenguaje gráfico LabVIEW y le permite especificar visualmente algoritmos para el robot: los comandos se presentan en forma de bloques que se pueden arrastrar y conectar.

Este método funciona bien cuando necesita mostrar cómo se construyen los algoritmos, pero no es adecuado para programas con una gran cantidad de bloques. A medida que los escenarios se vuelven más complejos, es necesario pasar a la programación con código, pero este paso es difícil de dar para los niños.
Aquí hay algunos trucos, uno de los cuales es mostrar que el código hace lo mismo que los bloques. En el entorno EV3, esto es posible mediante la integración de MicroPython, por lo que los niños pueden crear el mismo programa tanto en el entorno de programación de bloques básico como en Python en Visual Studio Code de Microsoft. Ven que ambos métodos funcionan igual, pero resolver problemas complejos usando código es más conveniente.
Cambiando a MicroPython
El entorno EV3 está construido sobre un procesador ARM9 y los desarrolladores dejaron abierta la arquitectura deliberadamente. Esta solución hizo posible implementar firmware alternativo, uno de los cuales era una imagen para trabajar con MicroPython. Le permite usar Python para programar su EV3, acercando aún más el kit a las tareas de la vida real.
Para comenzar, necesita descargar en cualquier tarjeta microSD, instálela en la microcomputadora EV3 y enciéndala. Entonces necesitas instalar para Visual Studio. Y puedes empezar a trabajar.
Programando el primer robot en MycroPython

En nuestro Hay varias lecciones para dominar los conceptos básicos de la robótica. Los modelos EV3 presentan a los niños los conceptos básicos que se utilizan en vehículos autónomos, robots de montaje en fábrica y máquinas CNC.
Tomaremos el ejemplo de una máquina de dibujo, a la que se le puede enseñar a dibujar patrones y formas geométricas. Este caso es una versión simplificada de robots de soldadura o fresado para adultos y muestra cómo se puede utilizar EV3 junto con MicroPython para enseñar a los escolares. Y una máquina de dibujo puede marcar agujeros en una placa de circuito impreso para papá, pero ese es otro nivel que requiere matemáticas.
Para el trabajo, necesitamos:
- Conjunto básico LEGO MINDSTORMS Education EV3;
- hoja grande de papel cuadriculado;
- marcadores de colores.
El montaje del robot en sí está en , y veremos un ejemplo de programación.
Primero inicializamos la biblioteca del módulo 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
Instalamos una plataforma que hace girar la manija como un motor en el puerto B. Establecemos la relación de transmisión de un tren de engranajes de dos etapas con un número de dientes de 20-12-28, respectivamente.
turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])
Configuramos el mecanismo de elevación del mango como motor en el puerto C:
seesaw_motor = Motor(Port.C)
Configuramos el giroscopio, que mide el ángulo de inclinación del mango, en el puerto 2:
gyro_sensor = GyroSensor(Port.S2)
Configuramos el sensor de color en el puerto 3. El sensor se utiliza para detectar papel blanco debajo de la máquina de dibujo:
color_sensor = ColorSensor(Port.S3)
Configuramos el sensor táctil en el puerto 4. El robot empieza a dibujar cuando se pulsa el sensor:
touch_sensor = TouchSensor(Port.S4)
Definimos las funciones que suben y bajan la manija:
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 una función para girar el mango a un ángulo determinado o a un ángulo determinado:
def pen_holder_turn_to(target_angle):
if target_angle > gyro_sensor.angle():
Si el ángulo objetivo es mayor que el ángulo actual del sensor giroscópico, continúe en el sentido de las agujas del reloj con una velocidad positiva:
turntable_motor.run(70)
while gyro_sensor.angle() < target_angle:
pass
elif target_angle < gyro_sensor.angle():
Si el ángulo objetivo es menor que el sensor giroscópico actual, entonces muévase en sentido antihorario:
turntable_motor.run(-70)
while gyro_sensor.angle() > target_angle:
pass
Detenga la plataforma giratoria cuando se alcance el ángulo objetivo:
turntable_motor.stop(Stop.BRAKE)
Establezca la posición inicial del mango en la posición superior:
pen_holder_raise()
Ahora viene la parte principal del programa: un bucle sin fin. EV3 primero espera a que el sensor de color detecte un papel blanco o un cuadrado de inicio azul y a que se presione el sensor táctil. Luego dibuja un patrón, vuelve a la posición inicial y repite todo nuevamente.
Cuando el dispositivo no está listo, los LED del controlador se vuelven rojos y se muestra una imagen de "pulgar hacia abajo" en la pantalla LCD:
while True:
brick.light(Color.RED)
brick.display.image(ImageFile.THUMBS_DOWN)
Esperamos hasta que el sensor de color cuente azul o blanco, configuramos el color del LED en verde, mostramos una imagen de "pulgar hacia arriba" en la pantalla LCD e informamos que el dispositivo está listo para usar:
while color_sensor.color() not in (Color.BLUE, Color.WHITE):
wait(10)
brick.light(Color.GREEN)
brick.display.image(ImageFile.THUMBS_UP)
Esperamos a que se presione el sensor táctil, asignamos el valor de ángulo 0 al sensor giroscópico y comenzamos a dibujar:
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 el portalápices y regréselo a su posición original:
pen_holder_raise()
pen_holder_turn_to(0)</i>
Este es el programa sencillo que hemos creado. Y ahora lo iniciamos y miramos el robot de dibujo en acción.
¿Qué aportan estos ejemplos?

EV3 es una herramienta de orientación profesional para carreras STEM y un punto de entrada a carreras de ingeniería. Dado que puede utilizarse para resolver problemas prácticos, los niños adquieren experiencia en el desarrollo técnico y la creación de robots industriales, aprenden a simular situaciones reales, comprenden programas y analizan algoritmos y dominan estructuras básicas de programación.
La compatibilidad con MicroPython hace que la plataforma EV3 sea adecuada para la enseñanza en la escuela secundaria. Los estudiantes pueden probarse a sí mismos como programadores en uno de los lenguajes modernos más populares y familiarizarse con profesiones relacionadas con la programación y el diseño de ingeniería. Los kits EV3 demuestran que la codificación no da miedo, lo preparan para desafíos de ingeniería serios y lo ayudan a dar el primer paso hacia el dominio de las habilidades técnicas. Y para quienes trabajan en las escuelas y están asociados a la educación, hemos preparado y materiales educativos. Describen en detalle qué habilidades se desarrollan al realizar determinadas tareas y cómo se relacionan las habilidades adquiridas con los estándares de formación.
Fuente: habr.com
