LEGO MINDSTORMS Education EV3 + MicroPython: programoni ndërtuesin e fëmijëve me një gjuhë të rritur

Përshëndetje, Habr! Ne tashmë treguam për platformën LEGO MINDSTORMS Education EV3. Objektivat kryesore të kësaj platforme janë mësimi përmes shembujve praktikë, zhvillimi i aftësive STEAM dhe formimi i mendimit inxhinierik. Ajo mund të përdoret për të kryer eksperimente mbi mekanikën dhe dinamikën. Stendat laboratorike nga kubikët LEGO dhe mjetet për regjistrimin dhe përpunimin e të dhënave i bëjnë eksperimentet akoma më interesante dhe vizuale dhe ndihmojnë fëmijët të kuptojnë më mirë fizikën. Për shembull, nxënësit mund të grumbullojnë të dhëna mbi temperaturën e shkrirjes dhe me ndihmën e aplikacionit t'i sistematizojnë ato dhe t'i paraqesin në formën e grafikëve. Por kjo është vetëm fillimi: sot do të flasim se si ta plotësojmë këtë set me mjedisin e programimit MicroPython dhe si ta përdorim atë për mësimin e robotikës.

LEGO MINDSTORMS Education EV3 + MicroPython: programoni ndërtuesin e fëmijëve me një gjuhë të rritur

Mësojmë programimin me EV3

Nxënësit e sotëm duan të shohin rezultate të ngjyrshme. Po, u duket monotone nëse programi jep numra në konsolë, dhe ata duan të shohin grafikë të ngjyrshme, diagrame dhe të krijojnë robota të vërtetë që lëvizin dhe kryejnë komanda. Kodi i zakonshëm gjithashtu duket shumë i komplikuar për fëmijët, prandaj mësimi do të ishte më mirë të fillohet me diçka më të lehtë.

Mjedisi bazik i programimit EV3 është krijuar mbi bazën e gjuhës grafike LabVIEW dhe lejon që algoritmet për robotët të përcaktohen vizualisht: komandat paraqiten në formë blokesh që mund të tërhiqen dhe lidhen.

LEGO MINDSTORMS Education EV3 + MicroPython: programoni ndërtuesin e fëmijëve me një gjuhë të rritur

Ky mënyrë funksionon mirë kur është e nevojshme të tregojmë se si ndërtohen algoritmet, por nuk është e përshtatshme për programe me një numër të madh blokesh. Me komplikuarjen e skenarëve, është e nevojshme të kaloni në programim me anë të kodit, por fëmijët gjithmonë e kanë të vështirë të bëjnë këtë hap. 

Ka disa truke, njëra prej të cilave është të tregojmë se kodi kryen të njëjtat detyra si bloket. Në mjedisin EV3, kjo mund të bëhet falë integrimit me MicroPython: fëmijët krijojnë të njëjtin program në mjedisin bazik të programimit me anë të blokesh dhe në gjuhën Python në Visual Studio Code nga Microsoft. Ata shohin se të dyja mënyrat funksionojnë njësoj, por është më e lehtë të zgjidhni detyra të komplikuara me kod.

Kalojmë në MicroPython

Mediat EV3 është ndërtuar mbi procesorin ARM9, dhe zhvilluesit e kanë lënë qëllimisht arkitekturën të hapur. Ky zgjidhje lejon që të instalohet firmware alternativ, njëra prej të cilave është imazhi për të punuar me MicroPython. Ai lejon përdorimin e Python për programimin e EV3, gjë që bën që puna me kit-in të jetë akoma më e afërt me detyrat e jetës reale. 

Për të filluar punën, duhet të shkarkohet imezi EV3 MicroPython në çdo mikroSD kartë, ta instalohet në mikrokompjuterin EV3 dhe ta ndizni atë. Më pas, duhet të instaloni një shtesë falas për Visual Studio. Dhe mund të filloni punën. 

Programojmë robotin e parë me MycroPython

LEGO MINDSTORMS Education EV3 + MicroPython: programoni ndërtuesin e fëmijëve me një gjuhë të rritur

Në faqen tonë website ka disa mësime për të mësuar konceptet bazë të robotikës. Modelet në EV3 i njohin fëmijët me themelimet që përdoren në automjetet e vetëdrejtuara, robotët e montimit të fabrikave, makinat me CNC. 

Ne do të marrim si shembull një makinë vizatuese, të cilën mund ta mësojmë të vizatojë figura dhe forma gjeometrike. Ky rast është një variant i thjeshtuar i robotëve të rritur për saldim ose frezimit dhe tregon si mund të përdoret EV3 së bashku me MicroPython për të mësuar nxënësit. Po ashtu, makina vizatuese mund të shënojë hapje në një plakë elektronike për babin, por kjo është një nivel tjetër që kërkon llogaritje matematikore.

