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 nopeuden.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 |
|---|---|
|
Robotin liikesuunta: |
|
Optional. The velocity to drive with from 0% to 100% when using |
|
Valinnainen. Nopeuden yksikkö: |
# 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 |
|---|---|
|
Robotin liikesuunta: |
|
Robotin ajama matka. Tämä voi olla kokonaisluku |
|
Valinnainen. Etäisyysyksikkö: |
|
Optional. The velocity to drive with from 0% to 100% when using |
|
Valinnainen. Nopeuden yksikkö: |
|
Valinnainen. |
# 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 |
|---|---|
|
Robotin kääntymissuunta: |
|
Optional. The velocity to turn with from 0% to 100% when using |
|
Valinnainen. Nopeuden yksikkö: |
# 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 |
|---|---|
|
Robotin kääntymissuunta: |
|
Robotin kääntymismäärä. Tämä voi olla kokonaisluku |
|
Valinnainen. Käännösyksikkö: |
|
Optional. The velocity to turn with from 0% to 100% when using |
|
Valinnainen. Nopeuden yksikkö: |
|
Valinnainen. |
# 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 |
|---|---|
|
Robotin suunta asteina. Tämä voi olla kokonaisluku |
|
Valinnainen. Kulmayksikkö: |
|
Optional. The velocity to turn with from 0% to 100% when using |
|
Valinnainen. Nopeuden yksikkö: |
|
Valinnainen. |
# 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 käyttämällä set_rotation-metodia.
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 |
|---|---|
|
Robotin kääntymisaika asteina tai käännöksinä. Tämä voi olla kokonaisluku |
|
Valinnainen. Kiertoyksikkö: |
|
Optional. The velocity to turn with from 0% to 100% when using |
|
Valinnainen. Nopeuden yksikkö: |
|
Valinnainen. |
# 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 |
|---|---|
|
Valinnainen. Robotin pysähtymistapa:
|
# 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 |
|---|---|
|
The velocity to drive with from 0% to 100% when using |
|
Valinnainen. Nopeuden yksikkö: |
# 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 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 |
|---|---|
|
The velocity to turn with from 0% to 100% when using |
|
Valinnainen. Nopeuden yksikkö: |
# 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 |
|---|---|
|
Robotin pysähtymistapa:
|
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 |
|---|---|
|
Aika, jonka robotti voi yrittää suorittaa liikkeen loppuun. Tämä voi olla positiivinen kokonaisluku |
|
Valinnainen. Aikayksikkö: |
# 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 |
|---|---|
|
Robotille asetettava suunta-arvo asteina tai käännöksinä. Tämä voi olla kokonaisluku |
|
Valinnainen. Kulmayksikkö: |
# 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 |
|---|---|
|
Robotille asetettava kiertoarvo asteina tai käännöksinä. Tämä voi olla kokonaisluku |
|
Valinnainen. Kiertoyksikkö: |
# 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 |
|---|---|
|
Kääntymiskynnys asteina. Tämä voi olla kokonaisluku |
# 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 |
|---|---|
|
Käännösvakio. Tämä voi olla desimaaliluku ( |
# 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 |
|---|---|
|
Valinnainen. Palautettava yksikkö suuntaa varten: |
# 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 |
|---|---|
|
Valinnainen. Yksikkö, joka palauttaa kierron: |
# 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 (astetta sekunnissa). Positiivinen arvo tarkoittaa, että robotti ajaa eteenpäin. Negatiivinen arvo tarkoittaa, että robotti ajaa taaksepäin.
Usage:
drivetrain.velocity(units)
Parametrit |
Kuvaus |
|---|---|
|
Valinnainen. Palautettava nopeusyksikkö: |
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 |
|---|---|
|
Valinnainen. Virran palauttamiseen käytettävä yksikkö: |
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 |
|---|---|
|
Valinnainen. Vääntömomentin palauttamiseen käytettävä yksikkö: |
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 |
|---|---|
|
Valinnainen. Lämpötilan palautusyksikkö: |
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 gyroskooppianturia tai inertia-anturia.
Usage:
DriveTrain(lm, rm, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)
Parametri |
Kuvaus |
|---|---|
|
Vasen moottori tai moottoriryhmä. |
|
Oikea moottori tai moottoriryhmä. |
|
Valinnainen. Voimansiirron pyörien ympärysmitta. Oletusarvo on 300 millimetriä. |
|
Valinnainen. Vasemman ja oikean pyörän välinen leveys. Oletusarvo on 320 millimetriä. |
|
Valinnainen. Etu- ja takapyörien välinen etäisyys. Oletusarvo on 320 millimetriä. |
|
Valinnainen. Yksikkö arvoille |
|
Valinnainen. Välityssuhde, jota käytetään ajoetäisyyksien säätämiseen, jos vaihteita käytetään. Tämä voi olla kokonaisluku |
# 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, jossa on gyroskooppianturi tai inertia-anturi.
Usage:
SmartDrive(lm, rm, g, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)
Parametri |
Kuvaus |
|---|---|
|
Vasen moottori tai moottoriryhmä. |
|
Oikea moottori tai moottoriryhmä. |
|
Voimansiirron käyttämä gyroskooppianturi tai inertia-anturi. |
|
Valinnainen. Voimansiirron pyörien ympärysmitta. Oletusarvo on 300 millimetriä. |
|
Valinnainen. Vasemman ja oikean pyörän välinen leveys. Oletusarvo on 320 millimetriä. |
|
Valinnainen. Etu- ja takapyörien välinen etäisyys. Oletusarvo on 320 millimetriä. |
|
Valinnainen. Yksikkö arvoille |
|
Valinnainen. Välityssuhde, jota käytetään ajoetäisyyksien säätämiseen, jos vaihteita käytetään. Tämä voi olla kokonaisluku |
# 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)