Ahoj Habr! My už o platforme LEGO MINDSTORMS Education EV3. Hlavnými cieľmi tejto platformy je učenie sa prostredníctvom praktických príkladov, rozvoj zručností STEAM a rozvoj inžinierskeho myslenia. Môže sa použiť na laboratórne práce na štúdium mechaniky a dynamiky. Laboratórne lavice vyrobené z kociek LEGO a pomôcky na zaznamenávanie a spracovanie údajov robia experimenty ešte zaujímavejšími a názornejšími a pomáhajú deťom lepšie porozumieť fyzike. Študenti môžu napríklad zbierať údaje o teplote topenia a pomocou aplikácie ich organizovať a prezentovať v grafe. Toto je však len začiatok: dnes vám povieme, ako túto zostavu doplniť o programovacie prostredie MicroPython a využiť ju pri výučbe robotiky.

Naučte sa programovať pomocou EV3
Moderní školáci chcú vidieť farebné výsledky. Áno, nudí sa, ak program tlačí čísla do konzoly, a chcú si prezerať farebné grafy, diagramy a vytvárať skutočné roboty, ktoré sa pohybujú a plnia príkazy. Bežný kód sa tiež zdá byť pre deti príliš komplikovaný, takže je lepšie začať sa učiť s niečím jednoduchším.
Základné programovacie prostredie EV3 je založené na grafickom jazyku LabVIEW a umožňuje vám vizuálne špecifikovať algoritmy pre robota: príkazy sú prezentované vo forme blokov, ktoré je možné presúvať a spájať.

Táto metóda funguje dobre, keď potrebujete ukázať, ako sa vytvárajú algoritmy, ale nie je vhodná pre programy s veľkým počtom blokov. Keď sa scenáre stávajú zložitejšími, je potrebné prejsť na programovanie pomocou kódu, ale tento krok je pre deti náročný.
Je tu niekoľko trikov, jedným z nich je ukázať, že kód robí to isté ako bloky. V prostredí EV3 je to možné vďaka integrácii MicroPythonu, takže deti môžu vytvoriť rovnaký program v prostredí základného blokového programovania aj v Pythone v kóde Visual Studio od spoločnosti Microsoft. Vidia, že obe metódy fungujú rovnako, ale riešenie zložitých problémov pomocou kódu je pohodlnejšie.
Prechod na MicroPython
Prostredie EV3 je postavené na procesore ARM9 a vývojári zámerne nechali architektúru otvorenú. Toto riešenie umožnilo nasadiť alternatívny firmvér, jedným z nich bol obraz pre prácu s MicroPythonom. Umožňuje vám použiť Python na naprogramovanie vášho EV3, čím sa súprava ešte viac priblíži skutočným úlohám.
Ak chcete začať, musíte si stiahnuť na ľubovoľnú microSD kartu, nainštalujte ju do mikropočítača EV3 a zapnite ju. Potom musíte nainštalovať pre Visual Studio. A môžete začať pracovať.
Programovanie prvého robota v MycroPythone

