Controladores y bucles
En las competiciones, los equipos deben manipular sus robots de forma inalámbrica con controladores. El controlador está programado para actualizar el robot en función de las entradas del usuario. Los bucles se utilizan en el proyecto para que el robot compruebe repetidamente la información de entrada actualizada. Los bucles permiten al proyecto comprobar rápidamente qué botones se han pulsado o hasta qué punto se han pulsado los joysticks. Una vez comprobada, esta información se transmite rápidamente al robot para que responda rápidamente a las instrucciones del controlador.
El siguiente es el proyecto de ejemplo Tank Drive de VEXcode V5. El bucle Forever de este proyecto comprueba las posiciones de los ejes 2 y 3 Forever para ajustar la velocidad de los motores.
// Include the V5 Library
#include "vex.h"
// Permite un uso más fácil de la biblioteca VEX
utilizando el espacio de nombres vex;
int main() {
// Initializing Robot Configuration. ¡NO LO RETIRE!
vexcodeInit();
// Comenzar código de proyecto.
// Main Controller loop to set motors to controller axis postiions
while (true) {
LeftMotor.setVelocity(Controller1.Axis3.position(), percent);
RightMotor.setVelocity(Controller1.Axis2.position(), percent);
LeftMotor.spin(forward);
RightMotor.spin(forward);
wait(5, msec);
}
return 0;
}
Los bucles son importantes incluso para la programación autónoma sin controlador. Un bucle ayuda a simplificar y organizar comandos repetidos dentro de un proyecto.
Amplíe su aprendizaje
Para ampliar esta actividad, pida a sus estudiantes que exploren las diferencias entre el control de arcade y el control de tanque. Los estudiantes pueden seguir los proyectos de ejemplo que se encuentran en VEXcode V5.
Hay cuatro proyectos de ejemplo: Left Arcade, Right Arcade, Split Arcade y Tank Drive.
Discuta cómo funcionan los bucles dentro de los programas, así como los pros y los contras de cada tipo de control.
Para relacionar esta actividad con las matemáticas, use los proyectos de arcade izquierdo/derecho (un joystick) y de accionamiento de arcade/tanque dividido (ambos joysticks) anteriores para analizar los roles de los ejes X e Y dentro del proyecto.