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ę.

  • quit – Kończy bieżący projekt.

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

wait#

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

# Fly for 1 second.
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()

for#

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 back and forth four times then land.
drone.take_off(climb_to=500)
for i in range(4):
    drone.move_for(direction=0, distance=500, velocity=50, units=MM)
    wait(1, SECONDS)
    drone.move_for(direction=180, distance=500, velocity=50, units=MM)
    wait(1, SECONDS)
drone.land()

# Print each item in a list.
colors = ["Red", "Green", "Blue"]
for color in colors:
    controller.screen.print(color)
    controller.screen.next_row()

if#

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.

# Take a picture when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
    # Move with controller
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )

    if controller.button5.pressing():
        drone.camera.capture_image(FORWARD_CAMERA)

    wait(5, MSEC)

if/else#

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.

# Climb when the left joystick is moved up.
drone.take_off(climb_to=500)
while True:
    if controller.axis1.position() > 0:
        drone.climb(direction=UP, velocity=50)
    else:
        drone.hover()
    wait(5, MSEC)

if/elif/else#

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 z nich nie ma wartości True, uruchamiany jest blok else.

# Move the drone up or down based on the position of the joystick.
drone.take_off(climb_to=500)
while True:
    position = controller.axis1.position()
    if position > 0:
        drone.climb(direction=UP, velocity=50)
    elif position < 0:
        drone.climb(direction=DOWN, velocity=50)
    else:
        drone.hover()
    wait(5, MSEC)

while#

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.

# Hover at 200 mm.
drone.take_off(climb_to=500)
while drone.range.get_distance(DOWNWARD_RANGE, MM) > 200:
    drone.climb(direction=DOWN, velocity=10)
drone.hover()
wait(3, SECONDS)
drone.land()

break#

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ść.

# Land when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
    # Move with controller
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    if controller.button5.pressing():
        break
    wait(5, MSEC)
drone.land()

quit#

quit projektu.

Usage:
quit()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# Land when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
    # Move with controller
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    if controller.button5.pressing():
        quit()
    wait(5, MSEC)
drone.land()

pass#

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