Senzorji

Programiranje z inteligentnimi motorji VEX IQ

Inteligentni motor VEX IQ ponuja številne funkcije, ki jih lahko uporabite pri programiranju v VEXcode IQ. To je zelo koristno pri programiranju rok, klešč in podajalnikov ter pogonskih sistemov in drugih mehanizmov, izdelanih z VEX IQ. Razumevanje načina programiranja motorjev bo pomagalo odpraviti težave, kot so zastajanje projektov ali motorji, ki ne delujejo kot je bilo predvideno.

Dajalnik položaja motorja

Inteligentni motor VEX IQ ne pretvarja samo električne energije v mehansko, kot večina motorjev, temveč ima tudi funkcije, ki jih večina motorjev nima in zaradi katerih je »inteligentn«. Ena od njegovih glavnih funkcij je kvadraturni dajalnik položaja (enkoder). Ta je nameščen v notranjosti motorja in beleži hitrost in/ali položaj osi motorja.

Podatki dajalnika položaja inteligentnega motorja VEX IQ omogočajo, da veste:

  • Smer vrtenja motorja (naprej/nazaj ali odprto/zaprto)

  • Položaj motorja ter količino in položaj zasuka motorja (v obratih ali stopinjah)

  • Hitrost vrtenja motorja (na podlagi položaja dajalnika skozi čas)

Ker dajalnik položaja poroča o stanjih motorja, se ti podatki lahko uporabijo v ozadju za izračune, ki omogočajo delovanje številnih ukazov gibanja in zaznavanja v VEXcode IQ.

Programiranje posameznih motorjev

Preden začnete programirati posamezne inteligentne motorje v VEXcode IQ, morate motor konfigurirati. Posamezni motorji se pogosto uporabljajo za dodatne mehanizme, kot so podajalniki, roke in klešče. Vse navedene informacije pa se vseeno nanašajo tudi na druge mehanizme, ki uporabljajo posamezne motorje.

VEXcode IQ Devices menu with a list of connected devices shown. A Smart Motor is highlighted, indicating that it can be configured after selecting it.

Sledite korakom v tem članku, da konfigurirate posamezni motor v VEXcode IQ.

Ko je posamezni motor konfiguriran, se v orodjarni prikažejo ukazi za upravljanje tega motorja. Opazili boste, da obstajajo različne vrste ukazov: ukazi s čakanjem in ukazi brez čakanja.

Ukazi s čakanjem in ukazi brez čakanja

Upoštevajte, da vse slike prikazujejo bloke. Vse te projekte je mogoče ustvariti tudi v Python ali C++ in vsebujejo enako funkcionalnost kot bloki.

VEXcode IQ blocks project that uses waiting commands to move the claw motor, then the robot, and then the arm motor one after another. The project reads When started, spin ClawMotor close for 90 degrees. Next, drive reverse for 200 mm and then spin ArmMotor to position 180 degrees.

Ukazi s čakanjem preprečijo nadaljevanje projekta, dokler se izvajanje ukaza ne zaključi. Med te sodijo ukazi, kot sta [Spin for] in [Spin to position].

Prikazani projekt uporablja predlogo Clawbot (2-motorni) in vsi ukazi so ukazi s čakanjem. Motorji se zato izvajajo zaporedno: motor klešč se zapre za 90 stopinj, robot se premakne v vzvratno smer, nato pa se roka zasuka do položaja 180 stopinj.

VEXcode IQ blocks project that uses non-waiting commands to spin the intake motor for exactly 2 seconds. The project reads When started, spin IntakeMotor in, wait 2 seconds, and then stop IntakeMotor.

Nasprotje tega so ukazi brez čakanja. Ukaz brez čakanja izvaja določeno dejanje neskončno dolgo oziroma dokler mu ne ukažemo, naj preide na drugo dejanje. Med te sodijo ukazi, kot je [Spin].

Prikazani projekt uporablja BaseBot z dodanim podajalnikom. Motor podajalnika začne vrtenje. Ukaz [Wait] je ukaz s čakanjem, zato se podajalnik vrti, dokler ne poteče 2 sekundi — nato se projekt premakne na naslednji ukaz [Stop] in motor preneha vrtenje.

Časovne omejitve motorja

