Paso 7: Controlarlo todo (.. .con un Arduino)
* Herramientas y entorno de compilación software: nuestro entorno de compilación es Linux, gcc AVR, AVR libc y hacen. El código es nominalmente C++, pero el código no utiliza las características de C++ - efectivamente es C. Utilizamos el TinyUSB ISP y avrdude para empujar el binario compilado en el dispositivo. Nota: somos programadores de firmware embebido de regreso y encontrar el entorno de software de Arduino para hacer tonterías. Así que no usamos. Nos encanta el hardware de Arduino, pero en realidad es sólo un Atmel microcontrolador en un tablero. No utilice el cargador de arranque de Arduino, IDE o bibliotecas. Si te gusta ese tipo de cosas, más poder, lo que consigue el trabajo hecho - para nosotros solo se pone en el camino.
* Depuración: El atmega328p tiene un solo puerto serial, y el hardware MIDI utiliza, por lo que no se puede utilizar para la depuración. Nos gusta algún tipo de salida para la depuración, por lo que hemos añadido un 16 x 2 LCD para el sistema. Es un dispositivo de tipo genérico de HD44780 y nos enganchado lo para arriba en modo de 4 bits por utilizaría un número mínimo de pernos del IO. Añadir el código del controlador y puede enviar de printf para la pantalla LCD.
* Alimentación: Las necesidades de Arduino + 5V y la necesidad de módulos LED + 12V. Una solución barata, fácil y capaz es vuelva a propósito de una fuente de alimentación de un PC viejo. Más fuentes de alimentación de PC tienen una gran cantidad de cables que salen de ellos. La mayoría de ellas puede eliminarse. Una cosa que usted necesita mirar hacia fuera para es la señal de "poder sobre". Esto es una señal de la placa madre al PS que se utiliza para cosas como wake-on-lan. La placa base motivos para decir el PS para encender. Si no conectar a tierra el PS permanecerá apagado - por lo que a tierra para una fuente de energía siempre.
* Ruido eléctrico: Los cables para la matriz del teclado y el encadenamiento de módulo LED son 17 pies de largo. Operan en frecuencias en MHz baja. El cable MIDI al piano en el hoyo es aproximadamente 30 pies de largo. Ruido eléctrico es una preocupación. Un espectáculo teatral tiene micros de radio, atenuadores de iluminación DMX controlada y otras fuentes de ruido eléctrico. Afortunadamente el diseño de la base no tenía un problema con el ruido y no necesitamos hacer nada especial para solucionar los problemas de ruido. Empezamos con la mentalidad que el ruido puede ser un problema, y debido a esto limitada de frecuencias de circuito y aseguró que tenía margen de ruido razonable en la clave del análisis de circuitos.
Recursos:
Gran Firmware Piano.
Mira main.cpp para el bucle de nivel superior que integra los elementos funcionales.
https://github.com/Deadsy/bigpiano/BLOB/Master/src/Main.cpp
Busque en lcd.cpp y lcd.h el controlador HD44780 LCD.
https://github.com/Deadsy/bigpiano/BLOB/Master/src/LCD.cpp
https://github.com/Deadsy/bigpiano/BLOB/Master/src/LCD.h