Na našom Na zvládnutie základných pojmov robotiky existuje niekoľko lekcií. Modely EV3 oboznamujú deti so základmi, ktoré sa používajú v samoriadiacich autách, továrenských montážnych robotoch a CNC strojoch.
Vezmime si ako príklad kresliaci stroj, ktorý sa dá naučiť kresliť vzory a geometrické tvary. Tento prípad je zjednodušenou verziou zváracích alebo frézovacích robotov pre dospelých a ukazuje, ako možno použiť EV3 v spojení s MicroPythonom na výučbu školákov. A kresliaci stroj môže označiť diery na doske s plošnými spojmi pre otca, ale to je ďalšia úroveň, ktorá vyžaduje matematiku.
Pre prácu potrebujeme:
- Základná súprava LEGO MINDSTORMS Education EV3;
- veľký hárok kockovaného papiera;
- farebné fixky.
Samotná montáž robota je in , a pozrieme sa na príklad programovania.
Najprv inicializujeme knižnicu 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
Plošinu, ktorá otáča rukoväťou ako motor, nastavíme v porte B. Nastavíme prevodový pomer dvojstupňového ozubeného súkolesia s počtom zubov 20-12-28, resp.
turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])
Zdvíhací mechanizmus pre rukoväť konfigurujeme ako motor v porte C:
seesaw_motor = Motor(Port.C)
Gyroskop, ktorý meria uhol sklonu rukoväte, konfigurujeme v porte 2:
gyro_sensor = GyroSensor(Port.S2)
Snímač farieb nakonfigurujeme na porte 3. Snímač sa používa na detekciu bieleho papiera pod kresliacim strojom:
color_sensor = ColorSensor(Port.S3)
Dotykový senzor nakonfigurujeme na porte 4. Robot začne kresliť po stlačení senzora:
touch_sensor = TouchSensor(Port.S4)
Definujeme funkcie, ktoré zdvíhajú a spúšťajú rukoväť:
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)
Definujeme funkciu na otočenie rukoväte do daného uhla alebo do určitého uhla:
def pen_holder_turn_to(target_angle):
if target_angle > gyro_sensor.angle():
Ak je cieľový uhol väčší ako aktuálny uhol gyroskopického snímača, pokračujte v smere hodinových ručičiek s kladnou rýchlosťou:
turntable_motor.run(70)
while gyro_sensor.angle() < target_angle:
pass
elif target_angle < gyro_sensor.angle():
Ak je cieľový uhol menší ako aktuálny gyroskopický senzor, posuňte sa proti smeru hodinových ručičiek:
turntable_motor.run(-70)
while gyro_sensor.angle() > target_angle:
pass
Po dosiahnutí cieľového uhla zastavte otočnú plošinu:
turntable_motor.stop(Stop.BRAKE)
Nastavte počiatočnú polohu rukoväte do hornej polohy:
pen_holder_raise()
Teraz prichádza hlavná časť programu – nekonečná slučka. EV3 najskôr čaká, kým farebný snímač deteguje biely papier alebo modrý štartovací štvorec a kým sa stlačí dotykový snímač. Potom nakreslí vzor, vráti sa do východiskovej polohy a všetko zopakuje.
Keď zariadenie nie je pripravené, LED diódy na ovládači sa rozsvietia na červeno a na obrazovke LCD sa zobrazí obrázok „palec dole“:
while True:
brick.light(Color.RED)
brick.display.image(ImageFile.THUMBS_DOWN)
Počkáme, kým farebný snímač napočíta modrú alebo bielu farbu, nastavíme farbu LED na zelenú, na LCD obrazovke zobrazíme obrázok „palec hore“ a oznámime, že zariadenie je pripravené na použitie:
while color_sensor.color() not in (Color.BLUE, Color.WHITE):
wait(10)
brick.light(Color.GREEN)
brick.display.image(ImageFile.THUMBS_UP)
Počkáme na stlačenie dotykového senzora, priradíme gyroskopickému senzoru hodnotu uhla 0 a začneme kresliť:
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)
Zdvihnite držiak pera a vráťte ho do pôvodnej polohy:
pen_holder_raise()
pen_holder_turn_to(0)</i>
Toto je jednoduchý program, ktorý sme vytvorili. A teraz to spustíme a pozrieme sa na kresliaceho robota v akcii.
Čo takéto príklady poskytujú?

EV3 je nástroj kariérového poradenstva pre kariéru STEM a vstupný bod do inžinierskej kariéry. Keďže sa dá použiť na riešenie praktických problémov, deti získajú skúsenosti s technickým vývojom a tvorbou priemyselných robotov, učia sa simulovať reálne situácie, porozumieť programom a analyzovať algoritmy a osvojiť si základné programovacie konštrukty.
Vďaka podpore MicroPythonu je platforma EV3 vhodná pre stredoškolskú výučbu. Študenti sa môžu vyskúšať ako programátori v jednom z najpopulárnejších moderných jazykov a zoznámiť sa s profesiami súvisiacimi s programovaním a inžinierskym dizajnom. Súpravy EV3 ukazujú, že kódovanie nie je desivé, pripravia vás na vážne inžinierske výzvy a pomôžu vám urobiť prvý krok k zvládnutiu technických zručností. A pre tých, ktorí pracujú na školách a sú spojení so školstvom, sme pripravili a vzdelávacie materiály. Podrobne popisujú, aké zručnosti sa rozvíjajú pri vykonávaní určitých úloh a ako nadobudnuté zručnosti súvisia s tréningovými štandardmi.
Zdroj: hab.com
