Música despertador (18 / 24 paso)

Paso 18: Diseño de Software

El código de fuente del proyecto final también se proporciona a continuación. Sin embargo, el archivo de código de comando IR está vacío y se llena en el uso de los mismos datos que tienes en el paso de "Captura de datos de Control remoto IR". Una vez rellena que, debe ser capaz de compilar-subir-run.

El código juega todos los archivos en el directorio de raíz de la tarjeta SD. Los archivos se ordenarán alfabéticamente. Mi código fuente tiene algunas características adicionales tales como visualización de volumen cuando cambia y muestra el nombre del archivo actual, longitud de canción y tiempo actual en la canción. Siga el código fuente para entender cómo funciona cada característica.

El reproductor de música no será capaz de reproducir música mientras conectado a una computadora como un dispositivo de almacenamiento masivo USB. Esto es porque SCSI (recuerda que mencioné antes?) funciona en bloques de datos en la tarjeta SD directamente pero el módulo FatFs que almacena en caché datos en la RAM, cambiar así nada usando USB hará que los datos utilizados por FatFs a estar fuera de sincronización con los datos reales.

Aunque quise usar USB Conecte y desconecte eventos para detectar automáticamente FatFs acceder a la tarjeta SD o no, no puedo por la forma en que el Teensy ++ está diseñado. Siempre habrá un voltaje en VBUS, que hace inútiles los acontecimientos. Así que para permitir el acceso USB, necesita entrar en el menú del reloj para habilitarlo.

Hay un contador de tiempo llamado la "un shot timer" que se disparará un evento sólo una vez después de cierto tiempo. Se utiliza para mostrar la hora actual en la pantalla LCD después de alguna otra cosa ha sido mostrado en la pantalla LCD. Por lo que si cambia el volumen, se le mostrará el volumen y después de 3 segundos, volverá a mostrarte el tiempo.

Otro temporizador timer 0, que está programado para disparar un evento cada segundo, esto hace un seguimiento de tiempo internamente por lo que no tenemos que consultar con frecuencia el DS1307. Esto también activa la alarma cuando coincide con el tiempo.

Tengo un corto apéndice en contadores de tiempo, échale un vistazo.

La impresión de la pantalla LCD se realiza con la cadena almacenada en memoria flash, esto es algo lento en comparación con el uso de RAM. He estructurado el flujo del programa para actualizar sólo la pantalla LCD durante períodos de tiempo cuando el descodificador está ocupado. Las cadenas se guardan en flash porque la memoria RAM es más preciosa, es un buen hábito para ahorrar siempre cadenas invariables en flash.

Todos los ajustes se guardan para el DS1307 usuario RAM (que es con respaldo de batería) o EEPROM interno del AVR (véase el apéndice para más detalles). Estos ajustes son cargados validados durante el arranque y cuando el decodificador está ocupado.

Si usted cava aunque los archivos, usted puede encontrar funciones de prueba que uso para probar varios componentes individuales del sistema.

Todos los archivos que son puramente escritos por mí están en la carpeta superior. LUFA se almacena en la carpeta LUFA, y "Lib" almacena varios componentes no escritos por mí (puede haber modificaciones).

Programadores C experimentados pueden encontrar que rompí algunas reglas. Para el. C archivos que se incluyen en vez de compilados, mi excusa es que son separados a modularizar sin tener que diseñar API que resumen. Para los errores de otros, mi excusa es la limitada cantidad de tiempo que tuvieron que construir, programa, prueba y este proyecto de documento.

Hay algunos mecanismos utilizados en el código que permite que el mismo código compilado para chips ATmega644 y ATmega644P, así como el Teensy ++, las asignaciones de pines son diferentes (y por lo tanto el circuito requiere cableado menor). El código portado no ha sido probado. Obviamente no hay ninguna funcionalidad USB en la versión ATmega644/ATmega644P desde este microcontrolador no tiene USB.

No se deben cambiar los fusibles para la AT90USB1286 si usas el Teensy ++.
Los fusibles para la ATmega644 deben ser: LFUSIBLE: 0xE2, HFUSE: 0x9F, la importancia de estos valores es que el oscilador RC interno se utiliza en 8 MHz (mientras que el Teensy ++ utiliza un cristal de 16 MHz externa que se divide por 2 internos).
De una manera aseada calcular fusibles AVR, intente esto: http://www.frank-zhao.com/fusecalc/

Unidos son el código fuente completo de sello de tiempo.

Artículos Relacionados

LED amanecer / amanecer despertador, luz nocturna y luz seguridad - compatible con Arduino

LED amanecer / amanecer despertador, luz nocturna y luz seguridad - compatible con Arduino