Për punën na nevojiten:

  • pako bazë LEGO MINDSTORMS Education EV3; 
  • një letër e madhe me kuadrate;
  • marker të ngjyrave. 

Mundësinë për ndërtimin e vetë robotit e gjeni në udhëzimet, ndërsa ne do të shqyrtojmë shembullin e programimit.

Fillimisht, inicializojmë bibliotekën e moduleve 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

Konfigurojmë platformën që rrotullon dorën si motor në portin B. Caktojmë raportin e transmetimit të dy anëzave me numrin e dhëmbëve 20-12-28 përkatësisht.

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

Konfigurojmë mekanizmin e ngritjes për dorën si motor në portin C:

seesaw_motor = Motor(Port.C)

Konfigurojmë gyroskopin që mat kutin e ngritjes së dorës, në portin 2:

gyro_sensor = GyroSensor(Port.S2)

Konfigurojmë sensorin e ngjyrës në portin 3. Sensori përdoret për të identifikuar letrën e bardhë nën makinën vizatuese:

color_sensor = ColorSensor(Port.S3)

Konfigurojmë sensorin e prekjeve në portin 4. Roboti fillon të vizatojë kur sensori shtypet:

touch_sensor = TouchSensor(Port.S4)

Përcaktojmë funksionet që rrisin 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ë funksionin për të kthyer mbajtësin e penës 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 të gyros, vazhdojmë lëvizjen në drejtim të akrepave të orës me një 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 të gyros, atëherë lëvizim në drejtim të kundërt të akrepave të orës:

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

Ndalojmë platformën rotuese kur këndi i synuar të arrihet:

  turntable_motor.stop(Stop.BRAKE)

Caktojmë pozita fillestare të mbajtësit të penës në pozitat më të larta:

pen_holder_raise()

Tani fillon pjesa kryesore e programit — një cikël pafund. Së pari, EV3 pret që sensori i ngjyrës të zbulojë letër të bardhë ose katrorin e fillimit blu, dhe sensori i prekjes të jetë i shtypur. Pastaj, ai vizaton një model, kthehet në pozitat fillestare dhe përsërit gjithçka nga e para.

Kur pajisja nuk është gati, LED-et në kontrollues ndriçojnë me ngjyrë të kuqe, dhe në ekranin LCD shfaqet një imazh "gishti poshtë":

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

Presim derisa sensori i ngjyrës të lexojë ngjyrën blu ose të bardhë, vendosim ngjyrën e LED-eve në gjelbër, shfaqim në ekranin LCD imazhin "gishti lart" dhe njoftojmë që pajisja është gati për të punuar:

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

Presim derisa sensori i prekjes të jetë i shtypur, caktojmë sensorit të gyros vlerën e këndit 0 dhe fillojmë të vizatojmë:

  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)

Ngremë mbajtësin e penës dhe e kthejmë atë në pozitat fillestare:

  pen_holder_raise()
  pen_holder_turn_to(0)

Kështu kemi krijuar një program të thjeshtë. Tani e nisim dhe shohim robotin vizatues në veprim. 

Çfarë na japin këto shembuj

LEGO MINDSTORMS Education EV3 + MicroPython: programoni ndërtuesin e fëmijëve me një gjuhë të rritur

EV3 është një mjet për orientimin profesional brenda profesionit STEM dhe një pikë hyrjeje në specialitetet inxhinierike. Pasi mund të zgjidhin probleme praktike, fëmijët fitojnë përvojë në zhvillimin teknik dhe krijimin e robotëve industrialë, mësojnë të modelojnë situata reale, kuptojnë programet dhe analizojnë algoritmet, dhe zotërojnë bazat e ndërtimit të programeve të kompjuterit.

Mbështetje 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ë të njohura moderne, të njihen me profesionet që lidhen me programimin dhe projektimin inxhinierik. Pako EV3 tregojnë se të shkruash kod nuk është e frikshme, përgatitin për detyra serioze inxhinierike dhe ndihmojnë të bëjnë hapin e parë për të zotëruar specialitetet teknike. Dhe për ata që punojnë në shkolla dhe lidhen me arsimimin, ne kemi përgatitur programet e aktiviteteve dhe materialet mësimore. Ato përmbajnë detaje se cilat aftësi formohen gjatë kryerjes së detyrave të ndryshme dhe si lidhen aftësitë e fituara me standardet e mësimit.

Burimi: habr.com

Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS 🔥 Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS | ProHoster