Control#
Introducción#
Control en Python te permite decirle al robot cuándo esperar, cuándo repetir acciones, cómo tomar decisiones y cuándo finalizar el proyecto.
A continuación se muestra una lista de controles disponibles, incluidos los métodos y las palabras clave principales de Python:
wait– Pausa el proyecto durante un tiempo determinado.for– Repite el código para cada elemento en una secuencia.if– Ejecuta el código si una condición es verdadera.if/else: ejecuta un código diferente dependiendo de una condición.if/elif/else– Comprueba varias condiciones en orden.while– Repite el código mientras una condición es verdadera.break– Sale de un bucle inmediatamente.quit– Finaliza el proyecto en ejecución.pass– Marcador de posición utilizado cuando no se necesita ninguna acción.
wait#
wait pausas durante un tiempo específico antes de pasar a la siguiente línea de código.
Usage:
wait(time, units)
Parámetros |
Descripción |
|---|---|
|
La cantidad de tiempo para esperar, como un número entero positivo o decimal. |
|
La unidad que representa el tiempo de espera: |
# Fly for 1 second.
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
for#
for repite un conjunto de acciones un número específico de veces. for puede usar para recorrer elementos en listas, tuplas, diccionarios, conjuntos, cadenas o para una cantidad específica de bucles con range.
Uso:
for value in expression_list:
pass
Componentes |
Descripción |
|---|---|
|
Variable temporal que almacena el elemento actual en la iteración. |
|
La colección de elementos que se repiten (por ejemplo, lista, cadena, rango). |
# 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 ejecuta el bloque de código con sangría si la condición es True.
Uso:
if condition:
pass
Componentes |
Descripción |
|---|---|
|
Una expresión o variable que se comprueba cuando se ejecuta la instrucción. Si es |
# 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 y else determinan qué bloque de código con sangría se ejecuta en función de si la condición es True o False.
Uso:
if condition:
pass
else:
pass
Componentes |
Descripción |
|---|---|
|
Una expresión o variable que se comprueba cuando se ejecuta la instrucción. Si es |
# 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#
La estructura if/elif/else selecciona qué bloque de código con sangría se ejecuta en función de las condiciones:
ifejecuta su bloque si la condición esTrue.elifcomprueba las condiciones adicionales solo si todas las condiciones anteriores sonelif. Se pueden usar múltiplesFalsesentencias elif.elseejecuta su bloque solo si ninguna de las condiciones anteriores esTrue.
Uso:
if condition:
pass
elif condition:
pass
else:
pass
Componentes |
Descripción |
|---|---|
|
Una expresión o variable que se comprueba cuando se ejecuta la instrucción. La primera condición que es |
# 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 repetidamente el código siempre que la condición sea True. También se puede usar como un “para siempre” usando True como condición, o un “esperar hasta” agregando not a la condición, como se muestra en los ejemplos a continuación.
Uso:
while condition:
pass
Componentes |
Descripción |
|---|---|
|
Una expresión o variable que se comprueba antes de cada iteración. Si es |
# 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 sale de un bucle inmediatamente. break puede usar para dejar bucles que de otro modo formarían un bucle para siempre.
# 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 finaliza un proyecto en ejecución.
Usage:
quit()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# 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 es un marcador de posición para el código futuro y se puede usar para evitar errores en bucles vacíos, condicionales y funciones.
if condition:
pass
def function():
pass