Skip to main content

Icono de la caja de herramientas del profesor Caja de herramientas para maestros - Esquema de la actividad

  • Esta exploración introducirá a los estudiantes a la programación de comportamientos repetitivos mediante el uso de bucles de repetición o eternos.

  • Aprender a programar usando bucles de repetición y para siempre permite a los estudiantes ahorrar tiempo al construir un proyecto que utiliza las mismas acciones repetidas. Para obtener más información sobre las instrucciones utilizadas en un proyecto de texto, visite la información de ayuda.

¡El Clawbot V5 está listo para moverse!

Esta exploración te dará las herramientas para poder comenzar a crear algunos proyectos geniales que usen bucles.

  • Instrucciones de VEXcode V5 que se utilizarán en esta exploración:

    • Drivetrain.driveFor(adelante, 300, mm);

    • Transmisión.turnFor(derecha, 90, grados);

    • ClawMotor.spinFor(marcha atrás, 70, grados);

    • ArmMotor.spinFor(adelante, 360 grados);

    • while (true) {}

    • repetir (4) {}

    • espera(5, segundos);

Para acceder a información adicional, haga clic con el botón derecho en el nombre de un comando en su área de trabajo para ver la ayuda para ese comando.

Icono de consejos del profesor Consejos para profesores

Si esta es la primera vez que el estudiante usa VEXcode V5, puede leer una variedad de artículos en la Biblioteca VEX.

Icono de consejos del profesor Consejos para maestros - Uso de autocompletar

Autocompletar es una función en VEXcode V5 que predice el resto del comando que está escribiendo. Mientras los estudiantes trabajan en VEXcode V5, anímelos a usar la función de autocompletar para ayudar con la sintaxis.

El artículo Autocompletar - Tutoriales cubre cómo usar la función de Autocompletar. Para obtener más información, explora los vídeos tutoriales dentro de VEXcode V5.

Seleccione el tutorial Autocompletar.

 

Asegúrese de tener el hardware necesario, su portátil de ingeniería y VEXcode V5 descargados y 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

Ejemplo de proyecto Clawbot Template (Drivetrain 2-motor, No Gyro)

Paso 1:  Empecemos a programar con bucles

  • Antes de comenzar su proyecto, seleccione la plantilla de proyecto correcta. El proyecto de ejemplo Clawbot Template (Drivetrain 2-motor, No Gyro) contiene la configuración del motor del Clawbot. Si no se utiliza la plantilla, el robot no ejecutará el proyecto correctamente.

    Imagen que muestra el menú Archivo abierto en VEXcode V5 que muestra la opción Abrir ejemplos

     

  • Seleccione Archivo y Abrir ejemplos.
  • Desplácese por los diferentes proyectos de ejemplo. Estos proyectos demuestran una variedad de acciones que su Clawbot puede realizar. Seleccione y abra el proyecto de ejemplo Clawbot Template (Drivetrain 2-motor, No Gyro).

     

  • Nombra el proyecto RepeatingActions.

    Imagen que muestra el nombre del proyecto Acciones repetidas en VEXcode V5

  • Escriba el siguiente código:

    int main() {
      // Inicializando la configuración del robot. ¡NO LO RETIRE!
      vexcodeInit();
    
      //Avanza y gira 90 grados durante 4 iteraciones 
      repetir(4){Drivetrain.driveFor
        (adelante, 300, mm);
        Drivetrain.turnFor(derecha, 90, grados);
        esperar(5, segundos);
    
      }
    }

Revise el proyecto y luego haga lo siguiente en su cuaderno de ingeniería.

  1. Predecir lo que el proyecto hará con el Clawbot. Explica más que el hecho de que el proyecto se repite.

    ¿Qué está repitiendo? ¿Qué está haciendo el Clawbot?

  2. Escribe tu predicción, pero no dividas el proyecto corto en más de dos partes.

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

  1. Este proyecto tendrá el robot: avance 300 milímetros , gire a la derecha 90 grados y luego espere 5 segundos 4 veces para completar un cuadrado. En lugar de usar las mismas 3 instrucciones 4 veces, la instrucción repetida reduce la cantidad a solo 1 vez. La instrucción de repetición repite las acciones de conducir hacia adelante y luego girar.

  2. La predicción podría ser simplemente "El Clawbot se mueve en un cuadrado". Esta sería una forma sucinta de capturar los movimientos repetidos del Clawbot sin ningún contexto.

Los cuadernos de ingeniería de los estudiantes se pueden mantener y calificar individualmente o en equipo. 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.

  • Guarde, descargue y ejecute el proyecto Acciones repetidas.

    Imagen del nombre del proyecto Acciones repetidas en la barra de herramientas en VEXcode V5

  • Revise sus explicaciones del proyecto en su cuaderno de ingeniería y añada notas para corregirlas según sea necesario.

Paso 2: Ejecute el proyecto y observe el robot

Una comparación de dos fragmentos de código C++ en VEXcode. El fragmento izquierdo utiliza la entrada del sensor para determinar cuándo girar, con un bucle de tiempo que verifica si se presiona el interruptor del parachoques; si se presiona, el robot gira a la derecha 90 grados, de lo contrario, avanza. El fragmento derecho utiliza una distancia fija para determinar cuándo girar, con un bucle de repetición que impulsa el robot hacia adelante 300 mm, gira a la derecha 90 grados y espera 5 segundos, repitiendo esta secuencia cuatro veces

Vuelva a mirar el proyecto Repetir acciones (a la derecha). Este proyecto repetirá el comportamiento de avance y luego de giro cuatro veces. Se utiliza una estructura de bucle de "repetición" cuando se desea utilizar un conjunto de comportamientos un cierto número de veces.

Si la estructura de repetición se reemplaza con una estructura de bucle "while", el robot repetirá los comportamientos de avance y luego de giro "while" la condición es verdadera. También puede establecer la condición en "true" para que el bucle "while" continúe para siempre.

En el proyecto de la izquierda, se utiliza la entrada de un sensor para determinar cuándo comenzar a girar. El proyecto de la derecha utiliza una distancia fija del tren de transmisión para determinar cuándo comenzar a girar.

Para comprobar continuamente la entrada de un sensor, se utiliza una instrucción "if/else" junto con un bucle "while". En el proyecto de la izquierda, el robot girará a la derecha cuando se presione el sensor "BumperB", de lo contrario, el robot avanzará para siempre si no se presiona el sensor "BumperB". Para verificar continuamente el valor del sensor BumperB, la instrucción "if" está dentro de un bucle "while true".

El proyecto anterior a la izquierda es un caso de uso práctico de una estructura que se repite para siempre, utilizando los bucles while y  if juntos. Imagina una barredora autónoma que continúa conduciendo hacia adelante hasta que choca contra una pared u objeto, y luego gira antes de continuar conduciendo.

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

Para explorar más a fondo cómo usar bucles con condicionales, haga que los estudiantes construyan un proyecto de Floor Sweeper en VEXcode V5.

  • Comience haciendo que los estudiantes monten y conecten los interruptores del parachoques.
  • Pida a los estudiantes que abran el proyecto de ejemplo Clawbot Template (Drivetrain 2-motor, No Gyro).

     

  • Haga que los estudiantes nombren el proyecto como Floor Sweeper.

  • Pida a los estudiantes que construyan el siguiente proyecto.

    // Include the V5 Library
    #include "vex.h"
      
    // Permite un uso más fácil de la biblioteca VEX
    utilizando el espacio de nombres vex;
    
    // La función pickRandom devuelve un entero aleatorio entre los valores min y
    // max pasados como parámetros.
    int pickRandom(int min, int max) {
      return min + rand() / (RAND_MAX / (max - min + 1));
    }
    
    int main() {
      // Initializing Robot Configuration. ¡NO LO RETIRE!
      vexcodeInit();
    
      //Inicializar el generador de números aleatorios.
      srand(randomSeed);
    
      while (true) {
        while (!BumperB.pressing()) {
          Drivetrain.drive(forward);
          wait(5, msec);
        }
        Drivetrain.stop();
        Drivetrain.turnFor((90 + pickRandom(0, 90)), grados);
        wait(5, msec);
      }
    }

Si los estudiantes necesitan ayuda con alguna de las instrucciones, refiéralos a la información de Ayuda.

Pida a los estudiantes que 
descarguen y ejecuten el proyecto para observar cómo se mueve el robot. Luego, comience una discusión en clase y pida a los estudiantes que expliquen por qué se usó la estructura Forever en lugar de una estructura repetida.

Los estudiantes deben tener en cuenta que se utiliza una estructura Forever porque este proyecto verifica continuamente si se está presionando el interruptor del parachoques.

Paso 3: ¡El desafío de los bucles cuadrados!

Un diagrama que muestra un camino cuadrado verde con flechas que indican la dirección del movimiento alrededor del cuadrado. Flechas naranjas adicionales fuera del cuadrado apuntan en diferentes direcciones, correspondientes a los giros y movimientos necesarios para seguir el camino

  • Haz que tu Clawbot conduzca en una plaza.
  • Antes de cada giro, la garra debe abrirse y cerrarse, y el brazo debe levantarse y bajarse.
  • El Clawbot no puede conducir a lo largo de un lado de la plaza más de una vez.
  • Puede usar el proyecto RepeatingActions desde arriba como punto de partida, pero guárdelo como SquaredLoops  antes de realizar cualquier cambio.

Imagen del nombre del proyecto Squared Loops en la barra de herramientas VEXcode V5

En su cuaderno de ingeniería, planifique lo siguiente:

  • Planifique su solución y prediga lo que cada instrucción en su proyecto hará que haga el Clawbot.
  • Descargue y ejecute su proyecto para probarlo antes de enviarlo.
  • Realice cambios en el proyecto según sea necesario y tome notas sobre lo que se cambió durante las pruebas.

Icono de la caja de herramientas del profesor Teacher Toolbox - Solución

La siguiente es una posible solución al Desafío de Bucles Cuadrados:

int main() {
  // Inicializando la configuración del robot. ¡NO LO RETIRE!
  vexcodeInit();

  repeat(4){
    Drivetrain.driveFor(forward, 300, mm);
    ClawMotor.spinFor (reverse, 70, grados);
    ArmMotor.spinFor (forward, 360, grados);
    ClawMotor.spinFor (forward, 70, grados);
    ArmMotor.spinFor (reverse, 360, grados);
    Drivetrain.turnFor (right, 90, grados);
    wait(5, msec);
  }
}

Puede proporcionar a los estudiantes una rúbrica de programación para calificar sus proyectos. Los cuadernos de ingeniería de los
estudiantes se pueden mantener y calificar individualmente o en equipo.