Reloj de disco duro - persistencia de la visión (10 / 13 paso)

Paso 10: Puesta en marcha del Consejo superior, comunicación con los periféricos

1. encender el eje

Desde este Consejo estamos utilizando el mismo tipo de procesador como el que está en la placa base, la parte de gestor de arranque es fácil de integrar. Sólo cambió de huellas (y cometió el error crucial que explicaré más adelante):

  • DIP40 para TQFP44 para el PIC18F4550
  • THT a 1206 SMT para resistencias
  • THT a SMT para el conector USB

Todo lo demás seguía siendo el mismo como lo fue en la versión anterior de esta junta. La versión anterior tenía un PIC18F46J50 en él y no quiere arrancar o bien, independientemente del programador he probado - solos, al menos por ahora.

Los componentes en tableros de este son:

  1. 1 x microcontrolador PIC18F4550 - realiza la lectura y el procesamiento. No es el músculo sólo computacional en este foro, pero tiene el "más difícil"
  2. 1 x PCF8523 reloj en tiempo real y calendario - lleva la carga de la hora normal de hombro del PIC18F4550. cuenta con su propio oscilador de cristal de 32.768 KHz.
  3. 1 x controlador de LED PCA9683 - en lugar de mantenerse ocupado con el parpadeo del LED, el PIC18F4550 este hombre toma comandos del bus I²C y lo convierte en parpadear LEDs.
  4. oscilador de cristal de 1 x 20MHz para el PIC18F4550
  5. 1 sensor de x Vishay IR para mando a distancia sobre el sistema
  6. oscilador de cristal 1 x 32.768KHz para el reloj de tiempo real
  7. 2 x botones - interfaz de usuario
  8. 3 x LEDs de usuario - interfaz de usuario
  9. 16 x pantalla LED - para mostrar la hora y nada
  10. n x resistencias - dominadas, pull-downs y componentes limitantes actuales
  11. x n condensadores - disociación, filtrado de componentes
  12. 1 fotodiodo x - utilizado para la sincronización


2. antes de ir lejos, hacer los controles habituales.

Lo primero que hay que estar seguros de es que el gestor de arranque está funcionando bien y podemos subir el código de la aplicación de usuario con seguridad y sin duda. Para ello necesitamos el mismo paquete de software y el firmware que hemos utilizado para la placa base. El mismo pin RD3 detectará presencia USB y pasará al gestor de arranque o en la espalda. Los LEDs también están en las mismas salidas. Compruebe si puede programar el dispositivo! Si lo haces, estás listo para pasar a escribir el código de la aplicación.

Lectura de los botones y los LED que destella son lo primero que se debe implementar en el código de la aplicación. A continuación será el uso de la comunicación I²C. En uno de mis anteriores instructables dio una descripción detallada sobre el bus I²C, puede leerlo otra vez para refrescar su memoria. Utilice sus propias funciones o que en las bibliotecas - incumbe a usted. Por mi parte utilizará las mismas funciones que he utilizado en el proyecto de "Cinta de medición ultrasónica".

Una diferencia importante en este proyecto es la presencia de dos dispositivos esclavos en vez de uno. Esto no significa nada malo, de hecho, significa que vamos a hacer un mejor uso de nuestro bus serial con múltiple capacidad de esclavos. Tendremos que definir dos direcciones de esclavo y todas sus direcciones de registro interno importante. Tales variables importantes serían los contadores de la RTC, los pestillos de la salida del controlador LED, ciclo de trabajo los registros del controlador de LED, etc..

3. I²C obras, salte a la interfaz de infrarrojos

El siguiente en la lista sería determinar el tamaño de "fuente" para nuestra pantalla giratoria. Puede medir las RPM de alguna manera, o usted puede ajustar el retardo del avance de cartel LED usando el control remoto. Esto significa que el infrarrojo decodificación de protocolo es su siguiente tarea - no se forma a los personajes sin que trabajar par!

Primero trabajé con microcontroladores en el tercer año de licenciatura, recuerdo que no podía esperar a ver lo que esta clase era sobre. Creo que el primer proyecto serio VI y logró entender fue un sistema de infrarrojos. El receptor recoge las señales procedentes del mando a distancia y pasa a la foto. A continuación, una rutina de servicio de interrupción guarda los datos en un registro de 14 bits, algunos bits son bits de datos, otros eran bits de control, lo importante era: código de control de un refrigerador sobre IR DC fue escrito correctamente.

