Étape 3: Ce qui est LANC et comment fonctionne le programme ?
Si vous visitez ce lien, il dira vous comment fonctionne le protocole Sony LANC, et toutes les commandes et les données de caméra disponibles sur le protocole LANC :
http://www.boehmel.de/LANC.htm
Comme vous pouvez le voir, vous pouvez obtenir beaucoup d’informations de la caméra, en plus de contrôler toutes les fonctions de la caméra via le LANC port de communication.
Mon code est très basique et le fichier .asm peut être chargé dans MPLAB (sans Micochip.com) et programmé avec le PicKit2 assez facilement.
Comment le code fonctionne :
Si vous téléchargez le code source, il est documenté tout au long de vous raconter ce qui se passe, mais je vais vous donner un bref peuvent ici aussi.
Il y a 8 octets sur le port LANC chaque 20ms (16,6ms pour le NTSC). Chaque octet a un peu commencer suivie de 8 bits, chacun d’une longueur de 104uS. Il y a un écart de propos 200uS - 400uS entre octets. Après que toutes les 8 octets sont apparus sur la ligne LANC, il y a un long intervalle (5-8 ms) où la ligne LANC « tient » haute, et puis les mêmes 8 octets « réapparaître ».
-Lorsque le programme démarre, il garde vérifiant la LANC d’entrée jusqu'à ce qu’il « voit » il élevé pendant une période plus longue que 1000uS, cela signifie que nous sommes dans l’intervalle entre le 8e et le premier octets.
-Ensuite, le programme attend de voir le Bit de Start (logique 0) sur la ligne. Lorsque cela arrive, le programme attend 52uS (moitié une longueur en bits) et vérifie encore une fois pour s’assurer qu’il y a toujours une logique 0 sur la ligne LANC. Dans l’affirmative, nous savons que nous avons un peu de démarrage valides et sont prêts à lire l’octet.
-Nous attendons maintenant 104uS (la longueur de la mèche 1), nous serons bien au milieu le bit suivant sur la ligne LANC. Nous avons lu ce bit, attendre 104uS et relire. Cela continue pour tous les 8 bits. Nous avons maintenant l’octet 0.
-Le programme puis attend le prochain Bit de Start et effectue la même tâche pour obtenir l’octet 1, 2, 3, 4, 5, 6 et 7.
Octet 4 est celui que j’utilise dans le programme pour obtenir des informations sur l’état d’enregistrement de la caméra, mais comme vous pouvez le voir dans le lien que j’ai fourni, il y a énormément d’information disponible !
À droite, c’est la lecture la ligne LANC discutée, quid écrire dessus pour contrôler la caméra ?
-Lorsqu’une touche est pressée, 2 registres sont chargés avec les octets nécessaires pour mener l’opération spécifique et un registre dénommé « Sender » est chargé avec le numéro 5 (j’expliquerai pourquoi plus tard). Lorsque le programme arrive à la partie « prêt à lire les octets », si le registre « Sender » n’est pas 0 TI change la pin RA0 à une sortie et commence à afficher le premier octet. Ensuite, il cherche le prochain bit de Start et renvoie l’octet suivant. Le registre « Expéditeur » est décrémenté de 1 et RA0 est modifié pour revenir à une entrée pour lire les 6 derniers octets.
Le registre « Sender » est utilisé est parce que pour la caméra d’accepter une commande, il faut voir la commande pendant quelques cycles. Certains sites disent seulement 3 sont nécessaires, mais que 1 cycle ne prend que 20 ms, il envoi 5 fois (pour être du bon côté) ne prend que 100 ms pour terminer.
J’espère que ce bref Instructable est logique et vous êtes en mesure de faire vos propres cames casque DIY. N’hésitez pas adapter mon code pour répondre à vos besoins, mais s’il vous plaît me créditer pour le code si vous le publiez n’importe où ailleurs.