Piedziņa#
Ievads#
Piedziņa kontrolē VR robota braukšanu un pagriezienus. Piedziņa var pārvietoties uz priekšu vai atpakaļ, pagriezties pa kreisi vai pa labi, mainīt virzienu un izsekot rotācijai.
Ir daudz veidu, kā kodēt piedziņas sistēmu. Zemāk ir visu piedziņas sistēmas metožu saraksts:
Darbības — Pārvietot un pagriezt robotu.
drive— Pārvieto robotu uz priekšu vai atpakaļ uz visiem laikiem.drive_for— Pārvieto robotu uz priekšu vai atpakaļ noteiktu attālumu.turn— Pagriež robotu pa kreisi vai pa labi uz visiem laikiem.turn_for— Pagriež robotu pa kreisi vai pa labi par noteiktu grādu skaitu.turn_to_heading— Pagriež robotu noteiktā virzienā no -359 līdz 359 grādiem.turn_to_rotation— Pagriež robotu noteiktā rotācijā.stop— Aptur robota kustību.
Mutatori — pielāgo piedziņas mehānisma iestatījumus.
set_heading— Maina robota pašreizējo virzienu uz jaunu virzienu.set_rotation— Maina robota pašreizējo rotāciju uz jaunu rotāciju.set_timeout— Iestata, cik daudz laika robots mēģinās pabeigt kustību.set_drive_velocity— Norāda robotam, cik ātri braukt.set_turn_velocity— Norāda robotam, cik ātri griezties.
Geters — Pārbaudiet piedziņas sistēmas stāvokli.
Darbības#
drive#
drive pārvieto robotu uz priekšu vai atpakaļ bezgalīgi. Robots turpinās kustēties, līdz tam tiks dota cita darbība, piemēram, pagriešana vai apstāšanās.
Usage:
drivetrain.drive(direction)
Parametri |
Apraksts |
|---|---|
|
Robota kustības virziens: |
def main():
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
drive_for#
drive_for pārvieto robotu uz priekšu vai atpakaļ noteiktu attālumu. Projekts gaidīs, līdz robots būs pabeidzis kustību, pirms tiks palaista nākamā koda rinda.
Usage:
drivetrain.drive_for(direction, distance, units, wait)
Parametri |
Apraksts |
|---|---|
|
Robota kustības virziens: |
|
Robota nobrauktais attālums. Tas var būt vesels skaitlis |
|
Neobligāti. Attāluma mērvienība: |
|
Neobligāti. |
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)
turn#
turn pagriež robotu pa kreisi vai pa labi uz visiem laikiem. Robots turpinās griezties, līdz tam tiks dota cita darbība, piemēram, braukšana vai apstāšanās.
Usage:
drivetrain.turn(direction)
Parametri |
Apraksts |
|---|---|
|
Robota griešanās virziens: |
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)
turn_for#
turn_for pagriež robotu pa kreisi vai pa labi par noteiktu grādu skaitu. Pagrieziens ir relatīvs attiecībā pret robota pašreizējo pozīciju. Projekts gaidīs, līdz robots būs pabeidzis pagriešanos, pirms tiks palaista nākamā koda rinda.
Usage:
drivetrain.turn_for(direction, angle, units, wait)
Parametri |
Apraksts |
|---|---|
|
Robota griešanās virziens: |
|
Robota pagrieziena grādu skaits. Tas var būt vesels skaitlis |
|
Neobligāti. Rotācijas vienība: |
|
Neobligāti. |
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)
turn_to_heading#
Virziens ir virziens, kurā robots ir pagriezies, mērot grādos. turn_to_heading pagriež robotu noteiktā virzienā no -359 līdz 359 grādiem. Robots pagriezīsies īsākajā virzienā, lai sasniegtu mērķa virzienu.
Robota sākuma virziens ir 0 grādi.
Projekts gaidīs, līdz robots būs pabeidzis griešanos, pirms tiks palaista nākamā koda rinda.
Usage:
drivetrain.turn_to_heading(angle, units, wait)
Parametri |
Apraksts |
|---|---|
|
Virziens, kurā robotam jābūt pagrieztam, grādos. Tas var būt vesels skaitlis |
|
Neobligāti. Rotācijas vienība: |
|
Neobligāti. |
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)
turn_to_rotation#
turn_to_rotation pagriež robotu noteiktā rotācijā.
Rotācija ir robota pagrieziena lielums, mērīts grādos. Projekta sākumā rotācijas vērtība tiek iestatīta uz 0 grādiem. Rotāciju var iestatīt arī, izmantojot metodi set_rotation.
Rotācijas vērtības ir absolūtas. Tas nozīmē, ka pagrieziena virziens ir atkarīgs no robota pašreizējās rotācijas. Pagriežoties pa labi, rotācija palielinās, bet pagriežoties pa kreisi, tā samazinās.
Piemēram, ja robots sāk darboties no 0 grādiem un jūs pagriežaties par 720 grādiem, tas divreiz pagriezīsies pa labi. Ja pēc tam pagriezīsities par 360 grādiem, tas vienreiz pagriezīsies pa kreisi, jo 360 grādi ir mazāki par 720.
Projekts gaidīs, līdz robots būs pabeidzis griešanos, pirms tiks palaista nākamā koda rinda.
Usage:
drivetrain.turn_to_rotation(angle, units, wait)
Parametri |
Apraksts |
|---|---|
|
Rotācijas vērtība grādos, kādā robots pagriezīsies. Tā var būt vesels skaitlis |
|
Neobligāti. Rotācijas vienība: |
|
Neobligāti. |
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 aptur robota kustību.
Usage:
drivetrain.stop()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
def main():
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
Mutatori#
set_heading#
Virziens ir virziens, kurā robots ir pagriezies, mērot grādos. set_heading maina robota pašreizējo virzienu uz jaunu virziena vērtību.
Piemēram, ja robots ir pagriezies pa labi, iestatot virzienu uz 0 grādiem, šī pozīcija, kas vērsta pa labi, kļūst par jauno 0 grādu pozīciju. Pēc tam robots var pagriezties uz citām pozīcijām, pamatojoties uz šo jauno virzienu.
Usage:
drivetrain.set_heading(heading, units)
Parametri |
Apraksts |
|---|---|
|
Robota iestatāmā virziena vērtība grādos. Tā var būt vesels skaitlis |
|
Neobligāti. Virziena mērvienība: |
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)
set_rotation#
Rotācija ir robota pagrieziena lielums, mērot grādos. Projekta sākumā rotācijas vērtība ir iestatīta uz 0 grādiem. set_rotation maina robota pašreizējo rotāciju uz jaunu vērtību.
Piemēram, ja robots ir veicis divus pilnus pagriezienus pa labi, tā rotācijas vērtība būs 720 grādi. Iestatot rotāciju uz 0 grādiem, šī rotācija tiks atiestatīta no 720 uz 0 grādiem. Pēc tam robots var veikt rotācijas, pamatojoties uz šo jauno vērtību.
Usage:
drivetrain.set_rotation(rotation, units)
Parametri |
Apraksts |
|---|---|
|
Robota iestatāmā rotācijas vērtība grādos. Tā var būt vesels skaitlis |
|
Neobligāti. Rotācijas vienība: |
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)
set_timeout#
set_timeout nosaka, cik ilgā laikā robots mēģinās pabeigt kustību. Ja robots nevar pabeigt šajā laikā, tas pārtrauks mēģinājumu un pāries uz nākamo koda rindiņu. Tas neļauj robotam iestrēgt kustībā.
Usage:
drivetrain.set_timeout(value, units)
Parametri |
Apraksts |
|---|---|
|
Laiks, kurā robots var mēģināt pabeigt kustību. Tas var būt pozitīvs skaitlis |
|
Neobligāti. Laika mērvienība: |
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)
set_drive_velocity#
set_drive_velocity norāda robotam, cik ātri jābrauc. Augstāka procentuālā vērtība liek robotam braukt ātrāk, bet zemāka procentuālā vērtība liek robotam braukt lēnāk.
Katrs projekts sākas ar robota kustību ar noklusējuma ātrumu 50%.
Piezīme: Lielāks ātrums padara robotu ātrāku, bet tas var būt mazāk precīzs. Mazāks ātrums padara robotu lēnāku, bet tas var būt precīzāks.
Usage:
drivetrain.set_drive_velocity(velocity, units)
Parametri |
Apraksts |
|---|---|
|
Braukšanas ātrums no 0% līdz 100%. Tas var būt vesels skaitlis |
|
Pēc izvēles. Ātruma mērvienība: |
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)
set_turn_velocity#
set_turn_velocity norāda robotam, cik ātri griezties. Augstāka procentuālā vērtība liek robotam griezties ātrāk, bet zemāka procentuālā vērtība liek robotam griezties lēnāk.
Katrs projekts sākas ar robota griešanos ar noklusējuma ātrumu 50%.
Piezīme: Lielāks ātrums liek robotam griezties ātrāk, bet tas var būt mazāk precīzs. Mazāks ātrums liek robotam griezties lēnāk, bet tas var būt precīzāks.
Usage:
drivetrain.set_turn_velocity(velocity, units)
Parametri |
Apraksts |
|---|---|
|
Griešanās ātrums no 0% līdz 100%. Tas var būt vesels skaitlis |
|
Pēc izvēles. Ātruma mērvienība: |
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)
Getteri#
heading#
Virziens ir virziens, kurā robots ir pagriezies, mērot grādos. heading atgriež robota pašreizējo virzienu no 0 līdz 359,99 grādiem.
Robota sākuma virziens ir 0 grādi.
Usage:
drivetrain.heading(units)
Parametri |
Apraksts |
|---|---|
|
Neobligāti. Virziena mērvienība: |
def main():
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.print("Heading: ")
brain.print(drivetrain.heading(DEGREES))
# VR threads — Do not delete
vr_thread(main)
rotation#
Rotācija ir robota pagrieziena lielums, mērot grādos. Projekta sākumā rotācijas vērtība ir iestatīta uz 0 grādiem. rotation atgriež robota pašreizējo rotāciju.
Pagriežoties pa labi, rotācija palielinās, bet pagriežoties pa kreisi, tā samazinās. Piemēram, veicot divus pilnus pagriezienus pa labi, rotācija būs 720 grādi.
Usage:
drivetrain.rotation(units)
Parametri |
Apraksts |
|---|---|
|
Neobligāti. Rotācijas vienība: |
def main():
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.print("Rotation: ")
brain.print(drivetrain.rotation(DEGREES))
# VR threads — Do not delete
vr_thread(main)
is_done#
is_done atgriež, vai robots ir pabeidzis kustību, kā Būla vērtību. To var izmantot, lai kontrolētu citu darbību laiku, pamatojoties uz robota kustību.
True— Robots ir pabeidzis kustību.False— Robots joprojām kustas.
Šī metode darbojas kopā ar šādām Drivetrain metodēm, kurām ir parametrs wait : drive_for, turn_for, turn_to_heading un turn_to_rotation.
Usage:
drivetrain.is_done()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
is_moving#
is_moving atgriež, vai robots kustas, kā Būla vērtību. To var izmantot, lai kontrolētu citu darbību laiku, pamatojoties uz robota kustību.
True— Robots kustas.False— Robots nekustas.
Usage:
drivetrain.is_moving()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |