Questions sur l'Arduchdk

Les radios commandes, déclencheurs divers et variés. Les circuits électroniques et autres bidouillages.

Questions sur l'Arduchdk

Messagede Wouah le Dim 31 Janvier 2016, 11:56

Je n'ai pas vu ce sujet sur le forum...mais il existe peut-être car il date un peu? donc en fouillant sur le net j'ai découvert un système qui pourrait rendre service à quelques uns (arduchdk)...je tente de le mettre en place mais l'électronique et le dévellopement ne sont pas ma tasse de thé! Donc je rencontre des difficultés et des interrogations...après beaucoup d'essais de montages différents aucun signe de vie de l'apn! Si certains avaient une tite idée....

Le système à base de radiocommande et d'arduino à pour but de déclencher et zoomer à volonté.

Le principe est d'envoyer un signal à l'apn avec la radiocommande sur le récepteur qui est branché à un arduino qui lui même est branché à l'apn avec le câble micro usb et qui déclenche ou zoom après avoir interpreté un signal via chdk....ouff! pas simple alors un lien vers un petit clip sera plus explicite! (en musique! :mrgreen: ) https://www.youtube.com/watch?v=qel3CSywEiE#t=13

Ici le Pdf du système en détails....mais pas encore assez pour moi, pourtant tout le monde à l'air de dire que c'est de "la balle" :mrgreen: http://www.macrogoutte.com/arduchdk.pdf

mes questions:

- Quels sont les fils du récepteur radio qui sont branchés à l'arduino et sur quelles broches?
- Quels sont les fils et de quelles broches de l'arduino , vont vers la prise micro usb
- Quel est le script CHDK complet? celui que j'ai sur la carte sd ne fait rien apparaitre à l'écran de mon apn!

Ci dessous le fichier CHDK que j'ai sur ma carte et qui ne fonctionne pas (impossible de poster à ce post le fichier en .bas)

Donc si vous avez déjà utilisé ce système ou si vous avez des infos, des photos de votre montage je suis preneur...

Merci, Hervé


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"
Avatar de l’utilisateur
Wouah
Plus de 1000 messages
 
Messages: 1012
Inscription: Mer 10 Novembre 2010, 20:13
Localisation: Saint-Malo

Re: Questions sur l'Arduchdk

Messagede Deltakap le Dim 31 Janvier 2016, 16:04

Wouah a écrit:Je n'ai pas vu ce sujet sur le forum...mais il existe peut-être car il date un peu?

La recherche sur le forum semble ne plus fonctionner depuis un moment :(
Mais il y a pourtant quelques ressources bien cachées...par là ;)


Wouah a écrit:(impossible de poster à ce post le fichier en .bas)

Il faut utiliser le bouton "code" de la zone d'édition (tu sélectionnes tout ton code et tu cliques sur "code" ;)

Wouah a écrit:Ci dessous le fichier CHDK que j'ai sur ma carte et qui ne fonctionne pas

Qui ne fonctionne pas? du tout?
Parce que, à minima, il devrait au moins prendre une photo, même sans aucun cable branché à l'apn, à cause de ces lignes:
Code: Tout sélectionner
rem prends une photo (ça me sert à voir si le script est bien lancé)
shoot


Wouah a écrit:- Quels sont les fils du récepteur radio qui sont branchés à l'arduino et sur quelles broches?
- Quels sont les fils et de quelles broches de l'arduino , vont vers la prise micro usb

Là, pour l'instant, ça serait de la divination ;)
Peut-être que le code de l'arduino aiderait à répondre.

Wouah a écrit:Donc si vous avez déjà utilisé ce système ou si vous avez des infos, des photos de votre montage je suis preneur...

Ça m'est arrivé, mais comme tu le dis, c'était il y a un moment :(
Mais bon, ça doit être comme le vélo...

Comme ça, je dirais, dans l'ordre:
- est-ce que le script chdk proposé ne prend vraiment aucune photo? (erreur dans le script? script pas lancé?)
- après, avec le code arduino, on essaie de voir où sont les entrées et sorties.
- puis avec un script chdk minimaliste, on vérifie qu'on reçoit bien sur l'apn des impulsions venant de l'arduino, et on mesure leur durée)
- On ajuste le script chdk (et peut-être Arduino?) et hop ;)
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Deltakap le Dim 31 Janvier 2016, 17:01

(La suite...)

On peut essayer de tricher et de sauter les étapes...
Si tu utilises le script arduino de l'arduchdk (?), il nous dit :

Code: Tout sélectionner
// commande du zoom et du déclenchement d'un appareil photo (canon s95) via chdk
int mesure_voie6; // voie pour la mesure du zoom
int mesure_voie8; // voie pour le déclenchement de l'appareil photo
int niveau_zoom; // initialisation de la variable "niveau_zoom"
int exniveau_zoom; // initialisation de la variable "exniveau_zoom"
int i; // initialisation de la variable "i"
int t; // initialisation de la variable "t"
void setup() {
// choix des entrée d2 et d3 de l'arduino
pinMode(2, INPUT); // La broche 2 de l'arduino est une entrée ( surveille voie 8 )
pinMode(3, INPUT); // La broche 3 de l'arduino est une entrée( surveille voie 6 )
pinMode(5, OUTPUT); // La broche 5 de l'arduino est une sortie( vers appareil photo )
Serial.begin(9600); // Communique avec le port série à une vitesse de 9600
}



