TUTO CHDK /ARDUINO pour contrle DU zoom et du
dclenchement dun s95
Slt tous !!!
Photographe et passionn par la technique, je ne pouvais pas passer ct de la photographie arienne
Je me suis donc achet un petit f450 avec une petite nacelle et une gopro Mais plus adapte la vido
jen ai vite vu les limites
Jai donc recherch un bon compact qui puisse tre soulev par mon quadriptre avec une bonne qualit
dimage, et me suis arrt sur le petit s95.
Voulant aller plus loin et pouvoir dclencher, zoomer via la radiocommande et aillant dj utilis le hack
chdk pour les appareils Canon, je me lance dans laventure
Jai pass des heures sur diffrents forums Et maintenant, tout fonctionne. Je vais essayer de regrouper
ici un maximum dinfos en reprenant tout depuis le dbut :
Ce que je veux : Dclencher (interrupteur) et Zoomer/dezoomer (potentiomtre) depuis ma
radiocommande (futaba T8FG)
1-Je configure la voie 6 de ma radio sur un linterrupteur nomm HS (mais il marche)
Qu'est ce qui sort de mon rcepteur ?
Je branche mon oscilloscope sur la voie 6 de mon rcepteur pour voir ce quil se passe :
Cable servo Futaba:
interrupteur 0 oscilo 5 milliseconde:
Interrupteur 0 oscilo 500 microseconde:
Je mesure une largeur dimpulsion de 1.1ms inter 0.
interrupteur 1 et oscilo 5 milliseconde:
interrupteur 1 oscilo 500 microseconde:
Je mesure une largeur dimpulsion de 1.9ms inter 1.
Je me branche maintenant sur la voie 8 de mon rcepteur correspondant au potentiomtre (RD) de ma
radio, et l, mme comportement :
0% : 1.0 ms
50% : 1.5 ms
100% : 1.9 ms
Tout va pour le mieux dans le meilleur des mondes
Je vais donc mesurer ces impulsions avec une carte arduino et renvoyer l'info sur le port USB de monS95
qui sera interprte par le hach CHDK
MAIS NON , ces impulsions ne sont pas suffisamment prcises.
Pour mesurer ces impulsions, le plus simple est d'utiliser une carte (avec microcontroleur), j'ai choisi
l'arduino
L'Arduino c'est QUOI ?
La carte arduino c'est koi ... : Imaginons que l'on puisse dire sa machine laver :
(sorties arduino)
- Tu mets 3 litres d'eau
- tu tournes le tambour 3 fois droite puis 1 fois gauche
- tu chauffes 60
- tu lches de l'adoucissant dans 15 min
Mais on peut aussi poser des questions :
(entres arduino)
- combien de kg dans le tambour ?
- Quelle est la temprature extrieure ?
- WHOs on first?
Cest donc une sorte de petit ordinateur qui tient sur une petite carte lectronique.
Cette carte comporte des entres, des sorties et un cerveau qui permet de faire des calculs trs
rapidement.
Et avec a on peut faire multitudes dapplication.
Restons sur lexemple Machine laver : mini machine laver v0.01 contrle par carte arduino.
Les entres :
- Mesure du poids du linge (capteur de poids, balance) E3
- Choix du programme (interrupteurs/programmateur)E2
- Mesure du niveau deau (capteur de niveau/ Pressostat)E5
- Mesure de la temprature (thermomtre)E4
- Mesure de vitesse de rotation (tachymtre)E1
Les sorties :
- Bloquer la porte (lectroaimant)S3
- Remplissage de la machine (lectrovanne)S2
- Chauffage de leau (rsistance)S1
- Rotation du tambour (moteur)S5
- Vidanger la machine (pompe)S4
Ce que va faire la carte le cerveau, le microcontrleur de larduino (suivant le programme choisi par
interrupteur sur notre machine laver) :
- Bloquer la porte (sortie)
- Prendre linformation (entre) poids du linge donne par la balance.
- Prendre linformation (entre) choix du programme donne par linterrupteur rotatif.
- Calculer suivant le programme choisi et le poids du linge la quantit deau ncessaire dans le
tambour (microcontrleur)
- Ouvrir llectrovanne (sortie) darrive deau.
- Surveiller le niveau deau avec le capteur de niveau (entre)
- Doser la lessive/adoucissant suivant le poids grce une pompe (sortie)
- Mettre en route le moteur (sortie)
- Alimenter la pompe de vidange (sortie) pour vacuer leau.
- Calculer la vitesse maximale pour lessorage que pourra supporter la machine suivant le poids du linge
mouill (microcontrleur)
- Mettre en route le moteur (sortie)
- Arrter la machine aprs un temps X
Et comment lui dire tout a notre petite carte ?
En lui balanant dans son petit port usb ce quelle doit faire :
1 Mets 1 la sortie S3 = Alimente llectroaimant pour bloquer la porte
2 Prends linformation poids qui est sur lentre E3 = Pse le linge
3 Prends linformation Mode sur lentre E2 = Regarde le programme choisi
4 Si le poids est plus petit que 1.5 kg alors remplissage eau = 5 litres
Si le poids est plus grand que 3 kg alors remplissage eau = 8 Litres
Si le poids est plus grand que 4.5 kg alors remplissage eau = 12 Litres
5 Si Le mode est 1 alors temps de lavage = 30 min
Si Le mode est 2 alors temps de lavage = 60 min
6 Mets la sortie S2 1 = Ouvre llectrovanne est laisse passer leau.
7 Surveille Lentre E5 = Regarde le niveau de leau
Si E5 est gal ou suprieur la valeur remplissage deau de la ligne 4 alors mets la sortie S2 0 =
ferme llectrovanne = coupe larrive deau
Sinon retourne la ligne 7
8 Mets la sortie s5 1 = alimente le moteur = fait tourner le tambour
9 Fais une pause de temps de lavage dfinit ligne 5
10 Mets la sortie s5 0 = coupe le moteur
11 Mets 0 la sortie S3 = coupe llectroaimant pour dbloquer la porte
Mais cette carte ne parle pas comme nous et comprends plutt a :
//Exemple machine laver arduino
//3.5 kg de linge et programme 2 choisi
//dfini les positions sur la carte des entres ou des sorties
int electroaimant = 1; // l'lectroaimant est sur la broche 1
int moteur = 2;// le moteur est sur la broche 2
int electrovanne = 3; // l'lectrovanne est sur la broche 3
int poids = 4;// la mesure du poids est sur la broche 4
int niveau_eau = 5;// le niveau d'eau est sur la broche 5
int mode = 6; // l'interrupteur mode est sur la broche 6
// Initialisation des differentes variables
int val_poids=0;
int remplissage_eau=3;
int temps_de_lavage=0;
int niv_eau=0;
int val_mode=1;
void setup() {
// definition si entres ou sorties
pinMode(electroaimant, OUTPUT); // La broche lectroaimant (1) est une sortie
pinMode(poids, INPUT); // La broche poids (2) est une entre
pinMode(mode, INPUT); // La broche mode (3) est une entre
pinMode(electrovanne, OUTPUT); // La broche lectrovanne (4) est une sortie
pinMode(niveau_eau, INPUT); // La broche niveau_eau (5) est une entre
pinMode(moteur, OUTPUT); // La broche moteur (6) est une sortie
}
//Programme principal
void loop(){
digitalWrite(electroaimant, HIGH); // ferme la porte
val_poids = digitalRead(poids); // relve le poids
val_mode = digitalRead(mode); // relve le mode choisi
// dfini la quantit d'eau ncessaire suivant le poids
if (val_poids > 1.5) {remplissage_eau = 5;}; // si poids est plus grand que 1.5 alors la variable "remplissage_eau=5"
if (val_poids > 3) {remplissage_eau = 8 ; }; // si poids est plus grand que 3 alors la variable "remplissage_eau=8"
if (val_poids > 4.5) {remplissage_eau = 12 };// si poids est plus grand que 4.5 alors la variable "remplissage_eau=12"
//Dfini le temps que doit tourner la machine suivant le mode de lavage choisi
if (mode = 1) { temps_de_lavage=30;}; // si le mode choisi est gal 1 alors la variable "temps_de_lavage=30"
if (mode = 2) {temps_de_lavage=60; }; // si le mode choisi est gal 2 alors la variable "temps_de_lavage=60"
// Rempli le tambour de la bonne quantit d'eau
while (digitalRead(niveau_eau) < remplissage_eau){// Tant que le niveau d'eau est plus petit que la variable
remplissage_eau (8L dans notre exemple)
digitalWrite(electrovanne, HIGH); }; //Alors ouvre l'lectrovanne et rempli le tambour
digitalWrite(electrovanne, LOW);// Ferme l'lectrovanne
//Fait tourner le tambour pendant le temps correspondant au mode de lavage choisi
digitalWrite(moteur, HIGH);// Alimente le moteur
delay (temps_de_lavage*60000); // pendant 60 min dans notre exemple "delay (1000)=1s"
digitalWrite(moteur, LOW); // Coupe le moteur
digitalWrite(electroaimant, LOW); // Ouvre le loquet de la porte
// Et l vous prenez 8 litres d'eau sur vos godasses vu qu'il n'y a pas de gestion de vidange ...
}
En savoir plus sur cette petite carte : http://www.arduino.cc/fr/
Mais nous ne sommes pas sur le forum de Darty
Revenons notre projet pour notre drone.
Ce que la carte Arduino doit faire :
Mesurer la taille des impulsions sur les voies 6 et 8 du rcepteur de ma radiocommande et renvoyer une
commande de zoom ou de dclenchement mon appareil photo.
Mesurer la taille des impulsions :
Par bonheur une instruction existe et ne sert qu a cest Tatatin :PulseIn (
http://arduino.cc/fr/Main/PulseIn )
En gros, cette instruction mesure la taille dune impulsion partir dun front montant ou descendant.
// Test de l'instruction PulseIn sur une voie de rcepteur de radiocommande
// Le fil Data de la voie8 est connect sur l'entre/sortie 2 de l'arduino
// potentiomtre (RD) de ma radio 50%(milieu)
int mesure_voie8; //dclaration de la variable
void setup() {
pinMode(2, INPUT); // La broche 2 de l'arduino est une entre
Serial.begin(9600); //initialise le port srie de l'arduino afin d'envoyer des info via son port usb
}
void loop() {
mesure_voie8 = pulseIn(2, HIGH); //mesure la taille des impulsions entrant dans la broche 2 partir de leur front montant
Serial.println(mesure_voie8); // Ecrit cette valeur sur le moniteur srie du logiciel arduino
delay (500); // Faits une pause d'une 1/2 seconde
}
Et voiloux le rsultat :
Comme nous pouvons le voir nous sommes loin dune grande prcision
Donc pour le zoom, et le dclenchement lide est denvoyer lappareil photo des informations
reprsentatives de la position du potentiomtre ou de linterrupteur (donc de diffrentes longueurs
d'impulsions reues par le rcepteur) et que cet appareil photo linterprte comme une des positions du
zoom ou un ordre de dclenchement grce au chdk.
Au niveau cblage c'est simple:
Le CHDK c'est QUOI ?
Je vais vous pargner le contrle dun fer repasser via chdk
Quest-ce quun appareil photo :
Un boitier avec des boutons, des lentilles, de llectronique (avec un microcontrleur comme pour notre
carte arduino) et un programme qui gre le tout (comme pour notre carte arduino). Mais dans un appareil
photographique numrique, ce programme est inconnu et nest surtout pas modifiable !!!
Et ba Si !!!
Des ptis gars ont russi entrer dans les compact canon et y insrer un programmes alternatifs (chdk)
pour modifier/amliorer/ajouter des fonctions et surtout, cest ce qui nous intresse ici, pouvoir raliser des
petits programmes (scipt) pour faire diffrentes actions la suite des autres (commande de lautofocus, de
lexposition, du zoom, des boutons etc.)
Ex :
Tu zoom 0, tu fais un autofocus tu exposes -1, tu shoot, tu exposes 0, tu shoot, tu exposes +1, tu
shoot, tu zoom 5 etc.
Je ne vais pas dvelopper ici son installation sur votre appareil, mais vous renvoie vers le site officiel :
http://chdk.wikia.com/wiki/CHDK
En french :
http://chdk.wikia.com/wiki/French/CHDK_en_bref
Et pour notre application, quoi le chdk va servir ?
A interprter une information venant de la carte arduino et de changer le niveau de zoom ou dclencher
en consquent.
Et comment parler notre petit appareil canon ?
Depuis quelque temps, une nouvelle possibilit soffre nous pour communiquer avec lappareil photo en
passant directement par le port usb(11) de celui-ci.
Dans le script cette fonction est : get_usb_power
Cette fonction surveille le port USB (usb+ et -) et mesure la taille dune impulsion appliquer sur celui-ci
partir de son front montant un peu comme la mesure de la carte arduino)
Plus d'infos ici :
http://chdk.wikia.com/wiki/USB_Remote
Pour activer le mode tlcommande allez dans le menu chdk :
Scripting parameters.
Remote parameters.
Et cocher enable remote.
Pour tester un petit programme simple qui va prendre une photo et mesurer le temps qu'un cble usb/mini
usb est branch d'un cot sur votre pc et de l'autre sur votre appareil.
a=0
do
rem mets dans la variable "a" le temps pendant lequel le port usb est aliment
a=get_usb_power
rem A partir du moment ou "a" est > 0
until a>0
rem prends une photo
shoot
rem affiche la taille sur l'cran de l'appareil photo
print "taille=", a
Pour tester la prcision de du chdk sur la mesure dimpulsion je ralise un ptit programme pour larduino
qui envoie en boucle sur le port USB de mon appareil une impulsion de 200ms toute les secondes.
Citer
void setup() {
pinMode(5, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(5,HIGH);
delay(200);
digitalWrite(5,LOW);
}
Et un programme CHDK qui mesure et affiche limpulsion reue.
a=0
:debut
a=0
do
a=get_usb_power
until a>0
print "taille=", a
goto "debut"
Et voil le rsultat :
Pour une mme valeur envoye de 200ms on peut avoir un rsultat de 14,15 ou 16 ... Bonjour la prcision
...
Il va donc falloir ruser ...
Je me souviens de mes vieux cours dlectronique Bit de start et bit de Stop
En fait on envoie une impulsion dune certaine taille (ex :200ms/bit de Start ) pour dire lappareil photo
que le message que lon envoie commence, lappareil photo prend les informations (ici on va compter des
impulsions de 50ms) et pour dire que le message est fini on envoie un bit de Stop (une impulsion de
120ms)
En gros lappareil surveille la prsence dune impulsion de 200ms (bit de Start) ds quelle est dtecte il
compte le nombre dimpulsions de 50ms envoyes et sarrte de compter seulement s il dtecte une
impulsion de 120ms (bit de Stop)
Et le nombre dimpulsion compt correspondra au niveau de zoom ou un ordre de dclenchement.
Programmes
Voici donc la partie programme arduino qui envoie un bit de start, un nombre d'impulsion correspondant
la valeur du potentiomtre ou de linterrupteur de dclenchement et enfin un bit de stop :
//2013-daniel wambach - www.macrogoutte.com - [email protected]
// commande du zoom et du dclenchement d'un appareil photo (canon s95) via chdk
int mesure_voie6; // voie pour la mesure du zoom
int mesure_voie8; // voie pour le dclenchement 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 entre d2 et d3 de l'arduino
pinMode(2, INPUT); // La broche 2 de l'arduino est une entre ( surveille voie 8 )
pinMode(3, INPUT); // La broche 3 de l'arduino est une entre( 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 srie une vitesse de 9600
}
void loop() {
debut:
// mesure l'interrupteur ddi au dclenchement 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 suprieur 1500 alors :
digitalWrite(5,HIGH); // commence une impulsion sur la broche 5 (front montant)
delay(300); // Pendant 300 ms
digitalWrite(5,LOW); // arrte cette impulsion (front descendant)
delay (100); // faits une pause de 100 ms
}
// mesure le potentiomtre ddi 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 srie "mesure_voie6="
Serial.println(mesure_voie6); // Ecris sur le port srie la valeur mesure sur la voie 6
// Donne le niveau de zoom suivant les largeurs des impulsions mesures sur le rcepteur voie 6
// J'ai affin ces chiffres en testant diffrentes positions de mon potentiomtre crant
// Mais en gros si on 1ms pour un zoom 10(tlobjectif) 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 rgler ... Pour moi a donne:
if (mesure_voie6<1936) niveau_zoom=1; // Si la valeur mesure sur la voie 6 est suprieure 1936 alors zoom=1
if (mesure_voie6<1863) niveau_zoom=2; // Si la valeur mesure sur la voie 6 est suprieure 1863alors zoom=2
if (mesure_voie6<1765) niveau_zoom=3; // Si la valeur mesure sur la voie 6 est suprieure 1765 alors zoom=3
if (mesure_voie6<1681) niveau_zoom=4; // Si la valeur mesure sur la voie 6 est suprieure 1681 alors zoom=4
if (mesure_voie6<1602) niveau_zoom=5; // Si la valeur mesure sur la voie 6 est suprieure 1602 alors zoom=5
if (mesure_voie6<1518) niveau_zoom=6; // Si la valeur mesure sur la voie 6 est suprieure 1518 alors zoom=6
if (mesure_voie6<1443) niveau_zoom=7; // Si la valeur mesure sur la voie 6 est suprieure 1443 alors zoom=7
if (mesure_voie6<1359) niveau_zoom=8; // Si la valeur mesure sur la voie 6 est suprieure 1359 alors zoom=8
if (mesure_voie6<1274) niveau_zoom=9; // Si la valeur mesure sur la voie 6 est suprieure 1274 alors zoom=9
if (mesure_voie6<1191) niveau_zoom=10;// Si la valeur mesure sur la voie 6 est suprieure 1191 alors zoom=10
Serial.print("niveau_zoom");// Ecris sur le port srie "niveau_zoom="
Serial.println(niveau_zoom);// Ecris sur le port srie la valeur de "niveau_zoom"
if (exniveau_zoom==niveau_zoom) {
goto debut;
// si il n'y a pas de changement, retourne au dbut 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 (arrte 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);// arrte cette impulsion (front descendant)
delay (100); // une pause de 100ms
}
// bit de stop pour dire l'appareil photo qu'il peut arrter de compter
digitalWrite(5,HIGH); // commence une impulsion sur la broche 5 (front montant)
delay(120); //// Pendant 120ms "bit de stop"
digitalWrite(5,LOW); //arrte cette impulsion (front descendant)
delay (100);// une pause de 100ms
}
Regardons ce qui sort maintenant de l'arduino sur la sortie d5 :
Pour le potentiomtre 0 :
Et pour le potentiomtre mi-course :
Et ba moi je dis : Bravo arduino
Passons au script chdk qui devra interprt ce signal:
rem dclaration des variables
rem a pour la mesure d'une impulsion
a=0
rem d pour le compteur dimpulsion
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 dbut
:debut
rem si y a une impulsion alors mesure la
do
a=get_usb_power
until a>0
rem si la l'impulsion mesure est plus grande que 24 alors va la ligne (sous-programme) shoot du script
if a>24 then goto"shoot"
rem si l'impulsion mesure 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 dbut 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 mesure 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 mesure -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"
Le connecteur USB11 Canon (saloperie de connecteur)
Je dcline toute responsabilit en cas d'incident, d'accident, de dommages, ou de prjudice
physique ou moral, causs sur une tierce personne, un animal, ou sur du matriel. a sest dit
Ne scotchez jamais de hamster sur votre drone
Pour faire fonctionner ce montage, un simple cble mini USB fonctionne.
Pour une trs grande partie des cbles USB standard on coupe le cble au niveau de la grosse prise USB,
on dnude, le fil rouge cest le (+) et le fil noir cest le (-)
On branche le (+) sur la sortie 5 de larduino, le (-) sur la masse de larduino et les impulsions envoyes
par larduino seront facilement interprtes par le programme chdk de lappareil photo.
OUI MAIS . La Vido ?
Cest bien de commander le zoom et le dclenchement via notre radiocommande, mais avec un retour
vido cest encore mieux !
La prise usb11 nexiste pas encore, oui cest dur entendre
Mais il existe des prises normalement pour mobile HTC compatible :
Comme vous pouvez le constater, ce nest pas bien gros Si vous ntes pas habitu souder, laisser
tomber
Il faut en premier lieux enlever lentourage mtallique de cette petite prise HTC (sinon a ne rentre pas
dans le Canon), pour ma part jai utilis ma dremelle, ensuite pas de caf, pas de musique trop violente et
avec un bon fer souder muni de sa panne la plus fine on soude des fils fins suivant ce schma :
Jai fait quelques vols avec ce connecteur, mais il tient mal, il gigote, a ne fait vraiment pas srieux
Jai donc achet par la suite :
http://www.kapshop.com/p281/CR-Camera-11-pin-USB+A/V-Combo-Cable-for-Canon/product_info.html
Que jai renforc, et l, cest nickel !
Voil, je pense avoir tout dit et donn une bonne premire approche des mondes arduino et chdk.
Le programme est encore lent et il arrive de temps en temps que le zoom ne soit pas celui demand, mais
pour une application photographique o jai le temps, cest pour moi 100% fonctionnel.
Bien sr, rien nest ferm, je suis loin dtre un bon programmeur, je suis juste un bidouilleur. Alors si vous
arrivez arranger mon code pour rgler les lenteurs et petits problmes, je ferai voluer les versions des 2
programmes.
De plus les informations envoyes par larduino servent dans mon exemple commander le zoom, mais
rien nempche de commander tout autre chose avec le chdk (exposition, vitesse, couleur etc.) On peut
vraiment agir sur toutes les fonctions de lappareil photo.
Si une partie du tuto nest pas assez dtaille, si vous rencontrez des problmes, si vous trouvez des
erreurs nhsitez pas me le dire en message perso.
Voil, depuis des annes je parcours le web pour des infos sur de llectronique, de la programmation, de
la bidouille en tout genre.
Jespre par ce tuto payer une partie de ma dette A vous .
Dan,
Jallais oublier la vido :
http://www.youtube.com/watch?v=qel3CSywEiE