Skip to main content

Icono de la caja de herramientas del profesor Caja de herramientas para maestros : el propósito de esta actividad

Esta actividad presentará a los estudiantes el uso de declaraciones while y if para que el robot avance a menos que se presione la pantalla.

  • Esta actividad presentará a los estudiantes los condicionales y las instrucciones que hacen que el robot avance a menos que se presione la pantalla.
  • Para obtener más información sobre las instrucciones if y if-else u otras utilizadas en esta actividad, visite la información de ayuda dentro de VEXcode V5. Para obtener más información sobre esta herramienta de ayuda integrada, consulta el artículo sobre ayuda en Python.

Icono de la caja de herramientas del profesor Teacher Toolbox

¡Para obtener sugerencias sobre estrategias de enseñanza para esta sección, revise la columna Entrega de la Guía de ritmo para hacer o no hacer! (Google Doc / .docx / .pdf)

¡El Clawbot está listo para tomar decisiones!

Esta exploración le dará las herramientas para poder comenzar a crear algunos proyectos geniales que utilicen la declaración if-else.s.

  • Comandos de Python VEXcode V5 que se utilizarán en esta exploración: 
    • drivetrain.drive_for(ADELANTE)
    • brain.screen.pressing()
    • drivetrain.stop()
    • si condición:
    • else:
    • mientras que Verdadero:  
    • espera(5, SEGUNDOS)

Puede utilizar la información de Ayuda dentro de VEXcode V5 para obtener información sobre los comandos de Python.

VEXcode V5 con una unidad para comando escrita en el espacio de trabajo a la izquierda y la información de Ayuda abierta a la derecha. La Ayuda muestra una definición del comando e información sobre cómo se usa.

Asegúrese de tener el hardware necesario, su portátil de ingeniería y VEXcode V5 listos.

Materiales requeridos:
Cantidad Materiales necesarios
1

Kit de inicio VEX V5 Classroom (con firmware actualizado)

1

VEXcode V5 (última versión, Windows, macOS)

1

Cuaderno de ingeniería

1

Plantilla Clawbot (transmisión de 2 motores, sin giroscopio)

Icono de consejos del profesor Consejos para profesores

Si esta es la primera vez que el estudiante usa VEXcode V5, puede consultar los tutoriales en cualquier momento durante esta exploración. Los tutoriales se encuentran en la barra de herramientas.

Barra de herramientas VEXcode V5 con tutoriales resaltados en un cuadro rojo. La barra de herramientas muestra, de izquierda a derecha, el logotipo de V5, un icono de globo terráqueo, Archivo y Tutoriales. A la derecha de los tutoriales hay iconos y funcionalidades adicionales.

Paso 1: Comencemos con una comprensión de las declaraciones condicionales 

Antes de comenzar a programar con condicionales, lea el artículo que explica las declaraciones if-else. El artículo se puede encontrar aquí (Google Doc / .docx / .pdf).
Screenshot of the linked article titled Using If else statements in VEXcode V5 Python.
Para obtener una lista de operadores para usar en las instrucciones if-else, lea el artículo que explica los booleanos. Este artículo se puede encontrar aquí (Google Doc/.docx/.pdf).

Captura de pantalla del artículo vinculado titulado Using Booleans in VEXcode V5 Python.

Paso 2: Comencemos a programar con declaraciones condicionales.

  • Abra el proyecto de ejemplo de plantilla Clawbot (transmisión de 2 motores, sin giroscopio).

    Ejemplo de proyectos en VEXcode V5 con el filtro de plantillas y el motor sin giroscopio Clawbot Drivetrain 2 resaltado con un cuadro rojo que indica qué proyecto abrir.

     

  • Construye el proyecto a continuación.
# Begin project code
while True:
    drivetrain.drive(FORWARD)
    if brain.screen.pressing():
        drivetrain.stop()
        while brain.screen.pressing():
            wait(5, MSEC)
    wait(5, MSEC)

