- Code: Tout sélectionner
rem déclaration des variables
rem a pour la mesure d'une impulsion
a=0
rem d pour le compteur d’impulsion
d=0
rem prends une photo (ça me sert à voir si le script est bien lancé)
shoot
rem fait une pause d'une seconde
sleep 1000
rem sous-programme début
:debut
rem si y a une impulsion alors mesure la
do
a=get_usb_power
until a>0
rem si la l'impulsion mesurée est plus grande que 24 alors va à la ligne (sous-programme) shoot du script
if a>24 then goto"shoot"
rem si l'impulsion mesurée est plus grande que 15 alors va à la ligne (sous-programme) compte du script
if a>15 then goto "compte"
rem sinon retourne à la ligne début du programme
goto "debut"
rem sous-programme compte
:compte
rem si il y a une impulsion alors mesure la
do
a=get_usb_power
until a>0
rem si la valeur mesurée est comprise entre 8 et 15 (bit de stop) va au sous programme zoom
if a>8 and a<15 then goto"zoom"
rem compteur d'impulsion=compteur d'impulsion + 1
d=d+1
rem retourne au sous-programme compte
goto "compte"
rem sous-programme zoom
:zoom
rem affiche sur l['écran de l'appareil photo (d) le niveau du zoom correspondant au nombre d'impulsion mesurée -1
print"zoom=", d-1
rem demande à l'appareil photo de faire un zoom à d-1
set_zoom d-1
rem rem et les variables à 0
a=0
d=0
rem retourne à la ligne debut
goto "debut"
rem sous-programme shoot
:shoot
rem demande à l'appareil photo de faire une photo
shoot
rem retourne à la ligne debut
goto "debut"
Donc
if a>24 then goto"shoot"
détecte l'impulsion de 300ms générée par l'arduino (déclenchement photo)
if a>15 then goto "compte"
detecte l'impulsion de 200ms (start) et continue dans le compteur d'impulsions (là il compte les puls de 50ms)
if a>8 and a<15 then goto "zoom"
détecte l'impulsion de 120ms (stop) et continue vers "zoom" avec le nombre de puls comptés juste avant (et fait son set_zoom)