Disque dur horloge - persistance rétinienne (10 / 13 étapes)

Étape 10 : Démarrage de la carte supérieure, communication avec les périphériques

1. mise sous tension de la broche

Comme pour ce Conseil, nous utilisons le même type de processeur que celle sur la carte de base, la partie du programme d’amorçage est facile à intégrer. J’ai seulement changé les empreintes (et a commis l’erreur cruciale, j’expliquerai plus tard) :

  • DIP40 à TQFP44 pour le PIC18F4550
  • THT à 1206 SMT pour résistances
  • THT à SMT pour le connecteur USB

Tout le reste est resté le même, comme il était dans la version précédente de ce Conseil. La version précédente avait un PIC18F46J50 dessus et ne voudrais pas commencer non plus, quel que soit le programmeur j’ai essayé - j’ai laissé que seul, au moins pour l’instant.

Les composants de ce Conseil d’administration sont :

  1. 1 x microcontrôleur PIC18F4550 - est-ce tous la lecture et tout le traitement. Il n’est pas le muscle seulement calcul sur ce forum, mais il a le plus « difficiles »
  2. 1 x PCF8523 horloge en temps réel et calendrier - prend la charge du chronométrage au large de l’épaule de la PIC18F4550. Il a son propre oscillateur à quartz de 32 .768KHZ.
  3. 1 x PCA9683 LED driver - au lieu de garder le PIC18F4550 occupé avec le clignotement de la LED, cet homme prend les commandes du bus I²C et il transforme en clignotant LED.
  4. oscillateur à quartz 1 x 20MHz pour le PIC18F4550
  5. 1 capteur de x Vishay IR pour télécommande contrôle le système
  6. oscillateur à quartz 1 x 32.768KHz pour l’horloge temps réel
  7. 2 boutons x - interface utilisateur
  8. 3 x diodes de l’utilisateur - interface utilisateur
  9. 16 x affichage LEDs - pour affichage de l’heure et n’importe quoi d’autre
  10. n x résistances - pull, pull-down et composants de limites courant
  11. n x condensateurs - découplage, éléments filtrants
  12. 1 x photodiode - utilisé pour la synchronisation


2. avant aller plus loin, procéder aux vérifications habituelles !

La première chose que nous devons être sûrs est que le bootloader fonctionne très bien et nous pouvons Télécharger le code d’application utilisateur en toute sécurité et sûrement. Pour cela, nous devons le même package de logiciels et progiciels, que nous avons utilisé pour le sommier. Le même NIP RD3 détectera la présence de l’USB et passera à bootloader ou dos. Les LEDs sont également sur les mêmes sorties. Vérifiez si vous pouvez programmer l’appareil ! Si vous le faites, vous êtes prêt à passer à l’écriture du code de l’application.

Les boutons de lecture et clignotement de la LED sont la première chose que vous devez implémenter dans le code d’application. Suivant sera l’utilisation de la communication I²C. Dans l’un de mes précédents instructables, j’ai donné une description détaillée sur le bus I²C, vous pouvez lire une deuxième fois pour rafraîchir votre mémoire. Utilisez vos propres fonctions ou celui fourni dans les bibliothèques - c’est à vous. Pour ma part utilisera les mêmes fonctions que j’ai utilisé dans le projet « Ultrasons ruban à mesurer ».

Une différence importante dans ce projet est la présence de deux dispositifs esclaves au lieu d’un. Cela ne signifie rien de mauvais, en fait - cela signifie que nous allons faire un meilleur usage de notre bus série avec plusieurs possibilités d’esclaves. Nous devrons définir deux adresses d’esclaves et toutes ses adresses de registre interne important. Ces variables importantes seraient les compteurs de la CCF, les verrous de la sortie du pilote LED, les registres de rapport cyclique des LED driver, etc..

3. I²C œuvres, accéder à l’interface infrarouge

Le prochain sur la liste serait de déterminer la taille de la « police » pour notre affichage rotatif. Vous pouvez ainsi mesurer tr/min en quelque sorte, ou vous pouvez découper le retard de l’avance de signe de LED à l’aide de la télécommande. Cela signifie que l’infrarouge décodage de protocole est votre prochaine tâche - ne peut façonner les personnages sans ce travail nominale !

J’ai d’abord travaillé avec des microcontrôleurs dans la troisième année de baccalauréat, je me souviens que je ne pouvais pas attendre de voir ce que cette classe était sur. Je pense que le premier projet sérieux, j’ai vu et a réussi à comprendre était un système infrarouge. Le récepteur recueillies les signaux venant de la télécommande et passé par eux pour la photo. Ensuite, une routine d’interruption du service enregistré les données d’un registre de 14 bits, certains bits sont des bits de données, d’autres étaient des bits de contrôle, la chose importante était : code de contrôle d’un DC glacière sur IR a été écrit avec succès.

