LEGO MINDSTORMS Education EV3 + MicroPython: laste ehituskomplekti programmeerimine täiskasvanute keeles

Tere, Habr! Meie juba rääkinud LEGO MINDSTORMS Education EV3 platvormi kohta. Selle platvormi peamised eesmärgid on õppimine praktiliste näidete kaudu, STEAM-oskuste arendamine ja inseneri mõtteviisi arendamine. Seda saab kasutada laboritöödeks mehaanika ja dünaamika uurimiseks. LEGO klotsidest valmistatud laboripingid ja utiliidid andmete salvestamiseks ja töötlemiseks muudavad katsed veelgi huvitavamaks ja visuaalsemaks ning aitavad lastel füüsikat paremini mõista. Näiteks saavad õpilased koguda sulamistemperatuuri andmeid ja kasutada rakendust nende korrastamiseks ja graafikuna esitamiseks. Kuid see on alles algus: täna räägime teile, kuidas seda komplekti MicroPython programmeerimiskeskkonnaga täiendada ja robootika õpetamiseks kasutada.

LEGO MINDSTORMS Education EV3 + MicroPython: laste ehituskomplekti programmeerimine täiskasvanute keeles

Õppige programmeerimist EV3 abil

Kaasaegsed koolilapsed tahavad näha värvikaid tulemusi. Jah, neil on igav, kui programm prindib konsooli numbreid ja nad tahavad vaadata värvigraafikuid, diagramme ja luua päris roboteid, mis liiguvad ja käske järgivad. Tavakood tundub ka lastele liiga keeruline, nii et parem on alustada õppimist millegi lihtsamaga.

Põhiline EV3 programmeerimiskeskkond põhineb LabVIEW graafilisel keelel ja võimaldab robotile visuaalselt määrata algoritme: käsud esitatakse lohistatavate ja ühendatavate plokkidena.

LEGO MINDSTORMS Education EV3 + MicroPython: laste ehituskomplekti programmeerimine täiskasvanute keeles

See meetod töötab hästi, kui peate näitama, kuidas algoritmid on üles ehitatud, kuid see ei sobi suure hulga plokkidega programmidele. Kuna stsenaariumid muutuvad keerukamaks, tuleb üle minna koodiga programmeerimisele, kuid seda sammu on lastel raske teha. 

Siin on mõned nipid, millest üks on näidata, et kood teeb sama, mis plokid. EV3 keskkonnas on see võimalik MicroPythoni integratsiooni kaudu, nii et lapsed saavad luua sama programmi nii põhiplokkide programmeerimiskeskkonnas kui ka Pythonis Microsofti Visual Studio Code'is. Nad näevad, et mõlemad meetodid töötavad samamoodi, kuid keerukate probleemide lahendamine koodi abil on mugavam.

MicroPythonile lülitumine

EV3 keskkond on üles ehitatud ARM9 protsessorile ja arendajad jätsid arhitektuuri teadlikult lahtiseks. See lahendus võimaldas kasutusele võtta alternatiivse püsivara, millest üks oli MicroPythoniga töötamiseks mõeldud pilt. See võimaldab teil kasutada Pythonit oma EV3 programmeerimiseks, tuues komplekti tegelikele ülesannetele veelgi lähemale. 

Alustamiseks peate alla laadima EV3 MicroPython pilt mis tahes microSD-kaardile installige see EV3 mikroarvutisse ja lülitage see sisse. Siis peate installima tasuta laiendus Visual Studio jaoks. Ja võite alustada tööd. 

Esimese roboti programmeerimine MycroPythonis

LEGO MINDSTORMS Education EV3 + MicroPython: laste ehituskomplekti programmeerimine täiskasvanute keeles

Meie peal veebisait Robootika põhimõistete omandamiseks on mitu õppetundi. EV3 mudelid tutvustavad lastele põhitõdesid, mida kasutatakse isejuhtivates autodes, tehase koosterobotites ja CNC-pinkides. 

Toome näite joonistusmasinast, mida saab õpetada joonistama mustreid ja geomeetrilisi kujundeid. See ümbris on täiskasvanute keevitus- või freesirobotite lihtsustatud versioon ja näitab, kuidas EV3 saab kasutada koos MicroPythoniga kooliõpilaste õpetamiseks. Ja joonistusmasin suudab isa jaoks trükkplaadile augud märkida, kuid see on veel üks tase, mis nõuab matemaatikat.

Tööks vajame:

  • LEGO MINDSTORMS Education EV3 põhikomplekt; 
  • suur ruuduline paberileht;
  • värvilised markerid. 

Roboti enda kokkupanek on sees juhiseid, ja me vaatame programmeerimise näidet.

Esmalt initsialiseerime EV3 mooduliteeki:

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

Panime paika platvormi, mis pöörleb käepidet nagu mootor pordis B. Seadsime kaheastmelise hammasrataste arvuga hammasrataste ülekandearvuks vastavalt 20-12-28.

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

Konfigureerime käepideme tõstemehhanismi mootoriks pordis C:

seesaw_motor = Motor(Port.C)

Konfigureerime pordis 2 güroskoopi, mis mõõdab käepideme kaldenurka:

gyro_sensor = GyroSensor(Port.S2)

Konfigureerime värvianduri pordis 3. Andurit kasutatakse joonistusmasina all valge paberi tuvastamiseks:

color_sensor = ColorSensor(Port.S3)

Konfigureerime puuteanduri pordis 4. Anduri vajutamisel hakkab robot joonistama:

touch_sensor = TouchSensor(Port.S4)

Määratleme käepideme tõstmise ja langetamise funktsioonid:

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)

Määratleme funktsiooni käepideme pööramiseks etteantud nurga või teatud nurga all:

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

Kui sihtnurk on suurem kui praegune güroskoopanduri nurk, jätkake positiivse kiirusega päripäeva:

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

Kui sihtnurk on väiksem kui praegune güroskoopsensor, liigutage vastupäeva:

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

Peatage pöörlev platvorm, kui sihtnurk on saavutatud:

  turntable_motor.stop(Stop.BRAKE)

Seadke käepideme algne asend ülemisse asendisse:

pen_holder_raise()

Nüüd tuleb programmi põhiosa – lõputu tsükkel. EV3 ootab esmalt, kuni värvisensor tuvastab valge paberi või sinise algusruudu ja puuteandurile vajutatakse. Seejärel joonistab ta mustri, naaseb algasendisse ja kordab kõike uuesti.

Kui seade ei ole valmis, muutuvad kontrolleri LED-id punaseks ja LCD-ekraanile kuvatakse „pöial alla” pilt:

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

Ootame, kuni värvisensor loeb sinist või valget, seame LED-i värvi roheliseks, kuvame LCD-ekraanile “pöidlad üles” pildi ja teatame, et seade on kasutusvalmis:

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

Ootame puuteanduri vajutamist, määrame güroskoopilisele andurile nurga väärtuse 0 ja alustame joonistamist:

  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)

Tõstke pliiatsihoidja üles ja pange see tagasi algasendisse:

  pen_holder_raise()
  pen_holder_turn_to(0)</i>

See on lihtne programm, mille oleme loonud. Ja nüüd käivitame selle ja vaatame joonistamisrobotit töös. 

Mida sellised näited annavad?

LEGO MINDSTORMS Education EV3 + MicroPython: laste ehituskomplekti programmeerimine täiskasvanute keeles

EV3 on STEM-karjääride karjäärinõustamise tööriist ja sisenemispunkt insenerikarjääridesse. Kuna seda saab kasutada praktiliste probleemide lahendamisel, saavad lapsed kogemusi tehnilise arenduse ja tööstusrobotite loomise alal, õpivad simuleerima reaalseid olukordi, mõistma programme ja analüüsima algoritme ning valdama põhilisi programmeerimiskonstruktsioone.

MicroPython tugi muudab EV3 platvormi gümnaasiumiõppeks sobivaks. Õpilased saavad end proovile panna programmeerijana ühes populaarseimas kaasaegses keeles ning tutvuda programmeerimise ja inseneridisainiga seotud ametitega. EV3 komplektid näitavad, et kodeerimine pole hirmutav, valmistavad teid ette tõsisteks inseneriväljakutseteks ja aitavad teil astuda esimese sammu tehniliste oskuste omandamise suunas. Ja neile, kes töötavad koolides ja on seotud haridusega, oleme ette valmistanud õppetundide programmid ja õppematerjalid. Need kirjeldavad üksikasjalikult, milliseid oskusi teatud ülesannete täitmisel arendatakse ja kuidas omandatud oskused on seotud koolitusstandarditega.

Allikas: www.habr.com

Ostke DDoS-kaitsega saitide jaoks usaldusväärne hostimine, VPS VDS-serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster