Përshëndetje, Habr! Ne tashmë jemi për platformën LEGO MINDSTORMS Education EV3. Qëllimet kryesore të kësaj platforme janë mësimi përmes shembujve praktikë, zhvillimi i aftësive STEAM dhe formimi i të menduarit inxhinierik. Ajo ofron mundësi për të kryer laboratore për studimin e mekanikës dhe dinamikës. Stendat laboratorike të ndërtuara nga kubikë LEGO dhe mjetet për regjistrimin dhe përpunimin e të dhënave e bëjnë eksperimentimin më interesante dhe vizuale, duke ndihmuar fëmijët të kuptojnë më mirë fizikën. Për shembull, nxënësit mund të mbledhin të dhëna mbi temperaturën e shkrirjes dhe t'i sistematizojnë ato përmes aplikacionit dhe t'i paraqesin në formën e një grafiku. Por kjo është vetëm fillimi: sot do të tregojmë se si të plotësoni këtë set me ambientin e programimit MicroPython dhe ta përdorni atë për të mësuar robotikën.

Mësojmë programimin me EV3
Shkollarët e sotëm duan të shohin rezultate ngjyrash. Po, ata ndihen të mërzitur nëse programi jep vetëm numra në konsolë, dhe duan të shohin grafika me ngjyra, diagrame dhe të krijojnë robotë të vërtetë që lëvizin dhe zbatojnë urdhra. Kodo i zakonshëm iu duket shumë i komplikuar fëmijëve, prandaj është më mirë të fillohet mësimin me diçka më të lehtë.
Mjedisi bazik i programimit EV3 është krijuar mbi bazën e gjuhës grafike LabVIEW dhe lejon që të caktohen algoritme për robotin në mënyrë vizuale: komandat paraqiten si blloqe që mund të tërhiqen dhe lidhen.

Ky mënyrë funksionon mirë kur është e nevojshme të tregohet se si ndërtohen algoritmet, por nuk është e përshtatshme për programe me një numër të madh blloqesh. Me komplikuarjen e skenarëve, është e nevojshme të kalojë në programim me kod, por për fëmijët është e vështirë për të bërë këtë hap.
Kaà të dhënat janë disa truke, njëra prej tyre është të tregosh se kodi realizon të njëjtat detyra si blloqet. Në mjedisin EV3, kjo mund të bëhet përmes integrimit me MicroPython: fëmijët krijojnë të njëjtën program në ambientin bazë të programimit duke përdorur blloqe dhe në gjuhën Python në Visual Studio Code nga Microsoft. Ata shohin se të dyja mënyrat funksionojnë njësoj, por me kod është më e lehtë të zgjidhen detyra të ndërlikuara.
Kalo në MicroPython
Mjedisi EV3 është ndërtuar mbi bazën e procesorit ARM9, dhe zhvilluesit kanë lënë arkitekturën të hapur. Ky vendim lejon instalimin e firmware alternativ, njëra prej të cilave është imazhi për punë me MicroPython. Ai mundëson përdorimin e Python për programimin e EV3, që e bën punën me setin edhe më të afërt me detyra nga jeta e përditshme.
Për të filluar punën, duhen shkarkuar në çdo microSD-kartë, vendoseni në mikrokompjuterin EV3 dhe ndizeni atë. Më pas, duhet të instaloni për Visual Studio. Tani mund të filloni punën.
Programojmë robotin e parë në MycroPython

