Introducción a la robótica educativa (III)

Nota del autor

Este artículo fue inicialmente publicado en el blog de BQ, mibqyyo, y se encontraba aquí enlazado, pero actualmente ya no se encuentra disponible y, para que no desaparezca, reproduzco aquí el contenido completo.

Siguiendo con la serie de artículos sobre introducción a la robótica y la nueva placa BQ ZUM BT-328 hoy quiero enseñarte cómo hacer un nuevo proyecto utilizando otros componentes. Como se está en continuo trabajo de mejora la web a través de la cual se realiza la programación con bloques ha cambiado un poco. Los aspectos básicos siguen siendo iguales, pero se han incluido muchas mejoras y es más funcional. La podrás encontrar en el mismo link.

Hoy te traigo un proyecto musical. En el ejemplo de hoy te mostraré cómo utilizar un zumbador y un potenciómetro. El zumbador es un componente que te permitirá emitir sonidos, y es que, en según qué proyectos, esto te podrá interesar. Pero no pienses que mediante el zumbador tan sólo se puede emitir un único sonido como si fuera una alarma, que, por supuesto, también se puede. Como te expliqué en el primer artículo de la serie, el zumbador utiliza el efecto piezoeléctrico para vibrar en función de la señal eléctrica a la que se le somete. Esto significa que modificando la señal eléctrica se modifica también su sonido. De esta forma se puede hacer que vibre a determinadas frecuencias específicas que se correspondan con las notas musicales que todos conocemos.

Como te podrás imaginar, por tanto, con un determinado orden de estas notas y una duración y espaciado en el tiempo determinadas se puede hacer que suene la melodía que más te guste. Déjame enseñarte un par de ejemplos.

ESCALA MUSICAL (Escala diatónica de do)

Cómo en los proyectos anteriores que te he presentado, en este caso la conexión física es muy sencilla.  A continuación te muestro una foto del conjunto. En este caso ya tengo cargado el programa (que te mostraré más adelante), por lo que puedo hacerlo funcionar de forma independiente mediante el portapilas.

Lo único que debes hacer para replicar este proyecto es conectar el zumbador en el pin digital 2 y el portapilas (con 8 pilas AA) al jack de alimentación.

A continuación te voy a mostrar el código que yo he utilizado para hacer sonar la escala musical. Recuerda que no es la única forma de hacerlo y que el código dependerá de cómo te imagines tú que debe funcionar el programa. Esta es tan sólo una de las múltiples implementaciones.

En este código intervienen 4 tipos de bloques importantes:

  1. Declarar como. Este bloque ya lo hemos visto anteriormente y sirve para declarar una variable con el nombre y el valor inicial que se desee.
  2. Switch case ejecutar. Este bloque es nuevo y resulta muy interesante para realizar decisiones cuando hay diferentes alternativas. Se especifica una variable en el switch (previamente declarada) y mediante cada case se indican todas las posibilidades de valores que puede tener dicha variable. Se ejecutará el código situado tras el ejecutar del case que se cumpla en cada caso.
  3. Zumbador. Las funciones que realiza este bloque son definir el pin en el que está conectado el zumbador (el pin digital 2) y hacer sonar la nota especificada durante una duración determinada.
  4. Si ejecutar. Este bloque también lo conoces del artículo anterior. Evalúa una condición, si se cumple ejecuta un código. Si no se cumple puede ejecutar otro código.

La idea bajo el código es bien sencilla. Declaro una variable que servirá como contador para saber el número de notas que ya han sonado. Mediante el bloque switch case ejecutar se decidirá qué nota se debe tocar a continuación. En el primer caso, naturalmente, el contador tendrá el valor «0», por lo que se ejecutará el case 0, esto es, hacer sonar la nota DO durante 500ms. Una vez ejecutado el código de cada case se abandona el switch hasta la próxima iteración del bucle (recuerda que todo el código se ejecuta en bucle, el loop). La última parte del código es un sí ejecutar, un bloque que ya conoces del artículo anterior, y que sirve para incrementar el valor del contador y que suene la siguiente nota la próxima vez que se evalúe el switch. Además, si el contador supera el valor de 6 (es decir, 7 valores incluido el 0) se vuelve a poner a 0, pues eso supondrá que ya se han tocado las 7 notas musicales.

Una vez creado el código es recomendable guardarlo. Una vez guardado ya puedes programar la placa y, si todo ha ido correctamente, deberías obtener algo similar al siguiente video:

Pero ¿y si lo que quieres es poder controlar qué nota suena? Pues vamos a ver otro ejemplo en el que controlamos la nota de la escala mediante un potenciómetro.

Notas mediante potenciómetro

Lógicamente, para introducir esta variación habrá que conectar a la placa un potenciómetro. Si recuerdas, un potenciómetro era un dispositivo que permite variar su resistencia mediante un mando giratorio, resultando en que puedes variar el valor de la señal. Por ello, ya que sus valores no son únicamente «1» o «0», este componente no irá conectado a los pines digitales de la placa controladora, sino a los pines analógicos, de los que se podrán obtener valores  entre 0 y 1023.

En este caso la programación la he realizado de manera ligeramente diferente, utilizando bloques si ejecutar en lugar de los switch case ejecutar. Puedes ver los bloques a continuación.

La idea es coger todo el rango de movimiento del potenciómetro (de 0 a 1023) y dividirlo en 7 trozos, uno para cada nota. La nota que sonará será la del rango de valores dentro del cual se encuentre el potenciómetro en cada momento. Verás que, en este caso, la duración de cada nota es «0». Esto es para que suene de forma continuada, sin pausas, como un único pitido.

Se podrían haber hecho ambos ejemplos con si ejecutar o con switch case ejecutar, pero de esta forma te puedo mostrar diferentes puntos de vista para programar tus proyectos. Tan sólo depende de lo que tú veas más sencillo y adecuado.

El resultado final de este ejemplo te lo muestro en el siguiente video.

Como ves hay muchas formas de interactuar con los diferentes elementos y componentes. Y aunque el sonido emitido por el zumbador no sea el más agradable del mundo, se pueden crear melodías entretenidas, divertidas y reconocibles. Como último ejemplo, ya sin ahondar en él, te pongo una melodía que yo he escogido. Ésta es la sintonía de una serie muy famosa de los años 80 llamada El coche fantástico (Knight Rider en su versión original). Su código es muy sencillito, pues tan sólo consta de las notas de la melodía en sucesión. Por si quieres echarle un vistazo te lo pongo también a contiuación.

Y ya sí, con el resultado final de la melodía me despido hasta la próxima entrega.