Antes de saltar al siguiente paso, tienes para estar seguro de una cosa: las señales del mando a distancia están haciendo su camino a través del aire, a través del receptor de IR derecho al pin de su foto. Esto se puede medir fácilmente con el osciloscopio. Hice una foto con mi alcance a mostrar lo que veo en mi tabla cuando se presiona una tecla del mando a distancia, ver si coincide con la señal de que ves. Debe ser una señal digital de modulada, agradable. Si tienes en el pin, lee el paso siguiente para obtener más información sobre el protocolo y los métodos que usted puede escoger para capturar los bits de entrada.

Lo que hice aquí fue esto: crear una interrupción que desencadena en un flanco descendente en la salida de los sensores infrarrojos, luego esperó 300us y comprobar el nivel en el pin otra vez. Después de esto provocó una serie de 13 medidas, con un retraso de 1.6ms. Después de todo lo había creado y comprobar la señal que llegó desde el mando a distancia, tuve que modificar este segundo momento para 1.78ms. Estos horarios se establecieron con la ayuda del módulo de comparación del PIC.

El uso de este módulo es muy simple: piensa en un tiempo de espera, expresarlo en número de ciclos de reloj y ponerlo en el registro de comparación. Luego ajustar el temporizador de la foto 1 a contar y dar la interrupción al registro de timer - comparar registro partido. En pocas palabras, vamos a medir el nivel en intervalos de tiempo fijo y utilizar la medida para saber que botón se presionó. Miré en la web de los códigos de tecla, pero logró coger sólo el "P +", "P", "V +", "V-" eventos de los botones. ¿Cómo encontrar el código para el resto :)?

¿Por suerte tenemos 16 LEDs para mostrar todo lo que quieras, derecho? Escribí un pequeño programa a la salida el código hex que vino en el sensor de infrarrojos de entrada en la pantalla LED, había leído por el ojo y añadido macros para que sean fáciles de identificar:

#define REMOTE_P_PLUS 0 x 20

#define REMOTE_P_MINUS 0x21

y así sucesivamente. De esta manera puedo desencadenar eventos basados en llave-presiona en el mando a distancia sin tener que saber todos esos identificadores hexadecimales funky. Si usted puede hacer esto, el control remoto está trabajando la manera que usted espera!

4. sincronización

Su eje necesita a sí mismo a un punto de referencia, debe asegurarse de que hay una señal que se puede coger en cada rotación, para saber cuándo activar la secuencia de caracteres de LED. Quería hacerlo con un sensor hall, pero más tarde se dio cuenta de que iba loca alrededor de 20 imanes de neodimio - necesito algo más.

Un enfoque sencillo era un fotodiodo y detectar la luz proveniente de un LED estático. Para no perturbar la imagen borrosa en el aire por la pantalla LED, decidí usar LED de infrarrojos para esta tarea. Yo sabía que compré algunos LED infrarrojo y un fotodiodo hace algunos años, con la esperanza de hacer algunas pruebas sobre ellos, miré para arriba y armar una prueba protoboard esquema. El fotodiodo tiene conectado a 5V a través de una resistencia de 4,7 K limitante de corriente, el punto medio tiene conectado a un pin de interrupción capaz (RB6). Necesitamos esta detección de interrupción para que sea muy precisa. Os adjunto el código de manejo de todo lo descrito en la sección de imagen de este paso. Los puntos sustituimos el código que tienes que escribir el patrón derecho obtiene emitido por los ocho LEDs azul. Esta parte hace uso de la capacidad de interrupción en el cambio de pines PORTB, una característica que es muy interesante y muy útil cuando usted tiene sus INT0 e INT1 pasadores de la ocupada por el bus I²C.

Artículos Relacionados

Reciclado reloj de disco duro - FuneLab

Reciclado reloj de disco duro - FuneLab

Hola a todos!Este es mi quinto proyecto en Instructables y gracias todo el mundo le gustaba esto.¿Tiene un disco duro roto? ¿Ponerlo en la basura o vender en Ebay por unos pocos dólares? ¡ Oh no!Prepárese girar a su disco duro estrellado en un reloj
Reloj de disco duro: la manera más fácil!

Reloj de disco duro: la manera más fácil!

¿Quiero un reloj de disco duro en tu escritorio?¿No desea pasar horas haciéndolo?¿Tiene un reloj de bolsillo?Muy bien!!Paso 1: ya listo! OK, solo tienes un disco duro, un clip de papel y su reloj de bolsillo.¡ Listo!Visítame: www.nemo-geek-art.com
RELOJ de discos duros antiguos de pared

RELOJ de discos duros antiguos de pared

aquí está Instructable sobre cómo reciclar discos duros de computadora vieja en reloj de pared de aspecto muy original.Paso 1: Materiales y herramientas necesarias Las herramientas que necesita para este proyecto son:1. taladro - sugiero pequeño tala
Reloj de disco duro (HDD reloj con Arduino Uno)

Reloj de disco duro (HDD reloj con Arduino Uno)

Este es un proyecto que se puede hacer fácilmente y también barato. En este instructivo vamos a explicar paso a paso cómo hacer este bonito reloj POV.Material utilizado:Arduino Uno,Pequeño módulo RTC,ULN 2003,IR diodo y transistor IR (utilizado como
Reloj de disco duro Unidad simple

Reloj de disco duro Unidad simple

Bueno aqui les dejo mi primer Intructable. Hemos querido hacer un windbelt en una clase de escuela, así que tomamos aparte algunas unidades de disco duros. Conseguí los discos y había hecho un reloj!Mayor parte de esta era solo improvisación, pero el
Reloj conmemorativo disco duro

Reloj conmemorativo disco duro

este instructable fue inspirado por los relojes de lujo que parecen libros madera. Puedes abrirlos y ver una pequeña felicitación y un reloj. Este proyecto logra el mismo efecto pero con un disco duro muerto.Paso 1: partes Para la construcción de est
Reloj de disco duro reciclado artístico

Reloj de disco duro reciclado artístico

he visto muchos relojes reciclados hdd, pero pensé que puedo hacerla ver más artsy :) 
¿Desarmar un disco duro

¿Desarmar un disco duro

para que tengas un disco duro viejo que no puede almacenar información de cualquier mejor entonces un horno almacena frutas? Supongo que has reemplazado con uno nuevo, pero qué hacer con el viejo. No puede realizar es la función más básica, para alma
Cómo transformar disco duro viejo en el gadget de tiempo

Cómo transformar disco duro viejo en el gadget de tiempo

...Hola a todos!Así que, ¿qué vamos a reciclar hoy en día?Echemos un vistazo lo que tenemos en esa caja grande. Estoy seguro de que encontrará algo para comenzar con.Bueno, eso es disco duro... una más... dos más... mucho más; internos, externos, SCS
Disco duro Unidad de persistencia de la visión (HDPOV)

Disco duro Unidad de persistencia de la visión (HDPOV)

el plato de un disco duro gira más de sesenta veces por segundo. Si se cortó una ranura angosta en el plato para permitir que el LEDs brille a través de, podemos lograr la fusión del parpadeo y engañar el ojo viendo una imagen estable. Este fenómeno
De doble cara reloj de reciclarlos discos duros

De doble cara reloj de reciclarlos discos duros

¿Ha tenido alguna vez un disco duro falla en su computadora portátil? Qué estaba pensando, por supuesto tienes.¿Qué hizo usted con el pedazo inútil de metal después de que reemplazó? Probablemente sólo lo tiraron a la basura.Bien, ¿por qué no recicla
Disco duro NeoPixel 3D impreso reloj

Disco duro NeoPixel 3D impreso reloj

Se mostrará el reloj de la unidad de disco duroel tiempo a través de la NeoPixels se encuentran en la zona de plato de disco duro. Este proyecto está diseñado alrededor de utilizando un cuaderno descartado 2.5" disco duro de.El disco duro se monta en
KlockFun: De cuco reloj alarma de disco duro

KlockFun: De cuco reloj alarma de disco duro

Hola todos,Este es mi primer Instructable y es un cuco reloj alarma de disco duro: KlockFun.Me encanta relojes y quiero que comenzó a diseñar un reloj de alarma mejor de un viejo disco duro, las primeras pantallas de LED y un pájaro cuco. Quiero trae
Reutiliza un disco duro y conviértelo en reloj analógico.

Reutiliza un disco duro y conviértelo en reloj analógico.

En ocasiones tenemos discos duros de ordenadores portátiles dañados y no sabemos hacer con ellos, por lo general y como lo marca la obsolencia parte Terminans en la basura. Por lo tanto decidí crear ONU lejor analógico.Paso 1: Material necesario: -Va