Caja de herramientas para maestros
: el propósito de esta actividad
Esta actividad presentará a los estudiantes el uso de declaraciones while y if then 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 declaraciones if then y if then 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 estos artículos sobre ayuda en C++ .
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 te dará las herramientas para poder comenzar a crear algunos proyectos geniales que usen la declaración if then else.
- Comandos VEXcode V5 C++ que se utilizarán en esta exploración:
- Drivetrain.drive(adelante);
- Brain.Screen.pressing()
- Drivetrain.stop();
- if (condition){}
- waitUntil();
- while (condition){}
- wait(1, seconds);
Puede utilizar la información de ayuda dentro de VEXcode V5 para obtener información sobre las instrucciones de C++.
Asegúrese de tener el hardware necesario, su portátil de ingeniería y VEXcode V5 listos.
| 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) |
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.

Paso 1: Comencemos con una comprensión de las declaraciones condicionales
Antes de comenzar a programar con condicionales, lea el artículo de la biblioteca VEX que explica las declaraciones If Then Else. El artículo se puede encontrar aquí.
Para obtener una lista de operadores para usar en las instrucciones If Then Else, lea el artículo de la biblioteca VEX que explica los booleanos. Este artículo se puede encontrar aquí.
Paso 2: Comencemos a programar con declaraciones condicionales.
-
Abra el proyecto de ejemplo de plantilla Clawbot (transmisión de 2 motores, sin giroscopio).

- Construye el proyecto a continuación.
// Begin project code
int main() {
// Initializing Robot Configuration. ¡NO LO RETIRE!
vexcodeInit();
while (true) {
Drivetrain.drive(forward);
if (Brain.Screen.pressing()) {
Drivetrain.stop();
waitUntil(!Brain.Screen.pressing());
}
}
} 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.
- Guarde y descargue el proyecto como CreatingAStopButton to Slot 1 en el Clawbot, y luego ejecútelo.
- Para obtener ayuda para descargar un proyecto, consulte el tutorial en VEXcode V5 que explica cómo descargar y ejecutar un proyecto (C++).
- Revisa tus explicaciones del proyecto y añade notas para corregirlas según sea necesario.
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 declaración Forever para conducir y verificar continuamente. Si se pulsa la pantalla (TRUE), el Clawbot deja de conducir.
No se espera que los estudiantes entiendan por qué se utiliza la instrucción waitUntil (). Explique que la instrucción waitUntil () es necesaria 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, la instrucción waitUntil () detiene el flujo del programa y no hace que el proyecto inicie el bucle Forever de nuevo 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 el enunciado wait until().
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 la instrucciónDrivetrain.stop ().
Por lo tanto, el proyecto necesita una instrucción waitUntil () que le diga 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.
waitUntil(!Brain.Screen.pressing());La instrucciónwaitUntil () es necesaria debido a la velocidad del flujo del proyecto. Si no estaba 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 then por un enunciado if then else.
- Comience guardando CreatingAStopButton como el nuevo proyecto, StopOrDrive.
- Si necesitas ayuda para guardar un proyecto, haz clic aquí para C++.
- A continuación, cree el proyecto StopOrDrive que se muestra a continuación.
// Begin project code
int main() {
// Initializing Robot Configuration. ¡NO LO RETIRE!
vexcodeInit();
while (true) {
Drivetrain.drive(forward);
if (Brain.Screen.pressing()) {
Drivetrain.stop();
waitUntil(!Brain.Screen.pressing());
}
más {
Drivetrain.drive(forward);
}
}
} - Descarga StopOrDrive a la ranura 2 en tu Clawbot.
- Para obtener ayuda para descargar un proyecto, consulte el tutorial en VEXcode V5 que explica cómo descargar y ejecutar un proyecto (C++).
- 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
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, haga clic aquí.
Los dos proyectos hacen que el Clawbot se comporte de la misma manera. La única diferencia es el uso de la instrucción if then else en el proyecto StopOrDrive.
El uso de la instrucción if then else le permitirá añadir botones adicionales a la pantalla en las próximas actividades.
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 los parámetros dentro de las instrucciones que utilizará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:

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
event draw = event();
void drawButton() {
Brain.Screen.setFillColor(red);
Brain.Screen.drawRectangle(0, 0, 480, 240);
wait(1, seconds);
}
int main() {
// Initializing Robot Configuration. ¡NO LO RETIRE!
vexcodeInit();
draw(drawButton);
while (true) {
draw.broadcast();
Drivetrain.drive(forward);
if (Brain.Screen.pressing()) {
waitUntil(!Brain.Screen.pressing());
}
más {
Drivetrain.drive(forward);
}
}
} 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).