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

direction

Kierunek, w którym porusza się robot: FORWARD lub REVERSE.

# 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

direction

Kierunek, w którym porusza się robot: FORWARD lub REVERSE.

distance

Odległość pokonywana przez robota. Może być liczbą całkowitą lub dziesiętną.

unit

Jednostka odległości: MM (milimetry) lub STEPS (jeden kwadrat w polu 123).

# 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

direction

Kierunek, w którym porusza się robot: FORWARD lub REVERSE.

# 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

direction

Kierunek, w którym obraca się robot: LEFT lub RIGHT.

# 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

direction

Kierunek, w którym obraca się robot: LEFT lub RIGHT.

degrees

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

heading

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

time

Czas potrzebny na wykonanie ruchu. Może to być liczba całkowita lub dziesiętna.

unit

Jednostka czasu: MSEC lub SECONDS.

# 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

heading

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())