Page 4 sur 5

Re: Projet Kapduino

MessagePosté: Sam 29 Août 2009, 16:04
de icare
j'insère juste une petite idée dans cette discussion technique, une possible application (étape 3) pouvant régler le problème des vibrations pour les prises de vue, éventuellement intégrer un module détection des vibrations piezo du type :
http://www.robotshop.ca/capteur-vibrati ... ets-4.html
qui permettrait de décider quand déclencher dans les meilleures conditions l'APN.

Re: Projet Kapduino

MessagePosté: Sam 29 Août 2009, 17:46
de Deltakap
icare a écrit:une possible application pouvant régler le problème des vibrations pour les prises de vue (...) qui permettrait de décider quand déclencher dans les meilleures conditions l'APN.

C'est vrai que les problèmes de vibrations sont bien (re)connus dans notre pratique... même si ils ne sont pas toujours maitrisés, loin s'en faut !!
Je suis certain d'ailleurs que ça vaudrait un nouveau sujet tellement le domaine est vaste !

Vibrations des servos (problème d'alim, de réception, de "on ne sait pas pourquoi un coup ça marche et pas la fois d'après"), vibrations de la ligne (trop de vent, cerf volant qui va pas), on pourrait aussi associer à l'idée de déclencher dans les meilleures conditions la détection de l'horizontalité de la nacelle.
Le problème de ces approches (et de ne déclencher que si tout va bien)... bin, c'est de prendre le risque que ça ne déclenche jamais :)
A part la séance de rêve dans le petit vent du soir, il n'est pas rare que la nacelle soit pas mal chahutée.
J'avais vu aussi ce type de capteur mais je ne l'avais pas retenu (à tort ?) pour ces raisons... mais je peux heureusement me tromper ;)

Au fait, il va falloir aussi ouvrir un nouveau sujet sur tous les capteurs potentiellement utilisables en kap, et celui là en fait évidemment partie !... affaire à suivre !

Re: Projet Kapduino

MessagePosté: Lun 31 Août 2009, 9:26
de fred88
ayé , ayé !!!! :lol:

ma commande vient d'arriver , ca n'a pas trainé !

on va pouvoir bricoler !

on a tendance a vite retomber en enfance pour pas grand chose ... :lol:

Re: Projet Kapduino

MessagePosté: Lun 31 Août 2009, 15:47
de Deltakap
fred88 a écrit:ma commande vient d'arriver , ca n'a pas trainé !

Bin pas moi, snif... le vent devait être d'ouest ce week-end :mrgreen:
Commande toujours en attente aujourd'hui et un mail samedi dernier pour dire que ça partirait cette semaine... patience donc ;)

Re: Projet Kapduino

MessagePosté: Lun 31 Août 2009, 18:00
de fred88
j'en suis deja a mes premiers essais !

mes premiers tours de servo , avec le programme "example" histoire de tester si tout fonctionne.
pour le moment ca marche , je commence a comprendre l'architecture des programmes.
c'est un language qui a l'air tres proche de ma bonne vieille calculatrice TI-92
j'y retrouve pas mal de choses.

je viens de cabler une platine a pastille , avec des fiches , 3 pour les servos et une pour l'alim.

je bidouille doucement le programme exemple , change les timers, les angles , les pas , rajoute des conditions , if, else ,for,while and co , je change les pins , pour voir si les 3 sorties sont ok, et miracle , ca marche !
ca ne m'a vraiment pas l'air compliqué , et je pense que la premiere phase (réalisation de l'autokap sera vie franchie).

allez je retourne a mes essais.

Re: Projet Kapduino

MessagePosté: Mar 01 Septembre 2009, 9:08
de fred88

Re: Projet Kapduino

MessagePosté: Mar 01 Septembre 2009, 9:31
de fxix
la question bête du matin :
si je veux me lancer sur vos pas (ou avec vous si vous n'allez pas trop vite), quoi c'est qu'il faut que j'achete en plus de l'arduino et de son adaptateur usb pour pouvoir tester et programmer tout çà ?
une platine de test ? autre chose ?

Re: Projet Kapduino

MessagePosté: Mar 01 Septembre 2009, 10:42
de fred88
si je veux me lancer sur vos pas (ou avec vous si vous n'allez pas trop vite), quoi c'est qu'il faut que j'achete en plus de l'arduino et de son adaptateur usb pour pouvoir tester et programmer tout çà ?
une platine de test ? autre chose ?


je te met les references lextronic de ce que j'ai prit. avec ca , il y a tout ce qu'il faut pour faire quelque chose de propre.
le logiciel de programmation est telechargeable gratuitement dans la rubrique download du site officiel arduino.
assure toi que tu ais un cable mini usb a la maison.

-carte epoxy fr4"verte" ref: ECS1/2
-module "ftdi basic breakout" ref : DEV-08772
-Barette 20 contacts 770198 ref : CC076 (j'en ai prit *3)
-Module arduino pro mini 328 ref : DEV-09220

prix de tout ca avec le port un peu moins de 45 euros.

pour alimenter les servos et la carte j'utilise un pack de 4*1.2 volts nimh (attention de brancher le plus au bon endroit sur la carte (raw))
le fer a souder est indispensable, mais rien de bien sorcier.

j'espere bien avoir répondu a ta question.


si je veux me lancer sur vos pas (ou avec vous si vous n'allez pas trop vite)


il y aura toujours quelqu'un pour répondre a tes questions ,un nouveau post va certainement etre ouvert pour chaque etape du projet.
allez , rejoint nous ! :D

Re: Projet Kapduino

MessagePosté: Mar 01 Septembre 2009, 12:02
de fxix
fred88 a écrit:
il y aura toujours quelqu'un pour répondre a tes questions ,un nouveau post va certainement etre ouvert pour chaque etape du projet.
allez , rejoint nous ! :D


euh... j'ai glissé chef.... je viens de passer commande :roll:

Re: Projet Kapduino

MessagePosté: Mar 01 Septembre 2009, 12:51
de fred88
super , un de plus !

a nous tous reunis , il devrait en sortir quelque chose de sympa de ce projet !

hein tassin ! :D


de mon coté , ca se corse ! , je me suis peut etre avancé en disant que l'autokap serai vite bouclé !

pour les servos de tilt et de declenchement pas de soucis , par contre pour le servo modifié a 360 ° , je galere !
il en fait qu'a sa tete !
mais on va bien y arriver !

Re: Projet Kapduino

MessagePosté: Mar 01 Septembre 2009, 12:55
de vertigo
fred88 a écrit:par contre pour le servo modifié a 360 ° , je galere !
il en fait qu'a sa tete !


T'as vu mon bout de code sur la page précédente ? Il devrait pouvoir t'aider à trouver le neutre et la bonne vitesse.

Re: Projet Kapduino

MessagePosté: Mar 01 Septembre 2009, 13:04
de fred88
T'as vu mon bout de code sur la page précédente ? Il devrait pouvoir t'aider à trouver le neutre et la bonne vitesse.


je l'avait raté celui la !
en effet , ca devrait m'aider pas mal !
merci pour le rappel.

mais je me demande si il ne faut pas que je recale le potar interne du servo aussi ????
avec la RC , il etait bien calé , mais la le calage du neutre n'est peut etre pas tout a fait le meme ????

Re: Projet Kapduino

MessagePosté: Mar 01 Septembre 2009, 13:22
de vertigo
Ben l'avantage c'est qu'avec l'arduino, à la différence de la RC, tu as la main sur les impulsions, donc tu n'es pas obligé de revoir ton potard de servo a priori.
Tu peux le laisser tel quel (sauf s'il est déjà en butée), et rechercher quelle impulsion donne le neutre actuel.
Ou bien balancer une impulsion moyenne (disons 1500ms), et recaler ton potard.

Re: Projet Kapduino

MessagePosté: Mar 01 Septembre 2009, 20:15
de icare
en fait on rêve tous d'un drone :roll:
(cf ce site d'un gars persévérant :shock: )
de belles idées à prendre.
ça parle de gps et xbee.
http://serge.laforest.free.fr/drone/drone.htm)

Re: Projet Kapduino

MessagePosté: Mer 02 Septembre 2009, 8:48
de fred88
T'as vu mon bout de code sur la page précédente ? Il devrait pouvoir t'aider à trouver le neutre et la bonne vitesse


merci , ca marche impecable ! par contre le delay de 500 ms doit passer a 20 ms pour que l'angle de déplacement indiqué soit conforme.
de ce que j'en ai compris en glanant des infos sur le net , ce timer corespond au standart de rafraichissemnet de la plupart des servos.

ca marche maintenant au poil.

me reste a ecrire un code propre, que je mettrai a dispo une fois bien ficelé.

merci encore.

Re: Projet Kapduino

MessagePosté: Jeu 03 Septembre 2009, 7:16
de fred88
ca y est ........


eh non c'est pas fini ! vous y avez cru :D
non pas fini du tout , autant ca me paraissait simple au debut que plus ca va et plus je patauge ! rrrrrrrr
il y a interet de bien s'organiser avec les variables.

alors au debut j'arrivait bien a syncroniser les déplacements entre eux , et la , plus moyen , j'enrage :lol:

a deltakap : toujours pas recu la bete ???

Re: Projet Kapduino

MessagePosté: Jeu 03 Septembre 2009, 9:08
de Deltakap
fred88 a écrit:a deltakap : toujours pas recu la bete ???

Toujours pas... mais bon, le colis n'est parti qu'hier !... alors j'attends ;)

Re: Projet Kapduino

MessagePosté: Jeu 03 Septembre 2009, 17:26
de fxix
ma commande est marquée expédiée... ya plus qu'à attendre

Re: Projet Kapduino

MessagePosté: Ven 04 Septembre 2009, 6:34
de deldude
fred88 a écrit:ca y est ........

alors au debut j'arrivait bien a syncroniser les déplacements entre eux , et la , plus moyen , j'enrage :lol:



Tu alimente tes servos avec l'arduino? Si oui c'est sans doute pour cela que tu a des comportements étranges!

Re: Projet Kapduino

MessagePosté: Ven 04 Septembre 2009, 7:25
de fred88
Tu alimente tes servos avec l'arduino? Si oui c'est sans doute pour cela que tu a des comportements étranges!


non, l'alim des servos est repiqué directement sur le pack d'accus, seul les fils de données sont reliés a l'arduino.

les problemes de syncro sont dues aux differents " delay" ., j'ai résolu le probleme en faisant un code plus simple.
bon c'est sur , un pro qui voit ce code doit etre mort de rire :lol:
je pense que mon code peut etre réduit de moitié, mais je n'y arrive pas ! snif snif

en tout cas ca marche !

le plus dur je trouve , et de faire des boucles qui aient bien une fin !

mais je persevere ! , je vais y arriver a faire un beau code !!!!!!!!!!

il vaut mieux etre au calme pour faire ca !

Re: Projet Kapduino

MessagePosté: Ven 04 Septembre 2009, 8:27
de deldude
fred88 a écrit:
Tu alimente tes servos avec l'arduino? Si oui c'est sans doute pour cela que tu a des comportements étranges!


non, l'alim des servos est repiqué directement sur le pack d'accus, seul les fils de données sont reliés a l'arduino.

les problemes de syncro sont dues aux differents " delay" ., j'ai résolu le probleme en faisant un code plus simple.
bon c'est sur , un pro qui voit ce code doit etre mort de rire :lol:
je pense que mon code peut etre réduit de moitié, mais je n'y arrive pas ! snif snif

en tout cas ca marche !

le plus dur je trouve , et de faire des boucles qui aient bien une fin !

mais je persevere ! , je vais y arriver a faire un beau code !!!!!!!!!!

il vaut mieux etre au calme pour faire ca !


Le code, le code, le code :-)

A toi l'honneur d'ouvrir un nouveau sujet :-)

Re: Projet Kapduino

MessagePosté: Ven 04 Septembre 2009, 9:10
de fred88
Le code, le code, le code



:lol: :lol: :lol:

j'ai honte de mon code ! j'essai jusqu'a dimanche de l'ameliorer , et si vraiment je n'y arrive ^pas , je mettrai l'actuel.

deldude : sais tu si on peu envoyer plusieurs code dans un meme arduino ?

je m'explique je vais appelé un code un programme.

alors un programme principal , qui en fonction de la position d'un switch appel le sous programme corespondant ???

il faut utiliser la fonction "switch , case"pour faire ca ????

Re: Projet Kapduino

MessagePosté: Ven 04 Septembre 2009, 9:17
de vertigo
Je ne sais pas si tu peux compiler à partir de plusieurs sketchs.

Mais il est par contre conseillé de séparer les différentes parties du sketch (mode Autokap, mode RC ...) dans différentes fonctions et sous-fonctions qui seront appelées dans la boucle principale selon l'état de switchs par exemple.

On doit aussi pouvoir créer une librairie "Kap" contenant des fonctions bien établies, qu'on "includera" en début de programme (comme la librairie servo par exemple).

Re: Projet Kapduino

MessagePosté: Ven 04 Septembre 2009, 17:43
de fxix
une petite question :
est ce que je vais "simplement" pouvoir utiliser le CHDK pour déclencher mon Canon ou va t il falloir réinventer l'eau tiède ?

Re: Projet Kapduino

MessagePosté: Ven 04 Septembre 2009, 17:52
de alpaph
fred88 a écrit:alors au debut j'arrivait bien a syncroniser les déplacements entre eux , et la , plus moyen , j'enrage :lol:

Qu'est ce que tu voulais synchroniser ? Il me semble que les déplacements des servos vont se faire les uns après les autres, donc une tâche après l'autre.

fred88 a écrit:il faut utiliser la fonction "switch , case"pour faire ca ????

Oui, c'est bien ça.

vertigo a écrit:Je ne sais pas si tu peux compiler à partir de plusieurs sketchs.

Non, je ne le pense pas.

vertigo a écrit:On doit aussi pouvoir créer une librairie "Kap" contenant des fonctions bien établies, qu'on "includera" en début de programme (comme la librairie servo par exemple).

Alors, ça, ce serait génial ! un "kap.h" qui apporterait des fonctions particulières selon les servos à piloter (un besoin, d'après ce que j'ai lu plus haut), des fonctions propres au déplacement d'un servo pan ou de déclenchement. J'imagine que chaque type de rotations peut être différentes (lente ou rapide, ...).

Re: Projet Kapduino

MessagePosté: Ven 04 Septembre 2009, 19:21
de fred88
Qu'est ce que tu voulais synchroniser ? Il me semble que les déplacements des servos vont se faire les uns après les autres, donc une tâche après l'autre.


oui c'est bien ca , une tache apres l'autre , mais les délais d'attente avant declenchement de l'etape suivante ne coincidait pas.

fred88 a écrit:il faut utiliser la fonction "switch , case"pour faire ca ????



Oui, c'est bien ça.


je suis en train de faire des essais mais j'ai bien du mal .

en fait , j'aurai besoin de recuperer la valeure sur la broche du servo , et de l'attribuer a une variable .
j'ai essayé avec la fonction analogread(broche); ou digitalread(broche);mais rien n'y fait.

petite question, quand le programme s'execute , il lit une fois l'integralité du programme , puis ensuite relis seulement la partie"void setup " et " void loop" , ou alors il le lis dans son integralité a chaque fois ???( je voudrait savoir si il reprend en compte toutes les definitions de variables du debut ex "int_ position_servo_tilt=0" , parcque je trouve pas d'ou ca vient , j'ai une variable qui a l'air de se remettre a zero sans arret ... du coup le servo retourne toujours a sa premiere position calculée.

je commence a m'arracher les cheveux :lol: .





fred88 dit : ca ne m'a vraiment pas l'air compliqué , et je pense que la premiere phase (réalisation de l'autokap sera vie franchie).


quoi !!! j'ai rien dit moi !!!! :lol: :lol:

Re: Projet Kapduino

MessagePosté: Ven 04 Septembre 2009, 19:32
de fred88
une petite question :
est ce que je vais "simplement" pouvoir utiliser le CHDK pour déclencher mon Canon ou va t il falloir réinventer l'eau tiède ?



je pense que l'arduino peut remplacer le chdk .
par la liaison serie.

mais oui tu devrais pouvoir l'utiliser sans trop de probleme.

Re: Projet Kapduino

MessagePosté: Ven 04 Septembre 2009, 19:43
de vertigo
fred88 a écrit:en fait , j'aurai besoin de recuperer la valeure sur la broche du servo , et de l'attribuer a une variable .
j'ai essayé avec la fonction analogread(broche); ou digitalread(broche);mais rien n'y fait.


Les servos de modelisme ne sont pas capables de donner une info en sortie sur leur position (mais il y a des servos de robotique qui le font).
Tout ce que tu peux espérer récupérer, c'est le signal de consigne envoyé au servo (fil blanc ou jaune). Mais comme c'est l'arduino qui envoie le signa, je ne vois pas l'intérêt de le re-mesurer. Enfin, le signal étant de type PWM (signal créneau), ce n'est pas facilement mesurable (pb de synchronisation).

fred88 a écrit:petite question, quand le programme s'execute , il lit une fois l'integralité du programme , puis ensuite relis seulement la partie"void setup " et " void loop" , ou alors il le lis dans son integralité a chaque fois ???


il lit une fois setup, puis c'est loop qui tourne.

Re: Projet Kapduino

MessagePosté: Ven 04 Septembre 2009, 19:47
de fred88
merci vertigo ,pour ces eclaircissements.


il lit une fois setup, puis c'est loop qui tourne.


c'est une question simple , mais nul part je n'ai reussi a trouver la réponse.

merci encore.

Re: Projet Kapduino

MessagePosté: Ven 04 Septembre 2009, 19:51
de icare
arduino commandé ce soir pour moi.
pas mal de boulot avant de recevoir la commande, à commencer par
réparer la machine à coudre prêtée à ma belle-mère qui me l'a rendu sans le sabot ...
ou changer de machine :cry:

Re: Projet Kapduino

MessagePosté: Ven 04 Septembre 2009, 19:57
de fred88
encore une question bete :

ais-je le droit de faire ca ? (une variable egale a elle meme)



void loop()

{
if (pos_tilt1<angle_total_de_descente ) // par exemple 100 degrés_______________ pos_tilt1 est definie a zero en tout debut de prog.
{
for(pos_tilt1 =pos_tilt1; pos_tilt1 < pos_tilt1+increment ; pos_tilt1 += 1) //descendre le tilt de "X " degrés par exemple 10 degrés.

{
tilt.write(pos_tilt1);
delay(10);
}
delay(2000);

else

{ 'patatipatata '}

}
}


Re: Projet Kapduino

MessagePosté: Ven 04 Septembre 2009, 19:58
de fred88
ma belle-mère qui me l'a rendu sans le sabot ...
ou changer de machine :cry:



oui, ou ... changer de belle mére ! :lol: :lol: :lol:

Re: Projet Kapduino

MessagePosté: Ven 04 Septembre 2009, 20:13
de icare
bonne idée, mais c'est un kit épouse+belle-mère que j'ai eu :wink:
pas possible d'en prendre qu'une :roll:

Re: Projet Kapduino

MessagePosté: Ven 04 Septembre 2009, 20:52
de alpaph
fred88 a écrit:encore une question bete :

ais-je le droit de faire ca ? (une variable egale a elle meme)


Non, tu dois prendre une autre variable comme compteur de ta boucle, dans l'exemple i. Cette variable te servira à positionner ton servo. Ca devrait donner ça :

Code: Tout sélectionner
void loop()
{
if (pos_tilt1<angle_total_de_descente  )   // par exemple 100 degrés_______________ pos_tilt1 est definie a zero en tout debut de prog.
{
for(i =pos_tilt1; i < pos_tilt1+increment ; i += 1)  //descendre le tilt de "X " degrés par exemple 10 degrés.

  {                                 
    tilt.write(i);             
    delay(10);                       
  }
delay(2000);

else

{ 'patatipatata '}

}
}

Re: Projet Kapduino

MessagePosté: Ven 04 Septembre 2009, 21:01
de fred88
merci beaucoup philipe , je teste ca demain matin !

Re: Projet Kapduino

MessagePosté: Sam 05 Septembre 2009, 10:50
de Deltakap
J'ai finalement reçu le paquet cadeau hier midi et j'ai commencé les premiers tests hier soir.
Après quelques soudures sur la carte Arduino pour lui ajouter des pinoches et l'installation des drivers sur le PC... voici quelques remarques pour ne pas perdre trop de temps avec cet Arduino mini pro ATmega 328 3.3V http://www.arduino.cc/en/Main/ArduinoBoardProMini

Cette page http://www.arduino.cc/en/Guide/ArduinoProMini montre comment brancher la carte USB/TTL et précise que l'Arduino est "powered" par la carte... bin, en fait la carte USB/TTL (Sparkfun FTDI) doit être montée dans l'autre sens !! et il faut brancher le pack de batteries pour que ça fonctionne (par exemple 4 NiMh de 1.2V branchées entre GND (ground/la masse) et RAW (+4.8V dans mon cas)

Après, ça roule tout seul. Le premier test a été de faire clignoter une led (pas la peine d'en chercher une, il y en a une verte sur la carte, branchée sur la sortie 13). On lance le prog Arduino sur le PC, on charge File, exemples, digital, blink, on clique sur le bouton Upload, ça compile, ça transfert, ça clignote !
Bon, même chose pour tester un servo... fastoche aussi !

Après, on s'essaye à faire quelque chose soi-même, et comme il faut bien commencer par quelque chose d'aussi utile que possible pour la suite, voici un bout de programme qui permet de déterminer la durée de l'impulsion à envoyer au servo de PAN modifié 360° pour qu'il s'arrete... et d'afficher la valeur sur le PC:
Pour l'utiliser, il faut lancer le serial monitor du prog Arduino puis taper 1 ou 2 (et entrée) pour changer la vitesse et le sens de rotation... quand le servo est arreté, on relève la valeur affichée dans la fenêtre du serial monitor.
On peut faire mieux en utilisant l'hyperterminal de Windows à la place du serial monitor (PS: l'hyperterminal n'existe plus sur Vista, faut le récupérer sur le web)... plus de reset de la carte Arduino et pas besoin de taper entrée après avoir tapé 1 ou 2:

Code: Tout sélectionner
// réglage arrêt du servo Panoramique

#include <Servo.h>

#define PAN_PIN  9
#define PAN_IDLE  1500 //us

Servo pan_servo;

int inByte = 0;         // incoming serial byte
int idle_value;

void setup() {
  idle_value = PAN_IDLE;
  pan_servo.attach(PAN_PIN);

  Serial.begin(9600);
}

void loop() {
//réglage
  if (Serial.available() > 0) {
    inByte = Serial.read()-48; // get incoming byte:
 
    switch (inByte){
      case 1:
        idle_value++;
        break;
      case 2:
        idle_value--;
        break;
    }
    pan_servo.write(idle_value);
    Serial.println(idle_value);
  }
}



Cette valeur peut remplacer le 1500 sur la ligne "#define PAN_IDLE 1500 //us". Le servo ne devrait pas tourner après le prochain Upload ou reset.

Ah, une dernière remarque: mon servo partait en butée pendant les uploads de sketches sur la carte :?
En fait, pendant cette phase les pinoches ne sont pas définies en sortie et l'entrée du servo doit se retrouver plus ou moins en l'air. J'ai juste ajouté une résistance de 22k entre l'entrée de commande du servo et la masse et le servo ne bouge plus.

Re: Projet Kapduino

MessagePosté: Sam 05 Septembre 2009, 12:08
de fxix
je viens de recevoir mon colis ce matin. Je me sens comme une poule qui a trouvé un couteau.
Je pense ouvrir un topic spécial pour ne pas surcharger celui-ci avec mon niveau zero.

Re: Projet Kapduino

MessagePosté: Sam 05 Septembre 2009, 12:33
de Deltakap
fxix a écrit:Je pense ouvrir un topic spécial pour ne pas surcharger celui-ci

J'aurais peut-être dû faire pareil !?
Bin, pour l'instant, je continue ici... suite des découvertes....

Dans le sketch précédent, si on peut déterminer la valeur de la durée de l'impulsion qui arrête le moteur, il faut remettre cette valeur dans le code... et il faudra la remettre dans chaque nouveau sketch... pas pratique !
En fait, il serait plus malin de stocker cette valeur, dépendante du servo et de son montage, directement sur l'Arduino.
Ces microcontroleurs disposent d'une zone mémoire appelée EEPROM dans laquelle les informations vont rester, que le programme soit modifié ou que l'Arduino soit éteint.
Le problème, c'est qu'à une adresse donnée, on ne peut stocker qu'un octet (donc une valeur inférieure ou égale à 255). Pour y stocker une valeur proche de 1500, il faut donc utiliser deux octets. Voici deux fonctions trouvées ici http://blog.ncode.ca/wp-content/uploads ... dwrite.pde qui permettent de le faire.

Le sketch devient ça:

Code: Tout sélectionner
// réglage arrêt du servo Panoramique

#include <Servo.h>
#include <EEPROM.h>

#define PAN_PIN  2
#define PAN_IDLE  1500 //us

Servo pan_servo;


int inByte = 0;         // incoming serial byte
int idle_value;

void setup() {
  idle_value = EEPROMReadInt(0);
  if (idle_value < 1400 || idle_value >1600) idle_value = PAN_IDLE;

  pan_servo.attach(PAN_PIN);

  Serial.begin(9600);
  Serial.println();
  Serial.print("Actual pan_idle value: ");
  Serial.println(idle_value);
}

void loop() {
//réglage
  if (Serial.available() > 0) {
    inByte = Serial.read()-48; // get incoming byte:
 
    switch (inByte){
      case 1:
        idle_value++;
        pan_servo.write(idle_value);
        Serial.println(idle_value);
        break;
      case 2:
        idle_value--;
        pan_servo.write(idle_value);
        Serial.println(idle_value);
        break;
      case 3: // store pan_idle in EEPROM (address 0 & 1)
        EEPROMWriteInt(0, idle_value);
        Serial.print("pan_idle value ");
        Serial.print(idle_value);
        Serial.println(" stored at the eeprom address 0");
        break;
      case 4: // read pan_idle from EEPROM (address 0 & 1)
        Serial.print("pan_idle value at the eeprom address 0: ");
        Serial.println(EEPROMReadInt(0), DEC);
        break;
    }
   
  }
}

//from http://blog.ncode.ca/wp-content/uploads/2008/08/eeprom-int-readwrite.pde
void EEPROMWriteInt(int p_address, int p_value)
   {
   byte lowByte = ((p_value >> 0) & 0xFF);
   byte highByte = ((p_value >> 8) & 0xFF);

   EEPROM.write(p_address, lowByte);
   EEPROM.write(p_address + 1, highByte);
   }

//This function will read a 2 byte integer from the eeprom at the specified address and address + 1
unsigned int EEPROMReadInt(int p_address)
   {
   byte lowByte = EEPROM.read(p_address);
   byte highByte = EEPROM.read(p_address + 1);

     return ((lowByte << 0) & 0xFF) + ((highByte << 8) & 0xFF00);
   }




Toujours avec hyperterminal ouvert et connecté, en appuyant sur 1 ou 2 sur le clavier du PC, on règle la valeur qui arrete le servo et quand c'est fait, on appuie sur la touche 3 pour stocker la valeur dans l'Arduino... plus besoin de toucher à "#define PAN_IDLE 1500 //us". La touche 4 permet de lire la valeur stockée.

L'avantage, c'est que cette valeur est maintenant stockée dans l'Arduino et pourra être utilisée dans les sketches suivants... et accessoirement de pouvoir la modifier sur le terrain depuis la future télécommande sans trimballer le PC !

Edit: ouais, bon en fait, la valeur pourrait être stockée sur un seul octet (en tout cas, la différence avec 1500) parce que si la valeur est supérieure à 1500-127 ou supérieure à 1500+127... bin, c'est que le servo est dans les choux, et qu'il faut simplement régler un peu mieux son potar !

Re: Projet Kapduino

MessagePosté: Mer 30 Septembre 2009, 19:23
de vertigo
Maintenant que l'arduino se popularise (les posts fleurissent, même à l'automne ;) ), je me dis qu'il serait utile de re-lister les fonctions qui intéressent les uns et les autres. Contrôle autokap genre Aurico ? commande à distance ? autre ?

Bref, qu'aimeriez vous faire avec ce bidule, dans vos rêves les plus fous ? :mrgreen:

Re: Projet Kapduino

MessagePosté: Mer 30 Septembre 2009, 23:15
de Emmanuel
Voulez-vous une sous-rubrique Arduino / kap-duino ?
Si oui, dans "l'électronique au sol ou embarquée" ou dans "Jus de cranes" ?