Contando a los visitantes con el Calliope mini

Contando a los visitantes con el Calliope mini

En este ejemplo, programamos el Calliope mini en un mostrador de visitas.

Fácil

30 Min

a partir de los 10 años

Historia

El calliope mini es un minicomputador que puede ser programado con diferentes lenguajes de programación gráfica. En este tutorial utilizamos el lenguaje de programación NEPO popup: yes. Con este lenguaje puedes decirle fácilmente al mini qué tiene que hacer y en qué condiciones.
Por ejemplo, puede indicar que el LED de color de la miniatura brilla en un determinado color cuando pulsa un botón. O puede elegir que el LED se ilumine en un color cuando se pulsa el botón A y en otro cuando se pulsa el botón B. O cuando ambos botones se presionan al mismo tiempo....
Verás, hay muchas entradas posibles a las que el mini puede reaccionar y realizar diferentes acciones basadas en ellas. Probablemente más de lo que usted pensaría espontáneamente....

En este tutorial aprenderás a dar las mini-instrucciones y a definir las condiciones de la aplicación. También aprenderá cómo hacer que la mini repetición de una instrucción, que también se llama ejecutar un bucle. Finalmente, también aprenderá a usar una variable cuyo valor puede cambiar a medida que el programa progresa.
Al final del tutorial habrás aprendido algunos elementos básicos de programación con NEPO. Lo bueno es que casi todos los lenguajes de programación trabajan con los mismos elementos básicos. Así que si quieres seguir trabajando con otro lenguaje de programación más adelante, sólo tienes que llevarte estos elementos básicos contigo.

El proyecto

Su proyecto parece ser bastante manejable: Usted programará un contador digital de visitas ("dvc") para el mini. El dvc siempre añadirá uno a un valor existente, por ejemplo, pulsando un botón. El dvc tiene un hermano mayor, el contador de visitas analógico. Tal vez lo hayas conocido antes. Se utilizan en varias ocasiones, por ejemplo, en un ferry para contar cuánta gente sube al barco, en centros comerciales para contar cuánta gente pasa por una tienda, en la planificación de nuevas carreteras o líneas ferroviarias para contar cuánta gente toma un tren o conduce por una calle. Los campos de aplicación son múltiples y variados. ¿Se le ocurren otras aplicaciones?
Como el proyecto no es tan fácil a primera vista, lo desarrollaremos en 5 pasos.

1primeramente step

En el primer paso, conecte su miniatura con la ayuda de un cable USB a su ordenador y abra la página https://calliope.cc en el navegador. Allí se abre el "Editor" que se encuentra en el ítem "Comencemos" de la página.
Hay varios editores disponibles, trabajaremos con el Open Roberta Lab popup: yesen este tutorial. Allí tiene que elegir con qué sistema trabaja. Para su proyecto necesita el calliope mini 2016 o 2017.

2Segundo Step

En el segundo paso harás que el mini reaccione a una pulsación de botón.
La ventana del editor ya contiene el bloque de inicio. Puede conectar más bloques simplemente arrastrándolos desde el menú de la izquierda a la ventana del Editor. El programa siempre se inicia en el bloque de inicio y desde allí se ejecuta a través de las instrucciones.

Empiece por insertar una instrucción: Acción: "enciende el LED en color rojo":
Descargue el programa a su miniatura haciendo clic en el icono de juego pequeño y luego siga las instrucciones en la pantalla. Observe cómo reacciona la miniatura....

Calliope sólo debe reaccionar cuando se pulsa una tecla. Así que añade una condición: "Si se presiona el botón A..."
Comprueba de nuevo cómo reacciona la miniatura.

El resultado no es el que esperabas. ¡Pero eso no importa en absoluto! De hecho, el programa funciona correctamente. El programa se inicia inmediatamente desde el bloque de inicio y comprueba si se ha pulsado la tecla A. En caso afirmativo, ejecuta la instrucción que se encuentra detrás.

NOTA: Esto se denomina procedimiento iterativo. Haga un pequeño cambio que debería resolver el problema actual y compruebe lo que sucede.
O bien el problema está resuelto y podemos ver el siguiente problema o vamos a tener que lidiar con un nuevo problema o el problema original no es un chorro fijo y tenemos que volver a intentar solucionarlo.
Cada individuo que pasa por un proceso de mejora de este tipo se denomina iteración. Es un procedimiento común en el desarrollo de software y la razón por la cual la paciencia es una de las virtudes más importantes de un programador.

Pregunta

  • ¿Por qué el programa no funciona de la manera que usted desea?

Pruebe lo que sucede cuando presiona y mantiene presionado el botón A mientras reinicia su Calliope miniatura.
Para que el LED se ilumine como se desee al pulsar una tecla, es necesario utilizar un bucle que repita la comprobación una y otra vez.
Pero incluso ahora el programa no funciona como debería.

Pregunta

  • ¿Por qué no se apaga el LED cuando sueltas el botón A?

Para que el LED se apague de nuevo, tendrás que determinar en algún lugar del código del programa que debería ocurrir. Pruebe en diferentes lugares del programa y compruebe cómo reacciona la miniatura. ¿Dónde cree que está mejor situada esta instrucción?

Probablemente haya notado que el LED comienza a parpadear cuando presiona la tecla A. Esto se debe a que el bucle se repite una y otra vez muy rápidamente. Mientras se pulse el botón A, el LED se enciende una vez por ciclo y se apaga inmediatamente después.
Hay una manera de asegurarse de que el LED no parpadee más:
Después de encender el LED, puede ajustar la hora en la que se encenderá. Existe el bloque "Wait ms" en el que se puede especificar,
durante qué tiempo (en milisegundos - milésimas de segundo) debe detenerse el programa. Puedes jugar con los tiempos hasta que encuentres un valor razonable donde el LED ya no parpadee, pero la tecla sigue funcionando lo suficientemente rápido.

Pregunta

  • ¿Cuál es el problema con esta solución?

Una mejor opción sería utilizar este bloque:


Este interruptor anidado algo complicado le dice al programa que espere hasta que la tecla A no sea presionada (nunca más) . Pruébalo!

valor booleano

La computadora funciona en un nivel básico sólo con los números 0 y 1, porque un chip de computadora utiliza señales eléctricas para funcionar.
0 significa que no hay flujo de corriente, 1 significa que la corriente está fluyendo.
Cuando el ordenador comprueba si se pulsa una tecla, sólo hay dos respuestas posibles, sí o no. (Si la tecla está presionada a medias - lo que no es tan simple como se podría pensar - entonces el botón no es suficiente o sólo lo suficiente presionado y la respuesta sigue siendo única: Sí o No.) Estos valores también se pueden leer como falsos (=0) o verdaderos (=1). Por lo tanto, si el ordenador comprueba si se pulsa una tecla, da "true" como respuesta o "false". En nuestro caso el programa espera hasta que la tecla A no sea presionada (por más tiempo).

Ahora por fin es el momento de escribir algunas explicaciones breves en su código de programa para explicar lo que sucede en detalle en el programa.
Para ello se encuentra el bloque bajo la rúbrica "Texto". Describa brevemente lo que sucede en la siguiente sección del programa.
La explicación debe ser breve pero comprensible. Le ayuda a usted y a otros a entender el programa incluso después de semanas, meses o años. Uno de los errores más comunes de los principiantes en la programación es no comentar suficientemente su propio código de programa. Esto hace la vida innecesariamente difícil para usted.

3Tercero step
En el tercer paso se configura una variable que contiene un número y se hace que el mini aumente con sólo pulsar un botón. Se supone que este programa se usa para contar personas. Y un LED de color no nos ayuda mucho. En lugar de encender un LED, añadimos uno al número de personas con sólo pulsar un botón. Para ello necesitamos primero una especie de "contenedor" en el que se almacena este número. Llamamos a este contenedor una variable. Puede crear la variable haciendo clic en el signo + en el bloque de inicio.

Asigne un nombre a la variable. He elegido el nombre Number, pero también puedes ser un poco más creativo. Es inteligente elegir el nombre de una manera que el nombre ya sugiera para qué se usa esta variable en el programa. De lo contrario, el programa se volverá innecesariamente confuso más adelante. El nombre no debe contener espacios ni caracteres especiales. La variable simplemente contiene un número y le damos el valor inicial 0.

La cosa con las variables

Las variables pueden parecer un poco confusas al principio. Pero en realidad son muy convenientes. Usted le dice al programa que trabaje con el número "Número de invitados de hoy" independientemente del número real de invitados. Una variable es simplemente un contenedor en el que se pueden nombrar y almacenar valores (por ejemplo, números, caracteres o incluso frases).

Ahora tenemos que hacer que el programa aumente el valor de la variable en 1 cada vez que se pulsa el botón. Por lo tanto, combinamos bloques de programa de las categorías "Variables" y "Matemáticas".
El LED puede iluminarse más adelante.

4cuarta step

En el cuarto paso se añade la posibilidad de mostrar el valor de la variable. Para ello utilizamos el botón B y damos un paso más en el examen.

Así, el mini comprueba primero si el botón A está pulsado durante cada ejecución de programa y ejecuta las instrucciones en el bloque correspondiente si es necesario e inicia una nueva ejecución del bucle. Si no se pulsa el botón A, el mini comprueba si se pulsa el botón B y ejecuta las instrucciones correspondientes si es necesario antes de iniciar la siguiente pasada por el bucle.

5quinta step
Finalmente, en el quinto paso se puede añadir la posibilidad de poner a cero el contador. Para ello se pueden pulsar simultáneamente los botones A y B.

Pregunta

  • ¿Por qué es necesario comprobar si ambos botones están pulsados al principio de la decisión?

Pruebas

¡Genial! Su programa es ahora totalmente funcional! Ha creado un contador de visitas de trabajo! Ahora es el momento de probarlo extensamente en todas las situaciones posibles. Tal vez notes otra situación en la que la miniatura no funciona como se esperaba, entonces tienes que volver a la computadora y arreglar el problema.
Además, usted ha aprendido lo que es una instrucción, cómo hacer diferentes instrucciones dependiendo de las decisiones o condiciones y cómo ejecutar partes individuales del programa una y otra vez con la ayuda de un bucle. Finalmente, también ha aprendido mucho sobre el uso de variables. Con estos elementos básicos ya se puede hacer mucho porque todos los programas se basan en una combinación anidada de estos elementos básicos.

Este texto, así como las imágenes, se publican bajo el nombre de CC BY-SA 3.0 DE licencia popup: yes. It was originally publicada en alemán popup: yespor Konstantin Kowalski y traducida al inglés por el Calliope equipo.

PUEDE ENCONTRAR LOS ARCHIVOS TERMINADOS A CONTINUACIÓN.

El archivo HEX puede ser usado en su Calliope mini directamente. El archivo XML se puede abrir con el editor OpenRoberta.

hex xml