Halo, Habr! Kami geus ngeunaan platform LEGO MINDSTORMS Education EV3. Tujuan utama platform ieu nyaéta diajar ngaliwatan conto praktis, ngamekarkeun kaahlian STEAM sareng ngamekarkeun pola pikir rékayasa. Éta tiasa dianggo pikeun padamelan laboratorium pikeun diajar mékanika sareng dinamika. Bangku laboratorium anu dijieun tina bata LEGO sareng utilitas pikeun ngarékam sareng ngolah data ngajantenkeun ékspérimén langkung narik sareng visual sareng ngabantosan murangkalih langkung ngartos fisika. Contona, siswa bisa ngumpulkeun data titik lebur sarta ngagunakeun aplikasi pikeun ngatur eta tur dibere dina grafik. Tapi ieu mangrupikeun awal: ayeuna kami bakal nyarioskeun ka anjeun kumaha ngalengkepan set ieu sareng lingkungan program MicroPython sareng dianggo pikeun ngajarkeun robotika.

Diajar programming ngagunakeun EV3
Barudak sakola modern hoyong ningali hasil anu warni. Sumuhun, aranjeunna bosen lamun program prints angka kana konsol nu, sarta aranjeunna hoyong katingal dina grafik warna, diagram jeung nyieun robot nyata nu mindahkeun tur turutan paréntah. Kodeu biasa ogé sigana rumit teuing pikeun murangkalih, janten langkung saé pikeun ngamimitian diajar ku hal anu langkung gampang.
Lingkungan programming EV3 dasar dumasar kana basa grafis LabVIEW tur ngidinan Anjeun pikeun nangtukeun algoritma pikeun robot visually: paréntah dibere dina bentuk blok nu bisa nyered tur disambungkeun.

Metoda ieu jalan ogé mun anjeun kudu némbongkeun kumaha algoritma anu diwangun, tapi teu cocog pikeun program kalawan angka nu gede ngarupakeun blok. Salaku skenario jadi leuwih kompleks, perlu ngalih ka programming kalawan kode, tapi hambalan ieu hésé pikeun barudak nyandak.
Aya sababaraha trik di dieu, salah sahiji anu nunjukkeun yén kodeu ngalakukeun hal anu sami sareng blok. Dina lingkungan EV3, ieu mungkin ngaliwatan integrasi MicroPython, jadi kids bisa nyieun program sarua dina duanana lingkungan programming block dasar sarta Python dina Visual Studio Code Microsoft urang. Aranjeunna ningali yén duanana métode dianggo sami, tapi ngarengsekeun masalah kompléks ngagunakeun kode leuwih merenah.
Pindah ka MicroPython
Lingkungan EV3 diwangun dina prosésor ARM9, sareng pamekar ngahaja ngantepkeun arsitéktur kabuka. Solusi ieu ngamungkinkeun pikeun gulung kaluar firmware alternatif, salah sahiji gambar pikeun gawé bareng MicroPython. Eta ngidinan Anjeun pikeun make Python pikeun program EV3 Anjeun, bringing kit nu malah ngadeukeutan ka tugas real-hirup.
Pikeun ngamimitian, Anjeun kudu ngundeur dina sagala kartu microSD, install deui dina microcomputer EV3 jeung ngahurungkeun deui. Lajeng anjeun kudu install pikeun Visual Studio. Sareng anjeun tiasa ngamimitian damel.
Programming robot munggaran di MycroPython

