Kontrola#

Wstęp#

Sterowanie w Pythonie pozwala Ci powiedzieć robotowi, kiedy ma czekać, kiedy powtórzyć czynności, jak podejmować decyzje i kiedy zakończyć projekt.

Poniżej znajduje się lista dostępnych kontrolek, zawierająca metody i podstawowe słowa kluczowe języka Python:

  • wait – Wstrzymuje projekt na określony czas.

  • for – Powtarza kod dla każdego elementu w sekwencji.

  • if – Uruchamia kod, jeśli warunek jest prawdziwy.

  • if/else – uruchamia inny kod w zależności od warunku.

  • if/elif/else – Sprawdza wiele warunków w kolejności.

  • while – Powtarza kod, dopóki warunek jest spełniony.

  • break – Natychmiast opuszcza pętlę.

  • program_stop – Kończy działający program.

  • pass – Symbol zastępczy używany, gdy nie jest wymagana żadna akcja.

Czekać#

wait zatrzymuje się na określony czas przed przejściem do następnego wiersza kodu.

Usage:
wait(time, units)

Parametry

Opis

time

Czas oczekiwania, wyrażony jako dodatnia liczba całkowita lub ułamek dziesiętny.

units

Jednostka reprezentująca czas oczekiwania: MSEC (domyślnie) – milisekundy lub SECONDS

# Move the arm to the desired position and then blink the signal tower
arm.move_to(40, 140, 210, False)
wait(1, SECONDS)
signal_tower.set_color(SignalTower.BLUE, SignalTower.BLINK)

Do#

for powtarza zestaw działań określoną liczbę razy. for można stosować do pętli po elementach na listach, krotkach, słownikach, zestawach, ciągach znaków lub do wykonania określonej liczby pętli z range.

Użycie:

for value in expression_list:
    pass

Komponenty

Opis

value

Tymczasowa zmienna przechowująca bieżący element iteracji.

expression_list

Zbiór elementów podlegających pętli (np. lista, ciąg znaków, zakres).

# Move the arm 4 times by 100 millimeters on the y axis
for index in range(4):
    arm.move_inc(0, 100, 0)

Jeśli#

if uruchamia wcięty blok kodu, jeśli warunek wynosi True.

Stosowanie:

if condition:
    pass

Komponenty

Opis

condition

Wyrażenie lub zmienna sprawdzana podczas wykonywania instrukcji. Jeśli wynosi True, wykonywany jest kod wewnątrz bloku if ; jeśli wynosi False, blok jest pomijany.

# Display the time until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
    print("\033[2J")
    print(brain.timer_time(SECONDS))
    wait(50, MSEC)
    if arm.is_done():
        brain.timer_reset()

jeśli/w przeciwnym razie#

if i else określa, który wcięty blok kodu zostanie uruchomiony na podstawie tego, czy warunek jest True lub False.

Stosowanie:

if condition:
    pass
else:
    pass

Komponenty

Opis

condition

Wyrażenie lub zmienna sprawdzana podczas wykonywania instrukcji. Jeśli wartość wynosi True, wykonywany jest kod wewnątrz bloku if ; jeśli wartość wynosi False, wykonywany jest kod wewnątrz bloku else.

# Display the time until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
    if arm.is_done():
        brain.timer_reset()
    else:
        print("\033[2J")
        print(brain.timer_time(SECONDS))
    wait(50, MSEC)

jeśli/elif/w przeciwnym razie#

Struktura if/elif/else wybiera, który wcięty blok kodu zostanie uruchomiony na podstawie warunków:

  • if uruchamia swój blok, jeśli warunek jest True.

  • elif sprawdza dodatkowe warunki tylko wtedy, gdy wszystkie poprzednie warunki są fałszywe False. Można użyć wielu instrukcji elif.

  • else uruchamia blok tylko wtedy, gdy żaden z poprzednich warunków nie jest spełniony True.

Stosowanie:

if condition:
    pass
elif condition:
    pass
else:
    pass

Komponenty

Opis

condition

Wyrażenie lub zmienna sprawdzana podczas wykonywania instrukcji. Pierwszy warunek, który wynosi True określa, który blok zostanie wykonany; jeśli żaden warunek nie jest równy True, uruchamiany jest blok else.

# Change the signal tower light if arm can reach to the desired position
while True:
    if arm.can_arm_reach_to(200, 200, 200):
        signal_tower.set_color(SignalTower.BLUE, SignalTower.BLINK)
    elif arm.can_arm_reach_to(300, 300, 300):
        signal_tower.set_color(SignalTower.GREEN, SignalTower.BLINK)
    else:
        signal_tower.set_color(SignalTower.ALL, SignalTower.OFF)
    wait(50, MSEC)

chwila#

while powtarza kod, dopóki warunek jest TrueMożna go również używać jako „forever”, używając True jako warunku, lub jako „wait until”, dodając not do warunku, jak pokazano w poniższych przykładach.

Stosowanie:

while condition:
    pass

Komponenty

Opis

condition

Wyrażenie lub zmienna sprawdzana przed każdą iteracją. Jeśli wynosi True, pętla jest kontynuowana; jeśli wynosi False, pętla się zatrzymuje.

# Display the time until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
    if arm.is_done():
        break
    else:
        print("\033[2J")
        print(brain.timer_time(SECONDS))
    wait(50, MSEC)

# Blink blue light until the move is completed
signal_tower.set_color(SignalTower.BLUE, SignalTower.BLINK)
arm.move_to(-100, 200, 100, False)
while not arm.is_done():
    wait(0.2, SECONDS)
signal_tower.set_color(SignalTower.BLUE, SignalTower.ON)

przerwa#

break powoduje natychmiastowe wyjście z pętli. break może zostać użyte do opuszczenia pętli, która w przeciwnym razie działałaby w nieskończoność.

# Display the time until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
    if arm.is_done():
        break
    else:
        print("\033[2J")
        print(brain.timer_time(SECONDS))
    wait(50, MSEC)

zatrzymanie_programu#

program_stop kończy działający projekt.

Usage:
brain.program_stop()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# Stop the project until the move is completed
arm.move_to(-100, 200, 100, False)
while True:
    if arm.is_done():
        break
    else:
        print("\033[2J")
        print(brain.timer_time(SECONDS))
    wait(50, MSEC)
brain.program_stop()

przechodzić#

Przebieg pass jest symbolem zastępczym dla przyszłego kodu i można go używać w celu uniknięcia błędów w pustych pętlach, warunkach i funkcjach.

if condition:
    pass

def function():
    pass