Hej, Habr! Vi redan om LEGO MINDSTORMS Education EV3-plattformen. Huvudmålen med denna plattform är att lära sig genom praktiska exempel, utveckla STEAM-färdigheter och utveckla ett ingenjörstänk. Den kan användas för laborationer för att studera mekanik och dynamik. Laboratoriebänkar gjorda av LEGO-klossar och verktyg för att registrera och bearbeta data gör experiment ännu mer intressanta och visuella och hjälper barn att bättre förstå fysik. Elever kan till exempel samla in smältpunktsdata och använda appen för att organisera den och presentera den i en graf. Men det här är bara början: idag kommer vi att berätta hur du kompletterar denna uppsättning med MicroPython-programmeringsmiljön och använder den för att lära ut robotik.

Lär dig programmering med EV3
Moderna skolbarn vill se färgglada resultat. Ja, de är uttråkade om programmet skriver ut siffror på konsolen, och de vill titta på färggrafer, diagram och skapa riktiga robotar som rör sig och följer kommandon. Vanlig kod verkar också för komplicerad för barn, så det är bättre att börja lära sig med något enklare.
Den grundläggande EV3-programmeringsmiljön är baserad på det grafiska språket LabVIEW och låter dig specificera algoritmer för roboten visuellt: kommandon presenteras i form av block som kan dras och kopplas.

Denna metod fungerar bra när du behöver visa hur algoritmer är uppbyggda, men den är inte lämplig för program med ett stort antal block. När scenarierna blir mer komplexa är det nödvändigt att gå över till programmering med kod, men detta steg är svårt för barn att ta.
Det finns några knep här, varav ett är att visa att koden gör samma sak som blocken. I EV3-miljön är detta möjligt genom MicroPython-integration, så barn kan skapa samma program i både den grundläggande blockprogrammeringsmiljön och Python i Microsofts Visual Studio Code. De ser att båda metoderna fungerar likadant, men att lösa komplexa problem med hjälp av kod är bekvämare.
Byter till MicroPython
EV3-miljön är byggd på en ARM9-processor, och utvecklarna lämnade medvetet arkitekturen öppen. Denna lösning gjorde det möjligt att rulla ut alternativ firmware, varav en var en image för att arbeta med MicroPython. Det låter dig använda Python för att programmera din EV3, vilket för kitet ännu närmare verkliga uppgifter.
För att komma igång måste du ladda ner på vilket microSD-kort som helst, installera det i EV3-mikrodatorn och slå på det. Sedan måste du installera för Visual Studio. Och du kan börja jobba.
Programmering av den första roboten i MycroPython

På vår Det finns flera lektioner för att bemästra de grundläggande begreppen robotik. EV3-modeller introducerar barn till grunderna som används i självkörande bilar, fabriksmonteringsrobotar och CNC-maskiner.
Vi tar exemplet med en ritmaskin, som kan läras att rita mönster och geometriska former. Detta fodral är en förenklad version av svets- eller fräsrobotar för vuxna och visar hur EV3 kan användas tillsammans med MicroPython för att lära skolbarn. Och en ritmaskin kan markera hål i ett kretskort åt pappa, men det är en annan nivå som kräver matematik.
För arbete behöver vi:
- LEGO MINDSTORMS Education EV3 Core Set;
- stort ark rutigt papper;
- färgade markörer.
Monteringen av själva roboten är inne , och vi kommer att titta på ett programmeringsexempel.
Först initialiserar vi EV3-modulbiblioteket:
#!/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
Vi sätter upp en plattform som roterar handtaget som en motor i port B. Vi ställer in utväxlingen på en tvåstegs växel med ett antal tänder på 20-12-28 respektive.
turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])
Vi konfigurerar lyftmekanismen för handtaget som en motor i port C:
seesaw_motor = Motor(Port.C)
Vi konfigurerar gyroskopet, som mäter handtagets lutningsvinkel, i port 2:
gyro_sensor = GyroSensor(Port.S2)
Vi konfigurerar färgsensorn i port 3. Sensorn används för att detektera vitt papper under ritmaskinen:
color_sensor = ColorSensor(Port.S3)
Vi konfigurerar touchsensorn i port 4. Roboten börjar rita när sensorn trycks in:
touch_sensor = TouchSensor(Port.S4)
Vi definierar funktionerna som höjer och sänker handtaget:
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)
Vi definierar en funktion för att rotera handtaget till en given vinkel eller till en viss vinkel:
def pen_holder_turn_to(target_angle):
if target_angle > gyro_sensor.angle():
Om målvinkeln är större än den aktuella gyrosensorvinkeln, fortsätt medurs med en positiv hastighet:
turntable_motor.run(70)
while gyro_sensor.angle() < target_angle:
pass
elif target_angle < gyro_sensor.angle():
Om målvinkeln är mindre än den aktuella gyrosensorn, flytta sedan moturs:
turntable_motor.run(-70)
while gyro_sensor.angle() > target_angle:
pass
Stoppa den roterande plattformen när målvinkeln nås:
turntable_motor.stop(Stop.BRAKE)
Ställ in utgångsläget för handtaget i det övre läget:
pen_holder_raise()
Nu kommer huvuddelen av programmet - en oändlig loop. EV3 väntar först på att färgsensorn upptäcker ett vitt papper eller blå startruta och på att peksensorn trycks ned. Sedan ritar han ett mönster, återgår till utgångsläget och upprepar allt igen.
När enheten inte är klar blir lysdioderna på kontrollenheten röda och en "tummen ned"-bild visas på LCD-skärmen:
while True:
brick.light(Color.RED)
brick.display.image(ImageFile.THUMBS_DOWN)
Vi väntar tills färgsensorn räknar blått eller vitt, ställer in LED-färgen på grönt, visar en "tummen upp"-bild på LCD-skärmen och rapporterar att enheten är redo att användas:
while color_sensor.color() not in (Color.BLUE, Color.WHITE):
wait(10)
brick.light(Color.GREEN)
brick.display.image(ImageFile.THUMBS_UP)
Vi väntar på att beröringssensorn ska tryckas in, tilldelar vinkelvärdet 0 till den gyroskopiska sensorn och börjar rita:
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)
Lyft upp pennhållaren och sätt tillbaka den till sitt ursprungliga läge:
pen_holder_raise()
pen_holder_turn_to(0)</i>
Det här är det enkla programmet vi har skapat. Och nu lanserar vi den och tittar på ritningsroboten i aktion.
Vad ger sådana exempel?

EV3 är ett karriärvägledningsverktyg för STEM-karriärer och en startpunkt till ingenjörskarriärer. Eftersom det kan användas för att lösa praktiska problem får barn erfarenhet av teknisk utveckling och skapandet av industrirobotar, lär sig att simulera verkliga situationer, förstå program och analysera algoritmer och bemästra grundläggande programmeringskonstruktioner.
MicroPython-stöd gör EV3-plattformen lämplig för gymnasieundervisning. Studenter kan prova sig fram som programmerare på ett av de mest populära moderna språken och bekanta sig med yrken relaterade till programmering och ingenjörsdesign. EV3-kit visar att kodning inte är skrämmande, förbereder dig för allvarliga tekniska utmaningar och hjälper dig att ta det första steget mot att bemästra tekniska färdigheter. Och för de som jobbar i skolan och är knutna till utbildning har vi förberett och utbildningsmaterial. De beskriver i detalj vilka färdigheter som utvecklas när man utför vissa uppgifter, och hur de förvärvade färdigheterna relaterar till utbildningsstandarder.
Källa: will.com
