LEGO MINDSTORMS Education EV3 + MicroPython: programovanie detskej stavebnice v jazyku dospelých

Ahoj Habr! My už povedal 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.

LEGO MINDSTORMS Education EV3 + MicroPython: programovanie detskej stavebnice v jazyku dospelých

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ť.

LEGO MINDSTORMS Education EV3 + MicroPython: programovanie detskej stavebnice v jazyku dospelých

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ť Obrázok EV3 MicroPython na ľubovoľnú microSD kartu, nainštalujte ju do mikropočítača EV3 a zapnite ju. Potom musíte nainštalovať bezplatné rozšírenie pre Visual Studio. A môžete začať pracovať. 

Programovanie prvého robota v MycroPythone

LEGO MINDSTORMS Education EV3 + MicroPython: programovanie detskej stavebnice v jazyku dospelých

Na našom Online 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 inštrukcie, 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ú?

LEGO MINDSTORMS Education EV3 + MicroPython: programovanie detskej stavebnice v jazyku dospelých

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 vyučovacie programy 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

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster