HDD klok - persistentie van de visie (10 / 13 stap)

Stap 10: Opstarten van de bovenste boord, communicatie met randapparatuur


1. het aandrijven van de spindel

Aangezien voor deze board we hetzelfde type processor als degene op het basisbord gebruiken, is het deel van de bootloader eenvoudig te integreren. Ik alleen veranderd van voetafdrukken (en de cruciale fout maakte, ik zal later uitleggen):

  • DIP40 aan TQFP44 voor de PIC18F4550
  • THT tot SMT 1206 voor weerstanden
  • THT tot SMT voor de USB-connector

Alles bleef hetzelfde zoals het was in de vorige versie van dit board. De vorige versie had een PIC18F46J50 op en zou niet willen opstarten of, ongeacht de programmeur heb ik geprobeerd - ik dat alleen gelaten, op zijn minst voor nu.

De onderdelen op deze planken zijn:

  1. 1 x PIC18F4550 microcontroller - doet alle de lezing en alle de verwerking. Het is niet de alleen computationele spier op dit forum, maar het heeft de "moeilijkste"
  2. 1 x PCF8523 real timerklok en kalender - neemt de last van de tijdwaarneming van de PIC18F4550 van schouder. het heeft zijn eigen kristal oscillator van 32.768 KHz.
  3. 1 x PCA9683 LED driver - in plaats van de PIC18F4550 bezig met de LED knippert, houden deze kerel neemt opdrachten uit de I²C bus en verandert in een knipperende LEDs.
  4. 1 x 20MHz kristal oscillator voor de PIC18F4550
  5. 1 x Vishay IR sensor voor extern beheer over het systeem
  6. 1 x 32.768KHz kristal oscillator voor de real timerklok
  7. 2 x knoppen - gebruiker interfacing
  8. 3 x gebruiker LEDs - gebruiker interfacing
  9. 16 x display LEDs - voor het tonen van de tijd en iets anders
  10. n x weerstanden - pull-ups, pull-downs en huidige beperkende onderdelen
  11. n x condensatoren - ontkoppeling, filteren onderdelen
  12. 1 x fotodiode - gebruikt voor synchronisatie


2. alvorens verder te gaan, de gebruikelijke controles maken!

Het eerste ding dat moeten we er zeker van is dat de bootloader zit werking schoon en we de code van de toepassing van de gebruiker veilig en zeker uploaden kan. Hiervoor moeten we de dezelfde software en firmware pakket die we voor het basisbord gebruikten. Dezelfde Td3 pin USB aanwezigheid zal detecteren, en zal naar de bootloader of terug. De LED's zijn ook op de dezelfde uitgangen. Controleer als u het apparaat kunt programmeren! Als je dat doet, ben je klaar om te gaan met het schrijven van applicatiecode.

Het lezen van de knoppen en knippert de LED's is het eerste ding dat u moet implementeren in de toepassingscode. Vervolgens zullen het gebruik van de mededeling van de I²C. In een van mijn vorige instructables gaf ik een gedetailleerde beschrijving over de I²C bus, vindt u het weer op te frissen uw geheugen. Gebruik uw eigen functies of degene waarin de bibliotheken - it's to you. I voor een zal ik in het project "Ultrasonic meetlint gebruikt" dezelfde functies gebruiken.

Een belangrijk verschil in dit project is de aanwezigheid van twee slaaf apparaten in plaats van één. Dit betekent niets slecht, in feite - het betekent dat we gonna beter gebruik maken van onze seriële bus met functionaliteit voor meerdere slaven. We moeten twee slaaf adressen, en alle adressen van hun belangrijke interne register te definiëren. Dergelijke belangrijke variabelen zou de items uit de RTC, de hendels van de output van de LED-driver, taakcyclus registers van de LED driver, enz.

3. I²C werken, ga naar de infrarood-interface

De volgende op de lijst zou moeten bepalen de "tekengrootte" voor onze roterende display. U kunt meten RPM een of andere manier, of u kunt bijsnijden de vertraging van de LED sign voorschot met behulp van de afstandsbediening. Dit betekent, dat de infrarood protocol decodering je volgende taak is - kan geen vorm van de tekens zonder dat par werken!

Ik werkte eerst met microcontrollers in het derde jaar van de BSc, ik herinner me dat ik kon niet wachten om te zien wat deze klasse was over. Ik denk dat het eerste serieuze project, ik zag en wist te begrijpen was een infrarood systeem. De ontvanger verzameld van de signalen van de afstandsbediening, en wendde zich tot de PIC. Vervolgens een interrupt service routine de gegevens opgeslagen in een 14-bits register, sommige stukjes waren databits, anderen waren control bits, het belangrijkste was: controlecode voor een koeler over IR DC werd met succes geschreven.

