LEGO MINDSTORMS Education EV3 + MicroPython: pagprograma ng set ng pagtatayo ng mga bata sa wikang nasa hustong gulang

Hello, Habr! Kami na sinabi tungkol sa LEGO MINDSTORMS Education EV3 platform. Ang mga pangunahing layunin ng platform na ito ay ang pag-aaral sa pamamagitan ng mga praktikal na halimbawa, pagbuo ng mga kasanayan sa STEAM at pagbuo ng mindset ng engineering. Maaari itong magamit para sa gawaing laboratoryo upang pag-aralan ang mekanika at dinamika. Ang mga laboratoryo na bangko na gawa sa LEGO brick at mga utility para sa pagtatala at pagproseso ng data ay ginagawang mas kawili-wili at visual ang mga eksperimento at tinutulungan ang mga bata na mas maunawaan ang pisika. Halimbawa, maaaring mangolekta ang mga mag-aaral ng data ng melting point at gamitin ang app para ayusin ito at ipakita ito sa isang graph. Ngunit ito ay simula pa lamang: ngayon ay sasabihin namin sa iyo kung paano i-complement ang set na ito sa MicroPython programming environment at gamitin ito para magturo ng robotics.

LEGO MINDSTORMS Education EV3 + MicroPython: pagprograma ng set ng pagtatayo ng mga bata sa wikang nasa hustong gulang

Matuto ng programming gamit ang EV3

Nais ng mga modernong mag-aaral na makakita ng makulay na mga resulta. Oo, sila ay nababato kung ang programa ay nagpi-print ng mga numero sa console, at gusto nilang tumingin sa mga graph ng kulay, mga diagram at lumikha ng mga tunay na robot na gumagalaw at sumusunod sa mga utos. Ang regular na code ay tila masyadong kumplikado para sa mga bata, kaya mas mahusay na simulan ang pag-aaral sa isang bagay na mas madali.

Ang pangunahing kapaligiran ng programming ng EV3 ay batay sa graphical na wika ng LabVIEW at nagbibigay-daan sa iyong tukuyin ang mga algorithm para sa robot nang biswal: ang mga utos ay ipinakita sa anyo ng mga bloke na maaaring i-drag at konektado.

LEGO MINDSTORMS Education EV3 + MicroPython: pagprograma ng set ng pagtatayo ng mga bata sa wikang nasa hustong gulang

Gumagana nang maayos ang pamamaraang ito kapag kailangan mong ipakita kung paano binuo ang mga algorithm, ngunit hindi ito angkop para sa mga program na may malaking bilang ng mga bloke. Habang nagiging mas kumplikado ang mga sitwasyon, kailangang lumipat sa programming na may code, ngunit ang hakbang na ito ay mahirap gawin ng mga bata. 

Mayroong ilang mga trick dito, ang isa ay upang ipakita na ang code ay gumagawa ng parehong bagay tulad ng mga bloke. Sa EV3 environment, posible ito sa pamamagitan ng MicroPython integration, kaya ang mga bata ay makakagawa ng parehong program sa parehong basic block programming environment at Python sa Visual Studio Code ng Microsoft. Nakikita nila na ang parehong mga pamamaraan ay gumagana nang pareho, ngunit ang paglutas ng mga kumplikadong problema gamit ang code ay mas maginhawa.

Lumipat sa MicroPython

Ang kapaligiran ng EV3 ay binuo sa isang processor ng ARM9, at sadyang iniwang bukas ng mga developer ang arkitektura. Ang solusyon na ito ay naging posible upang ilunsad ang alternatibong firmware, isa sa mga ito ay isang imahe para sa pagtatrabaho sa MicroPython. Binibigyang-daan ka nitong gumamit ng Python upang i-program ang iyong EV3, na inilalapit ang kit sa mga gawain sa totoong buhay. 

Upang makapagsimula, kailangan mong mag-download EV3 MicroPython na imahe sa anumang microSD card, i-install ito sa EV3 microcomputer at i-on ito. Pagkatapos ay kailangan mong i-install libreng extension para sa Visual Studio. At maaari kang magsimulang magtrabaho. 

Programming ang unang robot sa MycroPython

LEGO MINDSTORMS Education EV3 + MicroPython: pagprograma ng set ng pagtatayo ng mga bata sa wikang nasa hustong gulang

Sa aming Online Mayroong ilang mga aralin para sa mastering ang mga pangunahing konsepto ng robotics. Ang mga modelong EV3 ay nagpapakilala sa mga bata sa mga pangunahing kaalaman na ginagamit sa mga self-driving na kotse, mga factory assembly robot, at CNC machine. 

Kukunin namin ang halimbawa ng isang drawing machine, na maaaring ituro upang gumuhit ng mga pattern at geometric na hugis. Ang kasong ito ay isang pinasimpleng bersyon ng mga adult welding o milling robot at nagpapakita kung paano magagamit ang EV3 kasama ng MicroPython upang turuan ang mga mag-aaral. At ang isang drawing machine ay maaaring magmarka ng mga butas sa isang naka-print na circuit board para sa ama, ngunit iyon ay isa pang antas na nangangailangan ng matematika.

Para sa trabaho, kailangan namin:

  • LEGO MINDSTORMS Education EV3 Core Set; 
  • malaking sheet ng checkered na papel;
  • may kulay na mga marker. 