Kana urang Aya sababaraha palajaran pikeun ngawasaan konsép dasar robotika. Modél EV3 ngenalkeun barudak kana dasar-dasar anu digunakeun dina mobil nyetir mandiri, robot rakitan pabrik, sareng mesin CNC.
Kami bakal nyandak conto mesin gambar, anu tiasa diajar ngagambar pola sareng bentuk geometri. Kasus ieu mangrupikeun versi saderhana tina las dewasa atanapi robot panggilingan sareng nunjukkeun kumaha EV3 tiasa dianggo babarengan sareng MicroPython pikeun ngajar budak sakola. Jeung mesin gambar bisa nandaan liang dina circuit board dicitak pikeun dad, tapi éta tingkat sejen nu merlukeun math.
Pikeun digawé, urang peryogi:
- LEGO MINDSTORMS Atikan EV3 Core Set;
- lambar badag tina kertas checkered;
- spidol berwarna.
The assembly of robot sorangan aya dina , sarta kami bakal nempo conto programming.
Mimiti urang ngamimitian perpustakaan modul 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
Urang nyetél platform nu rotates cecekelan kawas motor di port B. Urang nyetel ratio gear tina hiji karéta gear dua-tahap kalawan jumlah huntu 20-12-28, mungguh.
turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])
Urang ngonpigurasikeun mékanisme ngangkat pikeun cecekelan salaku motor dina port C:
seesaw_motor = Motor(Port.C)
Urang ngonpigurasikeun giroskop, anu ngukur sudut inclination cecekelan, dina port 2:
gyro_sensor = GyroSensor(Port.S2)
Urang ngonpigurasikeun sensor warna dina port 3. Sensor dipaké pikeun ngadeteksi kertas bodas handapeun mesin gambar:
color_sensor = ColorSensor(Port.S3)
Urang ngonpigurasikeun sensor touch dina port 4. Robot dimimitian ngagambar nalika sensor dipencet:
touch_sensor = TouchSensor(Port.S4)
Kami netepkeun fungsi anu naékkeun sareng nurunkeun gagang:
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)
Urang nangtukeun fungsi pikeun muterkeun cecekelan ka sudut nu tangtu atawa ka sudut nu tangtu:
def pen_holder_turn_to(target_angle):
if target_angle > gyro_sensor.angle():
Upami sudut udagan langkung ageung tibatan sudut sensor gyro ayeuna, teraskeun saarah jarum jam kalayan laju anu positif:
turntable_motor.run(70)
while gyro_sensor.angle() < target_angle:
pass
elif target_angle < gyro_sensor.angle():
Lamun sudut udagan kirang ti sénsor gyro ayeuna, teras pindah counterclockwise:
turntable_motor.run(-70)
while gyro_sensor.angle() > target_angle:
pass
Ngeureunkeun platform puteran nalika sudut target geus ngahontal:
turntable_motor.stop(Stop.BRAKE)
Atur posisi awal cecekelan dina posisi luhur:
pen_holder_raise()
Ayeuna datang bagian utama program - hiji loop sajajalan. EV3 mimitina ngantosan sensor warna ngadeteksi kertas bodas atanapi bulao mimiti kuadrat jeung sensor touch dipencet. Lajeng anjeunna draws pola, balik deui ka posisi awal jeung ngulang sagalana deui.
Nalika alat teu siap, LEDs on controller ngahurungkeun beureum sarta gambar "jempol ka handap" dipintonkeun dina layar LCD:
while True:
brick.light(Color.RED)
brick.display.image(ImageFile.THUMBS_DOWN)
Kami ngantosan dugi sensor warna diitung bulao atanapi bodas, nyetél warna LED kana héjo, nampilkeun gambar "jempol" dina layar LCD sareng ngalaporkeun yén alat parantos siap dianggo:
while color_sensor.color() not in (Color.BLUE, Color.WHITE):
wait(10)
brick.light(Color.GREEN)
brick.display.image(ImageFile.THUMBS_UP)
Urang ngadagoan sensor touch dipencet, nangtukeun nilai sudut 0 ka sensor gyroscopic tur mimitian ngagambar:
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)
Angkat wadah pena sareng balikkeun ka posisi aslina:
pen_holder_raise()
pen_holder_turn_to(0)</i>
Ieu mangrupikeun program saderhana anu kami ciptakeun. Sareng ayeuna urang ngaluncurkeunana sareng ningali robot panyusun dina aksi.
Naon anu disayogikeun ku conto sapertos kitu?

EV3 mangrupikeun alat pituduh karir pikeun karir STEM sareng titik éntri kana karir rékayasa. Kusabab éta tiasa dianggo pikeun ngarengsekeun masalah praktis, murangkalih nampi pangalaman dina pamekaran téknis sareng nyiptakeun robot industri, diajar simulasi kaayaan nyata, ngartos program sareng nganalisis algoritma, sareng ngawasaan konstruk program dasar.
Pangrojong MicroPython ngajadikeun platform EV3 cocog pikeun pangajaran SMA. Siswa tiasa nyobian diri salaku programer dina salah sahiji basa modéren anu pang populerna, sareng kenal sareng profési anu aya hubunganana sareng desain program sareng rékayasa. Kit EV3 nunjukkeun yén coding henteu pikasieuneun, nyiapkeun anjeun pikeun tantangan rékayasa anu serius, sareng ngabantosan anjeun nyandak léngkah munggaran pikeun ngawasaan kaahlian téknis. Sareng pikeun anu damel di sakola sareng aya hubunganana sareng pendidikan, kami parantos nyiapkeun jeung bahan atikan. Aranjeunna ngajelaskeun sacara rinci kaahlian naon anu dikembangkeun nalika ngalaksanakeun tugas-tugas anu tangtu, sareng kumaha kaahlian anu kaala pakait sareng standar latihan.
sumber: www.habr.com
