Ελεγχος#

Εισαγωγή#

Το Control στην Python σάς επιτρέπει να λέτε στο ρομπότ πότε να περιμένει, πότε να επαναλαμβάνει ενέργειες, πώς να λαμβάνει αποφάσεις και πότε να τερματίζει το έργο.

Παρακάτω είναι μια λίστα με τα διαθέσιμα στοιχεία ελέγχου, συμπεριλαμβανομένων μεθόδων και βασικών λέξεων-κλειδιών Python:

  • wait – Pauses the project for a given time.

  • for – Repeats code for each item in a sequence.

  • if – Runs code if a condition is true.

  • if/else – Runs different code depending on a condition.

  • if/elif/else – Checks multiple conditions in order.

  • while – Repeats code while a condition is true.

  • break – Exits a loop immediately.

  • quit – Ends the running project.

  • pass – Placeholder used when no action is needed.

wait#

wait pauses for a specific amount of time before moving to the next line of code.

Usage:
wait(time, units)

Παράμετροι

Περιγραφή

time

Ο χρόνος αναμονής, ως θετικός ακέραιος αριθμός ή δεκαδικός αριθμός.

units

The unit that represents the wait time: MSEC (default) – milliseconds, or SECONDS

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

for#

for repeats a set of actions a specific number of times. for can be used to loop through items in lists, tuples, dictionaries, sets, strings, or for a specified amount of loops with range.

Χρήση:

for value in expression_list:
    pass

Στοιχεία

Περιγραφή

value

Μια προσωρινή μεταβλητή που αποθηκεύει το τρέχον στοιχείο στην επανάληψη.

expression_list

Η συλλογή στοιχείων που επαναλαμβάνονται (π.χ. λίστα, συμβολοσειρά, εύρος).

# 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 runs the indented block of code if the condition is True.

Χρήση:

if condition:
    pass

Στοιχεία

Περιγραφή

condition

An expression or variable that is checked when the statement runs. If it is True, the code inside the if block executes; if it is False, the block is skipped.

# 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 and else determine which indented block of code runs based on whether the condition is True or False.

Χρήση:

if condition:
    pass
else:
    pass

Στοιχεία

Περιγραφή

condition

An expression or variable that is checked when the statement runs. If it is True, the code inside the if block executes; if it is False, the code inside the else block executes instead.

# 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#

The if/elif/else structure selects which indented block of code runs based on conditions:

  • if runs its block if the condition is True.

  • elif checks additional conditions only if all previous conditions are False. Multiple elif statements can be used.

  • else runs its block only if none of the previous conditions are True.

Χρήση:

if condition:
    pass
elif condition:
    pass
else:
    pass

Στοιχεία

Περιγραφή

condition

An expression or variable that is checked when the statement runs. The first condition that is True determines which block executes; if none are True, the else block runs.

# 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 repeatedly runs code as long as the condition is True. It can also be used like a “forever” by using True as the condition, or a “wait until” by adding not to the condition, as shown in the examples below.

Χρήση:

while condition:
    pass

Στοιχεία

Περιγραφή

condition

An expression or variable that is checked before each iteration. If it is True, the loop continues; if it is False, the loop stops.

# 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 exits a loop immediately. break can be used to leave loops that otherwise would loop forever.

# 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 ends a running project.

Usage:
quit()

Παράμετροι

Περιγραφή

Αυτή η μέθοδος δεν έχει παραμέτρους.

# 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#

pass is a placeholder for future code and can be used to avoid errors in empty loops, conditionals, and functions.

if condition:
    pass

def function():
    pass