LEGO MINDSTORMS Education EV3 + MicroPython: programování dětské stavebnice v jazyce dospělých

Dobrý den, Habr! Jsme již řekla o platformě LEGO MINDSTORMS Education EV3. Hlavními cíli této platformy je učení se prostřednictvím praktických příkladů, rozvoj dovedností STEAM a rozvoj inženýrského myšlení. Může být použit pro laboratorní práce ke studiu mechaniky a dynamiky. Laboratorní lavice vyrobené z LEGO kostek a pomůcky pro záznam a zpracování dat dělají experimenty ještě zajímavějšími a názornějšími a pomáhají dětem lépe porozumět fyzice. Studenti mohou například shromažďovat data o teplotě tání a používat aplikaci k jejich uspořádání a prezentaci v grafu. To je ale jen začátek: dnes si řekneme, jak tuto sadu doplnit o programovací prostředí MicroPython a využít ji při výuce robotiky.

LEGO MINDSTORMS Education EV3 + MicroPython: programování dětské stavebnice v jazyce dospělých

Naučte se programovat pomocí EV3

Moderní školáci chtějí vidět barevné výsledky. Ano, nudí je, když program tiskne čísla do konzole, a chtějí se dívat na barevné grafy, diagramy a vytvářet skutečné roboty, kteří se pohybují a plní příkazy. Běžný kód se dětem také zdá příliš komplikovaný, takže je lepší začít se učit s něčím jednodušším.

Základní programovací prostředí EV3 je založeno na grafickém jazyce LabVIEW a umožňuje vizuálně specifikovat algoritmy pro robota: příkazy jsou prezentovány ve formě bloků, které lze přetahovat a spojovat.

LEGO MINDSTORMS Education EV3 + MicroPython: programování dětské stavebnice v jazyce dospělých

Tato metoda funguje dobře, když potřebujete ukázat, jak jsou algoritmy sestaveny, ale není vhodná pro programy s velkým počtem bloků. Jak se scénáře stávají složitějšími, je nutné přejít k programování pomocí kódu, ale tento krok je pro děti náročný. 

Je zde několik triků, jedním z nich je ukázat, že kód dělá to samé jako bloky. V prostředí EV3 je to možné díky integraci MicroPythonu, takže děti mohou vytvořit stejný program jak v základním blokovém programovacím prostředí, tak v Pythonu v Microsoft Visual Studio Code. Vidí, že obě metody fungují stejně, ale řešení složitých problémů pomocí kódu je pohodlnější.

Přechod na MicroPython

Prostředí EV3 je postaveno na procesoru ARM9 a vývojáři záměrně nechali architekturu otevřenou. Toto řešení umožnilo nasadit alternativní firmware, jedním z nich byl obrázek pro práci s MicroPythonem. Umožňuje vám použít Python k naprogramování vašeho EV3, čímž se kit ještě přiblíží skutečným úkolům. 

Chcete-li začít, musíte si stáhnout Obrázek EV3 MicroPython na jakoukoli microSD kartu, nainstalujte ji do mikropočítače EV3 a zapněte ji. Poté je třeba nainstalovat prodloužení zdarma pro Visual Studio. A můžete začít pracovat. 

Programování prvního robota v MycroPythonu

LEGO MINDSTORMS Education EV3 + MicroPython: programování dětské stavebnice v jazyce dospělých

Na naší webové stránky Existuje několik lekcí pro zvládnutí základních pojmů robotiky. Modely EV3 seznamují děti se základy, které se používají v samořídících autech, továrních montážních robotech a CNC strojích. 

Vezmeme si příklad kreslícího stroje, který lze naučit kreslit vzory a geometrické tvary. Tento případ je zjednodušenou verzí dospělých svařovacích nebo frézovacích robotů a ukazuje, jak lze EV3 použít ve spojení s MicroPythonem pro výuku školáků. A kreslící stroj může otci označit díry na desce s plošnými spoji, ale to je další úroveň, která vyžaduje matematiku.

Pro práci potřebujeme:

  • Základní sada LEGO MINDSTORMS Education EV3; 
  • velký list kostkovaného papíru;
  • barevné značky. 

Samotná montáž robota je in instrukce, a podíváme se na příklad programování.

