Hajtáslánc#
Bevezetés#
A 123-as robot kétkerekű hajtáslánccal rendelkezik, amely lehetővé teszi a haladást és a fordulást. A hajtáslánc-módszerek szabályozzák a robot mozgását.
A hajtáslánc kétféleképpen tudja mérni a távolságot: lépésekben és mm-ben (milliméterben). Egy lépés egy négyzet egy 123-as mezőn.
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.drive_until— Előre vagy hátra mozgatja a robotot, amíg tárgyat, ütközést vagy vonalat nem érzékel.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.stop— Leállítja a robot mozgását.
Mutátorok – Hajtáslánc-beállítások módosítása.
set_timeout— Beállítja, hogy a robot mennyi ideig próbálja befejezni a mozgást.set_heading— A robot aktuális irányát egy új irányra módosítja.
Getterek – Mozgás állapotának ellenőrzése.
is_stopped— Logikai értékként adja vissza, hogy a robot mozgása leállt-e.get_heading— Visszaadja a robot aktuális irányát 0 és 359 fok között.
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:
robot.drive(direction)
Paraméterek |
Leírás |
|---|---|
|
A robot mozgásiránya: |
# Drive for 2 seconds.
robot.drive(FORWARD)
wait(2, SECONDS)
robot.stop()
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:
robot.drive_for(direction, distance, unit)
Paraméterek |
Leírás |
|---|---|
|
A robot mozgásiránya: |
|
A robot által megtett távolság. Ez lehet egész vagy tizedes szám. |
|
A távolság mértékegysége: |
# Drive back and forth.
robot.drive_for(FORWARD, 3, STEPS)
robot.drive_for(REVERSE, 3, STEPS)
drive_until#
drive_until A robotot előre vagy hátra mozgatja, amíg tárgyat, ütközést vagy vonalat nem érzékel.
Usage:
robot.drive_until(direction)
Paraméterek |
Leírás |
|---|---|
|
A robot mozgásiránya: |
# Reverse after a crash.
robot.drive_until(FORWARD)
robot.drive_for(REVERSE, 1, STEPS)
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:
robot.turn(direction)
Paraméterek |
Leírás |
|---|---|
|
A robot fordulási iránya: |
# Turn for 2 seconds.
robot.turn(RIGHT)
wait(2, SECONDS)
robot.stop()
turn_for#
turn_for paraméterrel a robot balra vagy jobbra forgatható egy megadott fokkal. A projekt megvárja, amíg a robot befejezi a fordulást, mielőtt a következő kódsort futtatná.
Usage:
robot.turn_for(direction, degrees)
Paraméterek |
Leírás |
|---|---|
|
A robot fordulási iránya: |
|
A fordulandó fokok száma. Ez lehet egész szám vagy tizedes szám. |
# Turn left, then turn around to the right.
robot.turn_for(LEFT, 90)
robot.turn_for(RIGHT, 180)
turn_to_heading#
turn_to_heading A robotot egy adott irányba fordítja -359 és 359 fok között. A robot a legrövidebb irányba fordul, hogy elérje a célirányt.
A kezdő irány 0 fok.
A projekt megvárja, amíg a robot befejezi a forgást, mielőtt a következő kódsort futtatná.
Usage:
robot.turn_to_heading(heading)
Paraméterek |
Leírás |
|---|---|
|
A robot iránya, amellyel szembe kell néznie, -359 és 359 fok között. |
# Turn to face the cardinal directions.
robot.turn_to_heading(90)
wait(2, SECONDS)
robot.turn_to_heading(180)
wait(2, SECONDS)
robot.turn_to_heading(270)
wait(2, SECONDS)
robot.turn_to_heading(0)
wait(2, SECONDS)
stop#
stop leállítja a robot mozgását.
Usage:
robot.stop()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# Stop driving after 4 seconds.
robot.drive(FORWARD)
wait(4, SECONDS)
robot.stop()
Mutátorok#
set_timeout#
set_timeout beállítja, hogy a robot hány másodpercig próbáljon meg befejezni egy mozgást. Ha a robot nem tudja befejezni ennyi idő alatt, akkor abbahagyja 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:
robot.set_timeout(time, unit)
Paraméterek |
Leírás |
|---|---|
|
A mozgáshoz szükséges idő. Ez lehet egész vagy tizedes tört. |
|
Az időegység: |
# Turn right after driving for 1 second.
robot.set_timeout(1, SECONDS)
robot.drive_for(FORWARD, 1000, MM)
robot.turn_for(RIGHT, 90)
set_heading#
set_heading a robot aktuális irányát egy új irányé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á.
Usage:
robot.set_heading(heading)
Paraméterek |
Leírás |
|---|---|
|
A robot számára beállítandó irányérték fokban. |
# Face the new 0 degree heading.
robot.set_heading(90)
robot.turn_to_heading(0)
Getterek#
is_stopped#
is_stopped egy Boolean értéket ad vissza, amely jelzi, hogy a robot mozgása leállt-e.
True— A robot leállt.False— A robot még mindig mozog.
Usage:
robot.is_stopped()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# Glow blue after a crash.
robot.drive_until(FORWARD)
while True:
if robot.is_stopped():
robot.led.glow(BLUE)
else:
robot.led.glow(GREEN)
wait(0.05, SECONDS)
get_heading#
get_heading Visszaadja a robot aktuális szögirányát egész számként 0 és 359 fok között.
A robot kezdő iránya 0 fok.
Usage:
robot.get_heading()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# Display the heading after turning.
robot.turn_for(RIGHT, 450)
console.print(robot.get_heading())