Hajtáslánc#

Bevezetés#

A hajtáslánc vezérli a VR Robot vezetését és fordulását. A hajtáslánc előre vagy hátra mozoghat, balra vagy jobbra fordulhat, irányt vehet, és nyomon követheti a forgását.

A hajtáslánc kódolásának számos módja van. Az alábbiakban felsoroljuk az összes hajtáslánc metódust:

Műveletek — A robot mozgatása és forgatása.

  • drive — A robotot előre vagy hátra mozgatja örökké.

  • drive_for — Meghatározott távolságra mozgatja a robotot előre vagy hátra.

  • turn — Örökké balra vagy jobbra forgatja a robotot.

  • turn_for — Meghatározott fokkal balra vagy jobbra forgatja a robotot.

  • turn_to_heading — A robotot egy adott irányba fordítja -359 és 359 fok között.

  • turn_to_rotation — Meghatározott forgásirányba fordítja a robotot.

  • stop — Leállítja a robot mozgását.

Mutátorok – Hajtáslánc-beállítások módosítása.

  • set_heading — A robot aktuális irányát egy új irányra módosítja.

  • set_rotation — A robot aktuális forgását egy új forgásra módosítja.

  • set_timeout — Beállítja, hogy mennyi idő alatt próbálja meg a robot befejezni a mozgást.

  • set_drive_velocity — Megadja a robotnak a haladási sebességét.

  • set_turn_velocity — Megadja a robotnak, hogy milyen gyorsan forduljon.

Getterek – A hajtáslánc állapotának ellenőrzése.

  • heading — Visszaadja a robot aktuális irányát 0 és 359,99 fok között.

  • rotation — Visszaadja a robot aktuális forgását.

  • is_done — Logikai értékként adja vissza, hogy a robot befejezte-e a mozgást.

  • is_moving — Logikai értékként adja vissza, hogy a robot mozog-e.

Műveletek#

drive#

drive A robotot a végtelenségig előre vagy hátra mozgatja. A robot addig fog mozogni, amíg egy másik műveletet nem kap, például fordulást vagy megállást.

Usage:
drivetrain.drive(direction)

Paraméterek

Leírás

direction

A robot mozgásiránya: FORWARD vagy REVERSE.

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 paraméterrel a robot előre vagy hátra mozgatható egy adott távolságra. A projekt megvárja, amíg a robot befejezi a mozgást, mielőtt a következő kódsort futtatná.

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

Paraméterek

Leírás

direction

A robot mozgásiránya: FORWARD vagy REVERSE.

distance

A robot által megtett távolság. Ez lehet integer vagy decimális (float).

units

Opcionális. A távolság mértékegysége: INCHES (alapértelmezett) vagy MM (milliméter).

wait

Opcionális. wait=True (alapértelmezett) esetén a projekt megvárja, amíg a robot befejezi a mozgást, mielőtt a következő kódsor lefutna. wait=False esetén a következő kódsor azonnal lefut.

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 : A robotot balra vagy jobbra forgatja örökre. A robot addig fog forogni, amíg egy másik műveletet nem kap, például vezetést vagy megállást.

Usage:
drivetrain.turn(direction)

Paraméterek

Leírás

direction

A robot fordulási iránya: LEFT vagy 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)

turn_for#

turn_for paraméterrel a robot balra vagy jobbra forgatható egy megadott fokkal. A forgatás a robot aktuális pozíciójához viszonyított. A projekt megvárja, amíg a robot befejezi a fordulást, mielőtt a következő kódsort futtatná.

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

Paraméterek

Leírás

direction

A robot fordulási iránya: LEFT vagy RIGHT.

angle

A robot fordulatainak száma fokokban. Ez lehet integer vagy decimális (float).

units

Opcionális. Az elforgatás mértékegysége: DEGREES (alapértelmezett).

wait

