Hello, Habr! Waxaan horay ku saabsan LEGO MINDSTORMS Education EV3. Ujeedooyinka ugu muhiimsan ee goobtan waa barashada tusaalooyin wax ku ool ah, horumarinta xirfadaha STEAM iyo horumarinta maskaxda injineernimada. Waxaa loo isticmaali karaa shaqada shaybaadhka si loo barto makaanikada iyo dhaqdhaqaaqa. Kuraasta shaybaadhka ee laga sameeyay lebenka LEGO iyo agabka loogu talagalay duubista iyo habaynta xogta ayaa ka dhigaya tijaabooyin xitaa mid xiiso badan oo muuqaal ah waxayna ka caawiyaan carruurta inay si fiican u fahmaan fiisigiska. Tusaale ahaan, ardaydu waxay ururin karaan xogta barta dhalaalka oo ay isticmaalaan abka si ay u habeeyaan oo ay ugu soo bandhigaan garaaf. Laakin tani waa bilow: maanta waxaan kuu sheegi doonaa sida aad u buuxin lahayd setkan deegaanka barnaamijka MicroPython oo aad u isticmaasho si aad u barato robotics.

Baro barnaamijka adoo isticmaalaya EV3
Carruurta casriga ah waxay rabaan inay arkaan natiijooyin midab leh. Haa, way caajiseen haddii barnaamijku lambarro ku daabaco console-ka, waxayna rabaan inay eegaan garaafyada midabka, jaantusyada oo ay abuuraan robots dhab ah oo dhaqaaqa oo raacaya amarada. Koodhka caadiga ah wuxuu sidoo kale u muuqdaa mid aad u adag carruurta, markaa way fiicantahay in la bilaabo barashada wax sahlan.
Deegaanka barnaamijka aasaasiga ah ee EV3 wuxuu ku saleysan yahay luqadda garaafka ee LabVIEW wuxuuna kuu oggolaanayaa inaad qeexdo algorithms-ka robot-ka muuqaal ahaan: amarrada waxaa lagu soo bandhigay qaab blocks ah oo la jiidi karo laguna xiri karo.

Habkani wuxuu si fiican u shaqeeyaa markaad u baahan tahay inaad muujiso sida algorithms loo dhisay, laakiin kuma habboona barnaamijyada leh tiro badan oo blocks ah. Marka ay xaaladuhu noqdaan kuwo aad u adag, waa lagama maarmaan in loo guuro barnaamijka oo leh koodh, laakiin tallaabadani way ku adag tahay carruurta inay qaataan.
Waxaa jira dhowr farsamooyin halkan, mid ka mid ah taas oo ah in la muujiyo in koodka uu sameeyo wax la mid ah sida blocks. Deegaanka EV3, tani waxay suurtogal u tahay isdhexgalka MicroPython, si carruurtu ay u abuuri karaan barnaamij isku mid ah labadaba jawiga barnaamijyada block ee aasaasiga ah iyo Python ee Microsoft Visual Studio Code. Waxay arkaan in labada habba ay si isku mid ah u shaqeeyaan, laakiin xallinta dhibaatooyinka adag iyadoo la adeegsanayo koodka ayaa ku habboon.
U beddelashada MicroPython
Deegaanka EV3 waxa lagu dhisay processor-ka ARM9, horumariyayaashuna waxay si badheedh ah uga tageen dhismaha oo furan. Xalkani waxa uu suurtageliyay in la soo saaro qalab kale oo firmware ah, oo mid ka mid ah uu ahaa sawirka la shaqaynta MicroPython. Waxay kuu ogolaanaysaa inaad isticmaasho Python si aad u barnaamijto EV3 kaaga, taasoo keenaysa xirmada xitaa ku dhawaada hawlaha nolosha dhabta ah.
Si aad u bilowdo, waxaad u baahan tahay inaad soo dejiso Kaar kasta oo microSD ah, ku rakib microcomputer-ka EV3 oo shid. Markaa waxaad u baahan tahay inaad rakibto ee Visual Studio. Oo waxaad bilaabi kartaa shaqada.
Barnaamijyada robotka ugu horreeya ee MycroPython

On our Waxaa jira casharo dhowr ah oo lagu baranayo fikradaha aasaasiga ah ee robotics-ka. Moodooyinka EV3 waxay baranayaan carruurta waxyaabaha aasaasiga ah ee loo isticmaalo baabuurta iswada, robots-ka warshadaynta, iyo mashiinnada CNC.
Waxaan tusaale u soo qaadan doonaa mishiinka sawir-qaadista, kaas oo lagu baran karo sawiridda qaababka iyo qaababka joomatari. Kiiskan waa nooc la fududeeyay ee alxanka dadka waaweyn ama aaladaha wax lagu shiidi karo oo muujinaya sida EV3 loogu isticmaali karo MicroPython si wax loogu baro carruurta dugsiga. Iyo mashiinka sawirku wuxuu calaamadin karaa godadka guddiga wareegga daabacan ee aabaha, laakiin taasi waa heer kale oo u baahan xisaab.
Shaqada waxaan u baahanahay:
- LEGO MINDSTORMS Waxbarashada EV3 Set Core;
- xaashi weyn oo warqad sax ah;
- calaamado midab leh.
Isku xirka robot-ka laftiisa ayaa ku jira , waxaanan eegi doonaa tusaale barnaamij.
Marka hore waxaan bilownay maktabadda moduleka 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
Waxaan dejinnay madal u wareegeysa gacanta sida matoorka dekedda B. Waxaan dejineynaa saamiga gear ee tareen laba-heer ah oo leh tiro ilig ah 20-12-28, siday u kala horreeyaan.
turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])
Waxaan u habaynaynaa habka qaadista ee gacanta sida matoorka dekedda C:
seesaw_motor = Motor(Port.C)
Waxaan dejineynaa gyroscope, kaas oo cabbiraya xagasha u janjeerta gacanta, ee ku taal dekedda 2:
gyro_sensor = GyroSensor(Port.S2)
Waxaan ku habeyneynaa dareemaha midabka dekedda 3. Dareemaha waxaa loo isticmaalaa in lagu ogaado warqad cad oo hoos timaada mashiinka sawirka:
color_sensor = ColorSensor(Port.S3)
Waxaan ku habeyneynaa dareeme taabashada dekedda 4. Robotku wuxuu bilaabaa inuu sawiro marka dareenka la riixo:
touch_sensor = TouchSensor(Port.S4)
Waxaan qeexnaa shaqooyinka kor u qaada oo hoos u dhigaya gacanta:
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)
Waxaan qeexnaa shaqada si aan gacanta ugu rogno xagal la bixiyay ama xagal gaar ah:
def pen_holder_turn_to(target_angle):
if target_angle > gyro_sensor.angle():
Haddii xagasha la beegsanayo uu ka weyn yahay xagasha gyro sensor-ka ee hadda, ku sii wad saacada dhan xawli togan:
turntable_motor.run(70)
while gyro_sensor.angle() < target_angle:
pass
elif target_angle < gyro_sensor.angle():
Haddii xagasha la beegsanayo uu ka yar yahay dareeraha gyro-ga ee hadda, ka dib u dhaqaaq saacad ka hor:
turntable_motor.run(-70)
while gyro_sensor.angle() > target_angle:
pass
Jooji goobta wareegeysa marka xagasha bartilmaameedka la gaaro:
turntable_motor.stop(Stop.BRAKE)
Deji booska hore ee gacanta ee booska sare:
pen_holder_raise()
Hadda waxay timaaddaa qaybta ugu muhiimsan ee barnaamijka - wareeg aan dhammaad lahayn. EV3 waxay marka hore sugaysaa dareemaha midabka si uu u ogaado warqad cad ama labajibbaaran bilowga buluugga ah iyo in dareenka taabashada la cadaadiyo. Kadibna wuxuu sawiraa qaab, wuxuu ku soo noqdaa booska bilawga oo wax walba ku celiyaa mar kale.
Marka qalabku aanu diyaar ahayn, LED-yada kontaroolaha ayaa casaan noqda oo sawirka "suulka hoos u dhaca" ayaa lagu soo bandhigay shaashadda LCD:
while True:
brick.light(Color.RED)
brick.display.image(ImageFile.THUMBS_DOWN)
Waxaan sugeynaa ilaa dareemayaasha midabku tiriyo buluug ama caddaan, u deji midabka LED-ka cagaar, ku muuji sawirka "suulka sare" shaashadda LCD oo soo sheeg in qalabku diyaar u yahay isticmaalka:
while color_sensor.color() not in (Color.BLUE, Color.WHITE):
wait(10)
brick.light(Color.GREEN)
brick.display.image(ImageFile.THUMBS_UP)
Waxaan sugeynaa dareemaha taabashada in la cadaadiyo, ku meelee qiimaha xagasha 0 ee dareenka gyroscopic oo bilow sawir:
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)
Kor u qaad qalinka-haystaha oo ku soo celi booskiisii ββhore:
pen_holder_raise()
pen_holder_turn_to(0)</i>
Kani waa barnaamijka fudud ee aan abuurnay. Oo hadda waanu bilownay oo eegnaa robot-ka-qorista ee ficilka ah.
Maxay yihiin tusaalooyinka noocaan ah?

EV3 waa qalab hagitaan shaqo oo loogu talagalay mihnadaha STEM iyo barta gelitaanka xirfadaha injineernimada. Maaddaama loo isticmaali karo in lagu xalliyo dhibaatooyinka la taaban karo, carruurtu waxay khibrad u helaan horumarinta farsamada iyo abuurista robots warshadaha, bartaan inay la jaanqaadaan xaaladaha dhabta ah, fahmaan barnaamijyada iyo falanqaynta algorithms, oo ay bartaan dhismooyinka aasaasiga ah ee barnaamijyada.
Taageerada MicroPython waxay ka dhigtaa madal EV3 ku haboon waxbarida dugsiga sare. Ardaydu waxay isku dayi karaan barnaamij-waxbarasheed ka mid ah luqadaha casriga ah ee ugu caansan, waxayna baran karaan xirfadaha la xidhiidha barnaamijyada iyo naqshadaynta injineernimada. Xirmooyinka EV3 waxay muujinayaan in codeeyntu aysan ahayn mid cabsi leh, waxayna kuu diyaarineysaa caqabado injineernimo oo halis ah, waxayna kaa caawinayaan inaad qaado tillaabada ugu horreysa ee xirfado farsamo. Kuwa dugsiyada ka shaqeeya ee ku xidhan waxbarashadana waanu u diyaarinay iyo agab waxbarasho. Waxay si faahfaahsan u sharraxaan xirfadaha la horumariyo marka la qabanayo hawlaha qaarkood, iyo sida xirfadaha la helay ay ula xiriiraan heerarka tababarka.
Source: www.habr.com
