LEGO MINDSTORMS Education EV3 + MicroPython: pagprograma sa set sa pagtukod sa mga bata sa hingkod nga pinulongan

Hello, Habr! Kami na giingnan mahitungod sa LEGO MINDSTORMS Education EV3 nga plataporma. Ang panguna nga katuyoan sa kini nga plataporma mao ang pagkat-on pinaagi sa praktikal nga mga pananglitan, pagpalambo sa kahanas sa STEAM ug pagpalambo sa usa ka panghunahuna sa engineering. Mahimo kini gamiton alang sa trabaho sa laboratoryo aron magtuon sa mga mekaniko ug dinamika. Ang mga bench sa laboratoryo nga hinimo gikan sa LEGO nga mga tisa ug mga kagamitan alang sa pagrekord ug pagproseso sa mga datos naghimo sa mga eksperimento nga mas makapaikag ug makita ug makatabang sa mga bata nga mas masabtan ang pisika. Pananglitan, ang mga estudyante mahimong mangolekta og data sa melting point ug gamiton ang app aron maorganisar kini ug ipakita kini sa usa ka graph. Apan kini pa lang ang sinugdanan: karon isulti namon kanimo kung giunsa ang pagpuno sa kini nga set sa MicroPython programming environment ug gamiton kini sa pagtudlo sa mga robotics.

LEGO MINDSTORMS Education EV3 + MicroPython: pagprograma sa set sa pagtukod sa mga bata sa hingkod nga pinulongan

Pagkat-on sa programming gamit ang EV3

Gusto sa modernong mga estudyante nga makakita ug mabulukon nga mga resulta. Oo, sila makalaay kon ang programa mag-imprenta sa mga numero ngadto sa console, ug gusto nila nga tan-awon ang mga color graph, mga diagram ug paghimo og tinuod nga mga robot nga naglihok ug nagsunod sa mga sugo. Ang regular nga code ingon usab nga komplikado kaayo alang sa mga bata, mao nga mas maayo nga magsugod sa pagkat-on sa usa ka butang nga mas sayon.

Ang batakang EV3 programming environment gibase sa LabVIEW graphical nga pinulongan ug nagtugot kanimo sa pagtino sa mga algorithm alang sa robot nga biswal: ang mga sugo gipresentar sa porma sa mga bloke nga mahimong ma-drag ug konektado.

LEGO MINDSTORMS Education EV3 + MicroPython: pagprograma sa set sa pagtukod sa mga bata sa hingkod nga pinulongan

Maayo kini nga pamaagi kung kinahanglan nimo nga ipakita kung giunsa ang paghimo sa mga algorithm, apan dili kini angay alang sa mga programa nga adunay daghang mga bloke. Samtang ang mga senaryo nahimong mas komplikado, gikinahanglan nga mobalhin sa programming nga adunay code, apan kini nga lakang lisud buhaton sa mga bata. 

Adunay pipila ka mga limbong dinhi, usa niini mao ang pagpakita nga ang code nagbuhat sa parehas nga butang sama sa mga bloke. Sa EV3 environment, posible kini pinaagi sa MicroPython integration, aron ang mga bata makahimo sa samang programa sa basic block programming environment ug Python sa Visual Studio Code sa Microsoft. Nakita nila nga pareho ang mga pamaagi sa pagtrabaho, apan ang pagsulbad sa mga komplikado nga mga problema gamit ang code mas sayon.

Pagbalhin sa MicroPython

Ang EV3 nga palibot gitukod sa usa ka ARM9 processor, ug ang mga developers tinuyo nga gibiyaan ang arkitektura nga bukas. Kini nga solusyon nagpaposible sa pag-roll out sa alternatibong firmware, usa niini usa ka imahen alang sa pagtrabaho sa MicroPython. Gitugotan ka niini nga gamiton ang Python aron maprograma ang imong EV3, nga gipaduol ang kit sa mga buluhaton sa tinuud nga kinabuhi. 

Aron makasugod, kinahanglan nimo nga i-download EV3 MicroPython nga imahe sa bisan unsang microSD card, i-install kini sa EV3 microcomputer ug i-on kini. Unya kinahanglan nimo nga i-install libre nga extension alang sa Visual Studio. Ug mahimo ka magsugod sa pagtrabaho. 

Pagprograma sa unang robot sa MycroPython

LEGO MINDSTORMS Education EV3 + MicroPython: pagprograma sa set sa pagtukod sa mga bata sa hingkod nga pinulongan

Sa among site Adunay daghang mga leksyon alang sa pag-master sa mga batakang konsepto sa robotics. Ang mga modelo sa EV3 nagpaila sa mga bata sa mga sukaranan nga gigamit sa mga awto nga nagmaneho sa kaugalingon, mga robot sa pagpupulong sa pabrika, ug mga makina sa CNC. 

Atong kuhaon ang panig-ingnan sa usa ka drawing machine, nga mahimong itudlo sa pagdrowing og mga pattern ug geometric nga mga porma. Kini nga kaso usa ka gipasimple nga bersyon sa mga hamtong nga welding o milling robot ug nagpakita kung giunsa ang EV3 magamit kauban ang MicroPython aron matudloan ang mga bata sa eskuylahan. Ug ang usa ka makina nga drowing mahimong magmarka sa mga lungag sa usa ka giimprinta nga circuit board alang sa amahan, apan kana usa ka lebel nga nanginahanglan matematika.

Alang sa trabaho, kinahanglan namon:

  • LEGO MINDSTORMS Education EV3 Core Set; 
  • dako nga panid sa checkered nga papel;
  • kolor nga mga marka. 

Ang asembliya sa robot mismo anaa mga instruksyon, ug atong tan-awon ang usa ka pananglitan sa programming.

Una atong gisugdan 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

Nagtukod kami og usa ka plataporma nga nagtuyok sa kuptanan sama sa usa ka motor sa port B. Gibutang namo ang gear ratio sa usa ka two-stage gear train nga adunay gidaghanon sa mga ngipon nga 20-12-28, matag usa.

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

Gi-configure namon ang mekanismo sa pagbayaw alang sa kuptanan ingon usa ka motor sa pantalan C:

seesaw_motor = Motor(Port.C)

Gi-configure namon ang gyroscope, nga nagsukod sa anggulo sa hilig sa kuptanan, sa port 2:

gyro_sensor = GyroSensor(Port.S2)

Gi-configure namo ang color sensor sa port 3. Ang sensor gigamit sa pag-ila sa puti nga papel ubos sa drawing machine:

color_sensor = ColorSensor(Port.S3)

Among gi-configure ang touch sensor sa port 4. Ang robot magsugod sa pagdrowing kon ang sensor gipugos:

touch_sensor = TouchSensor(Port.S4)

Gihubit namon ang mga gimbuhaton nga nagpataas ug nagpaubos sa kuptanan:

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)

Gihubit namon ang usa ka function aron i-rotate ang kuptanan sa gihatag nga anggulo o sa usa ka piho nga anggulo:

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

Kung ang target nga anggulo mas dako kaysa sa kasamtangan nga anggulo sa gyro sensor, ipadayon ang sunud-sunod nga orasan nga adunay positibo nga tulin:

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

Kung ang target nga anggulo mas gamay kaysa sa kasamtangan nga gyro sensor, dayon lihok sa counterclockwise:

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

Hunonga ang nagtuyok nga plataporma kung maabot ang target nga anggulo:

  turntable_motor.stop(Stop.BRAKE)

Ibutang ang inisyal nga posisyon sa kuptanan sa taas nga posisyon:

pen_holder_raise()

Karon moabut ang nag-unang bahin sa programa - usa ka walay katapusan nga loop. Ang EV3 una nga naghulat alang sa sensor sa kolor nga makamatikod sa usa ka puti nga papel o asul nga pagsugod nga square ug alang sa sensor sa paghikap aron mapugos. Dayon nagdrowing siya og usa ka sumbanan, mibalik sa sinugdanan nga posisyon ug gisubli ang tanan pag-usab.

Kung dili pa andam ang aparato, ang mga LED sa controller mahimong pula ug usa ka "thumbs down" nga imahe gipakita sa LCD screen:

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

Naghulat kami hangtod nga ang sensor sa kolor mag-ihap asul o puti, ibutang ang kolor sa LED sa berde, ipakita ang usa ka imahe nga "thumbs up" sa LCD screen ug ireport nga ang aparato andam na gamiton:

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

Naghulat kami nga mapugos ang touch sensor, i-assign ang anggulo nga kantidad 0 sa gyroscopic sensor ug magsugod sa pagdrowing:

  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)

Ipataas ang pen holder ug ibalik kini sa orihinal nga posisyon niini:

  pen_holder_raise()
  pen_holder_turn_to(0)</i>

Kini ang yano nga programa nga among gihimo. Ug karon gilusad namo kini ug gitan-aw ang nag-draft nga robot nga naglihok. 

Unsay gihatag sa maong mga pananglitan?

LEGO MINDSTORMS Education EV3 + MicroPython: pagprograma sa set sa pagtukod sa mga bata sa hingkod nga pinulongan

Ang EV3 usa ka himan sa paggiya sa karera alang sa mga karera sa STEM ug usa ka punto sa pagsulod sa mga karera sa engineering. Tungod kay kini magamit sa pagsulbad sa praktikal nga mga problema, ang mga bata makaangkon og kasinatian sa teknikal nga kalamboan ug paghimo sa mga robot sa industriya, makakat-on sa pagsundog sa tinuod nga mga sitwasyon, makasabut sa mga programa ug mag-analisa sa mga algorithm, ug mag-master sa mga batakang pagtukod sa programming.

Ang suporta sa MicroPython naghimo sa EV3 nga plataporma nga angay alang sa pagtudlo sa high school. Mahimong sulayan sa mga estudyante ang ilang kaugalingon ingon mga programmer sa usa sa labing inila nga modernong mga sinultian, ug pamilyar sa mga propesyon nga may kalabotan sa pagprograma ug disenyo sa engineering. Gipakita sa mga EV3 kit nga ang coding dili makahadlok, nag-andam kanimo alang sa seryoso nga mga hagit sa engineering, ug nagtabang kanimo sa paghimo sa unang lakang padulong sa pag-master sa teknikal nga kahanas. Ug alang niadtong nagtrabaho sa mga eskwelahan ug nakig-uban sa edukasyon, kami nangandam mga programa sa leksyon ug mga materyales sa edukasyon. Gihulagway nila sa detalye kung unsa nga mga kahanas ang naugmad sa paghimo sa piho nga mga buluhaton, ug kung giunsa ang naangkon nga mga kahanas adunay kalabotan sa mga sumbanan sa pagbansay.

Source: www.habr.com

Pagpalit kasaligan nga pag-host alang sa mga site nga adunay proteksyon sa DDoS, mga server sa VPS VDS πŸ”₯ Pagpalit og kasaligang website hosting nga adunay proteksyon sa DDoS, VPS VDS servers | ProHoster