Revista 100% Verde

Proyecto de navidad: construya un piano con teclas de frutas

Por Soloelectronicos @soloelectronico

No espere poder realizar una sonata para piano de Beethoven en este proyecto , pero hoy vamos a cambiar de registro en cuanto los contenidos que compartimos en este blog , enfocándonos en un proyecto muy sencillo pensado sobre para que los mas pequeños aprendan electrónica y programación de un modo divertido usando la excusa del las frutas para activar 8 notas ¡y, no se preocupe si no tiene plátanos en este momento también debería funcionar con cualquier fruta o verdura !.

Proyecto de navidad: construya un piano con teclas de frutas

El fundamento del circuito es a realmente sencillo pues basta conectar a cada fruta con una resistencia de 2,2 Mohmios ( o similar ) a una entrada analógica diferente y usar una referencia de GND como polo común y con esto ya tenemos junto con cualquier Arduino los fundamentos para hacer el piano frutal pues la electricidad fluyera cuando toquemos la fruta para cerrar el circuito y, cuando lo haga, lo leeremos desde una Placa Arduino pudiendo desencadenar un evento que en este caso, sera reproducir una nota que sacáramos por un pin digital

Es decir cuando , usando un pin digital de Arduino configurado como entrada, si lo conectamos a un objeto con cierta resistencia , esto hará que la resistencia entre esta y masa se desplace hacia GND (es decir a 0 V) porque el circuito está completo , el programa leerá ese valor binario ( es decir un cero lógico) y este evento provocara que Arduino reproduzca una nota.

Proyecto de navidad: construya un piano con teclas de frutas

Para hacer el piano de frutas necesitará:

  • Una placa Arduino, puede usar Arduino UNO pero también puede usar cualquier placa compatible procedente del mercado oriental .
  • Ocho resistencias de alto valor de 2,2 Mega ohmios, aunque debería funcionar con cualquier valor entre 1 Mega-ohmios y 10 Mega-ohmios . Si no tiene estos valores también puede asociar varias en serie o en paralelo hasta obtener valores parecidos (al usar 8 entradas al menos necesitaremos pues 8 resistencias)
  • Una resistencia de 220 ohmios para no proteger el altavoz ,( si es un altavoz de 1W o mas puede prescindir de esta).
  • Un altavoz de 8 ohmios.
  • Idealmente una placa de prueba para conectar fácilmente los cables y las resistencias al Arduino.
  • Cables rígidos para las conexiones.
  • !Su fruta o verdura favorita!( cuanto mas agua tenga mejores resultados obtendremos)

En cuanto al circuito , vamos a usar un Arduino Uno configurando los pi nes digitales 2,3,4,5,6,7 y 8, como entradas digitales y el pin digital 12 como salida digital. También se puede usar cualquier placa compatible con Arduino procedente del mercado oriental y por supuesto también una placa Netduino en todas sus variantes ( tendra que adaptar el sw)

El circuito es muy sencillo pues consintiendo básicamente en 8 entradas y una salida. A las entradas digitales conectaremos 8 resistencias de pull-up de 2,2 Meg Ohm entres estas y VCC(+5V), conexión esta ultima que obtendremos directamente de la propia placa de Arduino. Como se puede deducir, estas entradas digitales se conectan a una fruta clavando el hilo en esta . Cuando tocamos esta fruta ,al estar conectada a una entrada de Arduino , llevaremos a nivel lógico BAJO etas al conectar a tierra cada fruta que a su vez esta conectada a cada entrada digital.

El circuito se complementa con una resistencia de 220 ohmios, conectada desde el pin 12 a un altavoz de 8 ohmios. Esta resistencia perfectamente se puede suprimir si conecta directamente un altavoz y no un amplificador

Proyecto de navidad: construya un piano con teclas de frutas

En cuanto al sketh o programa para n uestro Arduino vamos a usar el ejemplo de E.Ballew escrito en Junio de 2018 que toma prestados las librerías de tono de Tom Igoe (puede ver mas ejemplos en http://arduino.cc/en/Tutorial/Tone ) utilizando sus archivos pitches.h con una clausula include para las frecuencias de las notas.

Este código implementa una sola octava de un piano simple, es decir solo reproduce 8 sonidos diferentes .

En primer lugar en el bloque Setup se definen los pines de entradas digitales asi como sus correspondientes notas para lo cual se define una matriz unidimensional llamada digInput

También se define cual va a ser el pin digital que va a usarse como salida para conectar el altavoz ( el pin 12)

Definida el array de los pines digitales que usaremos como entrada digital y la variable para el pin digital de salida simplemente toca asignar esta como entradas mediante la clausula recorriendo el array con un bucle for . También para terminar definiremos la salida con la clausula

En cuanto al bucle principal leemos mediante bucle el estado de las 8 teclas de frutas mediante la instrucción de modo que si detectamos un nivel bajo reproducimos la nota asociadas a esa tecla mediante la instrucción

Asimismo debemos evitar falso sonidos para lo cual incrementaremos la variable kepressed ,que inicializamos a cero en cada pasada del bucle para silenciar el altavoz en cuanto sepamos que no se ha pulsado ninguna fruta

......

...

También a efectos de depuración realizamos un retardo entre cada interacción de 250ms mediante la clausula delay ( 250 );

Al bucle principal ademas efectos de depuración se añade u na salida a de monitor en serie (que deberemos configurar a 9600 baudios ) , para probar los 8 niveles lógicos correspondientes a las 8 entradas binarias .

Proyecto de navidad: construya un piano con teclas de frutas

El código final resultante de todas las consideraciones anteriores es el siguiente:

int numKeys = 8;
int digInput[] = { 2, 3, 4, 5, 6, 7, 8, 9 };
int myNote[] = { NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5 };
int toneOut = 12;

void setup() {
for (int i = 0; i < numKeys; i++) {
pinMode(digInput[i], INPUT);
}
pinMode(toneOut, OUTPUT);
}

void loop() {
int keypressed = 0;
for (int j = 0; j < numKeys; j++) {
int sensorVal = digitalRead(digInput[j]);
if (sensorVal == LOW) {
++keypressed;
digitalWrite(13, HIGH);
tone(toneOut, myNote[j]);
}
}
if (keypressed == 0) {
noTone(toneOut);
}
delay(250);
}


Por cierto el concepto , aunque sirve para emular un mini órgano también puede servir para emular un miniteclado , un pulsador especial , o cualquir cosa que ncesiste ser activado mediante algo diferente
Proyecto de navidad: construya un piano con teclas de frutas


Volver a la Portada de Logo Paperblog