Ang pagpupulong ng robot mismo ay nasa tagubilin, at titingnan natin ang isang halimbawa ng programming.

Una naming sinisimulan ang EV3 module library:

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

Nag-set up kami ng isang platform na umiikot sa hawakan tulad ng isang motor sa port B. Itinakda namin ang ratio ng gear ng isang two-stage na gear train na may bilang ng mga ngipin na 20-12-28, ayon sa pagkakabanggit.

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

Kino-configure namin ang mekanismo ng pag-aangat para sa hawakan bilang isang motor sa port C:

seesaw_motor = Motor(Port.C)

Isinaayos namin ang gyroscope, na sumusukat sa anggulo ng pagkahilig ng hawakan, sa port 2:

gyro_sensor = GyroSensor(Port.S2)

Kino-configure namin ang sensor ng kulay sa port 3. Ginagamit ang sensor para makita ang puting papel sa ilalim ng drawing machine:

color_sensor = ColorSensor(Port.S3)

Kino-configure namin ang touch sensor sa port 4. Nagsisimula ang robot sa pagguhit kapag pinindot ang sensor:

touch_sensor = TouchSensor(Port.S4)

Tinukoy namin ang mga function na nagpapataas at nagpapababa ng hawakan:

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)

Tinutukoy namin ang isang function upang paikutin ang hawakan sa isang naibigay na anggulo o sa isang tiyak na anggulo:

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

Kung ang target na anggulo ay mas malaki kaysa sa kasalukuyang anggulo ng gyro sensor, magpatuloy sa clockwise na may positibong bilis:

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

Kung ang target na anggulo ay mas mababa kaysa sa kasalukuyang gyro sensor, pagkatapos ay ilipat ang counterclockwise:

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

Itigil ang umiikot na platform kapag naabot na ang target na anggulo:

  turntable_motor.stop(Stop.BRAKE)

Itakda ang paunang posisyon ng hawakan sa itaas na posisyon:

pen_holder_raise()

Ngayon ay dumating ang pangunahing bahagi ng programa - isang walang katapusang loop. Hinihintay muna ng EV3 ang color sensor na maka-detect ng puting papel o asul na start square at para mapindot ang touch sensor. Pagkatapos ay gumuhit siya ng isang pattern, bumalik sa panimulang posisyon at ulitin muli ang lahat.

Kapag hindi pa handa ang device, ang mga LED sa controller ay magiging pula at ang isang "thumbs down" na imahe ay ipinapakita sa LCD screen:

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

Naghihintay kami hanggang sa ang sensor ng kulay ay mabilang na asul o puti, itakda ang kulay ng LED sa berde, magpakita ng "thumbs up" na imahe sa LCD screen at iulat na handa na ang device para sa paggamit:

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

Hinihintay namin na pindutin ang touch sensor, italaga ang halaga ng anggulo 0 sa gyroscopic sensor at simulan ang pagguhit:

  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)

Itaas ang lalagyan ng panulat at ibalik ito sa orihinal nitong posisyon:

  pen_holder_raise()
  pen_holder_turn_to(0)</i>

Ito ang simpleng programa na aming ginawa. At ngayon inilunsad namin ito at tinitingnan ang pag-draft ng robot sa aksyon. 

Ano ang ibinibigay ng gayong mga halimbawa?

LEGO MINDSTORMS Education EV3 + MicroPython: pagprograma ng set ng pagtatayo ng mga bata sa wikang nasa hustong gulang

Ang EV3 ay isang tool sa paggabay sa karera para sa mga karera sa STEM at isang entry point sa mga karera sa engineering. Dahil magagamit ito sa paglutas ng mga praktikal na problema, nakakakuha ang mga bata ng karanasan sa teknikal na pag-unlad at paglikha ng mga robot na pang-industriya, natututong gayahin ang mga totoong sitwasyon, nauunawaan ang mga programa at nag-analisa ng mga algorithm, at nakakabisado ng mga pangunahing pagbuo ng programming.

Ginagawang angkop ng suporta ng MicroPython ang platform ng EV3 para sa pagtuturo sa mataas na paaralan. Maaaring subukan ng mga mag-aaral ang kanilang sarili bilang mga programmer sa isa sa mga pinakasikat na modernong wika, at makilala ang mga propesyon na nauugnay sa programming at disenyo ng engineering. Ipinapakita ng mga EV3 kit na hindi nakakatakot ang coding, inihahanda ka sa mga seryosong hamon sa engineering, at tinutulungan kang gawin ang unang hakbang patungo sa pag-master ng mga teknikal na kasanayan. At para sa mga nagtatrabaho sa mga paaralan at nauugnay sa edukasyon, naghanda kami mga programa sa aralin at mga materyales na pang-edukasyon. Inilalarawan nila nang detalyado kung anong mga kasanayan ang nabuo kapag nagsasagawa ng ilang mga gawain, at kung paano nauugnay ang mga nakuhang kasanayan sa mga pamantayan ng pagsasanay.

Pinagmulan: www.habr.com

Bumili ng maaasahang pagho-host para sa mga site na may proteksyon ng DDoS, mga server ng VPS VDS πŸ”₯ Bumili ng maaasahang website hosting na may proteksyon ng DDoS, VPS VDS servers | ProHoster