Il utilise donc les canaux 6 et 8 de sa radio... dans ton cas, il faut trouver la sortie du récepteur qui correspond à la bonne manette (La sortie récepteur pour la manette qui va actionner l'apn et celle pour la manette du zoom... avec un servo, ça doit déjà permettre de vérifier ça ;)

Le canal de ton récepteur qui correspond à l'action "déclenchement apn" (en actionnant la manette que tu as choisi) sera à brancher sur la broche 2 de l'arduino
Le canal qui correspond au zoom sera à brancher sur la broche 3 de l'arduino

La sortie de l'arduino (vers l'usb de l'apn) sera la broche 5

PS: faut trouver les bonnes sorties physiques de ton récepteur, mais pas toucher au script (il se sert des variables mesure_voie6 et mesure_voie8 plus loin)

Question subsidiaire: tu utilises quel type d'arduino, et quelle est tension d'alim? (c'est un 3.3V ou un 5V?)
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Wouah le Dim 31 Janvier 2016, 18:54

Merci Deltakap de m'aider dans cette aventure.

pour être précis voici la photo de mon montage actuel, mais est-il complet? (les voies 1 et 3 de la photo ne sont qu'un exemple de sortie)
Image
Donc:
- j'ai bien trouvé les commandes de la radio avec les bonnes voies du récepteur radio, (test fait avec un servo)
- j'ai bien branché uniquement les 2 fils "signal" des 2 voies du récepteur sur la broche 2 et 3 de l'arduino.
- j'ai connecter la broche 5 de l'arduino au + de l'usp apn
Questions:

- faut-il brancher quelque part les 2 autres fils le - et le + des 2 voies ? si non, comment le signal peut-il fonctionner?
- Où brancher le - de la prise usb apn?
- Comment alimenter l'arduino?

Une fois que le montage sera bon je vais refaire un essai le fonctionnement avec le CHDK.

Ce que je ne comprend pour le script CHDK, c'est que je n'ai rien de marqué dans le menu, sous le titre ARDUCHDK, alors que le script est bien chargé! il y a juste indiqué Retour

Merci
Avatar de l’utilisateur
Wouah
Plus de 1000 messages
 
Messages: 1012
Inscription: Mer 10 Novembre 2010, 20:13
Localisation: Saint-Malo

Re: Questions sur l'Arduchdk

Messagede Deltakap le Dim 31 Janvier 2016, 19:40

Wouah a écrit:- faut-il brancher quelque part les 2 autres fils le - et le + des 2 voies ? si non, comment le signal peut-il fonctionner?

Pour faire simple, il faut effectivement que les masses (-) soit reliées ensembles... pour le récepteur, l'arduino et l'apn.

Sur l'arduino, la masse est reliée à la broche GND (à gauche de la broche 13 sur ta photo?)
C'est sur cette broche GND (ground) que doit se brancher le fil noir du cable usb et aussi le fil noir (-) du récepteur.


Wouah a écrit:- Comment alimenter l'arduino?

C'est un Uno, donc à priori un 5V (de mémoire il n'existe pas en 3.3V, à vérifier)
Il y a plusieurs méthodes:
- La plus simple, pour les tests, c'est d'utiliser le connecteur jack en bas à gauche sur ta photo (si tu as acheté l'arduino avec un adaptateur secteur, c'est encore plus simple)
- Sinon, je crois qu'on peut utiliser la broche 5V (celle de ton autre point d'interrogation en bas au milieu.... mais je ne sais plus si on peut le faire comme ça, sans conditions particulières... faut que je révise avant de te laisser faire une ânerie !)
Donc, pour l'instant, c'est soit adaptateur secteur, soit le 6V prévu pour le récepteur... mais uniquement dans cette prise jack en bas à gauche (le temps que je regarde pour la broche 5V)

Wouah a écrit:Une fois que le montage sera bon je vais refaire un essai le fonctionnement avec le CHDK.

Vi ;)
Si ça ne veut rien savoir, il faudra procéder par étapes (pour comprendre d'où ça vient)

Wouah a écrit:Ce que je ne comprend pour le script CHDK, c'est que je n'ai rien de marqué dans le menu, sous le titre ARDUCHDK, alors que le script est bien chargé! il y a juste indiqué Retour

Ça, déjà, à vue de nez, c'est qu'à moitié normal :(
De toute façon, si le script ne prend pas au moins une photo, c'est qu'il ne fonctionne pas.
"Retour"? où ça? dans la liste des fichiers? si oui, c'est qu'il n'est pas encore chargé (?)
Je ne vois rien dans le script chdk qui pourrait proposer ce "retour"

Donc, première étape, c'est d'éclaircir cette histoire de script (chargé/pas chargé, lancé/pas lancé)
Pendant ce temps là, je révise la partie alim 5V du connecteur ;)

Edit: En même temps, ça doit être normal qu'il n'affiche rien, le script ne le demande pas !
Si tu mets, par exemple, en premières lignes:
@title ArduCHDK
@default d 0
Il te mettra un titre et la possibilité de changer le zoom (ok, ça ne sert à rien, mais juste pour voir)
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Deltakap le Dim 31 Janvier 2016, 20:12

(suite)

Pour l'alim 5V, c'est donc le gros connecteur en bas à gauche ou la broche VIN+ (c'est la broche à droite des broches "power" , à droite de ton point d'interrogation en bas sur ta photo)
Elle accepte du 7 à 12V... mais les 6V du récepteur suffiront certainement.

C'est plutôt bien expliqué là:
http://www.mon-club-elec.fr/pmwiki_refe ... aterielUno

C'est pour l'alim via l'usb que c'est plus délicat... mais de toute façon, on s'en sert pour l'apn, donc on oublie l'alim via usb.

Tu as aussi 2 autres broches GND (masse) dans cette partie "power", si tous les fils ne rentrent pas dans l'autre GND à coté de la broche 13 ;)
Dans le lien ci-dessus, les GND sont notées 0V
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Deltakap le Dim 31 Janvier 2016, 20:23

(Suite again)

Si tu veux, tu peux essayer ce script chdk.
Il ne prend pas de photos mais il t'affichera en direct live les valeurs de la variable "a" (la durée des impulsions) à chaque action sur les manettes.
Ça permettra d'affiner un peu le script chkd de l'arduchdk ;)
(pas vérifié, mais ça devrait marcher)

Code: Tout sélectionner
@title Test ArduCHDK
print "Script started"
:debut
do
a=get_usb_power
until a>0
print "a=", a
sleep 100
goto "debut"
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Deltakap le Dim 31 Janvier 2016, 20:38

(re-suite)

Pour les branchements
- vers la prise usb
le fil rouge de l'usb sur la broche 5 de l'arduino (déjà fait)
Le fil noir de l'usb sur la broche GND à coté de la broche 13 (en haut sur ta photo)

- Pour l'alim de l'arduino
Le fil rouge (+) du bloc 6V sur la prise VIN de l'arduino (power en bas de ta photo)
Le fil noir (-) du bloc 6V sur la GND la plus proche du VIN

- Pour le récepteur tu as déjà fait, mais si les alims arduino et récepteur sont différentes, il faut rajouter un fil entre la masse du récepteur (fil noir) et la deuxième prise GND (libre) du "power" de l'arduino.
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Deltakap le Dim 31 Janvier 2016, 20:45

(encore moi :)

Euh, le script arduino du pdf n'a rien à voir avec le script du chdk, ou bien ?

Ça fait plutôt script de test, mais c'est pas ça qui va faire marcher l'ensemble, où alors j'ai regardé trop vite :(

Ah si, d'accord, je n'avais pas vu le coup du bit de start/bit de stop ;)
Bon, ok, why not... mais du coup, le mini script chdk que je te proposais va marcher moins bien (pour le zoom en tout cas)

Reste quand même que tel que c'est fait, faut que le zoom utilise un trim sans retour au centre (sans ressort de rappel) puisque c'est la position de la manette qui donne directement les valeurs du zoom... mouais.

Mais bon, effectivement, ça doit fonctionner.
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Wouah le Dim 31 Janvier 2016, 21:16

J'essaie de suivre........

Nouveau cablage:
Image

tu penses que c'est OK ou il en manque encore , j'ai un doute sur les Gnd (entre cle Gnd près de "power" et celui d'a coté de la "13" , faut bien faire un pont?)

Sinon Voilà l'écran de mon apn avant d'essayer ton script (tous les autres script CHDK que j'ai, fonctionnent parfaitement)
Image

Je me doute que ça ne peut pas le faire comme ça....Je vais essayer ton script
Avatar de l’utilisateur
Wouah
Plus de 1000 messages
 
Messages: 1012
Inscription: Mer 10 Novembre 2010, 20:13
Localisation: Saint-Malo

Re: Questions sur l'Arduchdk

Messagede Wouah le Dim 31 Janvier 2016, 21:30

Voici le code pour l'arduino que j'ai intitulé arduchdk.ino


Code: Tout sélectionner
//2013-daniel wambach - www.macrogoutte.com - tarrinos@free.fr
// commande du zoom et du déclenchement d'un appareil photo (canon s95) via chdk

int mesure_voie6; // voie pour la mesure du zoom
int mesure_voie8; // voie pour le déclenchement de l'appareil photo
int niveau_zoom; // initialisation de la variable "niveau_zoom"
int exniveau_zoom; // initialisation de la variable "exniveau_zoom"
int i; // initialisation de la variable "i"
int t; // initialisation de la variable "t"

void setup() {

  // choix  des entrée d2 et d3 de l'arduino

  pinMode(2, INPUT); // La broche 2 de l'arduino est une entrée ( surveille voie 8 )
  pinMode(3, INPUT); // La broche 3 de l'arduino est une entrée( surveille voie 6 )
  pinMode(5, OUTPUT); // La broche 5 de l'arduino est une sortie( vers appareil photo )

  Serial.begin(9600); // Communique avec le port série à une vitesse de 9600
}
void loop() {
 
debut:

  // mesure l'interrupteur dédié au déclenchement sur ma radiocommande

  mesure_voie8 = pulseIn(2, HIGH); // Mesure la taille de l'impulsion sur la voie 8
  if (mesure_voie8>1500){ // Si la taille de cette impulsion est supérieur à 1500 alors :
    digitalWrite(5,HIGH); // commence une impulsion sur la broche 5 (front montant)
    delay(300); // Pendant 300 ms
    digitalWrite(5,LOW); // arrête cette impulsion (front descendant)
    delay (100); // faits une pause de 100 ms
  }
 
  // mesure le potentiomètre dédié au zoom sur ma radiocommande

  delay (500);
  mesure_voie6 = pulseIn(3, HIGH);// Mesure la taille de l'impulsion sur la voie 6
  delay (10);
  Serial.print("mesure_voie6="); // Ecris sur le port série "mesure_voie6="
  Serial.println(mesure_voie6); // Ecris sur le port série la valeur mesurée sur la voie 6

  // Donne le niveau de zoom suivant les largeurs des impulsions mesurées sur le récepteur voie 6
  // J'ai affiné ces chiffres en testant différentes positions de mon potentiomètre cranté
  // Mais en gros si on à 1ms pour un zoom à 10(téléobjectif) et 2ms pour un zoom à 0(grand angle)
  // 2ms-1ms = 1ms; 1ms/10 = 100 micro/sec
  // donc sans affiner : zoom1=1900; zoom2=1800; zoom3=1700 etc.
  // Mais à vous de mieux régler ...
  // Pour moi :
 
  if (mesure_voie6<1936)   niveau_zoom=1; // Si la valeur mesurée sur la voie 6 est supérieure à 1936 alors zoom=1
  if (mesure_voie6<1863)   niveau_zoom=2; // Si la valeur mesurée sur la voie 6 est supérieure à 1863alors zoom=2
  if (mesure_voie6<1765)   niveau_zoom=3; // Si la valeur mesurée sur la voie 6 est supérieure à 1765 alors zoom=3
  if (mesure_voie6<1681)   niveau_zoom=4; // Si la valeur mesurée sur la voie 6 est supérieure à 1681 alors zoom=4
  if (mesure_voie6<1602)   niveau_zoom=5; // Si la valeur mesurée sur la voie 6 est supérieure à 1602 alors zoom=5
  if (mesure_voie6<1518)   niveau_zoom=6; // Si la valeur mesurée sur la voie 6 est supérieure à 1518 alors zoom=6
  if (mesure_voie6<1443)   niveau_zoom=7; // Si la valeur mesurée sur la voie 6 est supérieure à 1443 alors zoom=7
  if (mesure_voie6<1359)   niveau_zoom=8; // Si la valeur mesurée sur la voie 6 est supérieure à 1359 alors zoom=8
  if (mesure_voie6<1274)   niveau_zoom=9; // Si la valeur mesurée sur la voie 6 est supérieure à 1274 alors zoom=9
  if (mesure_voie6<1191)   niveau_zoom=10;// Si la valeur mesurée sur la voie 6 est supérieure à 1191 alors zoom=10

  Serial.print("niveau_zoom");// Ecris sur le port série "niveau_zoom="
  Serial.println(niveau_zoom);// Ecris sur le port série la valeur de "niveau_zoom"

  if (exniveau_zoom==niveau_zoom) {
    goto debut;
  }// si il n'y a pas de changement, retourne au début du script
  exniveau_zoom = niveau_zoom;

  // bit de start pour dire à l'appareil photo qu'il peut commencer à compter le nombre d'impulsion correspondant au niveau de zoom

  digitalWrite(5,HIGH); // Mets la broche 5 à 1 (commence l'impulsion(front montant))
  delay(200); // Pendant 200ms "bit de start"
  digitalWrite(5,LOW); // Mets la broche 5 à 0 (arrête l'impulsion(front descendant))
  delay (100); // une pause de 100ms

  // Envoie un nombre d'impulsion correspondant au niveau du zoom
  i=0; 
  while (i<niveau_zoom){ // Tant que le nombre d'impulsion n'est pas envoyé recommence
    i=i+1;
   
    digitalWrite(5,HIGH);// commence une impulsion sur la broche 5 (front montant)
    delay(50);// Pendant 50 ms
    digitalWrite(5,LOW);// arréte cette impulsion (front descendant)
    delay (100); // une pause de 100ms
  }

  // bit de stop pour dire à l'appareil photo qu'il peut arrêter de compter
  digitalWrite(5,HIGH); // commence une impulsion sur la broche 5 (front montant)
  delay(120); //// Pendant 120ms "bit de stop"
  digitalWrite(5,LOW); //arrête cette impulsion (front descendant)
  delay (100);// une pause de 100ms
}
Avatar de l’utilisateur
Wouah
Plus de 1000 messages
 
Messages: 1012
Inscription: Mer 10 Novembre 2010, 20:13
Localisation: Saint-Malo

Re: Questions sur l'Arduchdk

Messagede Wouah le Dim 31 Janvier 2016, 21:38

Voilà le script CHDK qui ne laisse rien apparaitre d'autre à l'écran de l'apn que son titre que j'ai intitulé arduchdk.bas voir la capture d'écran de l'apn plus haut ou ici>http://www.casimages.com/i/160131085012408115.jpg.html

Le programme Arduino ne semble pas complet en le testant dans son émulateur?? et le script CHDK est bizarre, puisque je n'ai rien à l'écran!


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 lig
Avatar de l’utilisateur
Wouah
Plus de 1000 messages
 
Messages: 1012
Inscription: Mer 10 Novembre 2010, 20:13
Localisation: Saint-Malo

Re: Questions sur l'Arduchdk

Messagede Deltakap le Dim 31 Janvier 2016, 22:00

Je verrais bien ça comme ça (désolé c'est du paint :)

Avec une seule batterie commune à l'arduino et au récepteur
https://www.dropbox.com/s/et8i41o0i1a08 ... aterry.jpg

Ou avec deux batteries séparées:
https://www.dropbox.com/s/0iv2xjm1ohpb7 ... teries.jpg
Le fil bleu ciel gagnerait à être noir... mais on n'y voit plus rien sur la photo sinon :)

Le + de l'alim est sur Vin d'arduino, le - sur GND.
Un fil relie le - du récepteur et un GND de l'arduino

Sur l'arduino, toutes les GND sont reliées ensemble via le circuit imprimé ;)


Pour le script chdk, il semble effectivement être chargé
Si tu appuies sur le déclencheur ça devrait le lancer et faire un shoot.... sauf que sans indications, on ne saura même pas si c'est le script qui prend la photo.
Sinon, si tu as un cable usb, il y a moyen de le tester... tu lances le script, tu branches le cable sur le PC pendant au mois 300ms (1 seconde par exemple) et quand tu le débranches du PC, ça doit prendre une photo (avec l'autre bout du cable usb branché sur l'apn, hein ;)

Le mini script, lui, te dira au moins qu'il est vraiment lancé et, si tout va bien, devrait réagir quand tu touches aux manettes.(même si les valeurs vont être n'importe quoi)



Pour le script de l'arduino, oui, aux temps pour moi, il devrait fonctionner (je pensais en fait à une autre méthode)
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Wouah le Dim 31 Janvier 2016, 23:28

Merci et pas de soucis pour les couleurs c'est très bien comme ça...OK je vais essayé ça ...mais une chose m'étonne tout de même...Il n'y a pas de liaison entre les (-) des 2 voies du récepteur et les GND arduino! pas plus pour les (+) des voies.

Sinon j'ai re testé le fichier arduchdk.ino dans le programme arduino...voilà ce que ça m'indique....

Code: Tout sélectionner
'zoom' was not declared in the scope

arduchdk.ino: In function 'void loop()':
arduchdk:55: error: 'zoom' was not declared in this scope
arduchdk:56: error: expected `;' before 'digitalWrite'
arduchdk:74: error: expected `}' at end of input


le script chdk semble avoir des erreur (rien ne s'affiche) ou faut-il le nommer autrement peut-être? est-ce important?

Encore merci, je reprendrais ça demain matin.
Avatar de l’utilisateur
Wouah
Plus de 1000 messages
 
Messages: 1012
Inscription: Mer 10 Novembre 2010, 20:13
Localisation: Saint-Malo

Re: Questions sur l'Arduchdk

Messagede Deltakap le Dim 31 Janvier 2016, 23:48

Wouah a écrit:mais une chose m'étonne tout de même...Il n'y a pas de liaison entre les (-) des 2 voies du récepteur et les GND arduino!

Non, non, c'est normal ;)
Chaque sortie du récepteur donne une tension qui est référencée par rapport à la masse. Si on relie la masse du récepteur et de l'arduino, il est inutile de mettre un fil de masse pour chaque sortie (cette masse sera commune pour l'ensemble des éléments et un seul fil de masse suffit)

Wouah a écrit:pas plus pour les (+) des voies.

Les (+) des voies ? c'est à dire?

Wouah a écrit:Sinon j'ai re testé le fichier arduchdk.ino dans le programme arduino...voilà ce que ça m'indique....

Code: Tout sélectionner
'zoom' was not declared in the scope

arduchdk.ino: In function 'void loop()':
arduchdk:55: error: 'zoom' was not declared in this scope
arduchdk:56: error: expected `;' before 'digitalWrite'
arduchdk:74: error: expected `}' at end of input


Oui, j'ai essayé aussi... et j'ai la même punition ;)

A mon avis, il y a (au moins) un bug ici:
Code: Tout sélectionner
if (exniveau_zoom==niveau_zoom) {
goto debut;


Je te mets la modif dans le prochain post (trop de caractères pour celui là)

Wouah a écrit:le script chdk semble avoir des erreur (rien ne s'affiche) ou faut-il le nommer autrement peut-être? est-ce important?

A priori, c'est bien un script uBasic et pas un lua, donc le nom que tu lui as donné doit être bon (Et le petit script ne marche pas non plus?)
Et avec le cable à brancher/débrancher sur le PC? rien?
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Deltakap le Dim 31 Janvier 2016, 23:49

(suite)

Code: Tout sélectionner
int mesure_voie6; // voie pour la mesure du zoom
int mesure_voie8; // voie pour le déclenchement de l'appareil photo
int ledPin = 13; // LED connected to digital pin 13
int niveau_zoom;
int exniveau_zoom;
int i;
int t;

void setup()
{
  // choix des entrée d2 et d3 de l'arduino
  pinMode(2, INPUT); // La broche 2 de l'arduino est une entrée ( surveille voie 8 )
  pinMode(3, INPUT); // La broche 3 de l'arduino est une entrée( surveille voie 6 )
  pinMode(5, OUTPUT); // La broche 5 de l'arduino est une sortie( vers appareil photo )
  pinMode(ledPin, OUTPUT);      // sets the digital pin as output
  Serial.begin(9600); // Communique avec le port série à une vitesse de 9600
}

void loop()
{
  debut:
  mesure_voie8 = pulseIn(2, HIGH); // Mesure la taille de l'impulsion sur la voie 8
 
  if (mesure_voie8>1500){ // Si la taille de cette impulsion est supérieur à 1500 alors :
    digitalWrite(ledPin, HIGH);   // sets the LED on
    digitalWrite(5,HIGH); // commence une impulsion sur la broche 5 (front montant)
    delay(300); // Pendant 300 ms
    digitalWrite(5,LOW); // arrête cette impulsion (front descendant)
    digitalWrite(ledPin, LOW);    // sets the LED off
    delay (100); // faits une pause de 100 ms
  }
  // mesure le potentiomètre dédié au zoom sur ma radiocommande
  delay (500);
  mesure_voie6 = pulseIn(3, HIGH);// Mesure la taille de l'impulsion sur la voie 6
  delay (10);
  Serial.print("mesure_voie6="); // Ecris sur le port série "mesure_voie6="
  Serial.println(mesure_voie6); // Ecris sur le port série la valeur mesurée sur la voie 6
   // Donne le niveau de zoom suivant les largeurs des impulsions mesurées sur le récepteur voie 6
  // J'ai affiné ces chiffres en testant différentes positions de mon potentiomètre cranté
  // Mais en gros si on à 1ms pour un zoom à 10(téléobjectif) et 2ms pour un zoom à 0(grand angle)
  // 2ms-1ms = 1ms; 1ms/10 = 100 micro/sec
  // donc sans affiner : zoom1=1900; zoom2=1800; zoom3=1700 etc.
  // Mais à vous de mieux régler ... Pour moi ça donne:
  if (mesure_voie6<1936) niveau_zoom=1; // Si la valeur mesurée sur la voie 6 est supérieure à 1936 alors zoom=1
  if (mesure_voie6<1863) niveau_zoom=2; // Si la valeur mesurée sur la voie 6 est supérieure à 1863alors zoom=2
  if (mesure_voie6<1765) niveau_zoom=3; // Si la valeur mesurée sur la voie 6 est supérieure à 1765 alors zoom=3
  if (mesure_voie6<1681) niveau_zoom=4; // Si la valeur mesurée sur la voie 6 est supérieure à 1681 alors zoom=4
  if (mesure_voie6<1602) niveau_zoom=5; // Si la valeur mesurée sur la voie 6 est supérieure à 1602 alors zoom=5
  if (mesure_voie6<1518) niveau_zoom=6; // Si la valeur mesurée sur la voie 6 est supérieure à 1518 alors zoom=6
  if (mesure_voie6<1443) niveau_zoom=7; // Si la valeur mesurée sur la voie 6 est supérieure à 1443 alors zoom=7
  if (mesure_voie6<1359) niveau_zoom=8; // Si la valeur mesurée sur la voie 6 est supérieure à 1359 alors zoom=8
  if (mesure_voie6<1274) niveau_zoom=9; // Si la valeur mesurée sur la voie 6 est supérieure à 1274 alors zoom=9
  if (mesure_voie6<1191) niveau_zoom=10;// Si la valeur mesurée sur la voie 6 est supérieure à 1191 alors zoom=10
  Serial.print("niveau_zoom");// Ecris sur le port série "niveau_zoom="
  Serial.println(niveau_zoom);// Ecris sur le port série la valeur de "niveau_zoom"
  // si il n'y a pas de changement, retourne au début du script
  if (exniveau_zoom==niveau_zoom) goto debut;
   

  exniveau_zoom = niveau_zoom;
 
  digitalWrite(5,HIGH); // Mets la broche 5 à 1 (commence l'impulsion(front montant))
  digitalWrite(ledPin, HIGH);   // sets the LED on
  delay(200); // Pendant 200ms "bit de start"
  digitalWrite(5,LOW); // Mets la broche 5 à 0 (arrête l'impulsion(front descendant))
  digitalWrite(ledPin, LOW);    // sets the LED off
  delay (100); // une pause de 100ms
  // Envoie un nombre d'impulsion correspondant au niveau du zoom
  i=0;
  while (i<niveau_zoom){ // Tant que le nombre d'impulsion n'est pas envoyé recommence
    i=i+1;
    digitalWrite(5,HIGH);// commence une impulsion sur la broche 5 (front montant)
    digitalWrite(ledPin, HIGH);   // sets the LED on
    delay(50);// Pendant 50 ms
    digitalWrite(5,LOW);// arréte cette impulsion (front descendant)
    digitalWrite(ledPin, LOW);    // sets the LED off
    delay (100); // une pause de 100ms
  }
   // bit de stop pour dire à l'appareil photo qu'il peut arrêter de compter
  digitalWrite(5,HIGH); // commence une impulsion sur la broche 5 (front montant)
  digitalWrite(ledPin, HIGH);   // sets the LED on
  delay(120); //// Pendant 120ms "bit de stop"
  digitalWrite(5,LOW); //arrête cette impulsion (front descendant)
  digitalWrite(ledPin, LOW);    // sets the LED off
  delay (100);// une pause de 100ms
}
Dernière édition par Deltakap le Lun 01 Février 2016, 2:14, édité 1 fois.
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Deltakap le Lun 01 Février 2016, 0:06

(suite)

Petit problème avec la limite des 5000 caractères du forum (j'ai enlevé quelques commentaires du script)

J'ai ajouté un allumage de la led de la carte arduino quand tu vas actionner la manette de prise de vue
(la led doit s'allumer 0,3 secondes, assez pour vérifier si l'arduino comprend que tu veux déclencher une photo sur la télécommande, le shoot de l'apn doit se faire dès que la lumière s'éteint)

Pour le zoom, la led doit "clignoter" plusieurs fois rapidement (entre 3 et 12 fois, suivant la position de la manette, quand tu la changes de position)

Pour le chdk, est-ce que tu pourras essayer ça (c'est le même sans les rem's et un peu plus bavard)

Code: Tout sélectionner
@title ArduCHDK mod
@param b Debug mode
@default b 1
if b>1 then b=1
if b<0 then b=0
a=0
d=0

print "Script started..."

:debut
do
a=get_usb_power
until a>0
if b=1 then print "a=",a
if a>24 then goto "shoot"
if a>15 then goto "compte"
goto "debut"

:compte
do
a=get_usb_power
until a>0

if a>8 and a<15 then goto "zoom"
d=d+1
goto "compte"

:zoom
print "zoom=", d-1
set_zoom d-1
a=0
d=0
goto "debut"

:shoot
shoot
if b=1 then print "shoot"
goto "debut"
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Wouah le Lun 01 Février 2016, 12:02

Bonjour, je reviens pour faire le point après quelques essais.

Essai avec une batterie et nouveaux script et code

Aucun effet sur rien.....même pas de pschhittfffff! :mrgreen:

J'ai revérifié les sorties du récepteur radio et les voies avec servo (OK)

Arduino....il accepte le programme (pas de bug)
Chdk........voir dessous
Image

je vais essayer avec la solution 2 alim.
Avatar de l’utilisateur
Wouah
Plus de 1000 messages
 
Messages: 1012
Inscription: Mer 10 Novembre 2010, 20:13
Localisation: Saint-Malo

Re: Questions sur l'Arduchdk

Messagede Deltakap le Lun 01 Février 2016, 12:24

Wouah a écrit:Image
Et si tu appuies sur le déclencheur, comme pour prendre une photo, le script affiche bien "script started" ? (ou pas?)

Wouah a écrit:je vais essayer avec la solution 2 alim.

N'oublie pas le fil entre un gnd de l'arduino et le fil noir du récepteur ;)
C'est le plus important, parce que pour l'instant (en fixe) l'arduino doit déjà être alimenté par le PC via la prise usb (?)
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Wouah le Lun 01 Février 2016, 12:45

Oui mais rien ne se passe ....si je ré-appuie, il indique interrompu

J'avais qu'une alim (batterie) pour le récepteur et la même pourl'arduino!

comme ta première photo.....

Avec 2 batteries sans oublier le fil.....rien de mieux

l'arduino n'était pas connecté en USB au PC dans aucun des essais
Avatar de l’utilisateur
Wouah
Plus de 1000 messages
 
Messages: 1012
Inscription: Mer 10 Novembre 2010, 20:13
Localisation: Saint-Malo

Re: Questions sur l'Arduchdk

Messagede Deltakap le Lun 01 Février 2016, 12:51

Wouah a écrit:Oui mais rien ne se passe

Si il affiche "script started", c'est que tout va bien, il attend maintenant que l'arduino lui envoie quelque chose.


Au niveau de l'arduino, la led ne réagit pas quand tu bouges les manettes de la télécommande?
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Wouah le Lun 01 Février 2016, 14:00

Nouvel essai.....avec seulement 1 batterie comme ta photo (donc rien sur la prise usb de arduino/PC)

Je n'ai pas été assez attentif, mais effectivement quand je bouge une manette la led clignote très rapidement pendant env.1s puis stop, je fais la même chose avec l'autre idem....sa clignote aussi puis stop jusqu'a ce que j'agisse sur une des manettes. :D

l'apn lui reste figé en étant toujours marqué "script started"
Avatar de l’utilisateur
Wouah
Plus de 1000 messages
 
Messages: 1012
Inscription: Mer 10 Novembre 2010, 20:13
Localisation: Saint-Malo

Re: Questions sur l'Arduchdk

Messagede Deltakap le Lun 01 Février 2016, 14:26

Donc, l'arduino voit la radiocommande et visiblement c'est l'apn qui ne comprend rien.
Si l'apn n'affiche pas des lignes avec "a=" (+des valeurs), c'est qu'aucun signal n'arrive de l'arduino jusqu'à l'apn :(

La prise usb qui rentre dans l'apn a deux fils à l'autre bout:
- le fil rouge est bien sur la broche 5 de l'arduino ?
- le fil noir est bien sur la (une) broche GND de l'arduino ?
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Wouah le Lun 01 Février 2016, 15:17

Du nouveau

j'ai coupé le cable usb/apn en vérifiant le noir sur le noir et le rouge sur le rouge....je pense qu'il y avait une coupure sur le câble, car maintenant.......

ça déclenche :P (il déclenche 2 fois c'est sans doute à cause du manche qui ne revient pas....je verrais plus tard).

En revanche le zoom fonctionne aussi en touchant la manette, mais il se fige immédiatement sans prendre la photo et éteint l'apn en laissant objectif ouvert (comme bloqué). Il faut donc que je relance l'apn manuellement.
Avatar de l’utilisateur
Wouah
Plus de 1000 messages
 
Messages: 1012
Inscription: Mer 10 Novembre 2010, 20:13
Localisation: Saint-Malo

Re: Questions sur l'Arduchdk

Messagede Deltakap le Lun 01 Février 2016, 15:28

C'est un peu mieux ;)

Faut que je vérifie, mais tel que les scripts sont conçus, effectivement, ça doit prendre des photos sans arrêt si on laisse la manette à fond :(
Pour le plantage avec le zoom, possible que ça vienne des 10 positions prévues dans le script arduino (?)

Bref, le script demanderait sans doute à être "un peu" affiné ;)

Est-ce que tu utilises la même manette pour le zoom et le déclenchement? (parce que , si oui, ça ne va pas être pratique à l'usage, à mon avis)
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Wouah le Lun 01 Février 2016, 15:47

Oui un peu mieux merci ça avance....le but étant aussi d'utiliser le zoom...mais ????

Actuellement pour les tests, j'ai une ancienne radio avec un manche par voie (gauche déclenchement, droite zoom)....mais, l'idée est de mettre le Zoom sur le potard de mon autre radio et le déclencheur sur un manche avec ressort. voir la radio...c'est une classique (6 voies) http://www.myrcmart.com/images/upload/Fly-Sky-FS-CT6B-2-4GHz-6CH-Transmitter-01.jpg
Avatar de l’utilisateur
Wouah
Plus de 1000 messages
 
Messages: 1012
Inscription: Mer 10 Novembre 2010, 20:13
Localisation: Saint-Malo

Re: Questions sur l'Arduchdk

Messagede Deltakap le Lun 01 Février 2016, 16:29

Oui, avec un potar indépendant, ça va être beaucoup plus facile à utiliser ;)

Je regarde si on peut éviter qu'il prenne 50 photos à la suite et pourquoi le zoom plante
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Deltakap le Lun 01 Février 2016, 16:34

Une petite modif (naïve?) pour le pb de plantage de zoom:
(juste pour empêcher un "set_zoom" inférieur à 0 ou supérieur à 9)

Code: Tout sélectionner
@title ArduCHDK mod
@param b Debug mode
@default b 0
if b>1 then b=1
if b<0 then b=0
a=0
d=0

print "Script started..."

:debut
do
a=get_usb_power
until a>0
if b=1 then print "a=",a
if a>24 then goto "shoot"
if a>15 then goto "compte"
goto "debut"

:compte
do
a=get_usb_power
until a>0

if a>8 and a<15 then goto "zoom"
d=d+1
goto "compte"

:zoom
if d>10 then d=10
if d<1 then d=1
print "zoom=", d-1
set_zoom d-1
a=0
d=0
goto "debut"

:shoot
shoot
if b=1 then print "shoot"
goto "debut"
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Deltakap le Lun 01 Février 2016, 17:14

(suite)

Pour le script arduino cette fois-ci:
Ça devrait empêcher de lancer la commande de shoot sans arrêt... il faudra ramener la manette avant de re-shooter à nouveau ;)

Code: Tout sélectionner
int mesure_voie6; // voie pour la mesure du zoom
int mesure_voie8; // voie pour le déclenchement de l'appareil photo
int ledPin = 13; // LED connected to digital pin 13
int niveau_zoom;
int exniveau_zoom;
int i;
int t;
int shoot_ok = 1;

void setup()
{
  // choix des entrée d2 et d3 de l'arduino
  pinMode(2, INPUT); // La broche 2 de l'arduino est une entrée ( surveille voie 8 )
  pinMode(3, INPUT); // La broche 3 de l'arduino est une entrée( surveille voie 6 )
  pinMode(5, OUTPUT); // La broche 5 de l'arduino est une sortie( vers appareil photo )
  pinMode(ledPin, OUTPUT);      // sets the digital pin as output
  Serial.begin(9600); // Communique avec le port série à une vitesse de 9600
}

void loop()
{
  debut:
  mesure_voie8 = pulseIn(2, HIGH); // Mesure la taille de l'impulsion sur la voie 8
  if (shoot_ok == 1){
      if (mesure_voie8>1600){ // Si la taille de cette impulsion est supérieur à 1500 alors :
     puls(300);
     shoot_ok = 0;
      } else {
     shoot_ok = 1;
      }
  }
  // mesure le potentiomètre dédié au zoom sur ma radiocommande
  delay (500);
  mesure_voie6 = pulseIn(3, HIGH);// Mesure la taille de l'impulsion sur la voie 6
  delay (10);
  Serial.print("mesure_voie6="); // Ecris sur le port série "mesure_voie6="
  Serial.println(mesure_voie6); // Ecris sur le port série la valeur mesurée sur la voie 6

  if (mesure_voie6<1936) niveau_zoom=1; // Si la valeur mesurée sur la voie 6 est supérieure à 1936 alors zoom=1
  if (mesure_voie6<1863) niveau_zoom=2; // Si la valeur mesurée sur la voie 6 est supérieure à 1863alors zoom=2
  if (mesure_voie6<1765) niveau_zoom=3; // Si la valeur mesurée sur la voie 6 est supérieure à 1765 alors zoom=3
  if (mesure_voie6<1681) niveau_zoom=4; // Si la valeur mesurée sur la voie 6 est supérieure à 1681 alors zoom=4
  if (mesure_voie6<1602) niveau_zoom=5; // Si la valeur mesurée sur la voie 6 est supérieure à 1602 alors zoom=5
  if (mesure_voie6<1518) niveau_zoom=6; // Si la valeur mesurée sur la voie 6 est supérieure à 1518 alors zoom=6
  if (mesure_voie6<1443) niveau_zoom=7; // Si la valeur mesurée sur la voie 6 est supérieure à 1443 alors zoom=7
  if (mesure_voie6<1359) niveau_zoom=8; // Si la valeur mesurée sur la voie 6 est supérieure à 1359 alors zoom=8
  if (mesure_voie6<1274) niveau_zoom=9; // Si la valeur mesurée sur la voie 6 est supérieure à 1274 alors zoom=9
  if (mesure_voie6<1191) niveau_zoom=10;// Si la valeur mesurée sur la voie 6 est supérieure à 1191 alors zoom=10
  Serial.print("niveau_zoom");// Ecris sur le port série "niveau_zoom="
  Serial.println(niveau_zoom);// Ecris sur le port série la valeur de "niveau_zoom"
  // si il n'y a pas de changement, retourne au début du script
  if (exniveau_zoom==niveau_zoom) goto debut;
   
  exniveau_zoom = niveau_zoom;
  puls(200);
  i=0;
  while (i<niveau_zoom){ // Tant que le nombre d'impulsion n'est pas envoyé recommence
    i=i+1;
    puls(50);
  }
  puls(120);
}

void puls(int length) {
    digitalWrite(ledPin, HIGH);   // sets the LED on
    digitalWrite(5,HIGH);
    delay(length);
    digitalWrite(5,LOW);
    digitalWrite(ledPin, LOW);    // sets the LED off
    delay (100);
}
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Wouah le Lun 01 Février 2016, 18:38

Je viens d’essayer ton dernier script (chdk) pour le problème de zoom....même blème que précédemment ... plantage immédiat dès le coup de zoom!

Je n'ai pas encore changé pour l'arduino...mais avec le manche qui revient....ça le fait bien. reste ce foutu zoom!

Sinon, il y a la lettre "a" qui s'affiche sur l'écran de l'apn avec des nombres de valeur sans doute....qu'il n'y avait pas avant...
Avatar de l’utilisateur
Wouah
Plus de 1000 messages
 
Messages: 1012
Inscription: Mer 10 Novembre 2010, 20:13
Localisation: Saint-Malo

Re: Questions sur l'Arduchdk

Messagede Deltakap le Lun 01 Février 2016, 19:20

Peut-être qu'il n'aime pas le calcul sur le "set_zoom" ?

On essaie ça:
(j'ai viré le mode debug, ça ne sert plus à rien)

Code: Tout sélectionner
@title ArduCHDK mod
a=0
d=0

print "Script started..."

:debut
do
a=get_usb_power
until a>0

if a>24 then goto "shoot"
if a>15 then goto "compte"
goto "debut"

:compte
do
a=get_usb_power
until a>0

if a>8 and a<15 then goto "zoom"
d=d+1
goto "compte"

:zoom
d=d-1
if d>=10 then d=9
if d<0 then d=0
print "zoom=", d
set_zoom d
a=0
d=0
goto "debut"

:shoot
shoot
goto "debut"
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Wouah le Lun 01 Février 2016, 20:50

Désolé, mais le dernier script n'apparait pas dans le menu des scripts de la carte SD au moment de le charger....j'ai les autres mais celui ci n'apparait pas. Il apparait sur la carte SD à l'écran de mon PC mais pas sur l'apn! :shock:
Avatar de l’utilisateur
Wouah
Plus de 1000 messages
 
Messages: 1012
Inscription: Mer 10 Novembre 2010, 20:13
Localisation: Saint-Malo

Re: Questions sur l'Arduchdk

Messagede Wouah le Lun 01 Février 2016, 21:33

Bon de peur d'avoir des interférences de scripts, j'ai effacé les anciens et rechargé ton dernier....toujours pareil au niveau du zoom. ça plante directement au coup de zoom. Sinon le déclenchement est systématique des que j'ai appuyé sur le déclencheur de l'apn pour lancer le script et si la radio est éteinte, ça déclenche toutes les 2 secondes....radio allumée il arrête et déclenche si je bouge le manche de la radiosi je n'allume pas la radio (fonction normale)

Toujours ce ...... :mrgreen: de zoom


Attention quand cette histoire de zoom te donne envie balancer ton PC par la fenêtre....tu arrête évidement....aucune obligation de résultat!!

C'est plutôt super comme coup de main.
Avatar de l’utilisateur
Wouah
Plus de 1000 messages
 
Messages: 1012
Inscription: Mer 10 Novembre 2010, 20:13
Localisation: Saint-Malo

Re: Questions sur l'Arduchdk

Messagede Deltakap le Lun 01 Février 2016, 21:53

Wouah a écrit:Bon de peur d'avoir des interférences de scripts, j'ai effacé les anciens et rechargé ton dernier....toujours pareil au niveau du zoom. ça plante directement au coup de zoom.

Peux-tu essayer celui-là?
C'est le même qu'au début mais sans l'instruction "set_zoom".... le zoom ne va donc plus bouger, mais c'est pour voir si le script plante toujours au changement de zoom. L'écran de l'apn devrait quand même te donner la valeur de zoom et changer de valeur quand tu bouges la manette.
Code: Tout sélectionner
@title ArduCHDK mod

a=0
d=0

print "Script started..."

:debut
do
a=get_usb_power
until a>0
if b=1 then print "a=",a
if a>24 then goto "shoot"
if a>15 then goto "compte"
goto "debut"

:compte
do
a=get_usb_power
until a>0

if a>8 and a<15 then goto "zoom"
d=d+1
goto "compte"

:zoom

print "zoom=", d-1

a=0
d=0
goto "debut"

:shoot
shoot
if b=1 then print "shoot"
goto "debut"



Wouah a écrit:Sinon le déclenchement est systématique des que j'ai appuyé sur le déclencheur de l'apn pour lancer le script et si la radio est éteinte, ça déclenche toutes les 2 secondes....radio allumée il arrête et déclenche si je bouge le manche de la radiosi je n'allume pas la radio (fonction normale)

Là faut que j'essaie de comprendre... en fonction de ce qu'a prévu l'auteur du script ;)


Wouah a écrit:aucune obligation de résultat!!

Oui, mais ça à l'air de se rapprocher ;)
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Deltakap le Lun 01 Février 2016, 22:14

(suite...)

Wouah a écrit:Sinon le déclenchement est systématique des que j'ai appuyé sur le déclencheur de l'apn pour lancer le script et si la radio est éteinte, ça déclenche toutes les 2 secondes....radio allumée il arrête et déclenche si je bouge le manche de la radiosi je n'allume pas la radio (fonction normale)

Toujours ce ...... :mrgreen: de zoom


Alors...
Wouah a écrit:Sinon le déclenchement est systématique des que j'ai appuyé sur le déclencheur de l'apn pour lancer le script

Ok, c'est moyennement normal :)
Donc, c'est quand tu lances le script (en dernier) alors que tout le reste est déjà allumé ?
Mais ça ne shoot qu'une seule fois ? (ou plus?)

Wouah a écrit:si la radio est éteinte, ça déclenche toutes les 2 secondes.

Si l'émetteur est éteint?
Ou le récepteur?


Wouah a écrit:radio allumée il arrête et déclenche si je bouge le manche de la radio

Bon, ça, ça me va ;)

Wouah a écrit:si je n'allume pas la radio (fonction normale)

Toujours ce ...... :mrgreen: de zoom

Pourquoi fonction normale? si la radio n'est pas allumée, c'est pas trop normal (ça peut arriver, certes, et j'ai l'impression qu'il va falloir le gérer, mais bon)


As-tu changé le script de l'arduino ? (ça peut changer les choses au niveau du shoot à répétition des photos)
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Wouah le Lun 01 Février 2016, 22:35

Déclenchement: inchangé donc OK

Zoom: ne plante pas...mais ne bouge plus. Il y a seulement des valeurs en bas à gauche de l'écran de l'apn qui changent quand je bouge le manche de la radio
Avatar de l’utilisateur
Wouah
Plus de 1000 messages
 
Messages: 1012
Inscription: Mer 10 Novembre 2010, 20:13
Localisation: Saint-Malo

Re: Questions sur l'Arduchdk

Messagede Deltakap le Lun 01 Février 2016, 22:41

Wouah a écrit:Zoom: ne plante pas...mais ne bouge plus.

Ça c'est normal, j'ai enlevé l'instruction qui devait le faire bouger, pour voir si c'était bien elle qui plantait... y'a plus qu'à comprendre pourquoi elle plante :(

Wouah a écrit:Il y a seulement des valeurs en bas à gauche de l'écran de l'apn qui changent quand je bouge le manche de la radio

Et ces valeurs vont de combien à combien? (0 à 10?)


Edit...

Faut peut-être juste lui laisser un peu de temps pour bouger ?

Code: Tout sélectionner
@title ArduCHDK mod

a=0
d=0

print "Script started..."

:debut
do
a=get_usb_power
until a>0

if a>24 then goto "shoot"
if a>15 then goto "compte"
goto "debut"

:compte
do
a=get_usb_power
until a>0

if a>8 and a<15 then goto "zoom"
d=d+1
goto "compte"

:zoom
d=d-1
if d>9 then d=9
if d<0 then d=0
print "zoom=", d
set_zoom d
sleep 1000
a=0
d=0
goto "debut"

:shoot
shoot
goto "debut"
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Re: Questions sur l'Arduchdk

Messagede Wouah le Lun 01 Février 2016, 23:06

dernier script....Le zoom plante comme d'habitude

je bouge le manche 1 seconde...l'apn zoomun peu mais plante directement...pas le temps de déclencher. Il faut éteindre et rallumer l'appareil
Avatar de l’utilisateur
Wouah
Plus de 1000 messages
 
Messages: 1012
Inscription: Mer 10 Novembre 2010, 20:13
Localisation: Saint-Malo

Re: Questions sur l'Arduchdk

Messagede Wouah le Lun 01 Février 2016, 23:11

Je ne sais pas si ça peut t'aider le script de zoom que j'avais avant ( voir ci-dessous) plante de la même manière..... Tu y trouveras peut-être des choses interessantes?

Code: Tout sélectionner
@title Zoom Series
rem for A610/A620 (cams with 35-140mm lens)(9 zoom steps)(0 thru 8)
rem should also work with A630/A640

rem omitting some focal length choices
rem because only *TEN* params are available
@param a incl 35mm (1=yes)
@default a 1
@param b incl 45mm (1=yes)
@default b 0
@param c incl 51mm (1=yes)
@default c 1
@param d incl 60mm (1=yes)
@default d 1
@param e incl 71mm (1=yes)
@default e 1
@param f incl 83mm (1=yes)
@default f 0
@param g incl 104mm (1=yes)
@default g 1
@param h incl 140mm (1=yes)
@default h 1
let z=a+b+c+d+e+f+g+h
rem this sanity check not foolproof but...
if z<1 | z>8 then gosub "nothing"

@param i Start delay (sec)
@default i 5
@param j Start delay (min)
@default j 0

rem Change code so that "show helptext" is optional
rem if/when CHDK permits additional params.
gosub "instruct"

if w>0 then gosub "countdown"

if h=1 then shoot
if g=1 then set_zoom 7
if g=1 then shoot
if f=1 then set_zoom 6
if f=1 then shoot
if e=1 then set_zoom 5
if e=1 then shoot
if d=1 then set_zoom 4
if d=1 then shoot
if c=1 then set_zoom 3
if c=1 then shoot
if b=1 then set_zoom 2
if b=1 then shoot
rem if a=1 then set_zoom 0   
rem Instead of above, let's unconditionally SET_ZOOM 0
rem so cam is at full-wide state when script ends.
set_zoom 0   
if a=1 then shoot
print "***finished***"
print "."
end

:instruct
rem This scripts works with flash on or off.
rem Only 2 known preconditions/requirements:
rem -- cam cannot be set to manual focus
rem -- Menu } Review should not be set to "HOLD"
rem
print "1 shot at each selected"
print "focal length"
print "."
print "tripod use OPTIONAL"
print "paused --[ click SET ]--"
wait_click
set_zoom 8
print "begins at full zoom"
let w=j*60+i
print "(after",w;"s start delay)"
print "."
print "Frame your subject area"
print "& click [SET] when ready"
wait_click
rem blank lines scroll away previous helptext
print " "
print " "
print " "
print " "
print " "
return

:nothing
print "0 focal lengths chosen"
print "nothing to do !"
return

:countdown
rem May want to force minimum 2sec start delay here
rem to eliminate camera shake from button press.
rem (I decided it is not needed in the zoom_series script)
rem if w<2 then let w=2
for n=1 to w
let m=w-n+1
print "countdown:", m,"secs"
sleep 940
next n
rem NOTE: Loop timer, above, has been checked for accuracy
rem blank lines scroll away countdown text
print " "
print " "
print " "
print " "
print " "
return
Avatar de l’utilisateur
Wouah
Plus de 1000 messages
 
Messages: 1012
Inscription: Mer 10 Novembre 2010, 20:13
Localisation: Saint-Malo

Re: Questions sur l'Arduchdk

Messagede Deltakap le Lun 01 Février 2016, 23:24

Il doit y avoir une "astuce" (?), mais pour l'instant, c'est raté :(

Au pire, je vais essayer de réinstaller un chdk sur mon S95 (oui, j'en ai un ;)

Il y a surement quelque chose à tirer de ça:
(ça vient de cette page http://chdk.wikia.com/wiki/CHDK_scripting)
Peut-être le set_zoom_speed ?
Mais bon, faut lire à tête reposée :)
Et voir si ça s'applique au S95 (?)

set_zoom / set_zoom_rel / get_zoom / set_zoom_speed
Edit Syntax:
set_zoom x (where x is 0 to 8, 14, or 127, see Range)
set_zoom_rel x (x is +/- relative change)
x = get_zoom (zoom-step value placed in variable x)
set_zoom_speed x (where x can be from 5-100 range. Will do nothing for A-series)
(5 is 5% of high-speed, 100 is 100% of high-speed)
Range:
A-series: x = 0 to 8 or 14 (9 or 15 steps)
S-series: x = 0 to 127 (128 steps)
Note 1: set_zoom_speed has no effect on most of CHDK supported cameras, it works only for the S2 and S3.

Note 2: Camera does not refocus automatically after the end of zooming. Use a click or press/release "shoot_half" command to implement a refocusing if needed.

Note 3: It was found that if using the slowest speed (5), that an S3 IS might shut down after it has waited too long for the zoom to traverse the whole range of 129 steps, a speed of 10 did not exhibit this behavior on an S3 IS. 5 is so slow though, that I doubt it would rarely be needed, except in movie-shooting scripts, and then the range could be limited to prevent camera shut-down.

Note 4: CAUTION! (found on S3 IS) If set_zoom_speed is not written into the script when set_zoom x is used, the camera will refocus some of your optics to make it where the camera is unable to focus on anything in any mode. The camera (when zooming without a set-zoom speed) appears to move an internal lens element that puts the lens into a Super-Macro mode where it focuses on internal lens elements at widest-angle. If this command is left out of a script using the set_zoom x command, you will have to shut down your camera and restart it to reset the zoom-lens' optics back to defaults. However, an interesting thing is found -- when running the "Zoom-Shoot" script by rem-ing out the set_zoom_speed command (removing it from being implemented), after the camera resets its zoom, the lens is now in a ZOOMED tele-macro SUPER-MACRO MODE! Giving you close-up focusing ability at fullest zoom! (as if you had placed a +4 or so close-up lens on your camera) Far surpassing the capabilities that Canon designed. Perhaps this "bug" could be put to great use? Or it might damage your focusing and zooming mechanisms. USE WITH CAUTION. Because you can hear the camera strain up against some internal lens-adjustment stops when it's trying to reset the zoom. And the only way to "un-do" this (really nice!) tele-super-macro mode is by turning the camera off and on again.

(Leaving this small chart here for reference, but is no longer applicable to the new set_zoom commands.)

S-Series Zoom Speed: 36mm-432mm or 432mm-36mm
slow = 6 seconds (available in single-shot & movie mode)
medium = 4 seconds (available in movie mode)
high-speed = 1 second (available in single-shot mode)
Avatar de l’utilisateur
Deltakap
Plus de 1000 messages
 
Messages: 1432
Inscription: Lun 22 Septembre 2008, 11:35
Localisation: Du coté de Granville

Suivante

Retourner vers L'électronique embarquée et au sol

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 33 invités

cron