LEGO MINDSTORMS Education EV3 + MicroPython: vaikiško konstravimo rinkinio programavimas suaugusiųjų kalba

Sveiki, Habr! Mes jau pasakojo apie LEGO MINDSTORMS Education EV3 platformą. Pagrindiniai šios platformos tikslai – mokymasis per praktinius pavyzdžius, STEAM įgūdžių ugdymas ir inžinerinio mąstymo ugdymas. Jis gali būti naudojamas laboratoriniams darbams tirti mechaniką ir dinamiką. Iš LEGO kaladėlių pagaminti laboratoriniai suolai ir pagalbinės priemonės duomenims įrašyti ir apdoroti daro eksperimentus dar įdomesnius ir vizualesnius bei padeda vaikams geriau suprasti fiziką. Pavyzdžiui, mokiniai gali rinkti lydymosi temperatūros duomenis ir naudoti programėlę juos tvarkyti bei pateikti diagramoje. Bet tai tik pradžia: šiandien mes jums pasakysime, kaip šį rinkinį papildyti MicroPython programavimo aplinka ir panaudoti robotikos mokymui.

LEGO MINDSTORMS Education EV3 + MicroPython: vaikiško konstravimo rinkinio programavimas suaugusiųjų kalba

Išmokite programuoti naudodami EV3

Šiuolaikiniai moksleiviai nori matyti spalvingus rezultatus. Taip, jiems nuobodu, jei programa spausdina skaičius į pultą, o jie nori žiūrėti spalvotus grafikus, diagramas ir kurti tikrus robotus, kurie juda ir vykdo komandas. Įprastas kodas vaikams taip pat atrodo per sudėtingas, todėl geriau pradėti mokytis nuo ko nors lengvesnio.

Bazinė EV3 programavimo aplinka yra paremta LabVIEW grafine kalba ir leidžia vizualiai nurodyti roboto algoritmus: komandos pateikiamos blokų pavidalu, kuriuos galima vilkti ir sujungti.

LEGO MINDSTORMS Education EV3 + MicroPython: vaikiško konstravimo rinkinio programavimas suaugusiųjų kalba

Šis metodas gerai veikia, kai reikia parodyti, kaip kuriami algoritmai, tačiau jis netinka programoms, kuriose yra daug blokų. Scenarijai tampa vis sudėtingesni, todėl reikia pereiti prie programavimo naudojant kodą, tačiau šį žingsnį vaikams sunku žengti. 

Čia yra keletas gudrybių, iš kurių vienas yra parodyti, kad kodas atlieka tą patį, ką ir blokai. EV3 aplinkoje tai įmanoma per MicroPython integraciją, todėl vaikai gali sukurti tą pačią programą tiek pagrindinėje blokų programavimo aplinkoje, tiek Python Microsoft Visual Studio Code. Jie mato, kad abu metodai veikia vienodai, tačiau sudėtingų problemų sprendimas naudojant kodą yra patogesnis.

Perjungimas į MicroPython

EV3 aplinka sukurta ant ARM9 procesoriaus, o kūrėjai sąmoningai paliko atvirą architektūrą. Šis sprendimas leido įdiegti alternatyvią programinę-aparatinę įrangą, iš kurių viena buvo vaizdas, skirtas darbui su „MicroPython“. Tai leidžia naudoti Python programuoti savo EV3, todėl rinkinys dar labiau priartėja prie realių užduočių. 

Norėdami pradėti, turite atsisiųsti EV3 MicroPython vaizdas bet kurioje „microSD“ kortelėje įdėkite ją į EV3 mikrokompiuterį ir įjunkite. Tada reikia įdiegti nemokamas pratęsimas skirta „Visual Studio“. Ir jūs galite pradėti dirbti. 

Pirmojo roboto programavimas MycroPython

LEGO MINDSTORMS Education EV3 + MicroPython: vaikiško konstravimo rinkinio programavimas suaugusiųjų kalba

Ant musu Dabar naršo Yra keletas pagrindinių robotikos sąvokų įsisavinimo pamokų. EV3 modeliai supažindina vaikus su savaime važiuojančių automobilių, gamyklinių surinkimo robotų ir CNC staklių pagrindais. 

Paimkime piešimo mašinos pavyzdį, kurią galima išmokyti piešti raštus ir geometrines figūras. Šis dėklas yra supaprastinta suaugusiems skirtų suvirinimo ar frezavimo robotų versija ir parodo, kaip EV3 galima naudoti kartu su MicroPython mokant moksleivius. Ir piešimo mašina gali pažymėti skyles spausdintinės plokštės tėčiui, bet tai yra kitas lygis, kuriam reikia matematikos.

Darbui mums reikia:

  • LEGO MINDSTORMS Education EV3 Core Set; 
  • didelis languoto popieriaus lapas;
  • spalvoti žymekliai. 

Pats robotas surinktas instrukcijos, ir pažvelgsime į programavimo pavyzdį.

Pirmiausia inicijuojame EV3 modulių biblioteką:

#!/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

Įrengiame platformą, kuri sukasi rankeną kaip variklį prievade B. Nustatome dviejų pakopų pavarų dėžės, kurios dantų skaičius yra atitinkamai 20-12-28, perdavimo skaičių.

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

Rankenos kėlimo mechanizmą sukonfigūruojame kaip variklį C prievade:

seesaw_motor = Motor(Port.C)

Giroskopą, matuojantį rankenos pasvirimo kampą, sukonfigūruojame 2 prievade:

gyro_sensor = GyroSensor(Port.S2)

Mes sukonfigūruojame spalvų jutiklį 3 prievade. Jutiklis naudojamas baltam popieriui aptikti po piešimo mašina:

color_sensor = ColorSensor(Port.S3)

Lietimo jutiklį sukonfigūruojame 4 prievade. Paspaudus jutiklį robotas pradeda piešti:

touch_sensor = TouchSensor(Port.S4)

Mes apibrėžiame funkcijas, kurios pakelia ir nuleidžia rankeną:

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)

Mes apibrėžiame funkciją pasukti rankeną tam tikru kampu arba tam tikru kampu:

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

Jei tikslinis kampas yra didesnis už esamą giroskopo jutiklio kampą, tęskite pagal laikrodžio rodyklę teigiamu greičiu:

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

Jei tikslinis kampas yra mažesnis už esamą giroskopo jutiklį, judėkite prieš laikrodžio rodyklę:

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

Sustabdykite besisukančią platformą, kai pasieksite tikslinį kampą:

  turntable_motor.stop(Stop.BRAKE)

Nustatykite pradinę rankenos padėtį viršutinėje padėtyje:

pen_holder_raise()

Dabar ateina pagrindinė programos dalis – nesibaigiantis ciklas. EV3 pirmiausia laukia, kol spalvų jutiklis aptiks baltą popierių arba mėlyną pradžios kvadratą ir bus paspaustas jutiklinis jutiklis. Tada jis nupiešia raštą, grįžta į pradinę padėtį ir vėl viską kartoja.

Kai įrenginys neparuoštas, valdiklio šviesos diodai tampa raudoni ir LCD ekrane rodomas „nykščiai žemyn“ vaizdas:

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

Laukiame, kol spalvų jutiklis suskaičiuos mėlyną arba baltą, LED spalvą nustatome į žalią, LCD ekrane parodome „nykštį aukštyn“ ir pranešame, kad įrenginys paruoštas naudoti:

  while color_sensor.color() not in (Color.BLUE, Color.WHITE):
	
wait(10)
  brick.light(Color.GREEN)
  brick.display.image(ImageFile.THUMBS_UP)

Laukiame, kol bus paspaustas jutiklinis jutiklis, giroskopiniam jutikliui priskiriame kampo reikšmę 0 ir pradedame piešti:

  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)

Pakelkite rašiklio laikiklį ir grąžinkite jį į pradinę padėtį:

  pen_holder_raise()
  pen_holder_turn_to(0)</i>

Tai paprasta programa, kurią sukūrėme. O dabar paleidžiame jį ir žiūrime į veikiantį braižybos robotą. 

Ką duoda tokie pavyzdžiai?

LEGO MINDSTORMS Education EV3 + MicroPython: vaikiško konstravimo rinkinio programavimas suaugusiųjų kalba

EV3 yra karjeros orientavimo įrankis STEM karjerai ir įėjimo į inžinieriaus karjerą taškas. Kadangi juo galima spręsti praktines problemas, vaikai įgyja techninio kūrimo ir pramoninių robotų kūrimo patirties, mokosi imituoti realias situacijas, suprasti programas ir analizuoti algoritmus, įsisavinti pagrindines programavimo konstrukcijas.

„MicroPython“ palaikymas daro EV3 platformą tinkama vidurinės mokyklos mokymui. Studentai gali išbandyti save kaip programuotoją viena populiariausių šiuolaikinių kalbų, susipažinti su profesijomis, susijusiomis su programavimu ir inžineriniu projektavimu. EV3 rinkiniai parodo, kad kodavimas nėra baisus, paruošia rimtiems inžineriniams iššūkiams ir padeda žengti pirmąjį žingsnį įvaldant techninius įgūdžius. O tiems, kurie dirba mokyklose ir yra susiję su švietimu, paruošėme pamokų programos ir mokomąją medžiagą. Juose detaliai aprašoma, kokie įgūdžiai ugdomi atliekant tam tikras užduotis, kaip įgyti įgūdžiai susiję su mokymo standartais.

Šaltinis: www.habr.com

Pirkite patikimą prieglobą svetainėms su DDoS apsauga, VPS VDS serveriais 🔥 Įsigykite patikimą svetainių talpinimą su DDoS apsauga, VPS VDS serveriais | ProHoster