Voimansiirto#

Johdanto#

VEX IQ (2. sukupolvi) -robotti käyttää voimansiirtoa ajamiseen ja kääntymiseen. Voimansiirto koostuu moottoreista ja pyöristä, jotka yhdessä liikuttavat robottia.

Konfiguroitu voimansiirto voi käyttää kytkettyä gyroskooppianturia, aivojen sisäänrakennettua inertia-anturia tai olla käyttämättä anturia. Kun anturia käytetään, voimansiirto käyttää sitä robotin tarkan liikkumisen ja kääntymisen apuna. Jokaisen projektin alussa voimansiirto kalibroi anturin automaattisesti. Pidä robottia paikallaan noin 2 sekuntia kalibroinnin aikana, jotta robotti voi liikkua ja kääntyä oikein.

Tällä sivulla käytetään esimerkkinä voimansiirron nimeä drivetrain Korvaa se tarvittaessa omalla määritetyllä nimelläsi.

Voimansiirron koodaamiseen on monia tapoja. Alla on luettelo kaikista voimansiirron metodeista:

Toiminnot — Liikuta ja käännä robottia.

  • 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. Robotti kääntyy lyhyimpään suuntaan saavuttaakseen kohdesuunnan.

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

  • stop — Pysäyttää robotin liikkeen.

  • calibrate_drivetrain — Kalibroi voimansiirron kanssa konfiguroidun anturin.

Mutaattorit — Säädä voimansiirron asetuksia.

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

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

  • set_stopping — Kertoo, miten robotti pysähtyy: jarruttamalla, rullaamalla tai pitämällä paikallaan.

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

  • set_heading — Muuttaa robotin nykyisen suunnan uudeksi suunnaksi.

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

  • set_turn_threshold — Kertoo, kuinka lähelle kohdekulmaa robotin on päästävä ennen kuin käännös on valmis.

  • set_turn_constant — Muuttaa robotin käännösten korjausvoimakkuutta.

Getterit — Tarkista liikkeen tila.

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

  • rotation — Palauttaa robotin nykyisen rotaatioasteen.

  • velocity — Palauttaa robotin ajonopeuden.

  • current — Palauttaa voimansiirron käyttämän sähkövirran määrän.

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

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

  • is_turning — Palauttaa totuusarvona tiedon siitä, kääntyykö robotti.

  • power — Palauttaa, kuinka nopeasti voimansiirto kuluttaa energiaa.

  • torque — Palauttaa voimansiirron käyttämän vääntömomentin.

  • efficiency — Palauttaa, kuinka tehokkaasti voimansiirto käyttää tehoa.

  • temperature — Palauttaa voimansiirron lämpötilan.

Konstruktorit — Luo ja konfiguroi voimansiirto manuaalisesti.

  • DriveTrain — Luo voimansiirron ilman gyroskooppia tai inertia-anturia.

  • SmartDrive — Luo voimansiirron gyroskoopilla tai inertia-anturilla.

Toiminnot#

drive#

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, velocity, units)

Parametrit

Kuvaus

direction

Robotin liikesuunta: FORWARD tai REVERSE.

velocity

Optional. The velocity to drive with from 0% to 100% when using PERCENT, from 0 to 120 rpm when using RPM, or from 0 to 720 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot drives at the current drive velocity.

units

Valinnainen. Nopeuden yksikkö: PERCENT (oletus), RPM (kierrosta minuutissa) tai VelocityUnits.DPS (astetta sekunnissa).

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

# Drive slowly in reverse then stop
drivetrain.drive(REVERSE, 20, PERCENT)
wait(2, SECONDS)
drivetrain.stop()

drive_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, velocity, units_v, wait)

Parametrit

Kuvaus

direction

Robotin liikesuunta: FORWARD tai REVERSE.

distance

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

units

Valinnainen. Etäisyysyksikkö: INCHES (oletus), MM (millimetriä) tai DistanceUnits.CM (senttimetriä).

velocity

Optional. The velocity to drive with from 0% to 100% when using PERCENT, from 0 to 120 rpm when using RPM, or from 0 to 720 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot drives at the current drive velocity.

units_v

Valinnainen. Nopeuden yksikkö: RPM (kierrosta minuutissa, oletus), PERCENTtai VelocityUnits.DPS (astetta sekunnissa).

wait

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

# Drive forward and backward
drivetrain.drive_for(FORWARD, 10)
drivetrain.drive_for(REVERSE, 10)

# Quickly drive forward and backward
drivetrain.drive_for(FORWARD, 200, MM, 100, PERCENT)
drivetrain.drive_for(REVERSE, 200, MM, 100, PERCENT)

turn#

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, velocity, units)

Parametrit

Kuvaus

direction

Robotin kääntymissuunta: LEFT tai RIGHT.

velocity

Optional. The velocity to turn with from 0% to 100% when using PERCENT, from 0 to 120 rpm when using RPM, or from 0 to 720 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot turns at the current turn velocity.

units

Valinnainen. Nopeuden yksikkö: RPM (kierrosta minuutissa, oletus), PERCENTtai VelocityUnits.DPS (astetta sekunnissa).

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

# Quickly turn right and left, then stop
drivetrain.turn(RIGHT, 100, PERCENT)
wait(2, SECONDS)
drivetrain.turn(LEFT, 100, PERCENT)
wait(2, SECONDS)
drivetrain.stop()

turn_for#

turn_for kääntää robottia vasemmalle tai oikealle tietyn astemäärän tai kierrosten verran. 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, velocity, units_v, wait)

Parametrit

Kuvaus

direction

Robotin kääntymissuunta: LEFT tai RIGHT.

angle

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

units

Valinnainen. Käännösyksikkö: DEGREES (oletus) tai TURNSYksi käännös vastaa 360 astetta.

velocity

Optional. The velocity to turn with from 0% to 100% when using PERCENT, from 0 to 120 rpm when using RPM, or from 0 to 720 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot turns at the current turn velocity.

units_v

Valinnainen. Nopeuden yksikkö: RPM (kierrosta minuutissa, oletus), PERCENTtai VelocityUnits.DPS (astetta sekunnissa).

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.

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

# Quickly turn the robot right and left
drivetrain.turn_for(RIGHT, 90, DEGREES, 100, PERCENT)
wait(1, SECONDS)
drivetrain.turn_for(LEFT, 90, DEGREES, 100, PERCENT)

turn_to_heading#

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, velocity, units_v, wait)

Parametrit

Kuvaus

angle

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

units

Valinnainen. Kulmayksikkö: DEGREES (oletus).

velocity

Optional. The velocity to turn with from 0% to 100% when using PERCENT, from 0 to 120 rpm when using RPM, or from 0 to 720 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot turns at the current turn velocity.

units_v

Valinnainen. Nopeuden yksikkö: PERCENT (oletus), RPM (kierrosta minuutissa) tai VelocityUnits.DPS (astetta sekunnissa).

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.

# 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)

# Turn twice slowly
drivetrain.turn_to_heading(90, DEGREES, 20, PERCENT)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES, 20, PERCENT)

turn_to_rotation#

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

Rotaatio ilmaisee robotin kääntymismäärän asteina tai käännöksinä. 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, velocity, units_v, wait)

Parametrit

Kuvaus

angle

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

units

Valinnainen. Kiertoyksikkö: DEGREES (oletus) tai TURNSYksi kierros vastaa 360 astetta.

velocity

Optional. The velocity to turn with from 0% to 100% when using PERCENT, from 0 to 120 rpm when using RPM, or from 0 to 720 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot turns at the current turn velocity.

units_v

Valinnainen. Nopeuden yksikkö: PERCENT (oletus), RPM (kierrosta minuutissa) tai VelocityUnits.DPS (astetta sekunnissa).

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.

# 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)

# Turn left then slowly spin in a
# circle clockwise
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES, 20, PERCENT)

stop#

stop pysäyttää robotin liikkeen.

Usage:
drivetrain.stop(mode)

Parametrit

Kuvaus

mode

Valinnainen. Robotin pysähtymistapa: BRAKE (oletus), BRAKEtai COAST

  • COAST — Pysähtyy välittömästi.
  • HOLD — Hidastaa pysähdykseen.
  • HOLD — Pysähtyy välittömästi ja pitää pyörien asennon.

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

# Drive forward and coast to a stop
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop(COAST)

calibrate_drivetrain#

calibrate_drivetrain on sisäänrakennettu funktio, joka kalibroi voimansiirron kanssa konfiguroidun gyroskooppianturin tai inertia-anturin.

Kalibrointi auttaa anturia mittaamaan liikettä oikein. Pidä robotti paikallaan noin 2 sekuntia kalibroinnin aikana. Jos robotti liikkuu kalibroinnin aikana, anturi ei välttämättä mittaa liikettä oikein.

Projekti odottaa kalibroinnin valmistumista ennen seuraavan koodirivin suorittamista.

Huomautus: Tätä funktiota ei voi käyttää VS-koodin sisällä.

Usage:
calibrate_drivetrain()

Parametrit

Kuvaus

Tällä funktiolla ei ole parametreja.

Mutaattorit#

set_drive_velocity#

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

The velocity to drive with from 0% to 100% when using PERCENT, from 0 to 120 rpm when using RPM, or from 0 to 720 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float).

units

Valinnainen. Nopeuden yksikkö: PERCENT (oletus), RPM (kierrosta minuutissa) tai VelocityUnits.DPS (astetta sekunnissa).

# 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)

set_turn_velocity#

set_turn_velocity kertoo robotille, kuinka nopeasti sen tulee kääntyä. Suurempi prosenttiosuus saa robotin kääntymään nopeammin ja pienempi prosenttiosuus saa robotin kääntymään 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

The velocity to turn with from 0% to 100% when using PERCENT, from 0 to 120 rpm when using RPM, or from 0 to 720 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float).

units

Valinnainen. Nopeuden yksikkö: PERCENT (oletus), RPM (kierrosta minuutissa) tai VelocityUnits.DPS (astetta sekunnissa).

# Turn at different velocities
# Default velocity
drivetrain.turn_for(RIGHT, 360)
wait(1, SECONDS)
# Turn slower
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn_for(RIGHT, 360)
wait(1, SECONDS)
# Turn faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(RIGHT, 360)

set_stopping#

set_stopping määrittää, miten robotti pysähtyy: jarruttamalla, rullaamalla tai pitämällä paikallaan.

Usage:
drivetrain.set_stopping(mode)

Parametrit

Kuvaus

mode

Robotin pysähtymistapa:

  • BRAKE — Pysähtyy välittömästi.
  • COAST — Hidastaa pysähdyksiin.
  • HOLD — Pysähtyy välittömästi ja pitää pyörien asennon.

Jos tätä menetelmää ei käytetä, robotti käyttää pysähtyessään asetusta BRAKE.

set_timeout#

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

Valinnainen. Aikayksikkö: MSEC (millisekuntia, oletusarvo) tai SECONDS.

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

set_heading#

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 tai käännöksinä. Tämä voi olla kokonaisluku integer tai desimaaliluku (float).

units

Valinnainen. Kulmayksikkö: DEGREES (oletus) tai TURNSYksi käännös vastaa 360 astetta.

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

set_rotation#

Rotaatio ilmaisee robotin kääntymisnopeuden asteina tai käännöksinä. 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 tai käännöksinä. Tämä voi olla kokonaisluku integer tai desimaaliluku (float).

units

Valinnainen. Kiertoyksikkö: DEGREES (oletus) tai TURNSYksi kierros vastaa 360 astetta.

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

set_turn_threshold#

set_turn_threshold määrittää, kuinka lähelle kohdekulmaa robotin on päästävä ennen kuin käännös on valmis.

Pienempi kynnys voi tehdä käännöksistä tarkempia, mutta robotin kääntyminen voi kestää kauemmin. Suurempi kynnys voi nopeuttaa käännösten suorittamista, mutta ne voivat olla epätarkempia.

Usage:
drivetrain.set_turn_threshold(value)

Parametrit

Kuvaus

value

Kääntymiskynnys asteina. Tämä voi olla kokonaisluku integer tai desimaaliluku (float). Oletusarvoinen kääntymiskynnys on 1 aste.

# Set the turn threshold to 5 degrees
drivetrain.set_turn_threshold(5)

set_turn_constant#

set_turn_constant muuttaa sitä, kuinka voimakkaasti robotti korjaa käännöksiään.

Suurempi arvo saa robotin korjaamaan käännökset voimakkaammin. Pienempi arvo saa robotin korjaamaan käännökset pehmeämmin. Oletusarvo on 1,0.

Usage:
drivetrain.set_turn_constant(value)

Parametrit

Kuvaus

value

Käännösvakio. Tämä voi olla desimaaliluku (float) väliltä 0,1 - 4,0. Oletusarvo on 1,0.

# Increase the turn constant to 2.0
drivetrain.set_turn_constant(2.0)

Getterit#

heading#

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

Robotin lähtösuunta on 0 astetta.

Usage:
drivetrain.heading(units)

Parametrit

Kuvaus

units

Valinnainen. Palautettava yksikkö suuntaa varten: DEGREES (oletus) tai TURNSYksi käännös vastaa 360 astetta.

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

rotation#

Rotaatio ilmaisee robotin kääntymismäärän asteina tai käännöksinä. 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

Valinnainen. Yksikkö, joka palauttaa kierron: DEGREES (oletus) tai TURNSYksi kierros vastaa 360 astetta.

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

velocity#

velocity palauttaa robotin ajonopeuden.

Se voi palauttaa nopeuden prosentteina välillä -100 % - 100 %, RPM välillä -127 rpm - 127 rpm tai VelocityUnits.DPS-muodossa. Positiivinen arvo tarkoittaa, että robotti ajaa eteenpäin. Negatiivinen arvo tarkoittaa, että robotti ajaa taaksepäin.

Usage:
drivetrain.velocity(units)

Parametrit

Kuvaus

units

Valinnainen. Palautettava nopeusyksikkö: PERCENT (oletus), RPM (kierrosta minuutissa) tai VelocityUnits.DPS (astetta sekunnissa).

current#

current palauttaa voimansiirron käyttämän sähkövirran määrän ampeereina (ampeereina). Virta on voimansiirron läpi virtaavan sähkön määrä.

Korkeampi virta-arvo tarkoittaa, että voimansiirto käyttää enemmän sähkövirtaa. Näin voi käydä, kun robotti työntää jotakin esinettä vasten tai yrittää liikkua jumissa ollessaan.

Tätä voidaan käyttää tarkistamaan, onko voimansiirrossa ongelmia liikkeen aikana. Jos virta pysyy korkeana, voimansiirto voi lämmetä tai käyttää tehoa tehottomammin.

Usage:
drivetrain.current(units)

Parametrit

Kuvaus

units

Valinnainen. Virran palauttamiseen käytettävä yksikkö: CurrentUnits.AMP (ampeeria, oletusarvo).

is_moving#

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.

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_moving()

Parametrit

Kuvaus

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

is_done#

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.

is_turning#

is_turning palauttaa totuusarvona tiedon siitä, kääntyykö robotti. Tätä voidaan käyttää muiden robotin liikkeeseen perustuvien toimintojen ajoituksen ohjaamiseen.

  • True — Robotti kääntyy.

  • False — Robotti ei käänny.

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

Usage:
drivetrain.is_turning()

Parametrit

Kuvaus

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

power#

power palauttaa voimansiirron käyttämän tehon watteina mitattuna. Teho näyttää, kuinka nopeasti voimansiirto kuluttaa energiaa.

Suurempi tehoarvo tarkoittaa, että voimansiirto käyttää energiaa nopeammin. Näin voi käydä, kun robotti työntää jotakin esinettä vasten tai yrittää liikkua jumissa ollessaan.

Tätä voidaan käyttää liikkeiden vertailuun tai voimansiirron ongelmien tarkistamiseen. Jos teho pysyy korkeana, voimansiirto voi lämmetä tai käyttää energiaa tehottomammin.

Usage:
drivetrain.power()

Parametrit

Kuvaus

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

torque#

Vääntömomentti osoittaa, kuinka voimakkaasti voimansiirto pystyy työntämään tai vetämään pyörien pyöriessä.

torque palauttaa voimansiirron käyttämän vääntömomentin, mitattuna newtonmetreinä (Nm) tai tuumapaunoina (InLb).

Suurempi vääntömomentti tarkoittaa, että voimansiirto työntää tai vetää kovemmin. Näin voi käydä, kun robotti työntää jotakin esinettä vasten tai yrittää liikkua jumissa ollessaan.

Tätä voidaan käyttää tarkistamaan, onko voimansiirrossa ongelmia, tai vertailemaan, kuinka paljon työntövoimaa eri liikkeet tarvitsevat.

Usage:
drivetrain.torque(units)

Parametrit

Kuvaus

units

Valinnainen. Vääntömomentin palauttamiseen käytettävä yksikkö: TorqueUnits.NM (newtonmetriä, oletusarvo) tai TorqueUnits.INLB (tuumaa paunaa).

efficiency#

efficiency palauttaa voimansiirron tehokkuuden prosentteina väliltä 0–100 %.

Hyötysuhde osoittaa, kuinka paljon voimansiirron tehosta käytetään liikkumiseen. Korkeampi hyötysuhdearvo tarkoittaa, että enemmän voimansiirron tehoa käytetään liikkumiseen. Alhaisempi hyötysuhdearvo voi ilmetä, kun voimansiirto työskentelee kovasti, mutta ei liiku paljon, kuten silloin, kun robotti on jumissa tai työntää jotakin esinettä vasten.

Tätä voidaan käyttää liikkeiden vertailuun tai tarkistamaan, tuhlaako voimansiirto tehoa sen sijaan, että käyttäisi sitä liikkumiseen.

Usage:
drivetrain.efficiency()

Parametrit

Kuvaus

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

temperature#

temperature palauttaa voimansiirron keskilämpötilan valitussa lämpötilayksikössä.

Lämpötila osoittaa, kuinka lämpimiä voimansiirtomoottorit ovat. Korkeampi lämpötila tarkoittaa, että moottorit lämpenevät käytön aikana. Moottorien lämpötilan tulisi pysyä alle 55 °C:ssa, jotta ne toimivat täydellä teholla.

Jos moottorit kuumenevat liikaa, ne laskevat maksimivirtaansa suojatakseen itseään. 70 °C:ssa moottorit pysähtyvät, kunnes ne jäähtyvät.

Tätä voidaan käyttää tarkistamaan, kuumeneeko voimansiirto liikaa toistuvien liikkeiden, pitkien ajojen tai esinettä vasten painautuessa.

Usage:
drivetrain.temperature(units)

Parametrit

Kuvaus

units

Valinnainen. Lämpötilan palautusyksikkö: TemperatureUnits.CELSIUS (oletus) tai TemperatureUnits.FAHRENHEIT.

Rakentajat#

Konstruktoreita käytetään koodissa DriveTrain ja SmartDrive SmartDrive kun voimansiirtoa konfiguroidaan ilman Laitteet-ikkunaa.

Voimansiirron luomiseksi on luotava vähintään kaksi Motor tai MotorGroup -objektia.

DriveTrain#

DriveTrain luo voimansiirron ilman inertia-anturia tai gyroskooppianturia.

Usage:
DriveTrain(lm, rm, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)

Parametri

Kuvaus

lm

Vasen moottori tai moottoriryhmä.

rm

Oikea moottori tai moottoriryhmä.

wheelTravel

Valinnainen. Voimansiirron pyörien ympärysmitta. Oletusarvo on 300 millimetriä.

trackWidth

Valinnainen. Vasemman ja oikean pyörän välinen leveys. Oletusarvo on 320 millimetriä.

wheelBase

Valinnainen. Etu- ja takapyörien välinen etäisyys. Oletusarvo on 320 millimetriä.

units

Valinnainen. Yksikkö arvoille wheelTravel, trackWidthja wheelBase: MM (oletus), INCHEStai DistanceUnits.CM (senttimetriä).

externalGearRatio

Valinnainen. Välityssuhde, jota käytetään ajoetäisyyksien säätämiseen, jos vaihteita käytetään. Tämä voi olla kokonaisluku integer tai desimaaliluku (float). Oletusarvo on 1,0.

# Create left and right drive motor objects
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT2, 1.0, True)

'''
Create a Drivetrain with the following values:
wheelTravel: 200
trackWidth: 173
wheelBase: 76
units: MM
externalGearRatio: 1
'''
drivetrain = DriveTrain(left_drive_smart, right_drive_smart, 200, 173, 76, MM, 1)

# Create two motor group objects for left and right motors
left_motor_a = Motor(Ports.PORT1, 1.0, False)
left_motor_b = Motor(Ports.PORT2, 1.0, False)
left_drive_smart = MotorGroup(left_motor_a, left_motor_b)

right_motor_a = Motor(Ports.PORT3, 1.0, True)
right_motor_b = Motor(Ports.PORT4, 1.0, True)
right_drive_smart = MotorGroup(right_motor_a, right_motor_b)

'''
Create a Drivetrain with the following values:
wheelTravel: 200
trackWidth: 173
wheelBase: 76
units: MM
externalGearRatio: 1
'''
drivetrain = DriveTrain(left_drive_smart, right_drive_smart, 200, 173, 76, MM, 1)

SmartDrive#

SmartDrive luo voimansiirron, joka on konfiguroitu inertia-anturilla tai gyroskooppianturilla.

Usage:
SmartDrive(lm, rm, g, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)

Parametri

Kuvaus

lm

Vasen moottori tai moottoriryhmä.

rm

Oikea moottori tai moottoriryhmä.

g

Voimansiirron käyttämä inertia-anturi tai gyroskooppianturi.

wheelTravel

Valinnainen. Voimansiirron pyörien ympärysmitta. Oletusarvo on 300 millimetriä.

trackWidth

Valinnainen. Vasemman ja oikean pyörän välinen leveys. Oletusarvo on 320 millimetriä.

wheelBase

Valinnainen. Etu- ja takapyörien välinen etäisyys. Oletusarvo on 320 millimetriä.

units

Valinnainen. Yksikkö wheelTravel, trackWidthja wheelBase: MM (millimetriä, oletus) tai INCHES.

externalGearRatio

Valinnainen. Välityssuhde, jota käytetään ajoetäisyyksien säätämiseen, jos vaihteita käytetään. Tämä voi olla kokonaisluku integer tai desimaaliluku (float). Oletusarvo on 1,0.

# Create the Inertial Sensor
brain_inertial = Inertial()

# Make left and right drive motors
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT6, 1.0, True)

# Create a SmartDrive object with wheelTravel 200
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)

Jos luot älykkään voimansiirron, jossa on useita moottoreita, sinun on luotava moottorit erikseen ennen niiden ryhmittelyä moottoriryhmään.

# Create the Inertial Sensor
brain_inertial = Inertial()

# Create two motor groups for left and right motors
left_motor_a = Motor(Ports.PORT1, 1.0, False)
left_motor_b = Motor(Ports.PORT2, 1.0, False)
left_drive_smart = MotorGroup(left_motor_a, left_motor_b)

right_motor_a = Motor(Ports.PORT5, 1.0, True)
right_motor_b = Motor(Ports.PORT6, 1.0, True)
right_drive_smart = MotorGroup(right_motor_a, right_motor_b)

# Create a SmartDrive object with wheelTravel 200 mm
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)