¡Ahora si vamos a juntar lo que hemos venido aprendiendo!

Asegúrate de salvar tu code.py si has realizado cambios que deseas preservar. Descarga el siguiente archivo, cambia su nombre a code.py y lo salvas hacia tu Circuit Playground Express.

from adafruit_circuitplayground.express import cpx

while True:
    if cpx.switch:
        print("Slide switch off!")
        cpx.pixels.fill((0, 0, 0))
        cpx.stop_tone()
        continue
    if cpx.touch_A4:
        print('Touched A4!')
        cpx.pixels.fill((15, 0, 0))
        cpx.start_tone(262)
    elif cpx.touch_A5:
        print('Touched A5!')
        cpx.pixels.fill((15, 5, 0))
        cpx.start_tone(294)
    elif cpx.touch_A6:
        print('Touched A6!')
        cpx.pixels.fill((15, 15, 0))
        cpx.start_tone(330)
    elif cpx.touch_A7:
        print('Touched A7!')
        cpx.pixels.fill((0, 15, 0))
        cpx.start_tone(349)
    elif cpx.touch_A1:
        print('Touched A1!')
        cpx.pixels.fill((0, 15, 15))
        cpx.start_tone(392)
    elif cpx.touch_A2 and not cpx.touch_A3:
        print('Touched A2!')
        cpx.pixels.fill((0, 0, 15))
        cpx.start_tone(440)
    elif cpx.touch_A3 and not cpx.touch_A2:
        print('Touched A3!')
        cpx.pixels.fill((5, 0, 15))
        cpx.start_tone(494)
    elif cpx.touch_A2 and cpx.touch_A3:
        print('Touched "8"!')
        cpx.pixels.fill((15, 0, 15))
        cpx.start_tone(523)
    else:
        cpx.pixels.fill((0, 0, 0))
        cpx.stop_tone()

Estudiemos el código:

Lo primero que hacemos es configurar el interruptor deslizante para que el proyecto se pueda activar y desactivar.

Download: file
while True:
    if cpx.switch:
        print("Slide switch off!")
        cpx.pixels.fill((0, 0, 0))
        cpx.stop_tone()
        continue

Esto es al inicio del código. Todo el código de este proyecto se encuentra dentro de este ciclo tipo while. Lo primero que el código hace dentro de este ciclo, es revisar si el interruptor se encuentra al lado izquierdo. Para propósitos de este proyecto, eso significa "apagado". Si está apagado, el código va a imprimir "Slide switch off!", apaga los LEDs, y deja de tocar cualquier sonido. Luego, el continue se asegura que el código no se detenga ahí, sino que continúe a las dos secciones a continuación.

Luego, vamos a programar para que cada pad táctil toque un tono diferente, y que muestre un color diferente en los NeoPixeles. Vamos a dejarle los prints, para tener algo de retroalimentación en el REPL.

Un piano toca notas de la más baja hacia la izquierda, hacia la más alta a la derecha. Para permitirle a nuestras "teclas" que estén en la configuración correcta, vamos a utilizar cables de lagarto con punta de pin, para que nos permita acomodarlos como teclas, y vamos a tener que hacer un par de cosas fuera de orden. Vamos a programar los pads táctiles en el mismo orden que vamos colocando los limones, comenzando desde la izquiera. Iniciemos por A4:

Download: file
    if cpx.touch_A4:
        print('Touched A4!')
        cpx.pixels.fill((15, 0, 0))
        cpx.start_tone(262)

Si tocas a A4, el código imprime "Touched A4!" en el REPL, prende las luces de color rojo, y toca un tono de 262 Hz (lo cual es un Do medio). Esta es la primera "tecla" de nuestro piano. A5, A6, A7 y A1 básicamente hacen lo mismo, pero les cambiamos el tono y el color. Aquí usamos condicionales tipo elif en lugar de condicionales tipo if.

Hay 7 pads táctileles. Vamos a incluir 8 tonos para crear una octava completa. Para simular este pad número 8, vas a tocar A2 y A3 al mismo tiempo. De esta forma, tenemos que escribir el código que haga la diferencia entre A2, entre A3 y entre los dos al mismo tiempo.

Miremos:

Download: file
    elif cpx.touch_A2 and not cpx.touch_A3:
        print('Touched A2!')
        cpx.pixels.fill((0, 0, 15))
        cpx.start_tone(440)
    elif cpx.touch_A3 and not cpx.touch_A2:
        print('Touched A3!')
        cpx.pixels.fill((5, 0, 15))
        cpx.start_tone(494)

Si tocas A2 pero no A3, el código imprime: "Touched A2!", y muestra el color dado y toca el tono dado. Si tocas A3 pero no A2, el código imprime: "Touched A2!", y muestra el color dado y toca el tono dado.

El pad simulado funciona de esta forma:

Download: file
    elif cpx.touch_A2 and cpx.touch_A3:
        print('Touched "8"!')
        cpx.pixels.fill((15, 0, 15))
        cpx.start_tone(523)

Si estás tocando A2 y A3, el código imprime "Touched "8"!", despliega el color final, y suena el tono final.

La última pieza del código es donde le decimos que si no está tocando nada, apague las luces, y deje de tocar tonos.

Download: file
    else:
        cpx.stop_tone()
        cpx.pixels.fill((0, 0, 0))

Ahora, ¡si tocas los pads, vas a escuchar los tonos y a ver los colores según se asignaron!

Armando nuestro Piano de Limones

¡Ahora vamos a agregarle nuestras teclas de frutas!

Apaga tu Circuit Playground Express. Conecta un cable de lagarto a cada uno de los pads.

Los pads de toque capacitivo se calibran al inicio, así que si dejaste prendida tu CPX, es mejor que presiones el botón de reinicio luego de conectar las frutas.

Las vas a querer acomodar de forma que no se toquen. Puedes doblar ligeramente los cables para convencerlos que se queden donde los necesitas. Si los cables se tocan, puede que parezca como si los estuvieran tocando.

El acomodarlos de esta forma, permite que no se toquen:

Los clips se conectan de forma que permitan abanicarse, y para evitar interferencia de los otros clips.

Note como el clip que se conectó a A7, ha sido doblado dos veces para lograr acortar su tamaño.

Ahora vamos a conectar las frutas. Con limas, es más sencillo porque puedes pinchar su piel con facilidad utilizando una punta de pin.

Ahora acomoda las limas en una línea, pero no muy cerca la una de la otra. Al igual que con los cables, el poner las limas muy cerca, puede causar interferencia.

Conecte su Circuit Playground Express. Puede que necesites presionar el botón de reset luego de conectarla, si está conectada a batería.

¡Ahora es tiempo de tocar! Este video muestra una canción siendo tocada en el Piano de Limones. ¡Que te diviertas tocando!

This guide was first published on Jul 01, 2020. It was last updated on Jul 01, 2020.

This page (Piano de Limones) was last updated on Oct 25, 2020.