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.
fred88 a écrit:ma commande vient d'arriver , ca n'a pas trainé !
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 ?
si je veux me lancer sur vos pas (ou avec vous si vous n'allez pas trop vite)
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 !
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.
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
fred88 a écrit:a deltakap : toujours pas recu la bete ???
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
Tu alimente tes servos avec l'arduino? Si oui c'est sans doute pour cela que tu a des comportements étranges!
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
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
fred88 a écrit:alors au debut j'arrivait bien a syncroniser les déplacements entre eux , et la , plus moyen , j'enrage
fred88 a écrit:il faut utiliser la fonction "switch , case"pour faire ca ????
vertigo a écrit:Je ne sais pas si tu peux compiler à partir de plusieurs sketchs.
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).
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.
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).
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 ?
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.
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.
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 '}
}
}
ma belle-mère qui me l'a rendu sans le sabot ...
ou changer de machine
fred88 a écrit: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(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 '}
}
}
// 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);
}
}
fxix a écrit:Je pense ouvrir un topic spécial pour ne pas surcharger celui-ci
// 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);
}
Retourner vers L'électronique embarquée et au sol
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 64 invités