Avant de vous lancer à l’étape suivante, vous devez être sûr d’une chose : les signaux de la télécommande font leur chemin à travers l’air, par l’intermédiaire de récepteur infrarouge à droite sur la broche de votre PIC. Ceci peut être facilement mesurée avec l’oscilloscope. J’ai fait une capture instantanée à ma portée pour vous montrer ce que je vois sur ma planche lorsqu’une touche est enfoncée sur la télécommande, voir si elle correspond avec le signal que vous voyez. Il devrait être un signal numérique nice, modulé. Si vous avez sur la broche, lisez l’étape suivante pour en savoir plus sur le protocole et les méthodes que vous pouvez vous procurer pour attraper les bits entrants.

Ce que j’ai fait ici c’est : mettre en place une interruption qui déclenche sur un front descendant sur la sortie des capteurs infrarouges, puis attendit 300us et vérifié le niveau sur l’épingle à nouveau. Après cela, j’ai déclenché une série de 13 mesures, avec un retard de 1.6ms. Après que j’ai mis en place tout et vérifié le signal provenant de la télécommande, j’ai dû modifier le calage de cet deuxième à 1.78ms. Ces horaires ont été mis en place avec l’aide du module comparer du PIC.

L’utilisation de ce module est très simple : pensez à un délai d’attente, exprimer en nombre de cycles d’horloge et mettez-la dans le registre de comparer. Puis régler la minuterie PIC 1 pour compter et donner l’interruption sur minuterie Registre - comparer le registre de correspondance. En termes simples, nous allons mesurer le niveau d’intervalles de temps fixes et l’utilisation de la mesure pour savoir quel bouton a été enfoncé. J’ai regardé sur le web pour les codes de touche, mais réussi à attraper seulement les « P + », « P-», « V + », « V-» événements de bouton. Comment trouver le code pour le reste:) ?

Heureusement, nous avons 16 LEDs pour afficher tout ce que nous voulons, à droite ? J’ai écrit un petit programme à sortie le code hexadécimal qui est venu sur le capteur infrarouge d’entrée sur l’écran LED, lisez-le par oeil et ajouté des macros pour les rendre plus faciles à identifier :

#define REMOTE_P_PLUS 0 x 20

#define REMOTE_P_MINUS 0 x 21

et ainsi de suite. De cette façon je peux déclencher des événements issus des touches de la télécommande sans avoir à connaître tous ces identificateurs hexadécimaux funky. Si vous pouvez le faire, votre télécommande fonctionne la façon dont vous vous attendez !

4. synchronisation

Votre arbre doit lui-même faire référence à un point, vous devez vous assurer qu’il y a un signal que vous pouvez attraper à chaque rotation, afin que vous sachiez quand déclencher la séquence de caractères de LED. J’ai voulu le faire avec un capteur hall, mais réalisé plus tard qu’il irait fou autour de 20 aimants en néodyme - j’ai besoin de quelque chose d’autre.

Une approche simple était d’obtenir une photodiode et détecter la lumière provenant d’une LED statique. Afin de ne pas perturber l’image floue dans l’air par l’écran LED, j’ai décidé d’utiliser la LED infrarouge pour cette tâche. Je savais que j’ai acheté une photodiode et quelques LEDs infrarouges quelques années auparavant, dans l’espoir de faire quelques tests sur eux, j’ai eux leva les yeux et mis en place un test de maquette schématique. La photodiode a obtenu reliée au 5V à travers une résistance de 4,7 K limitation actuelle, le point médian obtenu relié à une tige capable d’interruption (RB6). Nous devons cette détection sur interruption pour qu’il soit très précis ! J’ai joint le code gère toutes les choses décrites à la section de l’image de cette étape. Les points remplacent le code que vous avez à écrire donc le modèle de droit obtient émis par les LEDs bleues huit. Cette partie se sert de la capacité d’interruption-sur-changement de broches PORTB, une fonctionnalité qui est très intéressante et très utile quand vous procuré votre épinglette INT0 et INT1 occupée par le bus I²C.

Articles Liés

Artsy recyclé disque dur horloge

Artsy recyclé disque dur horloge

j'ai vu beaucoup d'horloges hdd recyclé, mais j'ai pensé que je peux lui donner l'air plus artsy:) 
Recyclé horloge disque dur - FuneLab

Recyclé horloge disque dur - FuneLab

