Billiga PIC kontrollerade hjälmkamera med Sony LANC (bra för extremsport) (3 / 4 steg)
Steg 3: Vad är LANC och hur fungerar programmet?
Om du besöker denna länk, vilja den berätta du hur Sony LANC-protokollet fungerar, och alla kommandon och Kameradata tillgängliga på LANC-protokollet:
http://www.boehmel.de/LANC.htm
Som ni kan se, kan du få mycket information från kameran som kontrollerar varje funktion i kameran via LANC kommunikationsport.
Min kod är mycket grundläggande och .asm filen kan laddas i MPLAB (fri från Micochip.com) och programmeras med hjälp av PicKit2 helt enkelt.
Hur koden fungerar:
Om du data överför källkoden, det är dokumenterat hela vägen genom att berätta vad som händer, men jag ska ge en kort expanation här också.
Det finns 8 byte på LANC hamnen varje 20ms (16,6ms för NTSC). Varje byte har börja lite följt av 8 bitar, varje på en längd av 104uS. Det finns en lucka på om 200uS - 400uS mellan byten. Efter alla 8 byte har "dykt upp" på raden LANC, finns det en lång lucka (5-8 ms) där LANC raden är "hos" hög och sedan samma 8 byte "visas" igen.
-När programmet startas, det håller kontroll LANC ingång tills den "ser" det höga under en period längre än 1000uS, vilket innebär att vi är i klyftan mellan den 8: e byten och den första byten.
-Nästa väntar programmet på att se den börja lite (logik 0) på raden. När detta händer programmet väntar på 52uS (halva en bit-längd) och kontroller igen för att kontrollera att det finns fortfarande en logik 0 på raden LANC. Så, vet vi vi har lite giltig Start och är redo att läsa byten.
-Vi väntar nu på 104uS (längden på 1 bit), så vi blir mitt nästa lite på raden LANC. Vi läsa denna bit, vänta 104uS och läsa igen. Detta fortsätter för alla 8 bitar. Vi har nu Byte 0.
-Programmet sedan väntar nästa börja lite och utför samma uppgift att få Byte 1, 2, 3, 4, 5, 6 och 7.
Byte 4 är som jag använder i programmet för att få information om inspelningsstatus för kameran, men som ni kan se i länken I, det finns massor av information!
Rätt, det är den behandlingen LANC linjen diskuteras, vad sägs om skriva till det att styra kameran?
-När en knapp trycks ner, 2 register är laddade med byte för att utföra de särskilda insatserna och ett register som kallas "Sender" är laddad med nummer 5 (jag ska förklara varför senare). När programmet blir "redo att läsa byte" del, om registret "Sender" inte är 0 it ändras RA0 PIN-koden till en utgång och börjar produktionen den första byten. Då det ser ut för nästa Start lite och utgångar den nästa byten. Registret "Sender" minskas med 1 och RA0 ändras tillbaka till en ingång att läsa de sista 6 byte.
Anledningen registret "Sender" används är att för kameran att acceptera ett kommando, måste det se kommandot för några cykler. Vissa webbplatser säga endast 3 som är nödvändiga, men som bara tar 1 cykel 20ms, skicka det 5 gånger (att vara på den säkra sidan) tar bara 100ms att slutföra.
Jag hoppas att denna korta Instructable är vettigt och du kan göra din egen DIY hjälm kammar. Känn dig fri anpassa min kod för att passa dina behov, men vänligen kredit mig för koden om du publicerar det någon annanstans.