Voordat je naar de volgende stap springt, je hebt om zeker te zijn van één ding: de signalen van uw afstandsbediening maken hun weg door de lucht, via IR ontvanger recht op de pin van uw PIC. Dit kan gemakkelijk worden gemeten met de oscilloscoop. Ik heb een momentopname gemaakt met mijn bereik je laten zien wat ik zie op mijn bord een toets op de afstandsbediening te zien als het overeenkomt met het signaal dat u ziet. Het moet een mooie, gemoduleerde digitaal signaal. Hebt u die op de pin, lees de volgende stap om meer over het protocol en de methoden die u kiezen kunt om te vangen de binnenkomende bits de producten van BvD te ontvangen.

Wat ik hier deed was dit: instellen van een interrupt waarmee op een dalende rand op de uitvoer van de infrarood sensoren wordt geactiveerd dan 300us wachtte en het niveau op de pin opnieuw gecontroleerd. Na dit leverde ik een reeks van 13 metingen, met een vertraging van 1.6ms. Nadat ik alles ingesteld, en het signaal dat kwam uit de afstandsbediening gecontroleerd, moest ik dit tweede timing te 1.78ms wijzigen. Deze tijdsinstellingen zijn opgericht met behulp van de module van het vergelijken van de PIC.

Het gebruik van deze module is zeer eenvoudig: denk aan een time-out, het aantal klokcycli zeggen en zet het in het Vergelijk register. Vervolgens stelt u de timer van de PIC 1 te tellen en geven interrupt op timer register - Vergelijk register wedstrijd. Simpel gezegd, we gonna meten van het niveau in vaste tijdsintervallen, en gebruik de meting om te achterhalen welke knop is ingedrukt. Ik keek op het web voor de knop codes, maar wist te vangen alleen de "P +", "P-", "V +", "V-" knop evenementen. Hoe om te achterhalen van de code voor de rest :)?

Gelukkig hebben wij 16 LEDs om weer te geven van alles wat die we willen, recht? Ik schreef een klein programma naar uitvoer de hexadecimale code die kwam op de infrarood sensor input op het display LEDs, lezen met het blote oog en toegevoegd van macro's om ze gemakkelijker te identificeren:

#define REMOTE_P_PLUS 0x20

#define REMOTE_P_MINUS 0x21

en zo verder. Op deze manier kan ik gebeurtenissen op basis van sleutel-persen op de afstandsbediening zonder te weten alle die funky hexadecimale id's veroorzaken. Als u dit doen kunt, is uw afstandsbediening werkt zoals die u had verwacht!

4. synchronisatie

Uw spindel moet zelf een verwijzing naar een punt, moet u ervoor zorgen dat er sprake is van een signaal dat u vangen bij elke rotatie, kunt zodat u weet wanneer om te activeren van de LED-tekenreeks. Ik wilde dit doen met een Hallsensor, maar later besefte dat het zou gaan gek rond 20 neodymium-magneten - ik iets anders moet.

Een gemakkelijke benadering was om een fotodiode en detecteren van licht afkomstig zijn uit een statische LED. Om niet het beeld wazig in de lucht door het beeldscherm LEDs erover, besloten heb ik om het gebruik van infrarood LED voor deze taak. Ik wist dat ik kocht een fotodiode en sommige infrarood LED's enkele jaren geleden, hopen te maken van enkele tests op hen, ik keek hen omhoog en samen een breadboard test schematisch. De fotodiode kreeg aangesloten op de 5V door middel van een huidige beperkende 4.7K weerstand, het middelpunt heb aangesloten op een interrupt staat pin (RB6). We moeten deze detectie op onderbreken voor het om heel precies te zijn! Ik aangesloten de code behandeling van alle beschreven spullen naar het gedeelte van de afbeelding van deze stap. De puntjes vervangt u de code hebt om te schrijven zodat de juiste patroon wordt uitgestoten door de acht blauwe LED's. Dit deel maakt gebruik van de capaciteit van de interrupt-op-change van PORTB pinnen, een functie die is zeer interessant en zeer nuttig wanneer u kreeg van uw INT0 en INT1 pinnen bezet door de I²C bus.

Gerelateerde Artikelen

Persistentie van de visie

Persistentie van de visie

Persistentie van de visie is een optische illusie, het werkt op een eenvoudige fenomeen de werking van onze dag tot dag televisie. MIJN eerste pov was zes maanden vóór met arduino uno en met buitenboordmotor. Maar het is best om een klein en draagbaa
Persistentie van de visie weergeven (POV)

Persistentie van de visie weergeven (POV)

Hi guys! Dit is mijn eerste Instructable zo als een gewoon geen fouten maakt me vertellen. OK laten we aan de slag!WAT U NODIG ZULT HEBBEN-Arduino uno-vaste kern draad of lint kabel-9v batterij module-6v motor (ik heb de mijne uit een CD-speler)-rest
Persistentie van de visie Bauble. POV decoratie.

Persistentie van de visie Bauble. POV decoratie.

Persistentie van de visie Bauble. POV decoratieHet is de tijd van het jaar de boom opstaan en decoreren met alle prachtige verlichting, klatergoud en kerstballen. En dit project gaat over kerstballen, wanneer ik decoraties op een boom ik kan niet hel
(POV) Persistentie van de visie Globe

(POV) Persistentie van de visie Globe

! Update! Ik heb een excel-programma dat maakt het veel gemakkelijker om te tekenen en code van nieuwe beelden toegevoegd!Een eenvoudige persistentie van de visie globe. VIDEO afspelenDit is een project dat ik heb in gedachten had voor heel wat tijd
Bol van de persistentie van de visie

Bol van de persistentie van de visie

Hallo iedereen,Deze tutorial toont je hoe te bouwen uw eigen bol van de persistentie van de visie.Ten eerste, wat is een bol van de persistentie van de visie? Het idee is om het draaien van een kolom met LEDs snel genoeg voor de indruk van een hele w
Hard Drive persistentie van de visie (HDPOV)

Hard Drive persistentie van de visie (HDPOV)

de schaal van een harde schijf draaiingen ruim zestig keer per seconde. Als een smalle sleuf werd gesneden in de schotel om LEDs te schitteren door, kunnen we bereiken flikkeren fusion en Truc van het oog in het zien van een stabiel beeld. Dit fenome
POV (persistentie van de visie) Display met IRled

POV (persistentie van de visie) Display met IRled

Vandaag zal ik introduceren POV (Persistence of Vision) Display met WIZwiki-W7500ECO board.Heb je ooit gehoord over POV voordat?U kunt in detail van POV hier controleren.(Zie stap 1)Het is echt grappig project.Ik zal u laten weten hoe het te maken. V
Persistentie van de visie toverstaf voor Arduino

Persistentie van de visie toverstaf voor Arduino

In dit instructable, ik zal u tonen hoe maak je een toverstaf (van soorten) kunt u schrijven in de lucht, zoals in de afbeelding hierboven laat zien.Stap 1: De Hardware u nodig:-Soldeerbout-Soldeer-5 3v groene LEDs-gespeld jumper kabelsOpmerking: In
Persistentie van de visie met behulp van de Arduino UNO(New Prototype)

Persistentie van de visie met behulp van de Arduino UNO(New Prototype)

Hallo Guyz.Ik had gemaakt A Project op POV met behulp van Arduino UNO. Ik had vele modellen van vele verschillende gebruikers weergegeven op deze site. Dus kwam ik met een nieuw prototype van POV. Ik was niet zeker in het begin dat het zal werken of
Persistentie van de visie LED-Display

Persistentie van de visie LED-Display

Wilde maken van een draaiende LED gelijkend op dit, maar het verzenden van meldingen gebaseerd op tweets, e-mails of andere meldingen hebben.Stap 1:We besloten om het project in meerdere onderdelen opgesplitst.Stap 2: Motor Controller/Interenet Inter
MAKE Controller persistentie van visie Effect met LEDs

MAKE Controller persistentie van visie Effect met LEDs

Hallo, dit is mijn eerste instructable en ik hoop dat het u bevalt. Het is een eenvoudig project, met behulp van MAKE Controller (een handig controller van www.makezine.com), dat een persistentie-van-visie-effect maakt met behulp van LEDs. Wanneer u
Arduino persistentie van visie weergeven

Arduino persistentie van visie weergeven

een persistentie van vision (PoV) display is een rij van LED's die flash kolommen van een bericht.  Als de matrix van LED's wordt verplaatst, net als wanneer gemonteerd op een fietswiel, kan het bericht worden gelezen alsof het veel LED's wide, in pl
Miss La Sen bedrijf de decoratie van de vis op nieuwe maanjaar

Miss La Sen bedrijf de decoratie van de vis op nieuwe maanjaar

In nieuwe maanjaar, vele Aziatische gezinnen hang de vis, symbool voor de deur, muur... Vis vertegenwoordigen goed begin en een goed einde voor het komende jaar. Vis symboliseren ook "Rijkdom".In de Chinese versie van word, vis "yu" wo
Maak een haak van de vis in een lip ring (of vise vers)

Maak een haak van de vis in een lip ring (of vise vers)

ik heb mijn lip doorboord enige tijd geleden en besloten het zou gaaf zijn om een vis haak hebben als een lip ring voor deze visreis ik deze zomer gaande was. Ik keek voor verschillende vis haak zoals lip ringen op het internet en niet echt iets moei