Skip to main content

Lección 1: ¿Qué es un algoritmo?

En esta lección, aprenderás qué es un algoritmo y cómo el uso de algoritmos en VEXcode VR Python te permite crear proyectos con comportamientos más diversos. Los proyectos algorítmicos instruyen al robot de realidad virtual para que responda a su entorno, lo que será necesario para resolver el Dynamic Castle Crasher Challenge.

Resultados de aprendizaje

  • Identifica que los algoritmos se componen de secuencia, selección e iteración (bucles).
  • Identificar que los algoritmos son secuencias precisas de instrucciones, implementadas mediante lenguajes de programación, para procesos a realizar por un Robot VR.

Algoritmos

Los algoritmos son secuencias precisas de instrucciones, implementadas utilizando lenguajes de programación, como VEXcode VR Python, para que los procesos sean llevados a cabo por un robot VR.

Los elementos básicos de un algoritmo son la secuencia, la selección y la iteración.

  • Secuencia : el orden en que los comportamientos y los comandos se combinan en un proyecto para producir un resultado deseado.     
  • Selección : el uso de declaraciones condicionales en un proyecto. Declaraciones condicionales, como si o si de lo contrario afectan el flujo del proyecto de un proyecto.
  • Iteración : los algoritmos a menudo usan la repetición para ejecutar pasos un cierto número de veces, o hasta que se cumpla una determinada condición. Esto también se conoce como "bucle". La iteración puede cambiar el flujo del proyecto repitiendo un comportamiento un número específico de veces o hasta que se cumpla una condición.  

Este proyecto de ejemplo del desafío de la Unidad 8 es un ejemplo de un algoritmo. Incluye una combinación de bucles, datos de sensores y comandos reunidos en una secuencia para resolver el Desafío del Desplazador de Discos.

def main():
	para el valor en el rango(3):
		
		para el valor en el rango(3):
			# 1. Conduzca al disco usando Down Eye Sensor
			mientras no estédown_eye.near_object ()
				: 				drivetrain.drive(FORWARD)
				wait(5, MSEC)
			drivetrain.stop()
			
			# 2. Recoge el disco
			magnet.energize(BOOST)
			
			# 3. Conduzca hasta la meta usando el sensor
			de distancia 			drivetrain.turn_to_heading (180, GRADOS)
			mientras front_distance.get_distance (MM) > 200
				: 				drivetrain.drive (FORWARD)
				wait(5, MSEC)
			drivetrain.stop()
			
			# 4. Suelte el disco en
			goal 			magnet.energize (DROP
			) 			drivetrain.drive_for(REVERSE, 100, MM)
			
			# 5. Gire para enfrentar el siguiente drivetrain
			de 			disco.turn_to_heading (0, GRADOS)
			espere(5, MSEC)
			
		# 6. Gire y conduzca hasta la siguiente meta
		drivetrain.turn_to_heading(90, GRADOS)
		drivetrain.drive_for(ADELANTE, 800, MM)
		
		# 7. Gire a discos
		drivetrain.turn_to_heading(0, GRADOS)
		
	espere(5, MSEC)

Secuencia

La forma en que se secuencian y combinan los comandos determina el comportamiento del robot de realidad virtual. En este ejemplo, cada conjunto de comportamientos necesarios para mover un disco se ejecuta tres veces, luego el Robot VR se mueve al siguiente conjunto de discos y repite los comportamientos, hasta que todos los discos vuelven a los objetivos. Un diagrama de flujo que muestra la secuencia de recopilación de discos del robot. A la izquierda, el código muestra el bucle principal que se repite tres veces. Las flechas cíclicas rojas a la derecha indican bucles continuos que se ejecutan hasta que se cumplen las condiciones del sensor (como encontrar o agarrar un disco), mientras que las flechas verdes muestran las transiciones entre recoger el disco, moverlo a la meta, liberarlo y reposicionarlo para el siguiente ciclo.

Selección

Este proyecto también incluye una selección que determina las partes del proyecto que se ejecutan en función de las condiciones del sensor. En primer lugar, el sensor Down Eye se utiliza para determinar cuándo el robot VR está cerca de un disco, para que el disco pueda ser recogido. Luego, el sensor de distancia se utiliza para determinar cuándo el robot VR está por encima de la meta, por lo que el disco se puede dejar.  El fragmento de código de la Unidad 8 incluye dos condiciones destacadas que controlan el movimiento del robot en función de las lecturas del sensor. La primera condición resaltada, aunque no sea down_eye.near_object(), indica al robot que avance hasta que el sensor Down Eye detecte un objeto cercano, lo que le permite acercarse a un disco antes de detenerse. La segunda condición resaltada, mientras front_distance.get_distance (MM) > 200, indica al robot que avance hasta que esté a menos de 200 milímetros de la meta, utilizando el sensor de distancia frontal para la medición de proximidad. Estas condiciones crean bucles que hacen que el robot se detenga solo cuando se cumple cada condición específica del sensor.

En el primer bucle while , la selección de los comandos que se ejecutarán se basa en los valores del sensor informados por el sensor Down Eye.

  • Mientras no se detecte ningún objeto, el robot VR avanzará.
  • Mientras se detecta un objeto, el robot VR se detendrá.

En el segundo bucle while , la selección de qué comando se ejecutará se basa en los valores del sensor informados por el sensor de distancia.

  • Si bien la distancia informada es superior a 200 milímetros (mm), el robot VR avanzará.
  • Si bien la distancia informada es inferior a 50 milímetros (mm), el robot VR dejará de conducir y pasará a la siguiente parte del proyecto para energizar el electroimán.

Iteración

El proyecto utiliza la iteración, o "bucles", para repetir acciones y verificar repetidamente los valores del sensor informados. Este proyecto contiene bucles anidados: un bucle para que el robot de realidad virtual pueda recoger los tres discos de un color; y un segundo bucle para repetir ese proceso para recoger todos los discos en el patio de recreo. El código utiliza dos bucles anidados para controlar el proceso de recopilación de discos del robot. El bucle exterior, etiquetado como Bucle para recoger discos de todos los colores, itera a través de cada color de disco. Dentro de él, el bucle interior, etiquetado como Bucle para recoger 3 discos de un color, se repite tres veces para recoger y colocar tres discos del color actual. Esta configuración garantiza que el robot recoja tres discos de cada color antes de pasar al siguiente color, y que cada iteración de bucle se centre en la recolección y colocación sistemáticas.

Este algoritmo está diseñado para recopilar y devolver tres discos, tres veces, para completar el Desafío del desplazador de discos. La misma lógica que se aplica para recopilar y mover discos repetidamente usando secuencia, selección e iteración también se puede aplicar a otros desafíos, como el Dynamic Castle Crasher Challenge.

Preguntas

Seleccione un enlace a continuación para acceder al cuestionario de la lección.

Google Doc / .docx / .pdf