Modifications

Sauter à la navigation Sauter à la recherche
643 octets ajoutés ,  10 septembre 2012 à 11:14
aucun résumé de modification
Ligne 124 : Ligne 124 :     
     void SendNikonCode() {
 
     void SendNikonCode() {
    // Voici le code pour le Nikon utilisé dans ce tutorial. Pour d'autres utilisations,  
+
      // Voici le code pour le Nikon utilisé dans ce tutorial. Pour d'autres utilisations,  
    // il faudra capturer le code de la télécommande
+
      // il faudra capturer le code de la télécommande
    pulseIR(2080);
+
      pulseIR(2080);
    delay(27);
+
      delay(27);
    pulseIR(440);
+
      pulseIR(440);
    delayMicroseconds(1500);
+
      delayMicroseconds(1500);
    pulseIR(460);
+
      pulseIR(460);
    delayMicroseconds(3440);
+
      delayMicroseconds(3440);
    pulseIR(480);
+
      pulseIR(480);
     delay(65); // attendre 65 millisecondes avant de ré-envoyer le signal a nouveau
+
      
     pulseIR(2000);
+
      delay(65); // attendre 65 millisecondes avant de ré-envoyer le signal a nouveau
    delay(27);
+
      
    pulseIR(440);
+
      pulseIR(2000);
    delayMicroseconds(1500);
+
      delay(27);
    pulseIR(460);
+
      pulseIR(440);
    delayMicroseconds(3440);
+
      delayMicroseconds(1500);
    pulseIR(480);
+
      pulseIR(460);
 +
      delayMicroseconds(3440);
 +
      pulseIR(480);
 
     }
 
     }
 
  </nowiki>
 
  </nowiki>
   −
void pulseIR(long microsecs) is our helper procedure, it will create the PWM IR signal like we saw before. I used my scope to fine-tune it so that the delays added up right. We use the not-often-discussedcli()and sei()procedures to turn off interrupts. The arduino does a couple things in the background like looking for serial data to read or write, keeping track of time, etc. Most of the time we can just ignore it but for delicate high speed signals like this we want to keep quiet so that we get a nice clean signal
+
la procédure "void pulseIR(long microsecs)" est une fonction d'aide (dite "Helper" en anglais).<br />
 +
Elle crée un signal PWM infrarouge comme déjà montré dans ce tutoriel.<br />
 +
Le signal à été peaufiné à l'aide d'un oscilloscope, ce qui à permit d'ajouter les temps de pause (intructions "delay()" ) appropriés.
   −
If you look at SendNikonCode() you will see the IR command code that we deduced in the previous project by timing the pulses from the IR sensor.
+
Nous avons également utilisé les fonctions '''cli()''' et '''sei()''', fonctions rarement rencontrées sur les exemples du net. Ces instructions permettent de désactiver et réactiver la gestion des interruptions.<br />
 +
En effet Arduino effectue un certain nombre d'opération en tâche de fond (surveillance des données à lire et écrire sur le port série, gestion du temps, etc).<br />
 +
La plupart du temps, nous pouvons ignorer ce type de traitement mais pour des applications traitant un signal à "haute vitesse" comme celui qui est généré, désactiver le traitement des interruptions permet de garder un "beau signal bien lisse".
 +
 
 +
Si vous lisez le code de la fonction SendNikonCode(), vous retrouverez la séquence de code IR déduite en début de projet (en analysant les temps de pulsation du signal IR à l'aide d'un senseur Infra-Rouge).
    
[[Image:IR-Interval-5.jpg]]
 
[[Image:IR-Interval-5.jpg]]
   −
We wired this up and it worked great, make sure to point the IR LED at the camera properly
+
Raccorder ensuite le tout et cela fonctionne parfaitement, assurez vous de bien pointer la LED infra-rouge en direction de l'appareil photographique.
   −
[http://github.com/adafruit/Nikon-Intervalometer You can also get the latest code at github]
+
[http://github.com/adafruit/Nikon-Intervalometer Vous pouvez aussi trouver le dernier code sur le github d'AdaFruit]
     
29 910

modifications

Menu de navigation