Bonjour à tous !Il s'agit de ma cinquième projet sur Instructables & merci tout le monde aimé cela.Vous avez un disque dur cassé ? Vous mettre dans la Corbeille ou le vendre sur Ebay pour quelques dollars ? Oh non !Préparez-vous à transformer votre d
Persistance des disque dur de Vision (HDPOV)

Persistance des disque dur de Vision (HDPOV)

le plateau d'un disque dur tourne plus de soixante fois par seconde. Si une fente étroite a été coupée dans le plateau afin de permettre à LEDs pour briller à travers, nous pouvons atteindre scintiller fusion et tromper l'oeil en voyant une image sta
Double-face horloge de disques durs recyclés

Double-face horloge de disques durs recyclés

Avez-vous déjà eu un disque dur n'est pas sur votre ordinateur portable ? Ce que je pensais, bien sûr vous avez.Qu'avez-vous avec le morceau inutile de métal après il remplacé ? Probablement juste il jeté à la poubelle.Eh bien, pourquoi ne pas recycl
Disque dur NeoPixel 3D imprimés horloge

Disque dur NeoPixel 3D imprimés horloge

Affiche l'horloge disque durle temps par l'intermédiaire de la NeoPixels qui se trouvent sur la zone de plateau de disque dur. Ce projet est conçu autour d'utilisant un ordinateur portable mis au rebut 2,5" disque dur.Le disque est monté sur un boîti
HORLOGE de vieux disques durs murale

HORLOGE de vieux disques durs murale

Voici Instructable sur le recyclage des vieux ordinateurs disques durs dans horloge de mur à la recherche très original.Étape 1: Matériaux et outils nécessaires Les outils dont vous aurez besoin pour ce projet sont :1. Percer - je dirais un petit for
Horloge disque dur (HDD horloge avec Arduino Uno)

Horloge disque dur (HDD horloge avec Arduino Uno)

Il s'agit d'un amusant projet qui peut être fait facilement et également à moindre coût. Dans ce instructable nous allons expliquer étape par étape comment faire cette belle horloge POV.Matériel utilisé :Arduino Uno,Minuscule CCF modul,ULN 2003,Diode
Horloge disque dur commémorative

Horloge disque dur commémorative

cette instructable a été inspirée par ces horloges fantaisies qui ressemblent à des livres de bois. Vous pouvez les ouvrir et voir un peu félicitation et une horloge. Ce projet permet d'obtenir le même effet, mais avec un disque dur mort.Étape 1: piè
Horloge disque dur : le moyen le plus facile !

Horloge disque dur : le moyen le plus facile !

Vous voulez une horloge disque dur sur votre bureau ?Vous ne voulez pas passer des heures, ce qui en fait ?Vous avez une montre de poche ?Très bien!!Étape 1: vous avez déjà terminé ! OK, vous devez juste un disque dur, un trombone et votre montre de
Horloge de plateau de disque dur simple

Horloge de plateau de disque dur simple

Eh bien, voici mon premier Intructable. Nous avons voulu faire une windbelt dans une classe d'école, donc nous avons pris à part certains disques durs. J'ai obtenu les plateaux et fait une horloge !La plupart de ceci était juste improvisation, mais t
Support magnétique pour appareil photo ou un projecteur de vieux disques durs

Support magnétique pour appareil photo ou un projecteur de vieux disques durs

J'ai récemment acheté un pico projecteur (Étang de Pico toucher) et je cherchais un moyen pratique de le monter pour pointer vers le bas sur une table ou divers autres surfaces pour créer un "smart board" où je voulais. J'avais déjà créé un supp
KlockFun : Coucou réveil du disque dur

KlockFun : Coucou réveil du disque dur

Salut tous,Il s'agit de mon premier Instructable et c'est un réveil coucou de disque dur : KlockFun.J'adore les horloges et je veux, que j'ai commencé à concevoir un meilleur réveil d'un vieux disque dur, les premiers afficheurs à LED et un coucou. J
Faire un boîtier de disque dur Portable Steampunk

Faire un boîtier de disque dur Portable Steampunk

faire un boîtier de disque dur Portable SteampunkDonc déjà avoir un steampunked écran et du clavier et déteste que votre disque dur portable ne correspond pas, Eh bien, voici une façon de faire qui est importante pièce d'équipement correspondent et p
Recyclé pendulette de bureau disque dur

Recyclé pendulette de bureau disque dur

il s'agit d'une idée que je suis venu avec tout en démontant des vieux disques durs pour le plaisir. Il est devenu une chose ordinaire, et maintenant j'ai le processus vers le bas pour une science. Voici comment je le fais. J'ai aussi de les vendre à