Opcionális. wait=True (alapértelmezett) esetén a projekt megvárja, amíg a robot befejezi a forgást, mielőtt a következő kódsor lefutna. wait=False esetén a következő kódsor azonnal lefut.

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#

A haladási irány az az irány, amerre a robot néz, fokban mérve. turn_to_heading A „turn_to_heading” (fordulás) beállításnál az 1-es érték a robotot egy adott, -359 és 359 fok közötti irányba fordítja. A robot a legrövidebb irányba fordul, hogy elérje a célirányt.

A robot kezdő iránya 0 fok.

A projekt megvárja, amíg a robot befejezi a forgást, mielőtt a következő kódsort futtatná.

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

Paraméterek

Leírás

angle

Az irány, amerre a robotnak néznie kell, fokban. Ez lehet egy integer vagy decimális szám (float) -359 és 359 között.

units

Opcionális. Az elforgatás mértékegysége: DEGREES (alapértelmezett).

wait

Opcionális. wait=True (alapértelmezett) esetén a projekt megvárja, amíg a robot befejezi a forgást, mielőtt a következő kódsor lefutna. wait=False esetén a következő kódsor azonnal lefut.

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 A robotot egy adott forgáspontra forgatja.

A forgatás a robot elfordulásának mértékét adja meg fokban mérve. A projekt elején a forgatás értéke 0 fok. A forgatás a set_rotation metódussal is beállítható.

A forgási értékek abszolútak. Ez azt jelenti, hogy a fordulat iránya a robot aktuális forgásától függ. Jobbra forgatás növeli, balra forgatás csökkenti a forgást.

Például, ha a robot 0 fokról indul, és 720 fokos elfordulást érünk el, akkor kétszer fordul jobbra. Ha ezután 360 fokos elfordulást végzünk, akkor egyszer fordul balra, mert a 360 fok kisebb, mint a 720 fok.

A projekt megvárja, amíg a robot befejezi a forgást, mielőtt a következő kódsort futtatná.

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

Paraméterek

Leírás

angle

A robot elfordulási értéke fokban megadva. Ez lehet integer vagy decimális (float).

units

Opcionális. Az elforgatás mértékegysége: DEGREES (alapértelmezett).

wait

Opcionális. wait=True (alapértelmezett) esetén a projekt megvárja, amíg a robot befejezi a forgást, mielőtt a következő kódsor lefutna. wait=False esetén a következő kódsor azonnal lefut.

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 leállítja a robot mozgását.

Usage:
drivetrain.stop()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

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

# VR threads — Do not delete
vr_thread(main)

Mutátorok#

set_heading#

A haladási irány a robot felé néző irány, fokban mérve. set_heading a robot aktuális haladási irányát egy új haladási értékre módosítja.

Például, ha a robot jobbra fordult, és a haladási irány 0 fokra állítása a jobbra néző pozíciót teszi az új 0 fokossá. Ezután a robot az új irány alapján más pozíciókba fordulhat.

Usage:
drivetrain.set_heading(heading, units)

Paraméterek

Leírás

heading

A robothoz beállítandó irányérték fokban. Ez lehet integer vagy decimális (float).

units

Opcionális. Az irány mértékegysége: DEGREES (alapértelmezett).

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#

A forgás a robot elfordulásának mértékét adja meg fokban mérve. A projekt elején a forgási érték 0 fokra van állítva. set_rotation paraméterrel a robot aktuális forgását egy új értékre módosítja.

Például, ha a robot két teljes fordulatot tett jobbra, akkor a forgási értéke 720 fok lesz. Ha a forgást 0 fokra állítja, akkor a forgás 720-ról 0 fokra áll vissza. Ezután a robot az új érték alapján foroghat.

Usage:
drivetrain.set_rotation(rotation, units)

Paraméterek

Leírás

rotation

A robothoz beállítandó forgatási érték fokban. Ez lehet integer vagy decimális (float).

units

Opcionális. Az elforgatás mértékegysége: DEGREES (alapértelmezett).

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 beállítja, hogy mennyi idő alatt próbáljon meg a robot befejezni egy mozgást. Ha a robot nem tudja befejezni a megadott időn belül, akkor leállítja a próbálkozást, és továbblép a kód következő sorára. Ez megakadályozza, hogy a robot elakadjon egy mozgásnál.

Usage:
drivetrain.set_timeout(value, units)

Paraméterek

Leírás

value

Az az időtartam, ameddig a robot megpróbálhat befejezni egy mozgást. Ez lehet pozitív integer vagy decimális (float).

units

Opcionális. Az időegység: SECONDS (alapértelmezett) vagy MSEC (milliszekundum).

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 megmondja a robotnak, hogy milyen gyorsan haladjon. Magasabb százalékos érték esetén a robot gyorsabban, alacsonyabb százalékos érték esetén pedig lassabban halad.

Minden projekt azzal kezdődik, hogy a robot alapértelmezés szerint 50%-os sebességgel halad.

Megjegyzés: A nagyobb sebesség gyorsabbá teszi a robotot, de kevésbé pontos lehet. Az alacsonyabb sebesség lassabbá teszi a robotot, de pontosabb lehet.

Usage:
drivetrain.set_drive_velocity(velocity, units)

Paraméterek

Leírás

velocity

A hajtandó sebesség 0%-tól 100%-ig. Ez lehet integer vagy decimális (float).

units

Opcionális. A sebesség mértékegysége: PERCENT (alapértelmezett).

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 megmondja a robotnak, hogy milyen gyorsan forduljon. Magasabb százalékos érték esetén a robot gyorsabban, alacsonyabb százalékos érték esetén pedig lassabban fordul.

Minden projekt azzal kezdődik, hogy a robot alapértelmezés szerint 50%-os sebességgel forog.

Megjegyzés: A nagyobb sebesség gyorsabbá teszi a robot fordulását, de kevésbé pontos lehet. Az alacsonyabb sebesség lassabbá teszi a robot fordulását, de pontosabb lehet.

Usage:
drivetrain.set_turn_velocity(velocity, units)

Paraméterek

Leírás

velocity

A fordulatszám 0%-tól 100%-ig. Ez lehet integer vagy decimális (float).

units

Opcionális. A sebesség mértékegysége: PERCENT (alapértelmezett).

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)

Getterek#

heading#

A haladási irány a robot irányát jelöli, fokban mérve. heading a robot aktuális haladási irányát adja vissza 0 és 359,99 fok között.

A robot kezdő iránya 0 fok.

Usage:
drivetrain.heading(units)

Paraméterek

Leírás

units

Opcionális. Az irány mértékegysége: DEGREES (alapértelmezett).

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#

A forgás a robot elfordulásának mértékét adja meg fokban mérve. A projekt elején a forgás értéke 0 fok. rotation értéket adja vissza a robot aktuális forgását.

Jobbra fordulás növeli, balra fordulás pedig csökkenti az elfordulást. Például két teljes jobbra fordulás 720 fokos elfordulást eredményez.

Usage:
drivetrain.rotation(units)

Paraméterek

Leírás

units

Opcionális. Az elforgatás mértékegysége: DEGREES (alapértelmezett).

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 Logikai értékként adja vissza, hogy a robot befejezte-e a mozgást. Ez felhasználható más viselkedések időzítésének szabályozására a robot mozgása alapján.

  • True — A robot mozgása befejeződött.

  • False — A robot még mindig mozog.

Ez a metódus a következő wait paraméterrel rendelkező Drivetrain metódusokkal működik együtt: drive_for, turn_for, turn_to_heading, és turn_to_rotation.

Usage:
drivetrain.is_done()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

is_moving#

is_moving Logikai értékként adja vissza, hogy a robot mozog-e. Ez felhasználható más viselkedések időzítésének szabályozására a robot mozgása alapján.

  • True — A robot mozog.

  • False — A robot nem mozog.

Usage:
drivetrain.is_moving()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.