Robottikohtainen Python#

Johdanto#

Sankarirobotti Swish sisältää yhden moottorivaihtoehdon, yhden moottoriryhmävaihtoehdon ja optisen anturin.

Kaikki VEXcode VR -standardimenetelmät ovat käytettävissä IQ 24-25 Rapid Relay -leikkikentällä.

Alla on luettelo kaikista käytettävissä olevista robottikohtaisista menetelmistä:

Voimansiirto – Liikuta ja käännä robottia.

  • Toiminnot

    • drive — Liikuttaa robottia eteen- tai taaksepäin pysyvästi.

    • drive_for — Liikuttaa robottia eteen- tai taaksepäin tietyn matkan.

    • turn — Kääntää robottia vasemmalle tai oikealle ikuisesti.

    • turn_for — Kääntää robottia vasemmalle tai oikealle tietyn astemäärän.

    • turn_to_heading — Kääntää robotin tiettyyn suuntaan -359 - 359 astetta.

    • turn_to_rotation — Kääntää robotin tiettyyn pyörimissuuntaan.

    • stop — Pysäyttää robotin liikkeen.

  • Mutaattorit

    • set_heading — Muuttaa robotin nykyisen suunnan uudeksi suunnaksi.

    • set_rotation — Muuttaa robotin nykyisen pyörimissuunnan uudeksi pyörimissuunnaksi.

    • set_timeout — Asettaa, kuinka kauan robotti yrittää suorittaa liikkeen loppuun.

    • set_drive_velocity — Kertoo robotille, kuinka nopeasti sen tulisi ajaa.

    • set_turn_velocity — Kertoo robotille, kuinka nopeasti sen tulisi kääntyä.

  • Getters

    • heading — Palauttaa robotin nykyisen suunnan 0–359,99 astetta.

    • rotation — Palauttaa robotin nykyisen rotaatioasteen.

    • is_done — Palauttaa totuusarvona tiedon siitä, onko robotti lopettanut liikkumisen.

    • is_moving — Palauttaa totuusarvona tiedon siitä, liikkuuko robotti.

    • velocity — Palauttaa robotin ajonopeuden.

Liike – Liikuta ja seuraa robotin moottoria ja moottoriryhmää.

  • Toiminnot

    • spin — Pyörittää moottoria tai moottoriryhmää eteen- tai taaksepäin ikuisesti.

    • spin_for — Pyörittää moottoria tai moottoriryhmää tietyn matkan.

    • spin_to_position — Pyörittää moottorin tai moottoriryhmän tiettyyn asentoon.

    • stop — Pysäyttää moottorin tai moottoriryhmän pyörimisen.

  • Mutaattorit

    • set_position — Muuttaa moottorin tai moottoriryhmän nykyisen sijainnin uuteen arvoon.

    • set_velocity — Kertoo moottorille tai moottoriryhmälle, kuinka nopeasti sen tulisi pyöriä.

    • set_timeout — Määrittää, kuinka kauan moottori tai moottoriryhmä yrittää suorittaa liikkeen loppuun.

  • Getters

    • is_done — Palauttaa totuusarvona tiedon siitä, onko moottorin tai moottoriryhmän liike päättynyt.

    • is_spinning — Palauttaa totuusarvona tiedon siitä, pyöriikö moottori vai moottoriryhmä.

    • position — Palauttaa moottorin tai moottoriryhmän nykyisen sijainnin.

    • velocity — Palauttaa moottorin tai moottoriryhmän pyörimisnopeuden.

Konsoli – Tulosta konsoliin ja valvo arvoja.

Anturit – Käytä robotin erilaisia ​​antureita.

  • Optinen

    • is_near_object – Palauttaa, havaitseeko optinen anturi kohteen kantaman sisällä.

    • color – Palauttaa optisen anturin havaitseman värin.

    • brightness – Palauttaa kohteesta heijastuneen valon määrän.

    • hue – Palauttaa optisen anturin havaitseman sävyn.

    • object_detected – Rekisteröi funktion, jota kutsutaan, kun optinen anturi havaitsee kohteen.

    • object_lost – Rekisteröi funktion, jota kutsutaan, kun optinen anturi kadottaa objektin.

Tämän sivun esimerkeissä käytetään leikkikentän oletusarvoista aloituskohtaa.

Voimansiirto#

Voimansiirto ohjaa VR-robotin ajo- ja kääntymistapoja. Voimansiirto voi liikkua eteen- tai taaksepäin, kääntyä vasemmalle tai oikealle, kääntyä eri suuntiin ja seurata pyörimistään.

Toiminnot#

ajaa#

drive liikuttaa robottia eteen- tai taaksepäin ikuisesti. Robotti jatkaa liikkumista, kunnes sille annetaan toinen toiminto, kuten kääntyminen tai pysähtyminen.

Usage:
drivetrain.drive(direction)

Parametrit

Kuvaus

direction

Robotin liikesuunta: FORWARD tai REVERSE.

def main():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

aja_for#

drive_for liikuttaa robottia eteen- tai taaksepäin tietyn matkan. Projekti odottaa, kunnes robotti on liikkunut loppuun ennen seuraavan koodirivin suorittamista.

Usage:
drivetrain.drive_for(direction, distance, units, wait)

Parametrit

Kuvaus

direction

Robotin liikesuunta: FORWARD tai REVERSE.

distance

Robotin ajama matka. Tämä voi olla kokonaisluku integer tai desimaaliluku (float).

units

Etäisyyden yksikkö: INCHES tai MM (millimetriä).

wait

Valinnainen. wait=True (oletus) saa projektin odottamaan, kunnes robotti on liikkunut, ennen kuin seuraava koodirivi suoritetaan. wait=False saa seuraavan koodirivin suoritettavaksi heti.

def main():
    # Drive forward and backward
    drivetrain.drive_for(FORWARD, 200, MM)
    drivetrain.drive_for(REVERSE, 200, MM)

# VR threads — Do not delete
vr_thread(main)

käännös#

turn kääntää robottia vasemmalle tai oikealle ikuisesti. Robotti jatkaa kääntymistä, kunnes sille annetaan toinen toiminto, kuten ajaminen tai pysähtyminen.

Usage:
drivetrain.turn(direction)

Parametrit

Kuvaus

direction

Robotin kääntymissuunta: LEFT tai RIGHT.

def main():
    # Turn right and left, then stop
    drivetrain.turn(RIGHT)
    wait(2, SECONDS)
    drivetrain.turn(LEFT)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

vuoro_kohtaan#

turn_for kääntää robottia vasemmalle tai oikealle tietyn astemäärän. Käännös on suhteessa robotin nykyiseen sijaintiin. Projekti odottaa, kunnes robotti on kääntynyt, ennen kuin seuraava koodirivi suoritetaan.

Usage:
drivetrain.turn_for(direction, angle, units, wait)

Parametrit

Kuvaus

direction

Robotin kääntymissuunta: LEFT tai RIGHT.

angle

Robotin kääntymisasteiden määrä. Tämä voi olla kokonaisluku integer tai desimaaliluku (float).

units

Pyörimisyksikkö: DEGREES.

wait

Valinnainen. wait=True (oletus) saa projektin odottamaan, kunnes robotti on kääntynyt, ennen kuin seuraava koodirivi suoritetaan. wait=False saa seuraavan koodirivin suoritettavaksi heti.