Pri programiranju motorja kot dela roke ali klešč je pomembno upoštevati razliko med bloki s čakanjem in bloki brez čakanja ter njihov vpliv na gibanje robota. Časovne omejitve motorja vam omogočajo, da nastavite časovno mejo, v kateri mora motor doseči predvideni ciljni položaj. Če motor tega položaja ne doseže ob izteku časa, motor preneha z vrtenjem in projekt se premakne na naslednji ukaz.

VEXcode IQ blocks project that uses a motor timeout block to spin the claw motor closed for 90 degrees or until 2 seconds have passed before moving the robot. The project reads When started, set ClawMotor timeout to 2 seconds and spin ClawMotor close for 90 degrees. Lastly, drive reverse for 200 mm.

V tem primeru je časovna omejitev motorja nastavljena na 2 sekundi. Če se klešče ne zaprejo do 90 stopinj v 2 sekundah, motor ob izteku 2 sekund preneha vrtenje in projekt se premakne na naslednji ukaz ter robot vozi naprej.

Brain screen is shown with the Motor Sensor Dashboard opened from the Devices menu. Information is shown about the motor such as its command, velocity, position, current, and the motor's Smart Port.

Če niste prepričani, za koliko je treba premakniti motor, uporabite nadzorno ploščo senzorjev. Nadzorna plošča poroča o položaju motorja v stopinjah in obratih, tako da se ob premikanju motorja (na primer odpiranju in zapiranju klešč) vrednosti spremenijo. S to preizkusno metodo ugotovite, koliko stopinj ali obratov je potrebnih za zapiranje klešč, dviganje roke, vrtenje podajalnika ipd.

Za več informacij o uporabi nadzorne plošče senzorjev si oglejte te članke.

Programiranje inteligentnih motorjev kot dela pogonskega sistema

Preden začnete programirati pogonski sistem v VEXcode IQ, morate konfigurirati pogonski sistem, vključno z motorji, ki se pri tem uporabljajo. Motorji so konfigurirani znotraj pogonskega sistema, da se zagotovi njihovo upravljanje z enakimi ukazi, kot sta [Drive] in [Drive for].

VEXcode IQ Devices menu after the Add a device button has been selected. The Drivetrain 2 Motor option is highlighted.

Oglejte si te članke za več informacij o konfiguriranju pogonskega sistema v VEXcode IQ.

Ukazi s čakanjem in ukazi brez čakanja

Pri programiranju pogonskega sistema so za upravljanje gibanja robota na voljo ukazi s čakanjem in ukazi brez čakanja.

VEXcode IQ blocks project that uses waiting commands to drive the robot forwards and then turn right one after another. The project reads When started, drive forward for 200 mm and then turn right for 90 degrees.

Ukazi s čakanjem preprečijo nadaljevanje projekta, dokler se izvajanje ukaza ne zaključi. Med te sodijo ukazi, kot so [Drive for], [Turn for] in [Turn to heading].

Prikazani projekt uporablja predlogo Clawbot (2-motorni) in vsi ukazi so ukazi s čakanjem. Ukazi se zato izvajajo zaporedno: robot s pogonskim sistemom najprej vozi naprej 200 milimetrov, nato pa zavije desno.

VEXcode IQ blocks project that uses a non-waiting command to drive the robot forwards until the Bumper is pressed, and then turn to the right. The project reads When started, drive forward, wait until Bumper3 pressed, and then turn right for 90 degrees.

Nasprotje tega so ukazi brez čakanja. Ukaz brez čakanja izvaja določeno dejanje neskončno dolgo oziroma dokler mu ne ukažemo, naj preide na drugo dejanje. Med te sodijo ukazi, kot je [Drive].

Prikazani projekt uporablja BaseBot. Robot vozi naprej neskončno dolgo, dokler se ne pritisne stikalo odbijača. Nato se projekt premakne na naslednji ukaz, robot preneha z vožnjo in zavije desno za 90 stopinj.

Spletna trgovina

Potrebujete dodatne dele?

Originalni VEX deli, razširitveni seti in kompleti — vse za vaš naslednji robotski projekt na trgovina.robotech.si.

Pripravil RoboTech STEM Center
Stopite v stik

Imate
vprašanje?

Pišite nam — odgovorimo v najkrajšem možnem času.

Vaši podatki so varni in zaupni.