Hnací ústrojí#
Zavedení#
Robot 123 má pohon dvou kol, který mu umožňuje jízdu a otáčení. Metody pohonu řídí, jak se robot pohybuje.
Pohonný systém dokáže měřit vzdálenost dvěma způsoby: v krocích a mm (milimetrech). Jeden krok je jeden čtvereček na poli 123.
Existuje mnoho způsobů, jak kódovat hnací ústrojí. Níže je uveden seznam všech metod kódování hnacího ústrojí:
Akce – Pohyb a otáčení robota.
drive— Pohybuje robota vpřed nebo vzad natrvalo.drive_for— Pohybuje robotem vpřed nebo vzad o určitou vzdálenost.drive_until— Pohybuje robota vpřed nebo vzad, dokud nezaznamená předmět, náraz nebo čáru.turn— Otočí robota doleva nebo doprava natrvalo.turn_for— Otočí robota doleva nebo doprava o určitý počet stupňů.turn_to_heading— Otočí robota tak, aby směřoval v určitém směru, od -359 do 359 stupňů.stop— Zastaví pohyb robota.
Mutátory – Upravte nastavení hnacího ústrojí.
set_timeout— Nastaví, jak dlouho se bude robot snažit dokončit pohyb.set_heading— Změní aktuální směr robota na nový směr.
Gettery – Kontrola stavu pohybu.
is_stopped— Vrátí, zda se robot zastavil, jako booleovskou hodnotu.get_heading— Vrátí aktuální směr robota od 0 do 359 stupňů.
Akce#
drive#
drive pohybuje robotem vpřed nebo vzad navždy. Robot se bude pohybovat, dokud mu nebude přidělena jiná akce, například otočení nebo zastavení.
Usage:
robot.drive(direction)
Parametry |
Popis |
|---|---|
|
Směr pohybu robota: |
# Drive for 2 seconds.
robot.drive(FORWARD)
wait(2, SECONDS)
robot.stop()
drive_for#
drive_for pohybuje robotem vpřed nebo vzad o určitou vzdálenost. Projekt počká, dokud se robot nedokončí s pohybem, než se spustí další řádek kódu.
Usage:
robot.drive_for(direction, distance, unit)
Parametry |
Popis |
|---|---|
|
Směr pohybu robota: |
|
Vzdálenost, kterou robot urazí. Může to být celé nebo desetinné číslo. |
|
Jednotka vzdálenosti: |
# Drive back and forth.
robot.drive_for(FORWARD, 3, STEPS)
robot.drive_for(REVERSE, 3, STEPS)
drive_until#
drive_until pohybuje robotem vpřed nebo vzad, dokud nezaznamená předmět, náraz nebo čáru.
Usage:
robot.drive_until(direction)
Parametry |
Popis |
|---|---|
|
Směr pohybu robota: |
# Reverse after a crash.
robot.drive_until(FORWARD)
robot.drive_for(REVERSE, 1, STEPS)
turn#
turn otáčí robota doleva nebo doprava navždy. Robot se bude otáčet, dokud nedostane další akci, například jízdu nebo zastavení.
Usage:
robot.turn(direction)
Parametry |
Popis |
|---|---|
|
Směr otáčení robota: |
# Turn for 2 seconds.
robot.turn(RIGHT)
wait(2, SECONDS)
robot.stop()
turn_for#
turn_for otočí robota doleva nebo doprava o určitý počet stupňů. Projekt počká, dokud se robot nedotočí, než se spustí další řádek kódu.
Usage:
robot.turn_for(direction, degrees)
Parametry |
Popis |
|---|---|
|
Směr otáčení robota: |
|
Počet stupňů, o které se má otočit. Může to být celé nebo desetinné číslo. |
# Turn left, then turn around to the right.
robot.turn_for(LEFT, 90)
robot.turn_for(RIGHT, 180)
turn_to_heading#
turn_to_heading otočí robota směrem k určitému směru od -359 do 359 stupňů. Robot se otočí nejkratším směrem k dosažení cílového směru.
Výchozí směr je 0 stupňů.
Projekt počká, dokud se robot nedotočí, než se spustí další řádek kódu.
Usage:
robot.turn_to_heading(heading)
Parametry |
Popis |
|---|---|
|
Směr, kterým by se měl robot otočit, od -359 do 359 stupňů. |
# 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 zastaví pohyb robota.
Usage:
robot.stop()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# Stop driving after 4 seconds.
robot.drive(FORWARD)
wait(4, SECONDS)
robot.stop()
Mutátory#
set_timeout#
set_timeout nastavuje, po kolik sekund se bude robot snažit dokončit pohyb. Pokud robot nedokončí pohyb v tomto čase, přestane se snažit a přesune se na další řádek kódu. Tím se zabrání tomu, aby se robot zasekl na pohybu.
Usage:
robot.set_timeout(time, unit)
Parametry |
Popis |
|---|---|
|
Čas, který je potřeba pro pohyb. Může se jednat o celé nebo desetinné číslo. |
|
Časová jednotka: |
# 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 změní aktuální směr robota na novou hodnotu směru.
Například pokud se robot otočil čelem doprava, nastavení kurzu na 0 stupňů způsobí, že tato poloha směřující doprava bude novými 0 stupni.
Usage:
robot.set_heading(heading)
Parametry |
Popis |
|---|---|
|
Hodnota směru ve stupních, která se má nastavit pro robota. |
# Face the new 0 degree heading.
robot.set_heading(90)
robot.turn_to_heading(0)
Gettery#
is_stopped#
is_stopped vrací hodnotu Boolean, která hlásí, zda se robot zastavil.
True— Robot je zastaven.False— Robot se stále pohybuje.
Usage:
robot.is_stopped()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# 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#
Funkce get_heading vrací směr, kterým se robot aktuálně nachází, jako celé číslo od 0 do 359 stupňů.
Výchozí směr robota je 0 stupňů.
Usage:
robot.get_heading()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# Display the heading after turning.
robot.turn_for(RIGHT, 450)
console.print(robot.get_heading())