Nejprve inicializujeme knihovnu modulů 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, která otáčí klikou jako motor, nastavíme v portu B. Nastavíme převodový poměr dvoustupňového soukolí s počtem zubů 20-12-28, resp.

turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])

Zvedací mechanismus pro rukojeť konfigurujeme jako motor v portu C:

seesaw_motor = Motor(Port.C)

Gyroskop, který měří úhel sklonu rukojeti, nakonfigurujeme v portu 2:

gyro_sensor = GyroSensor(Port.S2)

Nakonfigurujeme snímač barev na portu 3. Snímač se používá k detekci bílého papíru pod kreslícím strojem:

color_sensor = ColorSensor(Port.S3)

Nakonfigurujeme dotykový senzor v portu 4. Robot začne kreslit, když senzor stisknete:

touch_sensor = TouchSensor(Port.S4)

Definujeme funkce, které zvedá a spouští rukojeť:

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 funkci pro otočení rukojeti do daného úhlu nebo do určitého úhlu:

def pen_holder_turn_to(target_angle):
  if target_angle > gyro_sensor.angle():

Pokud je cílový úhel větší než aktuální úhel gyroskopického senzoru, pokračujte ve směru hodinových ručiček s kladnou rychlostí:

    turntable_motor.run(70)
	
while gyro_sensor.angle() < target_angle:
  	
pass
  elif target_angle < gyro_sensor.angle():

Pokud je cílový úhel menší než aktuální gyroskopický senzor, pohybujte se proti směru hodinových ručiček:

    turntable_motor.run(-70)
	
while gyro_sensor.angle() > target_angle:
  	
pass

Po dosažení cílového úhlu zastavte rotující plošinu:

  turntable_motor.stop(Stop.BRAKE)

Nastavte výchozí polohu rukojeti do horní polohy:

pen_holder_raise()

Nyní přichází hlavní část programu – nekonečná smyčka. EV3 nejprve čeká, až senzor barev detekuje bílý papír nebo modrý startovací čtverec a až se stiskne dotykový senzor. Poté nakreslí vzor, ​​vrátí se do výchozí pozice a vše znovu zopakuje.

Když zařízení není připraveno, LED diody na ovladači se rozsvítí červeně a na LCD obrazovce se zobrazí obrázek „palec dolů“:

while True:
  brick.light(Color.RED)
  brick.display.image(ImageFile.THUMBS_DOWN)

Počkáme, až barevný senzor napočítá modrou nebo bílou, nastavíme barvu LED na zelenou, na LCD obrazovce zobrazíme obrázek „palec nahoru“ a oznámíme, že zařízení je připraveno k použití:

  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 stisknutí dotykového senzoru, přiřadíme gyroskopickému senzoru hodnotu úhlu 0 a začneme kreslit:

  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)

Zvedněte držák pera a vraťte jej do původní polohy:

  pen_holder_raise()
  pen_holder_turn_to(0)</i>

Toto je jednoduchý program, který jsme vytvořili. A teď to spustíme a podíváme se na kreslícího robota v akci. 

Co takové příklady poskytují?

LEGO MINDSTORMS Education EV3 + MicroPython: programování dětské stavebnice v jazyce dospělých

EV3 je nástroj kariérového poradenství pro kariéru STEM a vstupní bod do inženýrské kariéry. Vzhledem k tomu, že jej lze využít k řešení praktických problémů, děti získávají zkušenosti s technickým vývojem a tvorbou průmyslových robotů, učí se simulovat reálné situace, rozumět programům a analyzovat algoritmy a zvládat základní programovací konstrukty.

Díky podpoře MicroPythonu je platforma EV3 vhodná pro výuku na střední škole. Studenti se mohou vyzkoušet jako programátoři v jednom z nejpopulárnějších moderních jazyků a seznámit se s profesemi souvisejícími s programováním a inženýrským designem. Sady EV3 ukazují, že kódování není děsivé, připraví vás na vážné technické výzvy a pomohou vám udělat první krok k zvládnutí technických dovedností. A pro ty, kteří pracují ve školách a jsou spojeni se vzděláváním, jsme připravili výukové programy a vzdělávací materiály. Podrobně popisují, jaké dovednosti se rozvíjejí při plnění určitých úkolů a jak získané dovednosti souvisí s výcvikovými standardy.

Zdroj: www.habr.com

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster