Układ napędowy#
Wstęp#
Robot 123 ma dwukołowy układ napędowy, który pozwala mu jeździć i skręcać. Metody układu napędowego kontrolują sposób poruszania się robota.
Układ napędowy może mierzyć odległość na dwa sposoby: w krokach i mm (milimetrach). Jeden krok to jeden kwadrat na polu 123.
Istnieje wiele sposobów kodowania układu napędowego. Poniżej znajduje się lista wszystkich metod kodowania układu napędowego:
Akcje — poruszanie i obracanie robotem.
drive— Przesuwa robota do przodu lub do tyłu w nieskończoność.drive_for— Przesuwa robota do przodu lub do tyłu na określoną odległość.drive_until— Przesuwa robota do przodu lub do tyłu, aż wykryje obiekt, zderzenie lub linię.turn— Obraca robota w lewo lub prawo na zawsze.turn_for— Obraca robota w lewo lub prawo o określoną liczbę stopni.turn_to_heading— Obraca robota w kierunku określonego kierunku od -359 do 359 stopni.stop— Zatrzymuje ruch robota.
Mutatory — Dostosuj ustawienia układu napędowego.
set_timeout— Ustawia, jak długo robot będzie próbował zakończyć ruch.set_heading— Zmienia aktualny kierunek robota na nowy kierunek.
Gettery — sprawdź status ruchu.
is_stopped— Zwraca wartość logiczną, czy robot przestał się poruszać.get_heading— Zwraca aktualny kierunek robota od 0 do 359 stopni.
Akcje#
drive#
Napęd drive porusza robota do przodu lub do tyłu w nieskończoność. Robot będzie się poruszał, dopóki nie otrzyma innej akcji, takiej jak obrót lub zatrzymanie.
Usage:
robot.drive(direction)
Parametry |
Opis |
|---|---|
|
Kierunek, w którym porusza się robot: |
# Drive for 2 seconds.
robot.drive(FORWARD)
wait(2, SECONDS)
robot.stop()
drive_for#
drive_for przesuwa robota do przodu lub do tyłu o określoną odległość. Projekt będzie czekał, aż robot zakończy ruch, zanim uruchomi się kolejny wiersz kodu.
Usage:
robot.drive_for(direction, distance, unit)
Parametry |
Opis |
|---|---|
|
Kierunek, w którym porusza się robot: |
|
Odległość pokonywana przez robota. Może być liczbą całkowitą lub dziesiętną. |
|
Jednostka odległości: |
# Drive back and forth.
robot.drive_for(FORWARD, 3, STEPS)
robot.drive_for(REVERSE, 3, STEPS)
drive_until#
drive_until przesuwa robota do przodu lub do tyłu, aż wykryje obiekt, zderzenie lub linię.
Usage:
robot.drive_until(direction)
Parametry |
Opis |
|---|---|
|
Kierunek, w którym porusza się robot: |
# Reverse after a crash.
robot.drive_until(FORWARD)
robot.drive_for(REVERSE, 1, STEPS)
turn#
turn obraca robota w lewo lub w prawo w nieskończoność. Robot będzie się obracał, dopóki nie zostanie mu przydzielona inna czynność, taka jak jazda lub zatrzymanie.
Usage:
robot.turn(direction)
Parametry |
Opis |
|---|---|
|
Kierunek, w którym obraca się robot: |
# Turn for 2 seconds.
robot.turn(RIGHT)
wait(2, SECONDS)
robot.stop()
turn_for#
turn_for obraca robota w lewo lub w prawo o określoną liczbę stopni. Projekt będzie czekał, aż robot skończy się obracać, zanim uruchomi się kolejny wiersz kodu.
Usage:
robot.turn_for(direction, degrees)
Parametry |
Opis |
|---|---|
|
Kierunek, w którym obraca się robot: |
|
Liczba stopni obrotu. Może być liczbą całkowitą lub dziesiętną. |
# Turn left, then turn around to the right.
robot.turn_for(LEFT, 90)
robot.turn_for(RIGHT, 180)
turn_to_heading#
turn_to_heading obraca robota w określonym kierunku od -359 do 359 stopni. Robot obróci się w najkrótszym kierunku, aby osiągnąć docelowy kierunek.
Początkowy kurs wynosi 0 stopni.
Projekt będzie czekał, aż robot zakończy obracanie się, zanim zostanie uruchomiony kolejny wiersz kodu.
Usage:
robot.turn_to_heading(heading)
Parametry |
Opis |
|---|---|
|
Kierunek, w którym powinien być skierowany robot, od -359 do 359 stopni. |
# 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 zatrzymuje ruch robota.
Usage:
robot.stop()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Stop driving after 4 seconds.
robot.drive(FORWARD)
wait(4, SECONDS)
robot.stop()
Mutatory#
set_timeout#
set_timeout ustawia liczbę sekund, przez które robot będzie próbował zakończyć ruch. Jeśli robot nie zdoła zakończyć ruchu w tym czasie, przerwie próby i przejdzie do następnego wiersza kodu. Zapobiega to zablokowaniu ruchu przez robota.
Usage:
robot.set_timeout(time, unit)
Parametry |
Opis |
|---|---|
|
Czas potrzebny na wykonanie ruchu. Może to być liczba całkowita lub dziesiętna. |
|
Jednostka czasu: |
# 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 zmienia aktualny kierunek robota na nową wartość kierunku.
Na przykład, jeśli robot obrócił się w prawo, ustawienie kierunku na 0 stopni spowoduje, że pozycja skierowana w prawo stanie się nowym 0 stopniami.
Usage:
robot.set_heading(heading)
Parametry |
Opis |
|---|---|
|
Wartość kierunku (w stopniach), którą należy ustawić dla robota. |
# Face the new 0 degree heading.
robot.set_heading(90)
robot.turn_to_heading(0)
Getters#
is_stopped#
is_stopped zwraca Boolean informujący, czy robot przestał się poruszać.
True— Robot jest zatrzymany.False— Robot nadal się porusza.
Usage:
robot.is_stopped()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# 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 zwraca aktualny kierunek, w którym zwrócony jest robot, jako liczbę całkowitą z zakresu od 0 do 359 stopni.
Początkowy kierunek robota wynosi 0 stopni.
Usage:
robot.get_heading()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Display the heading after turning.
robot.turn_for(RIGHT, 450)
console.print(robot.get_heading())