Haga lo siguiente en su cuaderno de ingeniería:

  • Explica qué hace el Clawbot en el proyecto. Tendrá que explicar más que el hecho de que crea un botón de parada. Explique qué instrucciones hacen que el Clawbot haga qué.
  • Escribe un resumen de una oración que capture lo que hace el proyecto.
  • Pruebe para ver si su predicción de lo que el proyecto tiene que hacer el Clawbot es correcta.
  • Nombra el proyecto CreatingAStopButton. Descargue y ejecute el proyecto en el Clawbot.
    El cuadro de diálogo Nombre del proyecto en la barra de herramientas de VEXcode V5 lee Crear un botón de parada y muestra que la ranura 1 está seleccionada.
  • Revisa tus explicaciones del proyecto y añade notas para corregirlas según sea necesario.

Icono de la caja de herramientas del profesor Caja de herramientas para maestros - Respuestas

Este proyecto hace que el robot avance continuamente, pero se detenga si se pulsa la pantalla. Lo hace mediante el uso de una instrucción "para siempre" (mientras es verdadera) para conducir y verificar continuamente. Si se pulsa la pantalla (Verdadero), el Clawbot deja de conducir.La función de los comandos en el proyecto Stop o Drive está etiquetada. La instrucción if está etiquetada como Checks if the condition is True - comprueba si se pulsa la pantalla. Los bloques con sangría debajo de él están etiquetados Si la condición es verdadera, ejecuta el bloque de códigos. El comando while Brain Screen Pressing está etiquetado para controlar la velocidad de procesamiento.

No se espera que los estudiantes entiendan por qué se utilizan los comandos while brain.screen.pressing (): y wait(5, MSEC). Explique que estos comandos son necesarios debido a la velocidad del flujo del programa del robot. Si no estuviera allí, los motores del Clawbot se comportarían como si el usuario estuviera presionando la pantalla una y otra vez a medida que recorre el proyecto. En su lugar, estas instrucciones detienen el flujo del programa y no hacen que el proyecto inicie el bucle nuevamente hasta que el usuario deje de presionar la pantalla.

La línea de pseudocódigo podría ser tan simple como: Avanzar hasta pulsar la pantalla.

Los cuadernos de ingeniería de los estudiantes se pueden mantener y calificar individualmente (Google Doc / .docx / .pdf) o en equipo (Google Doc / .docx / .pdf). Los enlaces anteriores proporcionan una rúbrica diferente para cada enfoque. Siempre que se incluya una rúbrica en la planificación educativa, es una buena práctica explicar la rúbrica o al menos dar copias a los estudiantes antes de que comience la actividad.

Paso 3: Comprender las afirmaciones while wait().

Observe que si se pulsa la pantalla de Brain, el flujo del proyecto se mueve rápidamente y el proyecto pasará a la siguiente instrucción, que es el  comandodrivetrain.stop ().

Por lo tanto, el proyecto necesita los comandos while y wait que le dicen al robot que permanezca detenido hasta que se libere la pantalla del cerebro. De lo contrario, la declaración Forever haría que el proyecto comenzara de nuevo.

while brain.screen.pressing():
	espera(5, MSEC)

Los comandos while y wait son necesarios debido a la velocidad del flujo del proyecto. Si no estuvieran allí, el proyecto pasaría a la siguiente instrucción antes de que el robot tuviera tiempo de responder.

Paso 4: Cambiar el proyecto.

Nuestro siguiente paso es cambiar el enunciado if a un enunciado if-else.

  • Comience guardando CreatingAStopButton  como el nuevo proyecto, StopOrDrive.El cuadro de diálogo Nombre del proyecto en la barra de herramientas VEXcode V5 lee Detener o Conducir y muestra que la ranura 1 está seleccionada.
  • Si necesitas ayuda para guardar un proyecto, consulta estos artículos.
  • A continuación, cree el  proyecto StopOrDrive que se muestra a continuación.
# Begin project code
while True:
    if brain.screen.pressing():
        drivetrain.stop()
        while brain.screen.pressing():
            wait(5, MSEC)
    else:
        drivetrain.drive(FORWARD)
    wait(5, MSEC)
  • Descarga StopOrDrive a la ranura 2 en tu Clawbot.

La ventana de selección de ranura está abierta en la barra de herramientas VEXcode V5, y la ranura 2 está seleccionada y resaltada con un cuadro rojo.

  • Para obtener ayuda para descargar y ejecutar un proyecto, consulta este artículo.
  • Pruebe CreatingAStopButton (Ranura 1) y luego pruebe StopOrDrive (Ranura 2) y compárelos para ver si hay alguna diferencia en el comportamiento del robot. Tenga en cuenta cualquier diferencia en su cuaderno de ingeniería

Icono de la caja de herramientas del profesor Caja de herramientas para maestros - Respuesta

Con respecto al comportamiento del robot, no debe haber diferencia entre los proyectos CreatingAStopButton  y StopOrDrive.

Si los estudiantes necesitan más ayuda para comprender las declaraciones if-else, consulte este artículo (Google Doc / .docx / .pdf).

Los dos proyectos hacen que el Clawbot se comporte de la misma manera. La única diferencia es el uso de la instrucción if-else en el proyecto StopOrDrive.
El uso de la instrucción if-else le permitirá añadir botones adicionales a la pantalla en las próximas actividades.

Amplía tu icono de aprendizaje Amplíe su aprendizaje

A medida que avance este Laboratorio STEM, los estudiantes desarrollarán proyectos que permitan que la pantalla del Clawbot funcione como una interfaz de usuario. En preparación para eso, desafíe a los estudiantes a descubrir cómo dibujar un rectángulo de color en la pantalla que funcione como un botón. Debido a que pulsar en cualquier parte de la pantalla es actualmente la condición, el botón debe ocupar toda la pantalla. Los estudiantes deben hacer que el proyecto transmita un evento para dibujar el botón cuando comience.

Indique a los estudiantes que primero aprendan cómo se organiza la pantalla del cerebro en un sistema de coordenadas. Tendrán que entender esto para establecer parámetros dentro de los comandos que usarán. Las coordenadas utilizadas corresponden al número de píxeles, no al número de la columna o fila. Este es el diseño de la pantalla:La cuadrícula de píxeles de la pantalla V5 Brain muestra 12 filas numeradas a lo largo del lado izquierdo, con la fila superior etiquetada como Fila 1 y la inferior como Fila 12. En la parte superior hay 48 columnas numeradas, con la Columna 1 etiquetada en el extremo izquierdo y la Columna 48 etiquetada en el extremo derecho. Las medidas totales de píxeles son de 480 px de ancho por 240 px de alto.

Los estudiantes deben planificar, probar y perfeccionar estos cambios en el proyecto mientras lo documentan en sus cuadernos de ingeniería. Para la rúbrica del cuaderno de ingeniería individual, haga clic en uno de los siguientes enlaces (Google Doc / .docx / .pdf), o haga clic en uno de los siguientes enlaces para los cuadernos del equipo (Google Doc / .docx / .pdf).

Aquí hay un ejemplo de solución: 

# Begin project code
draw = Event()

def draw_button():
    brain.screen.set_fill_color (Color.RED)
    brain.screen.draw_rectangle (0, 0, 480, 240)
    wait(1, SECONDS)

draw(draw_button)
while True:
    draw.broadcast ()
    drivetrain.drive (FORWARD)

    if brain.screen.pressing ():
        drivetrain.stop ()
        while brain.screen.pressing ():
            wait(5, MSEC)
    else:
        drivetrain.drive (FORWARD)
        
    wait(5, MSEC)

Como puede ver, el botón se dibuja para ocupar toda la pantalla comenzando en el origen (0, 0) y llenando los 480 píxeles horizontales (eje x) y los 240 píxeles verticales (eje y).