Pozdravljeni, Habr! Mi smo že o platformi LEGO MINDSTORMS Education EV3. Glavni cilji te platforme so učenje s praktičnimi primeri, razvijanje veščin STEAM in razvijanje inženirske miselnosti. Lahko se uporablja za laboratorijsko delo za preučevanje mehanike in dinamike. Laboratorijske klopi iz LEGO kock in pripomočki za beleženje in obdelavo podatkov naredijo poskuse še bolj zanimive in nazorne ter otrokom pomagajo bolje razumeti fiziko. Učenci lahko na primer zbirajo podatke o tališčih in jih z aplikacijo organizirajo ter predstavijo v grafu. A to je šele začetek: danes vam bomo povedali, kako ta komplet dopolniti s programskim okoljem MicroPython in ga uporabiti za poučevanje robotike.

Naučite se programiranja z uporabo EV3
Sodobni šolarji želijo videti barvite rezultate. Da, dolgčas jim je, če program izpisuje številke na konzolo, in želijo gledati barvne grafe, diagrame in ustvarjati prave robote, ki se premikajo in sledijo ukazom. Tudi običajna koda se otrokom zdi preveč zapletena, zato se je bolje začeti učiti z nečim lažjim.
Osnovno programsko okolje EV3 temelji na grafičnem jeziku LabVIEW in vam omogoča vizualno določanje algoritmov za robota: ukazi so predstavljeni v obliki blokov, ki jih je mogoče povleči in povezati.

Ta metoda deluje dobro, ko morate pokazati, kako so zgrajeni algoritmi, vendar ni primerna za programe z velikim številom blokov. Ker postajajo scenariji kompleksnejši, je treba preiti na programiranje s kodo, vendar je ta korak za otroke težko sprejet.
Tukaj je nekaj trikov, eden od njih je pokazati, da koda dela isto kot bloki. V okolju EV3 je to mogoče z integracijo MicroPython, tako da lahko otroci ustvarijo isti program tako v osnovnem okolju za programiranje blokov kot v Pythonu v Microsoftovi Visual Studio Code. Vidijo, da obe metodi delujeta enako, vendar je reševanje kompleksnih problemov z uporabo kode bolj priročno.
Prehod na MicroPython
Okolje EV3 je zgrajeno na procesorju ARM9, razvijalci pa so arhitekturo namerno pustili odprto. Ta rešitev je omogočila uvedbo alternativne vdelane programske opreme, ena od njih je bila slika za delo z MicroPython. Omogoča vam uporabo Pythona za programiranje vašega EV3, s čimer se komplet še bolj približa nalogam v resničnem življenju.
Če želite začeti, morate prenesti na kateri koli kartici microSD, jo namestite v mikroračunalnik EV3 in jo vklopite. Potem morate namestiti za Visual Studio. In lahko začnete delati.
Programiranje prvega robota v MycroPythonu

Na našem Obstaja več lekcij za obvladovanje osnovnih konceptov robotike. Modeli EV3 otroke seznanijo z osnovami, ki se uporabljajo v samovozečih avtomobilih, robotih za tovarniško sestavljanje in CNC strojih.
Za primer bomo vzeli risalni stroj, ki ga lahko naučimo risati vzorce in geometrijske oblike. Ta primer je poenostavljena različica robotov za varjenje ali rezkanje odraslih in prikazuje, kako se lahko EV3 uporablja v povezavi z MicroPythonom za poučevanje šolarjev. In risalni stroj lahko očetu označi luknje v tiskanem vezju, a to je druga raven, ki zahteva matematiko.
Za delo potrebujemo:
- Osnovni komplet LEGO MINDSTORMS Education EV3;
- velik list karirastega papirja;
- barvni markerji.
Sestavljanje samega robota je v , pogledali pa si bomo primer programiranja.
Najprej inicializiramo knjižnico modulov 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
Postavimo platformo, ki kot motor vrti ročaj v priključku B. Nastavimo prestavno razmerje dvostopenjskega zobnika s številom zob 20-12-28 oz.
turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])
Dvižni mehanizem za ročaj konfiguriramo kot motor v vratih C:
seesaw_motor = Motor(Port.C)
Žiroskop, ki meri kot naklona ročaja, konfiguriramo v priključku 2:
gyro_sensor = GyroSensor(Port.S2)
Konfiguriramo barvni senzor v vratih 3. Senzor se uporablja za zaznavanje belega papirja pod risalnim strojem:
color_sensor = ColorSensor(Port.S3)
Konfiguriramo senzor za dotik v vratih 4. Robot začne risati, ko pritisnemo senzor:
touch_sensor = TouchSensor(Port.S4)
Definiramo funkcije, ki dvigujejo in spuščajo ročaj:
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)
Definiramo funkcijo za vrtenje ročaja na dani kot ali na določen kot:
def pen_holder_turn_to(target_angle):
if target_angle > gyro_sensor.angle():
Če je ciljni kot večji od trenutnega kota žiroskopskega senzorja, nadaljujte v smeri urinega kazalca s pozitivno hitrostjo:
turntable_motor.run(70)
while gyro_sensor.angle() < target_angle:
pass
elif target_angle < gyro_sensor.angle():
Če je ciljni kot manjši od trenutnega senzorja žiroskopa, se premaknite v nasprotni smeri urinega kazalca:
turntable_motor.run(-70)
while gyro_sensor.angle() > target_angle:
pass
Ustavite vrtljivo ploščad, ko je dosežen ciljni kot:
turntable_motor.stop(Stop.BRAKE)
Nastavite začetni položaj ročaja v zgornji položaj:
pen_holder_raise()
Zdaj sledi glavni del programa - neskončna zanka. EV3 najprej počaka, da barvni senzor zazna bel papir ali moder začetni kvadrat in da se pritisne senzor za dotik. Nato nariše vzorec, se vrne v začetni položaj in vse znova ponovi.
Ko naprava ni pripravljena, lučke LED na krmilniku svetijo rdeče in na LCD zaslonu se prikaže slika s palcem navzdol:
while True:
brick.light(Color.RED)
brick.display.image(ImageFile.THUMBS_DOWN)
Počakamo, da barvni senzor prešteje modro ali belo, nastavimo barvo LED na zeleno, prikažemo sliko »palec gor« na LCD zaslonu in sporočimo, da je naprava pripravljena za uporabo:
while color_sensor.color() not in (Color.BLUE, Color.WHITE):
wait(10)
brick.light(Color.GREEN)
brick.display.image(ImageFile.THUMBS_UP)
Počakamo na pritisk senzorja za dotik, žiroskopskemu senzorju dodelimo vrednost kota 0 in začnemo risati:
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)
Dvignite držalo za pisalo in ga vrnite v prvotni položaj:
pen_holder_raise()
pen_holder_turn_to(0)</i>
To je preprost program, ki smo ga ustvarili. In zdaj ga zaženemo in pogledamo robota za risanje v akciji.
Kaj dajejo taki primeri?

EV3 je orodje za karierno usmerjanje za poklice STEM in vstopno točko v inženirske poklice. Ker je z njim mogoče reševati praktične probleme, otroci pridobivajo izkušnje s tehničnim razvojem in ustvarjanjem industrijskih robotov, se učijo simulirati realne situacije, razumeti programe in analizirati algoritme ter osvojiti osnovne programske konstrukcije.
Zaradi podpore MicroPython je platforma EV3 primerna za srednješolsko poučevanje. Dijaki se lahko preizkusijo kot programerji v enem izmed najbolj priljubljenih sodobnih jezikov ter se seznanijo s poklici, povezanimi s programiranjem in inženirskim oblikovanjem. Kompleti EV3 kažejo, da kodiranje ni strašljivo, pripravljajo vas na resne inženirske izzive in vam pomagajo narediti prvi korak k obvladovanju tehničnih veščin. In za tiste, ki delajo v šolah in so povezani z izobraževanjem, smo pripravili in izobraževalno gradivo. Podrobno opisujejo, katere veščine se razvijajo pri opravljanju določenih nalog in kako so pridobljene veščine povezane s standardi usposabljanja.
Vir: www.habr.com
