Kaixo, Habr! Gu dagoeneko LEGO MINDSTORMS Education EV3 plataformari buruz. Plataforma honen helburu nagusiak adibide praktikoen bidez ikastea, STEAM gaitasunak garatzea eta ingeniaritza pentsamoldea garatzea dira. Laborategiko lanetarako erabil daiteke mekanika eta dinamika aztertzeko. LEGO adreiluz egindako laborategiko bankuek eta datuak erregistratzeko eta prozesatzeko erabilgarritasunek esperimentuak are interesgarriagoak eta bisualagoak egiten dituzte eta haurrek fisika hobeto ulertzen laguntzen dute. Adibidez, ikasleek fusio-puntuaren datuak bil ditzakete eta aplikazioa erabil dezakete hura antolatzeko eta grafiko batean aurkezteko. Baina hau hasiera besterik ez da: gaur multzo hau MicroPython programazio-ingurunearekin osatu eta robotika irakasteko nola erabili kontatuko dizuegu.

Ikasi programazioa EV3 erabiliz
Eskola-ume modernoek emaitza koloretsuak ikusi nahi dituzte. Bai, aspertuta daude programak kontsolan zenbakiak inprimatzen baditu, eta kolore grafikoak, diagramak begiratu eta aginduak mugitzen eta jarraitzen dituzten benetako robotak sortu nahi dituzte. Kode arrunta ere konplikatuegia dirudi haurrentzat, beraz hobe da errazago zerbaitekin ikasten hastea.
Oinarrizko EV3 programazio ingurunea LabVIEW lengoaia grafikoan oinarritzen da eta robotaren algoritmoak bisualki zehaztea ahalbidetzen du: komandoak arrastatu eta konektatu daitezkeen blokeen moduan aurkezten dira.

Metodo honek ondo funtzionatzen du algoritmoak nola eraikitzen diren erakutsi behar duzunean, baina ez da egokia bloke kopuru handia duten programetarako. Eszenatokiak konplexuagoak diren heinean, beharrezkoa da kode bidezko programaziora pasatzea, baina pauso hori zaila da umeentzat egitea.
Hemen trikimailu batzuk daude, horietako bat kodeak blokeen gauza bera egiten duela erakustea. EV3 ingurunean, MicroPython integrazioaren bidez posible da, beraz, haurrek programa bera sor dezakete bai oinarrizko blokeen programazio ingurunean, bai Python Microsoft-en Visual Studio Code-n. Bi metodoek berdin funtzionatzen dutela ikusten dute, baina arazo konplexuak kodea erabiliz konpontzea erosoagoa da.
MicroPython-era aldatzen
EV3 ingurunea ARM9 prozesadore batean eraikita dago, eta garatzaileek nahita utzi zuten arkitektura irekita. Irtenbide honek firmware alternatiboak zabaltzea ahalbidetu zuen, eta horietako bat MicroPython-ekin lan egiteko irudia zen. Python erabiltzeko aukera ematen dizu zure EV3 programatzeko, kit-a bizitza errealeko zereginetara are gehiago hurbilduz.
Hasteko, deskargatu behar duzu edozein microSD txarteletan, instala ezazu EV3 mikroordenagailuan eta piztu. Ondoren, instalatu behar duzu Visual Studiorako. Eta lanean has zaitezke.
MycroPython-en lehen robota programatzen

Gure gainean Robotikaren oinarrizko kontzeptuak menperatzeko hainbat ikasgai daude. EV3 modeloek auto gidatzen duten autoetan, fabrikako muntaketa-robotetan eta CNC makinetan erabiltzen diren oinarrizko ezagutzak aurkezten dizkie haurrei.
Marrazteko makina baten adibidea hartuko dugu, ereduak eta forma geometrikoak marrazten irakatsi ahal izateko. Kasu hau soldadura edo fresatzeko robot helduen bertsio sinplifikatu bat da eta EV3 MicroPython-ekin batera nola erabil daitekeen erakusten du eskola-umeei irakasteko. Eta marrazteko makina batek zirkuitu inprimatu batean zuloak markatu ditzake aitarentzat, baina hori matematika eskatzen duen beste maila bat da.
Lanerako behar dugu:
- LEGO MINDSTORMS Hezkuntza EV3 oinarrizko multzoa;
- koadrodun orri handia;
- koloretako errotulatzaileak.
Robotaren muntaia bera bertan dago , eta programazio adibide bat ikusiko dugu.
Lehenik eta behin EV3 modulu liburutegia abiarazten dugu:
#!/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
Heldulekua biratzen duen plataforma bat ezarri dugu B atakan motor bat bezala. Bi etapako engranaje-tren baten engranaje-erlazioa ezarri dugu, 20-12-28 hortz-kopurua, hurrenez hurren.
turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])
Heldulekuaren altxatzeko mekanismoa C atakan motor gisa konfiguratzen dugu:
seesaw_motor = Motor(Port.C)
Heldulekuaren inklinazio angelua neurtzen duen giroskopioa konfiguratzen dugu 2 atakan:
gyro_sensor = GyroSensor(Port.S2)
Kolore-sentsorea 3. atakan konfiguratzen dugu. Sentsorea marrazteko makinaren azpian paper zuria detektatzeko erabiltzen da:
color_sensor = ColorSensor(Port.S3)
Ukipen-sentsorea 4. atakan konfiguratzen dugu. Robota sentsorea sakatzean marrazten hasten da:
touch_sensor = TouchSensor(Port.S4)
Heldulekua igo eta jaisten duten funtzioak definitzen ditugu:
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)
Heldulekua angelu jakin batera edo angelu jakin batera biratzeko funtzio bat definitzen dugu:
def pen_holder_turn_to(target_angle):
if target_angle > gyro_sensor.angle():
Xede-angelua egungo giro-sentsorearen angelua baino handiagoa bada, jarraitu erlojuaren orratzen norantz abiadura positiboarekin:
turntable_motor.run(70)
while gyro_sensor.angle() < target_angle:
pass
elif target_angle < gyro_sensor.angle():
Xede-angelua uneko giro-sentsorea baino txikiagoa bada, mugitu erlojuaren norantzan:
turntable_motor.run(-70)
while gyro_sensor.angle() > target_angle:
pass
Gelditu plataforma birakaria xede-angelura iristen denean:
turntable_motor.stop(Stop.BRAKE)
Ezarri heldulekuaren hasierako posizioa goiko posizioan:
pen_holder_raise()
Orain programaren zati nagusia dator - begizta amaigabea. EV3 lehenik kolore-sentsoreak paper zuria edo hasierako karratu urdina detektatzeko eta ukipen-sentsorea sakatu arte itxarongo du. Ondoren, eredu bat marrazten du, hasierako posiziora itzultzen da eta dena berriro errepikatzen du.
Gailua prest ez dagoenean, kontrolagailuko LEDak gorri bihurtzen dira eta "erpurutxoa" irudia bistaratzen da LCD pantailan:
while True:
brick.light(Color.RED)
brick.display.image(ImageFile.THUMBS_DOWN)
Kolore-sentsoreak urdina edo zuria zenbatzen duen arte itxarongo dugu, LED kolorea berdea ezarriko dugu, "erpurua gora" irudia bistaratuko dugu LCD pantailan eta gailua erabiltzeko prest dagoela jakinaraziko dugu:
while color_sensor.color() not in (Color.BLUE, Color.WHITE):
wait(10)
brick.light(Color.GREEN)
brick.display.image(ImageFile.THUMBS_UP)
Ukipen-sentsorea sakatu arte itxarongo dugu, sentsore giroskopikoari 0 angelu-balioa esleitu eta marrazten hasten gara:
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)
Altxa boligrafoaren euskarria eta itzuli hasierako posiziora:
pen_holder_raise()
pen_holder_turn_to(0)</i>
Hau da sortu dugun programa sinplea. Eta orain abiarazi eta marrazkilari robota martxan ikusten dugu.
Zer ematen dute horrelako adibideek?

EV3 STEM karrerarako karrera orientatzeko tresna bat da eta ingeniaritza karrerarako sarrera puntu bat da. Arazo praktikoak ebazteko erabil daitekeenez, haurrek garapen teknikoan eta robot industrialen sorreran esperientzia hartzen dute, egoera errealak simulatzen, programak ulertzen eta algoritmoak aztertzen ikasten dute eta oinarrizko programazio-eraikuntzak menperatzen dituzte.
MicroPython-en laguntzak EV3 plataforma egokia egiten du batxilergoko irakaskuntzarako. Ikasleek bere burua programatzaile gisa probatu dezakete hizkuntza moderno ezagunenetako batean, eta programazio eta ingeniaritza diseinuarekin lotutako lanbideak ezagutu. EV3 kit-ek erakusten dute kodetzea ez dela beldurgarria, ingeniaritza-erronka larrietarako prestatzen zaituzte eta trebetasun teknikoak menderatzeko lehen urratsa ematen laguntzen dizu. Eta eskoletan lan egiten dutenentzat eta hezkuntzarekin lotuta daudenentzat prestatu dugu eta hezkuntza-materialak. Xehetasunez deskribatzen dute zer gaitasun garatzen diren zeregin jakin batzuk burutzean, eta lortutako trebetasunak prestakuntza-estandarrak nola erlazionatzen diren.
Iturria: www.habr.com