def main():
    # Turn the robot right and left
    drivetrain.turn_for(RIGHT, 90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_for(LEFT, 90, DEGREES)

# VR threads — Do not delete
vr_thread(main)

käänny_suuntaan#

Suunta on robotin osoittama suunta asteina. turn_to_heading kääntää robotin tiettyyn suuntaan -359 ja 359 asteen välillä. Robotti kääntyy lyhyimpään suuntaan saavuttaakseen kohdesuunnan.

Robotin lähtösuunta on 0 astetta.

Projekti odottaa, kunnes robotti on kääntynyt, ennen kuin seuraava koodirivi suoritetaan.

Usage:
drivetrain.turn_to_heading(angle, units, wait)

Parametrit

Kuvaus

angle

Robotin suunta asteina. Tämä voi olla kokonaisluku integer tai desimaaliluku (float) väliltä -359 - 359.

units

Pyörimisyksikkö: DEGREES.

wait

Valinnainen. wait=True (oletus) saa projektin odottamaan, kunnes robotti on kääntynyt, ennen kuin seuraava koodirivi suoritetaan. wait=False saa seuraavan koodirivin suoritettavaksi heti.

def main():
    # Turn to face the cardinal directions
    drivetrain.turn_to_heading(90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(180, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(270, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

käännös_kiertoon#

turn_to_rotation kääntää robotin tiettyyn pyörähdyssuuntaan.

Rotaatio ilmaisee robotin kääntymismäärän asteina. Projektin alussa rotaatioarvoksi asetetaan 0 astetta. Rotaatio voidaan asettaa myös set_rotation-metodilla.

Rotaatioarvot ovat absoluuttisia. Tämä tarkoittaa, että käännöksen suunta riippuu robotin nykyisestä pyörimisestä. Oikealle kääntäminen lisää pyörimistä ja vasemmalle kääntäminen vähentää niitä.

Jos esimerkiksi robotti aloittaa 0 asteen kulmasta ja käännyt 720 asteen kierrokseen, se kääntyy kahdesti oikealle. Jos sitten käännyt 360 astetta, se kääntyy kerran vasemmalle, koska 360 on pienempi kuin 720.

Projekti odottaa, kunnes robotti on kääntynyt, ennen kuin seuraava koodirivi suoritetaan.

Usage:
drivetrain.turn_to_rotation(angle, units, wait)

Parametrit

Kuvaus

angle

Robotin kääntymisaika asteina. Tämä voi olla kokonaisluku integer tai desimaaliluku (float).

units

Pyörimisyksikkö: DEGREES.

wait

Valinnainen. wait=True (oletus) saa projektin odottamaan, kunnes robotti on kääntynyt, ennen kuin seuraava koodirivi suoritetaan. wait=False saa seuraavan koodirivin suoritettavaksi heti.

def main():
    # Turn left, then spin in a circle
    # clockwise and face right
    drivetrain.turn_to_rotation(-90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_rotation(450, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Stop#

stop pysäyttää robotin liikkeen.

Usage:
drivetrain.stop()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

def main():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

Mutaattorit#

set_header#

Suunta on robotin suunta asteina mitattuna. set_heading muuttaa robotin nykyisen suunnan uuteen suunta-arvoon.

Jos esimerkiksi robotti on kääntynyt oikealle ja suunnan asettaminen 0 asteeseen tekee oikealle osoittavasta asennosta uuden 0 asteen. Tämän jälkeen robotti voi kääntyä muihin asentoihin tämän uuden suunnan perusteella.

Usage:
drivetrain.set_heading(heading, units)

Parametrit

Kuvaus

heading

Robotille asetettava suunta-arvo asteina. Tämä voi olla kokonaisluku integer tai desimaaliluku (float).

units

Kulmayksikkö: DEGREES.

def main():
    # Face the new 0 degrees
    drivetrain.set_heading(90, DEGREES)
    drivetrain.turn_to_heading(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

aseta_kierto#

Rotaatio ilmaisee robotin kääntymismäärän asteina. Projektin alussa rotaatioarvoksi asetetaan 0 astetta. set_rotation muuttaa robotin nykyisen rotaation uuteen arvoon.

Jos robotti on esimerkiksi tehnyt kaksi täyttä käännöstä oikealle, sen kiertoarvo on 720 astetta. Kierron asettaminen 0 asteeseen palauttaa kiertoarvon 720 asteesta 0 asteeseen. Tämän jälkeen robotti voi tehdä kiertoja tämän uuden arvon perusteella.

Usage:
drivetrain.set_rotation(rotation, units)

Parametrit

Kuvaus

rotation

Robotille asetettava kiertoarvo asteina. Tämä voi olla kokonaisluku integer tai desimaaliluku (float).

units

Pyörimisyksikkö: DEGREES.

def main():
    # Spin counterclockwise two times
    drivetrain.set_rotation(720, DEGREES)
    drivetrain.turn_to_rotation(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

asetettu_aikakatkaisu#

set_timeout määrittää, kuinka kauan robotti yrittää suorittaa liikkeen loppuun. Jos robotti ei pysty suorittamaan sitä tässä ajassa, se lopettaa yrittämisen ja siirtyy seuraavalle koodiriville. Tämä estää robottia jumiutumasta liikkeeseen.

Usage:
drivetrain.set_timeout(value, units)

Parametrit

Kuvaus

value

Aika, jonka robotti voi yrittää suorittaa liikkeen loppuun. Tämä voi olla positiivinen kokonaisluku integer tai desimaaliluku (float).

units

Aikayksikkö: SECONDS tai MSEC (millisekuntia).

def main():
    # Turn right after driving forward
    drivetrain.set_timeout(1, SECONDS)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    drivetrain.turn_for(RIGHT, 90)

# VR threads — Do not delete
vr_thread(main)

aseta_ajonopeus#

set_drive_velocity kertoo robotille, kuinka nopeasti sen tulisi ajaa. Suurempi prosenttiosuus saa robotin ajamaan nopeammin ja pienempi prosenttiosuus hidastaa sitä.

Jokainen projekti alkaa robotin ajamalla oletusarvoisesti 50 % nopeudella.

Huomautus: Suurempi nopeus saa robotin ajamaan nopeammin, mutta se voi olla epätarkempi. Pienempi nopeus tekee robotista hitaamman, mutta se voi olla tarkempi.

Usage:
drivetrain.set_drive_velocity(velocity, units)

Parametrit

Kuvaus

velocity

Ajonopeus välillä 0–100 %. Tämä voi olla kokonaisluku integer tai desimaaliluku (float).

units

Nopeuden yksikkö: PERCENT.

def main():
    # Drive forward at different velocities
    # Default velocity
    drivetrain.drive_for(FORWARD, 150, MM)
    wait(1, SECONDS)
    # Drive slower
    drivetrain.set_drive_velocity(20, PERCENT)
    drivetrain.drive_for(FORWARD, 150, MM)
    wait(1, SECONDS)
    # Drive faster
    drivetrain.set_drive_velocity(100, PERCENT)
    drivetrain.drive_for(FORWARD, 150, MM)

# VR threads — Do not delete
vr_thread(main)

aseta_käännösnopeus#

set_turn_velocity kertoo robotille, kuinka nopeasti sen tulee kääntyä. Suurempi prosenttiosuus saa robotin kääntymään nopeammin ja pienempi prosenttiosuus hitaammin.

Jokainen projekti alkaa robotin pyöriessä oletusarvoisesti 50 %:n nopeudella.

Huomautus: Suurempi nopeus saa robotin kääntymään nopeammin, mutta se voi olla epätarkempi. Pienempi nopeus saa robotin kääntymään hitaammin, mutta se voi olla tarkempi.

Usage:
drivetrain.set_turn_velocity(velocity, units)

Parametrit

Kuvaus

velocity

Kääntymisnopeus väliltä 0–100 %. Tämä voi olla kokonaisluku integer tai desimaaliluku (float).

units

Nopeuden yksikkö: PERCENT.

def main():
    # Turn at different velocities
    # Default velocity
    drivetrain.turn_for(RIGHT, 120, DEGREES)
    wait(1, SECONDS)
    # Turn slower
    drivetrain.set_turn_velocity(20, PERCENT)
    drivetrain.turn_for(RIGHT, 120, DEGREES)
    wait(1, SECONDS)
    # Turn faster
    drivetrain.set_turn_velocity(100, PERCENT)
    drivetrain.turn_for(RIGHT, 120, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Getterit#

otsikko#

Suunta on robotin suunta asteina. heading palauttaa robotin nykyisen suunnan 0–359,99 astetta.

Robotin lähtösuunta on 0 astetta.

Usage:
drivetrain.heading(units)

Parametrit

Kuvaus

units

Kulmayksikkö: DEGREES.

def main():
    # Display the heading after turning
    drivetrain.turn_for(RIGHT, 450, DEGREES)
    brain.screen.print("Heading: ")
    brain.screen.print(drivetrain.heading(DEGREES))

# VR threads — Do not delete
vr_thread(main)

kierto#

Rotaatio ilmaisee robotin kääntymismäärän asteina. Projektin alussa rotaatioarvoksi asetetaan 0 astetta. rotation palauttaa robotin nykyisen rotaation.

Kääntyminen oikealle lisää kiertoliikettä ja kääntäminen vasemmalle vähentää sitä. Esimerkiksi kahden täyden käännöksen tekeminen oikealle palauttaa 720 asteen kiertoliikkeen.

Usage:
drivetrain.rotation(units)

Parametrit

Kuvaus

units

Pyörimisyksikkö: DEGREES.

def main():
    # Display the rotation after turning
    drivetrain.turn_for(RIGHT, 450, DEGREES)
    brain.screen.print("Rotation: ")
    brain.screen.print(drivetrain.rotation(DEGREES))

# VR threads — Do not delete
vr_thread(main)

on_valmis#

is_done palauttaa totuusarvona tiedon siitä, onko robotti lopettanut liikkumisen. Tätä voidaan käyttää muiden robotin liikkeeseen perustuvien toimintojen ajoituksen hallintaan.

  • True — Robotti on lopettanut liikkumisen.

  • False — Robotti liikkuu edelleen.

Tämä metodi toimii yhdessä seuraavien Drivetrain-metodien kanssa, joilla on wait -parametri: drive_for, turn_for, turn_to_heading ja turn_to_rotation.

Usage:
drivetrain.is_done()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

liikkuu#

is_moving palauttaa totuusarvona tiedon siitä, liikkuuko robotti. Tätä voidaan käyttää muiden robotin liikkeeseen perustuvien toimintojen ajoituksen hallintaan.

  • True — Robotti liikkuu.

  • False — Robotti ei liiku.

Usage:
drivetrain.is_moving()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

nopeus#

velocity palauttaa robotin ajonopeuden prosentteina väliltä -100 % - 100 %.

Usage:
drivetrain.velocity(units)

Parametrit

Kuvaus

units

Nopeuden yksikkö: PERCENT.

Esimerkki

def main():
    # Display the velocity after driving
    drivetrain.drive_for(FORWARD, 150, MM)
    brain.screen.print("Velocity: ")
    brain.screen.print(drivetrain.velocity(PERCENT))

Liike#

Swish käyttää imumoottoria pallojen keräämiseen ja siirtämiseen katapulttiin. Katapultin moottoriryhmä laskee ja vapauttaa katapultin varren laukaistakseen palloja.

Jokaisella moottorilla ja moottoriryhmällä on oma suuntakäyttäytymisensä. Suuntakuvaukset selittävät, miten kukin suunta liikuttaa kyseistä moottoria tai moottoriryhmää Swishissä.

Toiminnot#

pyörähdys#

spin pyörittää moottoria tai moottoriryhmää eteen- tai taaksepäin ikuisesti. Moottori tai moottoriryhmä jatkaa pyörimistä, kunnes sille annetaan toinen toiminto, kuten pyöriminen eri suuntaan tai pysähtyminen.

Käyttö:
Tällä menetelmällä voidaan käyttää yhtä kahdesta käytettävissä olevasta moottori- tai moottoriryhmäobjektista, kuten alla on esitetty:

moottori

Komento

intake_motor

intake_motor.spin(direction) — Imumoottori

catapult_group

catapult_group.spin(direction) — Katapulttiryhmä

Parametrit

Kuvaus

direction

Moottorin tai moottoriryhmän pyörimissuunta:

  • FORWARD — Pyörittää imumoottoria imusuuntaan tai laskee katapulttiryhmää.
  • REVERSE — Pyörittää imumoottoria ulostulosuuntaan tai vapauttaa katapulttiryhmän.

def main():
    # Spin the Intake Motor to bring a Ball onto the Catapult
    intake_motor.spin(FORWARD)
    wait(2, SECONDS)
    intake_motor.stop()

# VR threads — Do not delete
vr_thread(main)

spin_for#

spin_for pyörittää moottoria tai moottoriryhmää tietyn matkan. Pyöritys on suhteessa moottorin tai moottoriryhmän nykyiseen sijaintiin. Projekti odottaa, kunnes moottori tai moottoriryhmä on pyörinyt loppuun ennen seuraavan koodirivin suorittamista.

Käyttö:
Tällä menetelmällä voidaan käyttää yhtä kahdesta käytettävissä olevasta moottori- tai moottoriryhmäobjektista, kuten alla on esitetty:

moottori

Komento

intake_motor

intake_motor.spin_for(direction, distance, units, wait=True) — Imumoottori

catapult_group

catapult_group.spin_for(direction, distance, units, wait=True) — Katapulttiryhmä

Parametrit

Kuvaus

direction

Moottorin tai moottoriryhmän pyörimissuunta:

  • FORWARD — Pyörittää imumoottoria imusuuntaan tai laskee katapulttiryhmää.
  • REVERSE — Pyörittää imumoottoria ulostulosuuntaan tai vapauttaa katapulttiryhmän.

distance

Moottorin tai moottoriryhmän pyörimismatka. DEGREES käytä kokonaislukuja. TURNS voi käyttää kokonaislukuja tai desimaalilukuja.

units

Valinnainen. Etäisyyden yksikkö: DEGREES (oletus) tai TURNS.

wait

Valinnainen.

  • wait=True (oletus) — Saa projektin odottamaan, kunnes moottori tai moottoriryhmä on pyörinyt, ennen kuin seuraava koodirivi suoritetaan.
  • wait=False — Saa seuraavan koodirivin suoritetuksi heti.

def main():
    # Release the preloaded Ball
    catapult_group.spin_for(REVERSE, 5, DEGREES)
    # Lower the Catapult to prepare to load another Ball
    catapult_group.spin_for(FORWARD, 1350, DEGREES)

# VR threads — Do not delete
vr_thread(main)

pyöritä_asentoon#

spin_to_position pyörittää moottoria tai moottoriryhmää tiettyyn asentoon.

Moottorin tai moottoriryhmän asento ilmaisee, kuinka pitkälle se on pyörinyt, mitattuna yksiköissä DEGREES tai TURNSYksi kierros vastaa 360 astetta. Projektin alussa moottorin tai moottoriryhmän asento asetetaan 0 asteeseen. Moottorin tai moottoriryhmän asento voidaan asettaa myös käyttämällä set_position-metodia.

Paikka-arvot ovat absoluuttisia. Tämä tarkoittaa, että pyörimissuunta riippuu moottorin tai moottoriryhmän nykyisestä sijainnista.

Esimerkiksi, jos moottori tai moottoriryhmä käynnistyy 0 asteesta ja pyörii 720 asteen asentoon, se pyörii kaksi kierrosta eteenpäin. Jos se sitten pyörii 360 asteen asentoon, se pyörii yhden kierroksen taaksepäin, koska 360 on pienempi kuin 720.

Käyttö:
Tällä menetelmällä voidaan käyttää yhtä kahdesta käytettävissä olevasta moottori- tai moottoriryhmäobjektista, kuten alla on esitetty:

moottori

Komento

intake_motor

intake_motor.spin_to_position(angle, units, wait=True) — Imumoottori

catapult_group

catapult_group.spin_to_position(angle, units, wait=True) — Katapulttiryhmä

Parametrit

Kuvaus

angle

Moottorin tai moottoriryhmän pyörimisasennon arvo. DEGREES käytä kokonaislukuja. TURNS voi käyttää kokonaislukuja tai desimaalilukuja.

units

Valinnainen. Sijaintiyksikkö: DEGREES (oletus) tai TURNS.

wait

Valinnainen.

  • wait=True (oletus) — Saa projektin odottamaan, kunnes moottori tai moottoriryhmä on pyörinyt, ennen kuin seuraava koodirivi suoritetaan.
  • wait=False — Saa seuraavan koodirivin suoritetuksi heti.

def main():
    # Release the preloaded Ball
    catapult_group.spin_to_position(-90, DEGREES)
    # Lower the Catapult to prepare to load another Ball
    catapult_group.spin_to_position(1260, DEGREES)

# VR threads — Do not delete
vr_thread(main)

pysäytä moottori#

stop pysäyttää moottorin tai moottoriryhmän pyörimisen.

Käyttö:
Tällä menetelmällä voidaan käyttää yhtä kahdesta käytettävissä olevasta moottori- tai moottoriryhmäobjektista, kuten alla on esitetty:

moottori

Komento

intake_motor

intake_motor.stop() — Imumoottori

catapult_group

catapult_group.stop() — Katapulttiryhmä

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

def main():
    # Spin the Intake Motor to bring a Ball onto the Catapult
    intake_motor.spin(FORWARD)
    wait(2, SECONDS)
    intake_motor.stop()

# VR threads — Do not delete
vr_thread(main)

Mutaattorit#

asetettu_sijainti#

Moottorin tai moottoriryhmän asento ilmaisee, kuinka pitkälle se on pyörinyt, mitattuna yksiköissä DEGREES tai TURNSYksi kierros vastaa 360 astetta. set_position muuttaa moottorin tai moottoriryhmän nykyisen sijainnin uuteen arvoon.

Esimerkiksi jos moottori tai moottoriryhmä on pyörinyt 180 astetta, asennon asettaminen 0 asteeseen palauttaa asennon 180:stä 0 asteeseen. Tämän jälkeen moottori tai moottoriryhmä voi pyöriä asentoihin tämän uuden arvon perusteella.

Käyttö:
Tällä menetelmällä voidaan käyttää yhtä kahdesta käytettävissä olevasta moottori- tai moottoriryhmäobjektista, kuten alla on esitetty:

moottori

Komento

intake_motor

intake_motor.set_position(position, units) — Imumoottori

catapult_group

catapult_group.set_position(position, units) — Katapulttiryhmä

Parametrit

Kuvaus

position

Moottorille tai moottoriryhmälle asetettava asentoarvo. DEGREES käytä kokonaislukuja. TURNS voi käyttää kokonaislukuja tai desimaalilukuja.

units

Valinnainen. Sijaintiyksikkö: DEGREES (oletus) tai TURNS.

def main():
    # Lower the Catapult to prepare to load another Ball
    catapult_group.spin_to_position(1260, DEGREES)
    # Set the new Catapult position to be 0 degrees
    catapult_group.set_position(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

set_velocity#

set_velocity kertoo moottorille tai moottoriryhmälle, kuinka nopeasti sen tulisi pyöriä. Suurempi prosenttiosuus saa moottorin tai moottoriryhmän pyörimään nopeammin ja pienempi prosenttiosuus saa moottorin tai moottoriryhmän pyörimään hitaammin.

Jokainen projekti alkaa siten, että jokainen moottori tai moottoriryhmä pyörii oletusarvoisesti 50 %:n nopeudella.

Huomautus: Suurempi nopeus saa moottorin tai moottoriryhmän pyörimään nopeammin, mutta se voi olla epätarkempi. Pienempi nopeus saa moottorin tai moottoriryhmän pyörimään hitaammin, mutta se voi olla tarkempi.

Käyttö:
Tällä menetelmällä voidaan käyttää yhtä kahdesta käytettävissä olevasta moottori- tai moottoriryhmäobjektista, kuten alla on esitetty:

moottori

Komento

intake_motor

intake_motor.set_velocity(velocity, units) — Imumoottori

catapult_group

catapult_group.set_velocity(velocity, units) — Katapulttiryhmä

Parametrit

Kuvaus

velocity

Pyörimisnopeus väliltä -100 % - 100 %. Tämä voi olla kokonaisluku integer tai desimaaliluku (float).

units

Nopeuden yksikkö: PERCENT.

def main():
    # Start spinning the Intake Motor to prepare for picking up a Ball
    intake_motor.set_velocity(100, PERCENT)
    intake_motor.spin(FORWARD)

# VR threads — Do not delete
vr_thread(main)

asetettu_aikakatkaisu#

set_timeout määrittää, kuinka kauan moottori tai moottoriryhmä yrittää suorittaa liikkeen loppuun. Jos moottori tai moottoriryhmä ei pysty suorittamaan sitä tässä ajassa, se lopettaa yrittämisen ja siirtyy seuraavalle koodiriville. Tämä estää moottoria tai moottoriryhmää jumiutumasta liikkeeseen.

Käyttö:
Tällä menetelmällä voidaan käyttää yhtä kahdesta käytettävissä olevasta moottori- tai moottoriryhmäobjektista, kuten alla on esitetty:

moottori

Komento

intake_motor

intake_motor.set_timeout(value, units) — Imumoottori

catapult_group

catapult_group.set_timeout(value, units) — Katapulttiryhmä

Parametrit

Kuvaus

value

Aika, jonka moottori tai moottoriryhmä voi yrittää suorittaa liikkeen loppuun. Tämä voi olla positiivinen kokonaisluku integer tai desimaaliluku (float).

units

Aikayksikkö: SECONDS tai MSEC (millisekuntia).

def main():
    # Limit how long the Catapult waits to reach its target
    catapult_group.set_timeout(2, SECONDS)
    catapult_group.spin_for(FORWARD, 2160, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Getterit#

on_valmis#

is_done palauttaa totuusarvona tiedon siitä, onko moottori tai moottoriryhmä liikkunut loppuun. Tätä voidaan käyttää muiden moottorin tai moottoriryhmän liikkeen perusteella tapahtuvien toimintojen ajoituksen ohjaamiseen.

  • True — Moottorin tai moottoriryhmän liike on päättynyt.

  • False — Moottori tai moottoriryhmä liikkuu edelleen.

Tämä metodi toimii yhdessä seuraavien Motion-metodien kanssa, joilla on wait -parametri: spin_for ja spin_to_position.

Käyttö:
Tällä menetelmällä voidaan käyttää yhtä kahdesta käytettävissä olevasta moottori- tai moottoriryhmäobjektista, kuten alla on esitetty:

moottori

Komento

intake_motor

intake_motor.is_done() — Imumoottori

catapult_group

catapult_group.is_done() — Katapulttiryhmä

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

pyörii#

is_spinning palauttaa totuusarvona, pyöriikö moottori vai moottoriryhmä. Tätä voidaan käyttää muiden moottorin tai moottoriryhmän liikkeen perusteella tapahtuvien toimintojen ajoituksen ohjaamiseen.

  • True — Moottori tai moottoriryhmä pyörii.

  • False — Moottori tai moottoriryhmä ei pyöri.

Tämä metodi toimii yhdessä seuraavien Motion-metodien kanssa, joilla on wait -parametri: spin_for ja spin_to_position.

Käyttö:
Tällä menetelmällä voidaan käyttää yhtä kahdesta käytettävissä olevasta moottori- tai moottoriryhmäobjektista, kuten alla on esitetty:

moottori

Komento

intake_motor

intake_motor.is_spinning() — Imumoottori

catapult_group

catapult_group.is_spinning() — Katapulttiryhmä

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

asema#

Moottorin tai moottoriryhmän asento ilmaisee, kuinka pitkälle se on pyörinyt, mitattuna yksiköissä DEGREES tai TURNSYksi kierros vastaa 360 astetta. position palauttaa moottorin tai moottoriryhmän nykyisen sijainnin.

Projektin alussa moottorin tai moottoriryhmän asento on asetettu arvoon 0 astetta. Jos moottori tai moottoriryhmä pyörii yhden täyden kierroksen eteenpäin, asento on 360 astetta eli 1 kierros. Jos moottori tai moottoriryhmä pyörii vastakkaiseen suuntaan, asento on negatiivinen.

Käyttö:
Tällä menetelmällä voidaan käyttää yhtä kahdesta käytettävissä olevasta moottori- tai moottoriryhmäobjektista, kuten alla on esitetty:

moottori

Komento

intake_motor

intake_motor.position(units) — Imumoottori

catapult_group

catapult_group.position(units) — Katapulttiryhmä

Parametrit

Kuvaus

units

Yksikkö, joka palauttaa moottorin tai moottoriryhmän asennon muodossa: DEGREES tai TURNS.

def main():
    # Lower the Catapult to prepare to load another Ball
    while not catapult_group.position(DEGREES) == 1260:
        catapult_group.spin(FORWARD)

# VR threads — Do not delete
vr_thread(main)

nopeus#

velocity palauttaa moottorin tai moottoriryhmän pyörimisnopeuden.

Positiivinen arvo tarkoittaa, että moottori tai moottoriryhmä pyörii eteenpäin. Negatiivinen arvo tarkoittaa, että moottori tai moottoriryhmä pyörii taaksepäin.

Käyttö:
Tällä menetelmällä voidaan käyttää yhtä kahdesta käytettävissä olevasta moottori- tai moottoriryhmäobjektista, kuten alla on esitetty:

moottori

Komento

intake_motor

intake_motor.velocity(units) — Imumoottori

catapult_group

catapult_group.velocity(units) — Katapulttiryhmä

Parametrit

Kuvaus

units

Palautettava nopeuden yksikkö: PERCENT.

def main():
    # Print the current Catapult velocity
    brain.screen.print(catapult_group.velocity(PERCENT))

# VR threads — Do not delete
vr_thread(main)

Konsoli#

Konsoli näyttää tekstiä, numeroita ja muuttujien arvoja projektin ollessa käynnissä. Konsolimetodit voivat myös siirtää kohdistimen uudelle riville, tyhjentää konsolin ja lisätä muuttujia tai anturiarvoja Monitor-välilehdelle.

Painaa#

aivot.näyttö.tulostus#

brain.screen.print näyttää tekstiä, numeroita tai muuttujien arvoja konsolissa käyttäen kohdistimen nykyistä sijaintia. Se toimii kuten print konsolin API-sivulla.

Käytä brain.screen.next_row, kun haluat seuraavan tulostettavan arvon alkavan uudelta riviltä.

Usage:
brain.screen.print(value)

Parametrit

Kuvaus

value

Konsolissa näytettävä teksti, numero tai muuttujan arvo.

def main():
    # Display a message in the Console
    brain.screen.print("Hello, robot!")

# VR threads — Do not delete
vr_thread(main)

VEXcode-konsoli, jossa näkyy konsoli ja teksti "Hei, robotti!".

aivot.näyttö.seuraava_rivi#

brain.screen.next_row siirtää kohdistimen konsolin seuraavan rivin sarakkeeseen 1. Seuraava tulostettava arvo näkyy kyseisellä rivillä.

Usage:
brain.screen.next_row()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

def main():
    # Print on two rows
    brain.screen.print("Row 1")
    brain.screen.next_row()
    brain.screen.print("Row 2")

# VR threads — Do not delete
vr_thread(main)

VEXcode-konsoli, jossa näkyy konsoli ja teksti "Rivi 1" ensimmäisellä rivillä ja "Rivi 2" toisella rivillä.

aivot.näyttö.selkeä_näyttö#

brain.screen.clear_screen tyhjentää kaikki rivit konsolista ja siirtää kohdistimen takaisin riville 1.

Usage:
brain.screen.clear_screen()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

def main():
    # Display text, then clear it after two seconds
    brain.screen.print("This will disappear...")
    wait(2, SECONDS)
    brain.screen.clear_screen()

# VR threads — Do not delete
vr_thread(main)

Näyttö#

monitori_muuttuja#

monitor_variable lisää yhden tai useamman ennalta määritetyn muuttujan VEXcoden Monitor-välilehdelle. Tämän avulla voit seurata muuttujan arvon muutosta projektin ollessa käynnissä.

Variables must be global for monitor_variable to monitor them successfully. Provide each variable name as a string.

Usage:
monitor_variable(“variable”)
monitor_variable(“variable1”, “variable2”)

Parametrit

Kuvaus

variable

Valvottavan ennalta määritetyn globaalin muuttujan nimi merkkijonona. Jos haluat valvoa useampaa kuin yhtä muuttujaa, erota muuttujien nimet pilkulla.

def main():
    # Monitor the amount of loops
    global loops
    monitor_variable("loops")

    # Drive in a square 3 times
    for loops in range(12):
        drivetrain.turn_for(RIGHT, 90, DEGREES)
        drivetrain.drive_for(FORWARD, 150, MM)

# VR threads — Do not delete
vr_thread(main)

monitorianturi#

monitor_sensor lisää yhden tai useamman anturin arvon VEXcoden Monitor-välilehdelle. Tämän avulla voit seurata anturin arvojen muutoksia projektin ollessa käynnissä.

Anna jokaisen anturin arvo merkkijonona.

Usage:
monitor_sensor(“sensor”)
monitor_sensor(“sensor1”, “sensor2”)

Parametrit

Kuvaus

sensor

The sensor value to monitor, given as a string. To monitor more than one sensor value, separate each sensor value with a comma. Supported sensor identifiers include:

  • Brain
    • brain.timer.time
  • Drivetrain
    • drivetrain.is_done
    • drivetrain.is_moving
    • drivetrain.heading
    • drivetrain.rotation
    • drivetrain.velocity_rpm
    • drivetrain.velocity_percent
  • Arm Motor
    • arm_motor.is_done
    • arm_motor.is_spinning
    • arm_motor.position_degrees
    • arm_motor.position_turns
    • arm_motor.velocity_rpm
    • arm_motor.velocity_percent
  • Arm Motor Group
    • arm_motor_group.is_done
    • arm_motor_group.is_spinning
    • arm_motor_group.position_degrees
    • arm_motor_group.position_turns
    • arm_motor_group.velocity_rpm
    • arm_motor_group.velocity_percent
  • Intake Motor
    • intake_motor.is_done
    • intake_motor.is_spinning
    • intake_motor.position_degrees
    • intake_motor.position_turns
    • intake_motor.velocity_rpm
    • intake_motor.velocity_percent
  • Intake Motor Group
    • intake_motor_group.is_done
    • intake_motor_group.is_spinning
    • intake_motor_group.position_degrees
    • intake_motor_group.position_turns
    • intake_motor_group.velocity_rpm
    • intake_motor_group.velocity_percent
  • Catapult Motor
    • catapult_motor.is_done
    • catapult_motor.is_spinning
    • catapult_motor.position_degrees
    • catapult_motor.position_turns
    • catapult_motor.velocity_rpm
    • catapult_motor.velocity_percent
  • Catapult Tension Motor
    • catapult_tension_motor.is_done
    • catapult_tension_motor.is_spinning
    • catapult_tension_motor.position_degrees
    • catapult_tension_motor.position_turns
    • catapult_tension_motor.velocity_rpm
    • catapult_tension_motor.velocity_percent
  • Bumpers
    • intake_bumper.pressing
    • bumper.pressing
  • Front Distance Sensor
    • front_distance.is_object_detected
    • front_distance.object_distance_mm
    • front_distance.object_distance_inches
  • Front Optical Sensor
    • front_optical.is_near_object
    • front_optical.color
    • front_optical.brightness
    • front_optical.hue
  • Color Sensor
    • color.is_near_object
    • color.color
    • color.brightness
    • color.hue

def main():
    # Monitor the robot's heading
    monitor_sensor("drivetrain.heading")
    drivetrain.turn_for(RIGHT, 450, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Tunnistaminen#

Optinen#

on_lähellä_esinettä#

is_near_object palauttaa totuusarvon, joka ilmaisee, havaitseeko optinen anturi kohteen kantaman sisällä.

  • True – Optinen anturi havaitsee kohteen.

  • False – Optinen anturi ei havaitse kohdetta.

Usage:
intake_optical.is_near_object()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

def main():
    # Launch a loaded Ball once the Intake Optical Sensor detects a Ball
    if intake_optical.is_near_object():
        catapult_group.spin_for(REVERSE, 5, DEGREES)

# VR threads — Do not delete
vr_thread(main)

väri#

color palauttaa Color -luokan esiintymän havaitun sävyarvon perusteella. Näitä voidaan verrata ennalta määriteltyihin Color -objekteihin ehdollisten lausekkeiden luomiseksi.

Mahdollisia värejä ovat:

  • NONE

  • RED - Sävyarvo välillä 340° - 20°

  • GREEN - Sävyarvo välillä 80° - 140°

  • BLUE - Sävyarvo välillä 200° - 240°

  • YELLOW - Sävyarvo välillä 40° - 60°

  • ORANGE - Sävyarvo välillä 20° - 40°

  • PURPLE - Sävyarvo välillä 240° - 280°

  • CYAN - Sävyarvo välillä 140° - 200°

Huomautus: Optinen anturi etsii sävyalueita, jotka vastaavat määritettyä väriä. Katso lisätietoja tiettyjen sävyalueiden havaitsemisesta kohdasta hue.

Usage:
intake_optical.color()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

def main():
    # Launch a loaded Ball once yellow is detected in the Intake
    if intake_optical.color() == YELLOW:
        catapult_group.spin_for(REVERSE, 5, DEGREES)

# VR threads — Do not delete
vr_thread(main)

kirkkaus#

brightness palauttaa objektista heijastuneen valon määrän desimaalilukuna (float), joka edustaa prosenttia.

Korkeampi prosenttiosuus tarkoittaa, että enemmän valoa heijastuu takaisin optiseen anturiin. Matalampi prosenttiosuus tarkoittaa, että vähemmän valoa heijastuu takaisin.

Usage:
intake_optical.brightness()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

def main():
    # Launch a loaded Ball once the Intake Optical Sensor sees a Ball
    if intake_optical.brightness() > 0:
        catapult_group.spin_for(REVERSE, 5, DEGREES)

# VR threads — Do not delete
vr_thread(main)

värisävy#

hue palauttaa havaitun värin sävyn desimaalilukuna (float) välillä 0–359.

Sävy on tapa kuvata väriä käyttämällä numeroita väriympyrän ympärillä.

Pyöreä väriympyrä, joka näyttää täyden spektrin sävyjä, jotka on merkitty reunan ympärillä astearvoilla, kasvaen 30 asteen välein ylhäältä 0 asteeseen 360 asteeseen.

Usage:
intake_optical.hue()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

def main():
    # Launch a loaded Ball once the Intake Optical Sensor reports a hue value
    if intake_optical.hue() > 100:
        catapult_group.spin_for(REVERSE, 5, DEGREES)

# VR threads — Do not delete
vr_thread(main)

havaittu_objekti#

object_detected rekisteröi funktion kutsuttavaksi aina, kun optinen anturi havaitsee uuden objektin.

Usage:
intake_optical.object_detected(callback, arg)

Parametrit

Kuvaus

callback

Aiemmin määritelty funktio, joka suoritetaan, kun optinen anturi havaitsee uuden kohteen.

arg

Valinnainen. tuple, joka sisältää argumentteja, jotka välitetään takaisinkutsufunktiolle. Lisätietoja on kohdassa Funktioiden käyttö parametrien kanssa.

def launch_ball():
    catapult_group.spin_for(REVERSE, 5, DEGREES)

def main():
    # Launch the Ball when the Intake Optical Sensor detects an object
    intake_optical.object_detected(launch_ball)

# VR threads — Do not delete
vr_thread(main)

kadonnut_objekti#

object_lost rekisteröi funktion kutsuttavaksi aina, kun optinen anturi kadottaa havaitun objektin.

Usage:
intake_optical.object_lost(callback, arg)

Parametrit

Kuvaus

callback

Aiemmin määritelty funktio, joka suoritetaan, kun optinen anturi kadottaa havaitun kohteen.

arg

Valinnainen. tuple, joka sisältää argumentteja, jotka välitetään takaisinkutsufunktiolle. Lisätietoja on kohdassa Funktioiden käyttö parametrien kanssa.

def lower_catapult():
    catapult_group.spin_to_position(1260, DEGREES)

def main():
    # Lower the Catapult when the Intake Optical Sensor no longer detects an object
    intake_optical.object_lost(lower_catapult)

# VR threads — Do not delete
vr_thread(main)