Ndewo, Habr! Anyị ugbua gbasara LEGO MINDSTORMS Education EV3 ikpo okwu. Ebumnuche bụ isi nke ikpo okwu a bụ mmụta site na ihe atụ bara uru, ịzụlite nkà STEAM na ịzụlite echiche injinịa. Enwere ike iji ya maka ọrụ ụlọ nyocha iji mụọ makaniiki na ike. Oche ụlọ nyocha emere site na brik LEGO na akụrụngwa maka ịdekọ na nhazi data na-eme nnwale na-atọkwa ụtọ karịa ma na-enyere ụmụaka aka ịghọta physics nke ọma. Dịka ọmụmaatụ, ụmụ akwụkwọ nwere ike ịnakọta data ebe mgbaze wee jiri ngwa ahụ hazie ya wee gosipụta ya na eserese. Mana nke a bụ mmalite: taa, anyị ga-agwa gị ka ị ga-esi mejupụta ihe a na gburugburu mmemme MicroPython wee jiri ya kuzie robotics.

Mụta mmemme site na iji EV3
Ụmụ akwụkwọ nke oge a chọrọ ịhụ nsonaazụ mara mma. Ee, ha na-agwụ ike ma ọ bụrụ na mmemme ahụ na-ebipụta nọmba na console, ha chọrọ ilele eserese agba, eserese ma mepụta ezigbo robots na-agagharị ma na-agbaso iwu. Koodu oge niile na-eyikwa ka ọ gbagwojuru anya maka ụmụaka, yabụ na ọ ka mma ịmalite ịmụ ihe na ihe dị mfe.
Mpaghara mmemme EV3 bụ isi dabere na asụsụ eserese LabVIEW ma na-enye gị ohere ịkọwapụta algọridim maka robot n'anya: enyere iwu n'ụdị ngọngọ nwere ike ịdọrọ na jikọọ.

Usoro a na-arụ ọrụ nke ọma mgbe ịchọrọ igosi otú e si arụ ọrụ algọridim, ma ọ dịghị adabara maka mmemme nwere ọnụ ọgụgụ buru ibu nke ngọngọ. Ka ọnọdụ na-adịwanye mgbagwoju anya, ọ dị mkpa ịkwaga na mmemme na koodu, mana nzọụkwụ a siri ike maka ụmụaka ịme.
Enwere aghụghọ ole na ole ebe a, otu n'ime ha bụ igosi na koodu ahụ na-eme otu ihe ahụ dị ka ngọngọ. Na gburugburu EV3, nke a ga-ekwe omume site na njikọta MicroPython, yabụ ụmụaka nwere ike ịmepụta otu mmemme na mpaghara mmemme ngọngọ isi yana Python na Microsoft Visual Studio Code. Ha na-ahụ na ụzọ abụọ a na-arụ ọrụ otu, ma idozi nsogbu mgbagwoju anya site na iji koodu na-adaba adaba.
Ịgbanwe na MicroPython
Ewubere gburugburu EV3 na ihe nrụpụta ARM9, ndị mmepe kpachara anya hapụ ụlọ ahụ mepere emepe. Ngwọta a mere ka o kwe omume ibugharị firmware ọzọ, otu n'ime ha bụ onyonyo maka ịrụ ọrụ na MicroPython. Ọ na-enye gị ohere iji Python hazie EV3 gị, na-eweta ngwa ahụ nso na ọrụ ndụ n'ezie.
Iji malite, ịkwesịrị ibudata na kaadị microSD ọ bụla, wụnye ya na microcomputer EV3 wee gbanye ya. Mgbe ahụ ịkwesịrị ịwụnye maka Visual Studio. Ma ị nwere ike ịmalite ịrụ ọrụ.
Ịmepụta robot mbụ na MycroPython