como las noches alargadas gradualmente en otoño 2011, descubrí los placeres del Arduino y pensó que sería una buena manera de implementar algo que he querido durante mucho tiempo - una manera suave para despertar en la mañana de un invierno.  Lamenta
LittleBits reproductor de música Wi-Fi

LittleBits reproductor de música Wi-Fi

Sin hilos controlar este reproductor de música con el teléfono o a través de una variedad de canales IFTTT.Utilizar Control de Cloud (en su teléfono u ordenador) para avanzar de a canción a la siguiente o probar la fecha y hora canal de IFTTT para ha
Despertador de RaspberryPi

Despertador de RaspberryPi

Se trata de un despertador basado en un RaspberryPi. Cualquier RaspberryPi funcionará. Utilicé una modelo B1 versión 2 porque tiene los orificios de montaje y la velocidad no importa. Tengo una tarea que debe realizarse cada dos días. Por eso hay un
Teléfono móvil de carga / estación de música (altavoces de escritorio antigua de reutilización)

Teléfono móvil de carga / estación de música (altavoces de escritorio antigua de reutilización)

decidí usar mis viejos altavoces estéreos e incorporarlos en mi estación de carga, por lo que puedo reproducir mi música con el más bajo. (Mucho mejor que el altavoz del teléfono móvil) + puede ser utilizado como un altavoz muy fuerte o un despertado
Despertador de amplificador de guitarra

Despertador de amplificador de guitarra

Esta idea estaba tomando de un anterior instructable.por lonesoulsurferEsto puede ser uno de lo más fácil, barato, pero aún brillante instructivo que he visto. Como un maestro nos desafió a nuestros estudiantes de la escuela en una vieja radio. Despu
Rompecabezas reloj despertador

Rompecabezas reloj despertador

En este instructable voy a mostrar cómo construir un reloj de alarma que le permite ajustar el tiempo arreglando los dígitos.Casi nunca consigo en una discusión con mi novio, pero cuando lo hacemos es casi siempre acerca de la configuración de la hor
Personalizada alarma reloj/música en Radio

Personalizada alarma reloj/música en Radio

Este proyecto un Pi de frambuesa bastante sencillo para los entusiastas de Raspberry Pi nivel principiante. En este Instructable le mostrará cómo hacer un reloj de alarma que se transmiten en la banda de FM. Esto le permitirá poder escuchar la radio
Infalible despertador inteligente

Infalible despertador inteligente

¿Siempre despierta en su reloj de alarma sólo para apagarla, pone hacia abajo, cierre los ojos durante unos pocos segundos... y terminan despertando mucho más tarde que había querido? Este proyecto pretende resolver el problema mediante la construcci
Reloj despertador ensordecedor

Reloj despertador ensordecedor

un reloj de alarma (modificado) confiable que despertará a los muertos. Pongo este juntos después de haber tenido varias alarmas cuerdas romper conmigo. Básicamente es un despertador electrónico modificado para disparar una alarma. Ya que estoy práct
Auto-en la música en el Hack de baño

Auto-en la música en el Hack de baño

Tienen el juego de radio cada vez que encienda las luces en el cuarto de baño. Asegúrese de apagar las luces y los interruptores para evitar electrocución! Parche solo en su viejo despertador que ya no utilizas y viola! Auto de música cada vez que la
Reloj despertador con infrarrojo y Bluetooth altavoces

Reloj despertador con infrarrojo y Bluetooth altavoces

INTRODUCCIÓNHola, mi nombre es Ben Hur Gonçalves, soy Ingeniero Mecatrónico graduado en Universidade de São Paulo, Brasil en 2010. Hoy en día trabajo con bienes raíces, pero hacer estos proyectos con arduino en fines de semana, sólo por diversión. Es
Reloj despertador Pac_Man MP3

Reloj despertador Pac_Man MP3

InglésEste es mi primer instructables :-) lo siento por mi inglés... ¡ Soy francés!Tiene estructura para mi hija un despertador MP3 con la cara divertida de Pac_Man (ahora ella despertar todo solo)FrancésC ' est mon 1er instructables :-)J ' ai constr
WeggUp - un dormir del ciclo y la luz despertador

WeggUp - un dormir del ciclo y la luz despertador

A menudo tengo el problema, que tengo problemas para levantarme en la mañana, mientras que al mismo tiempo, tengo problemas para dormir en la noche.He comprobado varias posibilidades para hacer tanto más fácil.Levantarse en la mañanaAlarma de salida
Reloj despertador con Evive

Reloj despertador con Evive

Queremos hacer un reloj de alarma analógico y digital combinado. Reloj de tiempo real es esencial para el reloj mantener el tiempo, incluso si está apagada. Pero comúnmente disponibles tableros de microcontrolador como Arduino o frambuesa Pi no tiene