Descargo de responsabilidad: Este proyecto es lo que usted llamaría un SMOP, "una simple cuestión de programación". Eso significa que es de complejidad trivial pero muy largo... así que si no puede tolerar el aburrimiento en la medida donde confina autoaniquilación, esto encontrará doloroso trabajar en.
Se supone conocimiento de lenguaje ensamblador, electrónica básica y microcontroladores. Esto no es simple, pero no es cirugía cohete tampoco.
La caja de música tiene 4 etapas: almacenamiento de canción, generación de sonido, amplificación y poder.
Puede producir un completo de 8 octavas de la música de la onda cuadrada, que está a menos de 100 notas en una escala logarítmica de 5 kilociclos a justo por debajo de 20 hertzios. La calidad es de aproximadamente de consolas antiguas o las primeras tarjetas de sonido midi.
Generación de sonido:
Hay mucho que describir. Se acepta la entrada del puerto paralelo a través de PORTB y salidas una onda cuadrada de frecuencia variable en el PORTA, pin 1. Funciona en un 8pu attiny26l, a 1 Mhz. aumentos de velocidad reloj de doblar notas una octava más alta, útil si usted ha hecho un cálculo erróneo, como lo hice (dobló a 2Mhz, la última canción que sonó mucho mejor).
Sencillez y bajo consumo de energía fueron primordiales en este proyecto, es por eso que no diseñar algún tipo de serie/paralelo DAC darme salida de onda sinusoidal correcta. También no estaba dispuesto a un reproductor de mp3 (la otra opción de diseño para este proyecto) de la basura por algo que podía hacer adecuadamente con 10$ valor de piezas.
Se diseña tales que un AVR segundo se sienta justo al lado y contiene la información de la canción.
Almacenamiento de información de la canción:
Un atmega16 envía 8 bits números hacia fuera es PORTA para establecer duraciones, cada número corresponde a una nota en el AVR... básicamente el formato sonido posible más simple, no hay control de volumen no incluso ahora mismo, pero si agrego lo utilizaría PORTB en el chip de "información de la canción" darme 8 niveles de volumen, cada pin levantado alto causaría el chip de "intérprete de la canción" con un pin adicional como salida. Todos conectarían a un opamp a través de una red de resistencia, tales que más alfileres--> más voltaje en el amplificador de entrada.
Originalmente usé otro attiny26l-8pu para el almacenamiento de la canción, pero no bastaba la memoria (2k) de la canción de 313 notas (~ 2800 líneas de código). El único chip de trabajo tuve que mentir acerca de era un atmega16.
Amplificación:
Un amplificador de dos etapas fue construido usando 2 transistores NPN N2222 (par darlington). Envía salida para un zumbador piezoeléctrico. Noté algunos zumbadores trabajado, otros no... altavoces/auriculares que siempre trabajados.
Profundamente mágico: si conectas pin0, Puerto A la base del primer transistor del par darlington, se obtiene la salida de audio. Si también conecta pin7 a la primera etapa del par darlington, la salida se vuelve muy fuerte. Sospecho accidentalmente había definido pin 7 como salida en la fuente... pero el par de darlington es lo suficientemente sensible como para recoger algunas fugas en algún lugar y todavía funciona muy bien pero un poco reservado. Terminé conectando la primera etapa del par darlington pin0, y la segunda etapa a ambos la salida de la primera etapa y el PIN7. Esto produjo el volumen óptimo para mis propósitos. Ver editar en el primer archivo de código fuente, cerca del comienzo.
Energía:
Nada de lujo aquí. Una batería de 9v y un regulador de voltaje TL780.