Në tonë ka janë disa mësime për të mësuar konceptet themelore të robotikës. Modelet në EV3 i njohin fëmijët me bazat që përdoren në automjetet autonome, robotët grumbullues në fabrika, dhe makinat me CNC.
Do të marrim si shembull një makinë vizatuese, të cilën mund ta mësojmë të vizatojë modele dhe figura gjeometrike. Ky rast është një version i thjeshtuar i robotëve të rritur për saldim apo freskim dhe tregon se si mund të përdorim EV3 së bashku me MicroPython për të mësuar nxënësit. Po ashtu, makina vizatuese mund të shënojë vrimat në një pllakë printeri për babin, por kjo është një nivel tjetër, që kërkon llogaritje matematikore.
Për punë na nevojiten:
- seti bazik LEGO MINDSTORMS Education EV3;
- një fletë e madhe me katrorë;
- markerë me ngjyra.
Montimi i robotit vetë është në , por ne do të shqyrtojmë një shembull programimi.
Së pari, inicializojmë bibliotekën e modulit 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
Konfiguroni platformën që rrotullon dorën si motor në portin B. Përcaktoni raportin e transmetimit të transmetesës me dy kërrca me numrin e kërrcave 20-12-28 përkatësisht.
turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])
Caktojmë mekanizmin e ngritjes për dorën si motor në portin C:
seesaw_motor = Motor(Port.C)
Caktojmë giroskopin që mat këndin e inclinimit të dorës, në portin 2:
gyro_sensor = GyroSensor(Port.S2)
Caktojmë sensorin e ngjyrave në portin 3. Sensori përdoret për të identifikuar letër të bardhë nën makinën e skicimit:
color_sensor = ColorSensor(Port.S3)
Caktojmë sensorin e prekjeve në portin 4. Roboti fillon të vizatojë kur sensori është i shtypur:
touch_sensor = TouchSensor(Port.S4)
Përcaktojmë funksionet që ngrejnë dhe ulin dorën:
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)
Përcaktojmë një funksion për të kthyer dorën në një kënd të caktuar ose deri në një kënd të caktuar:
def pen_holder_turn_to(target_angle):
if target_angle > gyro_sensor.angle():
Nëse këndi i synuar është më i madh se këndi aktual i sensorit gyroskopik, vazhdojmë lëvizjen në drejtimin e akrepave me shpejtësi pozitive:
turntable_motor.run(70)
while gyro_sensor.angle() < target_angle:
pass
elif target_angle < gyro_sensor.angle():
Nëse këndi i synuar është më i vogël se këndi aktual i sensorit gyroskopik, lëvizim në drejtim të kundërt të akrepave:
turntable_motor.run(-70)
while gyro_sensor.angle() > target_angle:
pass
Ndërprejmë platformën e rrotullimit kur të arrihet këndi i synuar:
turntable_motor.stop(Stop.BRAKE)
Vendosim pozicionin fillestar të dorës në pozitat e sipërme:
pen_holder_raise()
Tani fillon pjesa kryesore e programit — një cikël të pafund. Së pari, EV3 pret që sensori i ngjyrës të zbulojë letër të bardhë ose qelizën fillestare blu dhe sensori i prekjes të jetë i shtypur. Pastaj pikturon një model, kthehet në pozitat e tij fillestare dhe e përsërit të gjithë nga e para.
Kur pajisja nuk është gati, LED-të në kontrollues ndriçojnë me ngjyrë të kuqe, dhe në ekranin LCD shfaqet imazhi "gishti poshtë":
while True:
brick.light(Color.RED)
brick.display.image(ImageFile.THUMBS_DOWN)
Shkaktojmë ndërprerjen derisa sensori i ngjyrës të lexojë ngjyrën blu ose të bardhë, vendosim ngjyrën e LED-ve në të gjelbër, shfaqim në ekranin LCD imazhin "gishti lart" dhe njoftojmë se pajisja është gati për punë:
while color_sensor.color() not in (Color.BLUE, Color.WHITE):
wait(10)
brick.light(Color.GREEN)
brick.display.image(ImageFile.THUMBS_UP)
Presim që të shtypet sensori i prekjes, i japim sensorit të giroskops vlerën 0 dhe fillojmë të pikturojmë:
ndërsa nuk është e shtypur sensorin e prekjes():
prit(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)
Ngrejmë mbajtësin e stilolapsit dhe e kthejmë atë në poziten fillestare:
pen_holder_raise()
pen_holder_turn_to(0)
Kjo është një program jo shumë i komplikuar që kemi krijuar. Tani e vëmë në funksion dhe shikojmë robotin-dizajner në veprim.
Çfarë ofrojnë këto shembuj

EV3 është një mjet për orientimin profesional brenda profesionet STEM dhe një pikë hyrjeje në specialitetet inxhinierike. Duke qenë se mund të zgjidhin probleme praktikë, fëmijët fitojnë përvojë në zhvillimin teknik dhe krijimin e robotëve industrialë, të mësojnë të modelojnë situata reale, të kuptojnë programet dhe të analizojnë algoritmet, dhe të fitojnë njohuri për këndvështimet bazike të programimit.
Mbështetja e MicroPython e bën platformën EV3 të përshtatshme për mësimin në klasat e larta. Nxënësit mund të provojnë veten si programues në një nga gjuhët më moderne dhe të njohura, të njohin profesionet e lidhura me programimin dhe inxhinierinë. Setet EV3 tregojnë se të shkruash kod nuk është e vështirë, përgatisin për detyra inxhinierike serioze dhe ndihmojnë në realizimin e hapit të parë drejt zotërimit të specialiteteve teknike. Dhe për ata që punojnë në shkollë dhe lidhen me arsimimin, ne kemi përgatitur dhe materialet mësimore. Në to është përshkruar në detaje se cilat aftësi formohen gjatë realizimit të detyrave të caktuara dhe si lidhen aftësitë e marra me standardet e mësimit.
Burimi: habr.com