Ka anyị Enwere nkuzi dị iche iche maka ịmụta echiche bụ isi nke robotik. Ụdị EV3 na-ewebata ụmụaka ihe ndị a na-eji n'ụgbọ ala na-anya onwe ha, robots mgbakọ ụlọ ọrụ na igwe CNC.
Anyị ga-ewere ihe atụ nke igwe na-ese ihe, nke enwere ike ịkụziri ya ise ụkpụrụ na ọdịdị geometric. Nke a bụ ụdị dị mfe nke ịgbado ọkụ nke okenye ma ọ bụ igwe igwe igwe na-egosi ka enwere ike iji EV3 yana MicroPython na-akụziri ụmụ akwụkwọ ihe. Na igwe ihe osise nwere ike akara oghere na bọọdụ sekit a na-ebipụta maka nna, mana nke ahụ bụ ọkwa ọzọ nke chọrọ mgbakọ na mwepụ.
Maka ọrụ anyị ga-achọ:
- LEGO MINDSTORMS Agụmakwụkwọ EV3 Isi Ntọala;
- nnukwu mpempe akwụkwọ checkered;
- akara akara.
Mgbakọ nke robot n'onwe ya dị , na anyị ga-ele anya na ihe atụ mmemme.
Nke mbụ anyị na-amalite ọba akwụkwọ EV3 modul:
#!/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
Anyị na-edozi ikpo okwu nke na-atụgharị aka dị ka moto na ọdụ ụgbọ mmiri B. Anyị na-edozi nhazi nke ụgbọ oloko abụọ nke nwere ọnụ ọgụgụ ezé nke 20-12-28, n'otu n'otu.
turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])
Anyị na-ahazi usoro ibuli elu maka aka dị ka moto na ọdụ ụgbọ mmiri C:
seesaw_motor = Motor(Port.C)
Anyị na-ahazi gyroscope, nke na-atụ akụkụ nke ọchịchọ nke aka, na ọdụ ụgbọ mmiri 2:
gyro_sensor = GyroSensor(Port.S2)
Anyị na-ahazi ihe mmetụta agba na ọdụ ụgbọ mmiri 3. A na-eji ihe mmetụta ahụ chọpụta akwụkwọ ọcha n'okpuru igwe eserese:
color_sensor = ColorSensor(Port.S3)
Anyị na-ahazi ihe mmetụta aka na ọdụ ụgbọ mmiri 4. Robot na-amalite ịbịaru mgbe a na-agbanye ihe mmetụta:
touch_sensor = TouchSensor(Port.S4)
Anyị na-akọwapụta ọrụ ndị na-ebuli ma na-ebelata aka:
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)
Anyị na-akọwapụta ọrụ iji tụgharịa aka ahụ gaa n'akụkụ enyere ma ọ bụ n'akụkụ ụfọdụ:
def pen_holder_turn_to(target_angle):
if target_angle > gyro_sensor.angle():
Ọ bụrụ na akụkụ e lekwasịrị anya dị ukwuu karịa akụkụ gyro sensọ ugbu a, gaa n'ihu na-aga na elekere na ọsọ dị mma:
turntable_motor.run(70)
while gyro_sensor.angle() < target_angle:
pass
elif target_angle < gyro_sensor.angle():
Ọ bụrụ na akụkụ e lekwasịrị anya erughị ihe mmetụta gyro dị ugbu a, wee gaa n'ihu n'aka elekere:
turntable_motor.run(-70)
while gyro_sensor.angle() > target_angle:
pass
Kwụsị ikpo okwu na-atụgharị mgbe akụkụ ebumnuche ruru:
turntable_motor.stop(Stop.BRAKE)
Tọọ ọnọdụ mbụ nke aka ahụ n'ọkwa dị elu:
pen_holder_raise()
Ugbu a na-abịa akụkụ bụ isi nke mmemme - akaghị agwụ agwụ. EV3 buru ụzọ echere ihe mmetụta agba ka ọ chọpụta mpempe akwụkwọ ọcha ma ọ bụ ihe na-acha anụnụ anụnụ na square mmalite yana ka a pịa ihe mmetụta mmetụ ahụ. Mgbe ahụ, ọ na-esetịpụ ụkpụrụ, laghachi na mmalite ma na-emegharị ihe niile ọzọ.
Mgbe ngwaọrụ adịghị njikere, LEDs na njikwa na-acha uhie uhie na ihe oyiyi "mkpịsị aka" na-egosipụta na ihuenyo LCD:
while True:
brick.light(Color.RED)
brick.display.image(ImageFile.THUMBS_DOWN)
Anyị na-echere ruo mgbe ihe mmetụta agba na-agụ na-acha anụnụ anụnụ ma ọ bụ na-acha ọcha, tọọ agba LED ka ọ bụrụ akwụkwọ ndụ akwụkwọ ndụ, gosipụta ihe oyiyi "mkpịsị aka elu" na ihuenyo LCD wee kọọ na ngwaọrụ ahụ dị njikere maka ojiji:
while color_sensor.color() not in (Color.BLUE, Color.WHITE):
wait(10)
brick.light(Color.GREEN)
brick.display.image(ImageFile.THUMBS_UP)
Anyị na-echere ka ịpịa ihe mmetụta mmetụ ahụ, kenye uru akụkụ 0 na ihe mmetụta gyroscopic wee malite ịbịaru:
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)
Welie ihe njide ahụ ma weghachi ya n'ọnọdụ mbụ ya:
pen_holder_raise()
pen_holder_turn_to(0)</i>
Nke a bụ mmemme dị mfe anyị mepụtara. Ma ugbu a, anyị na-ebupụta ya wee lelee robot na-emepụta ihe na-arụ ọrụ.
Gịnị ka ihe atụ ndị dị otú ahụ na-enye?

EV3 bụ ngwa nduzi ọrụ maka ọrụ STEM na ntinye ntinye n'ime ọrụ injinia. Ebe ọ bụ na enwere ike iji ya dozie nsogbu ndị bara uru, ụmụaka na-enweta ahụmahụ na mmepe nkà na ụzụ na ịmepụta robots ụlọ ọrụ, mụta ime ka ọnọdụ dị adị, ghọta mmemme na nyochaa algọridim, na ịmụta isi ihe mmemme.
Nkwado MicroPython na-eme ka ikpo okwu EV3 dabara maka nkuzi ụlọ akwụkwọ sekọndrị. Ụmụ akwụkwọ nwere ike ịnwale onwe ha dị ka ndị mmemme n'otu n'ime asụsụ ọgbara ọhụrụ kachasị ewu ewu, wee mara ọrụ ndị metụtara mmemme na imepụta injinia. Ngwa EV3 na-egosi na itinye koodu anaghị atụ egwu, kwadebe gị maka ihe ịma aka injinia siri ike, wee nyere gị aka ịme nzọụkwụ mbụ n'ịmụ nka nka. Na maka ndị na-arụ ọrụ n'ụlọ akwụkwọ ma na-ejikọta na agụmakwụkwọ, anyị kwadebere na ihe nkuzi. Ha na-akọwa n'ụzọ zuru ezu nkà a na-azụlite mgbe a na-arụ ọrụ ụfọdụ, yana ka nkà ndị enwetara si metụta ụkpụrụ ọzụzụ.
isi: www.habr.com
