Skip to main content

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

Ahora que los estudiantes tienen experiencia en tratar la pantalla del cerebro como un botón grande, pueden convertir la pantalla en dos botones. Esta actividad presentará a los estudiantes el uso de bloques anidados [If then else] para gestionar mejor las declaraciones condicionales y la lógica subyacente de hacerlo. Primero se guía a los estudiantes a través de la construcción del proyecto para que las prensas de pantalla giren el robot a la izquierda o a la derecha. Pero, luego se les pide que cambien los botones para que lo que giró el robot a la izquierda ahora lo gire a la derecha, y viceversa.

Para obtener más información sobre los bloques [If then] y [If then else] u otros utilizados 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, haga clic aquí.

El siguiente es un resumen de lo que sus estudiantes harán en esta actividad:

  • Revisar el  proyecto StopOrDrive y el diseño de la pantalla del cerebro en píxeles.

  • Construir un nuevo  proyecto LeftOrRight mientras se guía a través del razonamiento de la programación.

  • Revisar el proyecto para que los botones de la pantalla funcionen de forma opuesta.

  • Amplíe su aprendizaje: divida la pantalla en dos botones que, al pulsarlos, giren el robot hacia la izquierda o hacia la derecha.

Materiales requeridos:
Cantidad Materiales necesarios
1

Kit de inicio VEX V5 Classroom (con firmware actualizado)

1

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

1

Cuaderno de ingeniería

1

Proyecto StopOrDrive de la página Play anterior

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)

La pantalla del cerebro puede tener más de un botón.

Esta actividad le permitirá programar el robot para que avance y gire a la izquierda o a la derecha dependiendo de qué lado de la pantalla del cerebro se presione.

Los tres tipos adicionales de bloques que necesitarás durante esta actividad son los siguientes:

VEXcode V5 Bloques de la caja de herramientas: un bloque de giro establecido a la derecha; un operador menor que; y una posición de pantalla establecida en x.

Puede utilizar la información de ayuda dentro de VEXcode V5 para obtener información sobre los bloques. Para obtener orientación sobre el uso de la función de ayuda, consulte el tutorial Uso de la ayuda.

Barra de herramientas VEXcode V5 con una flecha roja que apunta al icono de tutoriales. Los tutoriales están en el extremo derecho después del logotipo de V5, un icono de globo terráqueo y FIle.

 

Paso 1: Comencemos revisando el proyecto StopOrDrive.

El proyecto StopOrDrive tenía la parada Clawbot si se pulsaba la pantalla, o bien la hacía avanzar.
Toda la pantalla era un botón grande, pero en este próximo proyecto, queremos que la mitad de la pantalla sea un botón y la otra mitad sea el otro.

Detener o conducir el proyecto de la lección anterior. El proyecto comienza con un bloque cuando se inicia con un bloque Forever adjunto. Dentro del bloque Forever hay un bloque if then else que se lee si se pulsa la pantalla y luego se detiene la conducción; espere hasta que no se pulse la pantalla. Si no, sigue adelante.

Para dividir la pantalla en dos botones, necesitamos entender más sobre 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.

  • Observa que el número de columnas aumenta de izquierda a derecha. El número de columnas es 48 y la pantalla tiene 480 píxeles de ancho.
  • Anote en su cuaderno de ingeniería que el valor x en la pantalla es igual al número de píxeles medidos de izquierda a derecha.
  • ¿Cuál es el valor x del centro de la pantalla? Para esta actividad, puedes centrarte solo en el eje x porque solo necesitas un botón izquierdo y derecho.

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

El valor x en el centro de la pantalla es igual a la mitad del ancho de la pantalla en píxeles. Entonces, el valor x del punto central es 240. Los estudiantes necesitarán este número para programar el condicional de si la pantalla está pulsada a la izquierda o a la derecha. Así que asegúrate de verificar que todos tengan el valor correcto.

De cara al futuro, el Desafío de la interfaz de usuario en la sección Repensar requerirá que los estudiantes apliquen lo que han aprendido para crear cuatro botones en la pantalla. Entonces, para eso, necesitarán los valores x e y.

Icono de consejos del profesor Consejos para profesores

Las instrucciones dirigen a los estudiantes a los Tutoriales dentro de VEXcode V5 según sea necesario. Para obtener más ayuda, consulte la Biblioteca VEX para obtener artículos de ayuda complementarios.

Paso 2: Programación para dos botones

  • Guarde StopOrDrive como el  proyecto LeftOrRight.
  • Recuerda, si necesitas ayuda para abrir, nombrar o guardar proyectos, mira los tutoriales en VEXcode V5.

El cuadro de diálogo del nombre del proyecto en la barra de herramientas de VEXcode V5 dice Izquierda o Derecha. La ranura 3 se selecciona a la izquierda y la barra de herramientas se lee Guardado a la derecha.

  • Construye el proyecto a continuación. El Clawbot girará a la izquierda o a la derecha cuando se pulse la pantalla, dependiendo del lado en el que se pulse.

Un proyecto VEXcode V5 comienza con un bloque when started con un bloque forever adjunto, Inside the forever loop are nested if then else blocks. La rama If del bloque first if then else lee If screen pressed. El bloque if then else anidado dentro de la rama If lee If screen x position less than 240 then turn left, and wait until screen not pressed; else turn right and wait until screen not pressed. La rama else externa contiene bloques drive forward.

Icono de la caja de herramientas del profesor Caja de herramientas para maestros : ¿por qué anidar si luego hay otros bloques?

El esqueleto del proyecto (solo bloques de control) incluye bloques anidados: y bloque [If then else] dentro de un bloque [If then else ] dentro de un bucle [Forever]. Esto puede parecer más complicado de lo necesario porque podrías usar bloques [If then] secuenciales. Sin embargo, el uso de bloques [If then] secuenciales no es una buena práctica de programación.

Se muestran tres estructuras de codificación de izquierda a derecha. La estructura de la izquierda tiene una x roja sobre ella, lo que indica el problema con una serie de bloques anidados if then. En el centro hay una estructura de bloques C vacíos que muestran bloques anidados en caso contrario. A la derecha, la estructura se completa para mostrar que los mismos comportamientos se pueden completar de una forma más simple.

El proyecto rechazado de la izquierda es la versión secuencialmente condicional de nuestro proyecto LeftOrRight. Si se pulsa la pantalla y si el valor x es inferior a 240, el Clawbot gira a la izquierda. Si se pulsa la pantalla y si el valor x es superior a 240, el Clawbot gira a la derecha. El problema con este proyecto es que corre el riesgo de que ambas condiciones sean ciertas. Cada vez que usas bloques [If then] secuenciales, corres el riesgo de crear errores dentro de un proyecto porque puede haber más de una declaración condicional que sea verdadera. Los errores conducen a la imprevisibilidad.

En el centro se encuentra el esqueleto del proyecto LeftOrRight, y a la derecha se muestra el proyecto con algunas de las sentencias condicionales y bloques de Drivetrain insertados. La lógica en esta versión del proyecto es ligeramente diferente. Si/cuando se pulsa la pantalla, el valor x es menor que 240 (gire a la izquierda) o no es menor que 240 (gire a la derecha). No necesitamos otra declaración condicional allí. Una vez que se pulsa la pantalla, es inferior a 240 o no lo es. Solo tenemos dos botones para preocuparnos. Tenga en cuenta que el proyecto de la derecha aún está incompleto.

Los estudiantes deben comprender las diferencias entre estos dos enfoques del proyecto. Comprender las diferencias en la lógica subyacente beneficiará enormemente a los programadores en desarrollo.

El proyecto Izquierda o Derecha se desglosa con la funcionalidad de los bloques en el proyecto etiquetado. La rama siempre y exterior si se pulsa la pantalla están etiquetadas como Mantiene la comprobación de si se pulsa la pantalla. La rama interior si está etiquetada cuando se pulsa la pantalla, comprueba si está a la izquierda o a la derecha. El siguiente bloque de giro a la izquierda está etiquetado Si la prensa estaba a la izquierda (menos de 240), gira a la izquierda. La espera hasta que el bloque esté etiquetado espera hasta que la pantalla ya no esté pulsada antes de continuar. El bloque de giro a la derecha está etiquetado si la prensa no estaba a la izquierda (menos de 240), gira a la derecha. La siguiente espera hasta que el bloque esté etiquetado espera hasta que la pantalla ya no esté pulsada antes de continuar. La rama else externa con el bloque drive forward está etiquetada Si la pantalla no está pulsada, conduce hacia adelante.

  • Repasemos lo que hace este proyecto.

    Sigue comprobando si la pantalla está pulsada. Si la pantalla no está pulsada, avanza, pero si lo está, comprueba dónde se pulsa la pantalla.

    Si la prensa estaba en el lado izquierdo (menos de 240), gira a la izquierda. De lo contrario, gira a la derecha. No necesitamos otra condición para cuando el valor de x sea mayor que 240 porque si no es menor que 240 (gire a la izquierda), debe ser mayor (gire a la derecha). Solo tenemos dos botones de los que preocuparnos.

    La espera hasta que los bloques de control después de cada turno hagan que el proyecto espere hasta que la pantalla ya no se presione antes de continuar.

Barra de herramientas en VEXcode V5 con un cuadro rojo alrededor del botón de descarga. Los iconos leen, de izquierda a derecha, Controlador, Cerebro, Descargar, Ejecutar, Detener y Compartir.

  • Ahora que el proyecto está terminado, descárguelo y ejecútelo para probar cómo funciona.
  • Para obtener ayuda, vea el vídeo tutorial Descargar y ejecutar un proyecto en VEXcode V5.
  • Tome notas en su cuaderno de ingeniería sobre cómo los botones controlan los movimientos del Clawbot.

Icono de consejos del profesor Consejos para profesores

Durante las pruebas, los estudiantes deben reconocer que la interfaz de usuario, cuando se usa desde detrás del Clawbot, parece funcionar al revés. Desde la perspectiva del usuario, el Clawbot se aleja del lado que está siendo presionado por el usuario. Esa no es una experiencia de usuario óptima.

Al pulsar los botones de la pantalla desde detrás del Clawbot mientras avanzaba, pulsó en el lado derecho de la pantalla para girar a la izquierda y en el lado izquierdo de la pantalla para girar a la derecha. Esa no es una buena experiencia de usuario. Una experiencia de usuario es lo bien que un usuario puede interactuar con una interfaz de usuario para controlar un sistema informático. Hay más información sobre las interfaces de usuario en la sección Aplicar de esta práctica.

En este caso, necesitamos mejorar la interfaz de usuario para mejorar la experiencia del usuario.

Proyecto VEXcode V5 izquierdo o derecho. Un proyecto VEXcode V5 comienza con un bloque when started con un bloque forever adjunto, Inside the forever loop are nested if then else blocks. La rama If del bloque first if then else lee If screen pressed. El bloque if then else anidado dentro de la rama If lee If screen x position less than 240 then turn left, and wait until screen not pressed; else turn right and wait until screen not pressed. La rama else externa contiene bloques drive forward.

  • Revise el proyecto LeftOrRight y revíselo para que cuando el usuario presione los botones desde detrás del Clawbot, el robot gire a la derecha cuando el usuario presione el lado izquierdo de la pantalla. O bien, el Clawbot gira a la izquierda.
  • Planifique, pruebe e itere este proyecto en su cuaderno de ingeniería para que el proyecto haga que el Clawbot gire hacia el lado de la pantalla que el usuario está presionando desde detrás del Clawbot.

Icono de la caja de herramientas del profesor Teacher Toolbox

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). Recuerde explicar la puntuación a los estudiantes antes de que comiencen a trabajar.

Icono de la caja de herramientas del profesor Teacher Toolbox - Soluciones

Hay dos formas posibles de resolver el problema planteado anteriormente. La primera forma es la que está escrita en la instrucción: Revise el proyecto LeftOrRight y revíselo para que cuando el usuario presione los botones desde detrás del Clawbot, el robot gire a la derecha cuando el usuario presione el lado izquierdo de la pantalla. O bien, el Clawbot gira a la izquierda.

VEXcode V5 La solución de muestra comienza con un bloque Cuando se inicia con un bloque para siempre adjunto. Dentro del bloque Forever están anidados los bloques If then else. El bloque exterior if then else lee si se pulsa la pantalla; else conduce hacia adelante. En la rama If, un bloque if then else lee if screen x position less than 240 then turn right, else turn left.

La otra solución es cambiar el bloque Operador para que cuando el valor x sea mayor que 240, el Clawbot gire a la izquierda.

VEXcode V5 La solución de muestra comienza con un bloque Cuando se inicia con un bloque para siempre adjunto. Dentro del bloque Forever están anidados los bloques If then else. El bloque exterior if then else lee si se pulsa la pantalla; else conduce hacia adelante. En la rama If, un bloque if then else lee si la posición x de la pantalla es mayor que 240, luego gire a la izquierda, de lo contrario gire a la derecha.

Icono Motivar discusión Motivar la discusión

Necesitaba usar coordenadas desde un plano de coordenadas cuando programaba la instrucción condicional para cuando el valor x era inferior a 240 (lado izquierdo de la pantalla). Para que la pantalla del cerebro dibuje botones visuales, también necesitarías usar coordenadas.
Vuelva al Paso 2, donde se le mostraron las coordenadas de la pantalla del Cerebro Robótico V5.

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.

P: ¿Cuál es el valor x en el borde derecho de la pantalla?
R: El valor x aumenta de 0 en el borde izquierdo a 480 en el borde derecho.

P: Entonces, el rango del valor x es 480 (0 a 480). ¿Cuál es el rango del valor y?
R: El rango del valor y es 240 (0 a 240).

P: ¿Dónde está el origen (0, 0) de este plano de coordenadas?
R: El origen está en la parte superior izquierda.

P: Está en la parte superior de la pantalla cuando el valor y es igual a 0. ¿Por qué es esto inusual?
R: Por lo general, el valor y aumenta a medida que se mueve hacia arriba, pero en la pantalla V5, el valor y aumenta a medida que se mueve hacia abajo. Pero puedes pensar en ello como el valor y que aumenta a medida que te alejas del origen (0, 0) en la parte superior izquierda de la pantalla.

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

En el Desafío de la interfaz de usuario de la sección Repensar, se pedirá a los estudiantes que desarrollen un proyecto que cree cuatro botones en la pantalla para controlar la garra y el brazo del Clawbot. Para ese desafío, también se les pide que muestren esos cuatro botones en la pantalla. Este Extend Your Learning, al igual que el de la página anterior, ayudará a prepararlos para ese desafío porque el desafío tiene cuatro botones para programar y este solo tiene dos.

Haga que los estudiantes añadan un evento al programa para que la pantalla dibuje dos botones visibles cuando se ejecute el proyecto. Sugiera que los estudiantes usen la función de Ayuda en VEXcode V5 para obtener información sobre los bloques Eventos y Aspectos, en particular la información del bloque [Draw rectangle]. Indique a los estudiantes que revisen cómo se organiza la pantalla del cerebro en un sistema de coordenadas basado en el número de píxeles cuando se usa en el bloque [Draw rectangle]. Tendrán que entenderlo para establecer parámetros dentro de ese bloque. Además, deberán comprender cómo transmitir eventos. En este caso, el evento es dibujar botones.

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:

Solución de muestra VEXcode V5 con dos pilas de bloques uno al lado del otro. La pila de la izquierda comienza con un bloque when started y muestra un bloque de botón Broadcast Draw añadido a la parte superior del proyecto Left o right, entre el bloque when started y el bucle forever. La pila de la derecha comienza con un bloque de evento When I receive Draw Button seguido de cuatro bloques Looks que dicen Set fill color to green on Brain; Draw rectangle 0, 0, 240, 240; set fill color to purple on Brain; y Draw rectangle 240, 0, 480, 240 on Brain.

Para una experiencia profesional realista adicional, pida a los estudiantes que pidan a sus compañeros de clase comentarios sobre sus dos opciones de color.
¿Los colores elegidos te hacen querer usar la interfaz, o qué colores preferirían como usuarios?
Parte del desarrollo de una excelente interfaz de usuario es recopilar datos sobre la experiencia del usuario, incluso las preferencias estéticas.