Aller au contenu


Contenu de jady2909

Il y a 37 élément(s) pour jady2909 (recherche limitée depuis 04-mai 13)



#27987 roby de jady

Posté par jady2909 sur 21 mars 2011 - 07:30 dans Archives

A merci jbot pour ton aide c'est gentil je vais conpiler immediatement ton code. Demain je par à Lens chez electronique diffussion acheter deux coupleur de pile AA pour l'alimentation .



#27985 roby de jady

Posté par jady2909 sur 21 mars 2011 - 06:48 dans Archives

Bonjour j'avoue que la je suis en difficulté j'arrive pas a introduire deux servomoteur dans le code du robot suivant j'ai besoin d'aide svp. voici le code actuel
#include

#define AVANT 1
#define ARRIERE 0
#define GAUCHE 2
#define DROITE 3

#define SERVOG 1
#define SERVOD 0

#define UPDDG 3
#define UPDDD 4

#define SHARP 4

#define VMAX 5

Servo servog;
Servo servod;
int vLdr = 5;

int getNeutral(int s)
{
if(s == SERVOG)
return 90;
else
return 90;
}


void handleS(int s, int speed)
{
//Vitesse :
// 0 -> 0; 1 -> 1; 2 -> 3; 3 -> 8; 4 -> 10; v => 5 -> 30
int tab[6] = {0,1,3,8,10,30};
int pos = getNeutral(s);

int acc;
if (speed < 0)
acc = - tab[abs(speed)];
else
acc = tab[speed];

if(s == SERVOG)
servog.write(pos += acc);
else
servod.write(pos -= acc);
}


void move(int direction)
{
int m1 = 0, m2 = 0;
switch(direction)
{
case DROITE: m1 = 1; m2 = -1; break;
case GAUCHE: m1 = -1; m2 = 1; break;
case AVANT: m1 = 1; m2 = 1; break;
case ARRIERE: m1 = -1; m2 = -1; break;
}
handleS(SERVOG, m1*VMAX);
handleS(SERVOD, m2*VMAX);
}

void handleUPDD(int updd)
{
if(digitalRead(updd) == HIGH)
{
move(ARRIERE);
delay(500);
if (updd == UPDDG)
{
move(DROITE);
}
else
{
move(GAUCHE);
}
delay(800);
}
}

void sharp()
{
int v = analogRead(SHARP);
if (v >= 180)
{
move(ARRIERE);
delay(300);
move(DROITE);
delay(900);
}
else if (v >= 100)
{
handleS(SERVOG, VMAX);
handleS(SERVOD, 0);
delay(1800);
}
}
void setup()
{
pinMode(UPDDG, INPUT);
pinMode(UPDDD, INPUT);

Serial.begin(9600);
servog.attach(10);
servod.attach(9);
move(AVANT);
}

void loop()
{
handleUPDD(UPDDG);
handleUPDD(UPDDD);
sharp();
move(AVANT);
delay (80);
}
[/code]
J'ai besoin de robocop mai il se connecte plus je crois .



#22395 petit probleme de code

Posté par jady2909 sur 20 mars 2011 - 07:35 dans Programmation

voila une meilleur image excuser moi

http://img69.imageshack.us/i/erreurdecompilation.jpg/



#22394 petit probleme de code

Posté par jady2909 sur 20 mars 2011 - 07:32 dans Programmation

voila une petite capture du message d'erreur

http://img69.imageshack.us/i/erreurdecompilation.jpg/



#22393 petit probleme de code

Posté par jady2909 sur 20 mars 2011 - 07:21 dans Programmation

oui j'ai enlever l'acolade a la ligne 38 et aussi le ; a la ligne 33 mai toujour le memen message d'erreur je continu de regarder ligne par ligne si tu voi une erreur dit le moi stp merci.



#22391 petit probleme de code

Posté par jady2909 sur 20 mars 2011 - 07:05 dans Programmation

bpnjour je suis en train de concevoir un code pour piloter mon roby via le pc mai j'ai un petit probleme lors de la compilation voila le code
#incluse
#define AVANT 1
#define ARRIERE 0
#define GAUCHE 2
#define DROITE 3

#define SERVOG 1
#define SERVOD 0

#define UPDDG 3
#define UPDDD 4

#define VMAX 5

void * operator new(size_t size) {
return malloc(size);
}

class PareChocs {
public:
byte choc(int updd) {
// On retourne l'état du pin.
// S'il est haut c'est que c'est un choc.
return digitalRead(updd);
}

PareChocs() {
// A la création du PareChocs les pins sont prets ;p
pinMode(UPDDG, INPUT);
pinMode(UPDDD, INPUT);
}
};

class Chassis {
// Le chassis a deux servomoteurs
Servo servog; // MESSAGE D'ERREUR ICI :"servo" does not name a type , lors de la compilation
Servo servod;}


// Fonction du tuto de robocop avec mes valeurs
int getNeutral(int s) {
if(s == SERVOG)
return 90;
else
return 90;
}

// Fonction du tuto de robocop
void handleS(int s, int speed) {
//Vitesse :
// 0 -> 0; 1 -> 1; 2 -> 3; 3 -> 8; 4 -> 10; v => 5 -> 30
int tab[6] = {0,1,3,8,10,30};
int pos = getNeutral(s);

int acc;
if (speed < 0)
acc = - tab[abs(speed)];
else
acc = tab[speed];

if(s == SERVOG)
servog.write(pos += acc);
else
servod.write(pos -= acc);
}

public:
// Le chassis se déplace grâce à la fonction
// du tutoriel de robocop
void move(int direction) {
int m1 = 0, m2 = 0;
switch(direction) {
case DROITE: m1 = 1; m2 = -1; break;
case GAUCHE: m1 = -1; m2 = 1; break;
case AVANT: m1 = 1; m2 = 1; break;
case ARRIERE: m1 = -1; m2 = -1; break;
}
handleS(SERVOG, m1*VMAX);
handleS(SERVOD, m2*VMAX);
}

Chassis() {
// Lors de la création du chassis, l'attachement aux
// pins de l'arduino se fera automatiquement
servog.attach(10);
servod.attach(9);
}

};

class Roby {
PareChocs * parechocs;
Chassis * chassis;


byte detecterColision(int updd) {
return parechocs->choc(updd);
}

void contourner(int sens) {
chassis->move(ARRIERE);
delay(500);

chassis->move(sens);
delay(800);
}

public:
// Déclaration de l'atribut modeAutomatique
// Un puriste C++ mettrait bool à la place
// de byte. Mais je n'ai pas envie de vous
// perdre, je garde byte car vous le
// connaissez bien.
byte modeAutomatique;

Roby() {
parechocs = new PareChocs();
chassis = new Chassis();

// le mode automatique est désactivé
// à la construction de Roby
modeAutomatique = false;
}

void arreter() {
chassis->move(-1);
// va forcer la fonction de robocop
// à mettre la vitesse 0
}

void bouger(byte direction) {
// Si Roby veut bouger. Il sait le faire
// Il sait maintenant qu'il faut bouger le chassis
chassis->move(direction);
}

void agirAutomatiquement() {
if(detecterColision(UPDDG))
contourner(DROITE);
else if(detecterColision(UPDDD))
contourner(GAUCHE);
else
bouger(AVANT);
}
};

Roby * roby;

void setup() {
roby = new Roby();
roby->arreter();

Serial.begin(9600);
}

void loop() {

if (Serial.available() > 0) {
switch(Serial.read()) {
case 'f': // avancer
roby->bouger(AVANT);
break;
case 'b': // reculer
roby->bouger(ARRIERE);
break;
case 'l': // gauche
roby->bouger(GAUCHE);
break;
case 'r': // droite
roby->bouger(DROITE);
break;
case 's': // stop
roby->arreter();
break;
case 'm': // mode
roby->arreter(); // On s'arrête et on change de mode
roby->modeAutomatique = !roby->modeAutomatique;
break;
default: // ordre inconnu
break;
}
}

if(roby->modeAutomatique)
roby->agirAutomatiquement();

delay(15);
}
[/code]


lors de la compilation j'ai ce message d'erreur ::"servo" does not name a type j'ai peut etre oublié une acolade mai je ses pas ou !



#27983 roby de jady

Posté par jady2909 sur 20 mars 2011 - 04:02 dans Archives

bonsoir pas sur que j'ai tout compris le code voila ou j'en suis
#include

#define AVANT 1
#define ARRIERE 0
#define GAUCHE 2
#define DROITE 3

#define SERVOG 1
#define SERVOD 0
#define SERVOD 3
#define SERVOG 2

#define UPDDG 3
#define UPDDD 4

#define SHARP 4

#define VMAX 5

Servo servog;
Servo servod;
int vLdr = 5;

int getNeutral(int s)
{
if(s == SERVOG)
return 90;
else
return 90;

}


void handleS(int s, int speed)
{
//Vitesse :
// 0 -> 0; 1 -> 1; 2 -> 3; 3 -> 8; 4 -> 10; v => 5 -> 30
int tab[6] = {0,1,3,8,10,30};
int pos = getNeutral(s);

int acc;
if (speed < 0)
acc = - tab[abs(speed)];
else
acc = tab[speed];

if(s == SERVOG)
servog.write(pos += acc);
else
servod.write(pos -= acc);
}


void move(int direction)
{
int m1 = 0, m2 = 0;
switch(direction)
{
case DROITE: m1 = 1; m2 = -1; break;
case GAUCHE: m1 = -1; m2 = 1; break;
case AVANT: m1 = 1; m2 = 1; break;
case ARRIERE: m1 = -1; m2 = -1; break;
}
handleS(SERVOG, m1*VMAX);
handleS(SERVOD, m2*VMAX);
}

void handleUPDD(int updd)
{
if(digitalRead(updd) == HIGH)
{
move(ARRIERE);
delay(500);
if (updd == UPDDG)
{
move(DROITE);
}
else
{
move(GAUCHE);
}
delay(800);
}
}

void sharp()
{
int v = analogRead(SHARP);
if (v >= 180)
{
move(ARRIERE);
delay(300);
move(DROITE);
delay(900);
}
else if (v >= 100)
{
handleS(SERVOG, VMAX);
handleS(SERVOG, VMAX);
handleS(SERVOD, 0);
handleS(SERVOD, 0);
delay(1500);
}
}
void setup()
{
pinMode(UPDDG, INPUT);
pinMode(UPDDD, INPUT);

Serial.begin(9600);
servog.attach(11); // servomoteur rajouter
servog.attach(10);
servod.attach(9);
servod.attach(8); // servomoteur rajouter
move(AVANT);
}

void loop()
{
handleUPDD(UPDDG);
handleUPDD(UPDDD);
sharp();
move(AVANT);
delay(100);
}
[/code]


Mai j'ai pas encor tester il faut que je change mon alimentation des servomoteurs.
Pouvez vous me dire si il est bon mon code svp , merci .



#27980 roby de jady

Posté par jady2909 sur 19 mars 2011 - 04:51 dans Archives

Re bonjour j'ai vu dans un forum qui falais juste rajouter les meme valeur pour les deux servomoteur que je veut rajouter . J'ai besoin d'aide



#27829 [Base Roulante] Barnabique

Posté par jady2909 sur 19 mars 2011 - 05:35 dans Robots roulants, chars à chenilles et autres machines sur roues

des que tu as un tuto previen moi je suis preneur
merci.



#27827 [Base Roulante] Barnabique

Posté par jady2909 sur 18 mars 2011 - 06:26 dans Robots roulants, chars à chenilles et autres machines sur roues

Très très intéressant ce projet !
Est ce que tu va faire un tuto pour ce robot v1 et v2 ?



#27979 roby de jady

Posté par jady2909 sur 18 mars 2011 - 05:11 dans Archives

Bonjour je vais vous refaire la presentation de mon robot , et je vais vous parler de mon amelioration que je vais lui apporter.
Pour commencer voila quelque photos :
http://img38.imageshack.us/g/1002407uu.jpg

Alors en faite je possede encor deux servomoteurs dont je ne me sers pas . Je voudrais supprimer la roue fole est mettre 4 roues motrice (4 servomoteurs)

Je travaille dessus pour le code sachant que je utilise le code du robot roby :
#include

#define AVANT 1
#define ARRIERE 0
#define GAUCHE 2
#define DROITE 3

#define SERVOG 1
#define SERVOD 0

#define UPDDG 3
#define UPDDD 4

#define SHARP 4

#define VMAX 5

Servo servog;
Servo servod;
int vLdr = 5;

int getNeutral(int s)
{
if(s == SERVOG)
return 90;
else
return 90;
}


void handleS(int s, int speed)
{
//Vitesse :
// 0 -> 0; 1 -> 1; 2 -> 3; 3 -> 8; 4 -> 10; v => 5 -> 30
int tab[6] = {0,1,3,8,10,30};
int pos = getNeutral(s);

int acc;
if (speed < 0)
acc = - tab[abs(speed)];
else
acc = tab[speed];

if(s == SERVOG)
servog.write(pos += acc);
else
servod.write(pos -= acc);
}


void move(int direction)
{
int m1 = 0, m2 = 0;
switch(direction)
{
case DROITE: m1 = 1; m2 = -1; break;
case GAUCHE: m1 = -1; m2 = 1; break;
case AVANT: m1 = 1; m2 = 1; break;
case ARRIERE: m1 = -1; m2 = -1; break;
}
handleS(SERVOG, m1*VMAX);
handleS(SERVOD, m2*VMAX);
}

void handleUPDD(int updd)
{
if(digitalRead(updd) == HIGH)
{
move(ARRIERE);
delay(500);
if (updd == UPDDG)
{
move(DROITE);
}
else
{
move(GAUCHE);
}
delay(800);
}
}

void sharp()
{
int v = analogRead(SHARP);
if (v >= 180)
{
move(ARRIERE);
delay(300);
move(DROITE);
delay(900);
}
else if (v >= 100)
{
handleS(SERVOG, VMAX);
handleS(SERVOD, 0);
delay(1500);
}
}
void setup()
{
pinMode(UPDDG, INPUT);
pinMode(UPDDD, INPUT);

Serial.begin(9600);
servog.attach(10);
servod.attach(9);
move(AVANT);
}

void loop()
{
handleUPDD(UPDDG);
handleUPDD(UPDDD);
sharp();
move(AVANT);
delay(100);
}
[/code]

si vous avez des infos pour la modif du code je suis preneur cordialement.




#27977 roby de jady

Posté par jady2909 sur 17 mars 2011 - 07:32 dans Archives

bonjour , oui il fonctionne tres bien .
Je voudrais rajouter un buzzer , quand il detecte un obstacle de moin de 10 cm je voudrais qu'il bip .Ou alors il me reste deux servo moteur de coté je suis en train de reflechir a amelioré mon roby. i vous avez des idées d'amelioration je suis preneur cordialement .



#27973 roby de jady

Posté par jady2909 sur 16 mars 2011 - 07:14 dans Archives

http://img535.imageshack.us/i/1002408a.jpg/



#27972 roby de jady

Posté par jady2909 sur 16 mars 2011 - 07:12 dans Archives

Connaissant rien en robotique il y a 1mois j'ai fait la découverte de ce site .

Ces avec une très grande fierté que je vous présente mon robot grace a vos aide et vos connaissances voila ce que j'ai réalisé :

http://img840.imageshack.us/g/1002407m.jpg/



il possède deux servomoteurs une carte arduino Uno, est un cateur infrarouge sharp 2d120x voila ...



#22375 programme pour le neutre du servomoteur

Posté par jady2909 sur 12 mars 2011 - 06:15 dans Programmation

[quote"Luj"]


- le "- tab" me semble douteux. "-1 *" serait préférable
[/quote]

si tu peu me donner plus d'info je suis preneur merci.



#22374 programme pour le neutre du servomoteur

Posté par jady2909 sur 12 mars 2011 - 05:33 dans Programmation

Bonjour Luj ton lien ne fonctionne pas , pourai tu m'envoyer un autre car jai cruellement besoin d'exemple merci.



#22372 programme pour le neutre du servomoteur

Posté par jady2909 sur 11 mars 2011 - 06:54 dans Programmation

Salut avec un programme celui la
#include

#define AVANT 1
#define ARRIERE 0
#define GAUCHE 2
#define DROITE 3

#define SERVOG 1
#define SERVOD 0

#define VMAX 5

Servo servog;


int getNeutral(int s)
{
if(s == SERVOG)
return 60; // valeur que je modifie a 60 il s'arrete 50: sens de l'aiguille d'une montre 70 sens contraire.


}


void handleS(int s, int speed)
{
//Vitesse :
// 0 -> 0; 1 -> 1; 2 -> 3; 3 -> 8; 4 -> 10; v => 5 -> 30
int tab[6] = {0,1,3,8,10,30};
int pos = getNeutral(s);

int acc;
if (speed < 0)
acc = - tab[abs(speed)];
else
acc = tab[speed];

if(s == SERVOG)
servog.write(pos += acc);


}


void move(int direction)
{
int m1 = 0, m2 = 0;
switch(direction)
{
case DROITE: m1 = 1; m2 = -1; break;
case GAUCHE: m1 = -1; m2 = 1; break;
case AVANT: m1 = 1; m2 = 1; break;
case ARRIERE: m1 = -1; m2 = -1; break;
}
handleS(SERVOG, m1*VMAX);
handleS(SERVOD, m2*VMAX);
}



void setup()
{
servog.attach(10);

move(AVANT);
}

void loop()
{
delay(15);
}

[/code]
j'ai réussi a trouver la valeur de mon neutre en modifiant return 60>50>70
donc environ 60 pour mes deux servomoteur.En faite je souhaite faire un roby avec un capteur infrarouge uniquement mai je bloque pour le code.
Pour l'instant je m'entraine a faire fonctionner mes deux servomoteur dans le meme sens mai sans resulta je suis impeu perdu voici le code #include



#define AVANT 1

#define ARRIERE 0

#define GAUCHE 2

#define DROITE 3



#define SERVOG 1

#define SERVOD 0



#define VMAX 5



Servo servog;

Servo servod;



int getNeutral(int s)

{

if(s == SERVOG)

return 65;

else

return 65;

}




void handleS(int s, int speed)

{

//Vitesse :

// 0 -> 0; 1 -> 1; 2 -> 3; 3 -> 8; 4 -> 10; v => 5 -> 30

int tab[6] = {0,1,3,8,10,30};

int pos = getNeutral(s);



int acc;

if (speed < 0)

acc = - tab[abs(speed)];

else

acc = tab[speed];



if(s == SERVOG)

servog.write(pos += acc);

else

servod.write(pos -= acc);

}





void move(int direction)

{

int m1 = 0, m2 = 0;

switch(direction)

{

case DROITE: m1 = 1; m2 = -1; break;

case GAUCHE: m1 = -1; m2 = 1; break;

case AVANT: m1 = 1; m2 = 1; break;

case ARRIERE: m1 = -1; m2 = -1; break;

}

handleS(SERVOG, m1*VMAX);

handleS(SERVOD, m2*VMAX);

}







void setup()

{

servog.attach(10);

servod.attach(9);

move(AVANT);

}



void loop()

{

delay(15);

}
[/code] j'ai que un des deux servomoteur qui tourne ^^
Je rappel que j'ai découvert la robotique il y a que 2 mois j'ai besoin de votre aide merci.



#22370 programme pour le neutre du servomoteur

Posté par jady2909 sur 11 mars 2011 - 03:27 dans Programmation

bonjour , je viens de recevoir mes servomoteur a rotation continus le code qui dont je vous et parler au deçu n'a pas l'aire de fonctionné En effet mon servomoteur fait 13 tours dans un sens puis s'arret une seconde puis fait 13 tours de l'autre sens . SVP j'ai besoin d'aide pour pouvoir trouver la valeur de mes servomoteur a rotation continu



#22366 programme pour le neutre du servomoteur

Posté par jady2909 sur 27 février 2011 - 11:58 dans Programmation

Ou alors tu tapes manuellement <*code type="cpp"]...<*/code>, sans les astérisques évidemment. Esprit][/color]

voila ce que je vais mettre comme code


2.
3.Servo servo;
4.
5.void setup()
6.{
7. servo.attach(10);
8. Serial.begin(9600);
9.}
10.
11.void loop()
12.{
13. int i = 0;
14. while(i <= 180)
15. {
16. servo.write(i);
17. Serial.println(i);
18. delay(1000);
19.
20. i = i+5;
21. }
22. while(i >= 180)
23. {
24. servo.write(i);
25. Serial.println(i);
26. delay(1000);
27. i = i-5;
28. }
29.
30. }
31. [/code]

désoler pour la balise j'arrive pas a les utiliser.



#22364 programme pour le neutre du servomoteur

Posté par jady2909 sur 27 février 2011 - 05:41 dans Programmation

Bonjour débutant dans la programation en c++ je voudrai trouver le neutre des servomoteur que j'ai acheter pour mon robot voici le code

1.#include
2.
3.#define SERVOG 1
4.#define SERVOD 0
5.
6.Servo servog;
7.Servo servod;
8.
9.int getNeutral(int s)
10.{
11. if(s == SERVOG)
12. return 86; //cette valeur va varier jusqu'à ce que le servomoteur va arrété
13. else
14. return 84; // pareille pour ici
15.}

mai mon code manque les fonctions setup et loop . Ne sachant pas ou les integré dans mon code je voudrai votre aide .Merci...




#31249 Modification servomoteur

Posté par jady2909 sur 27 février 2011 - 12:35 dans Electronique

Parcontre je trouve que se programme et pas complet en effet il manque la fonction setup el loop
je ses pas dutout ou les mettre , si vous pouvez m'aidez pour ce petit programme merci .



#31248 Modification servomoteur

Posté par jady2909 sur 27 février 2011 - 12:22 dans Electronique

je decide de mettre ce programme

1.#include
2.
3.#define SERVOG 1
4.#define SERVOD 0
5.
6.Servo servog;
7.Servo servod;
8.
9.int getNeutral(int s)
10.{
11. if(s == SERVOG)
12. return 86; //cette valeur va varier jusqu'a ce que le servomoteur va arrété
13. else
14. return 84; // pareille pour ici
15.}




#31246 Modification servomoteur

Posté par jady2909 sur 27 février 2011 - 01:44 dans Electronique

[quote"Luj"]Esprit, une fois le servo modifié, es-tu sûr qu'il se met encore au neutre ? Comme Jady a acheté des servos déjà modifiés, il ne fait pas la manip' lui même et ne peut pas la repérer. La seule solution me semble donc de faire un petit programme pour changer petit à petit les valeurs de commandes, et déterminer pour laquelle le moteur s'arrête : c'est le neutre.

Malheureusement ce n'est pas toujours 1,5 ms car cela dépend de la qualité des résistances utilisées pour modifier le servo (ou alors je suis pas doué).[/quote]

Juste une petite question est ce que je doit prendre un rapporteur a fin de mesuré l'angle de rotation ? ainsi j'aurai la valeur du neutre des servomoteur.



#31245 Modification servomoteur

Posté par jady2909 sur 27 février 2011 - 01:16 dans Electronique

de tout façon jai commander mes servomoteur comme je vous et fait montrer et jai pris aussi un capteur infrarouge http://www.lextronic.fr/P1749-telemetre-infrarouge-sharp-gp2d120.html
je voudrai faire un roby modifier a ma façon.
je vous tiendrai au courant consernantles servomoteur.
Pour se qui est la programation en c++ je debut est je connais les bases (un mois que je lis plusieur site que vous m'avez donner pour la programation)Sa devrai aller pour l'instant, je mettrai des photos de mon "robjady"



#31240 Modification servomoteur

Posté par jady2909 sur 23 février 2011 - 03:36 dans Electronique

Si je pose cette question ses pour savoir si il est important de trouver la valeur du neutre des servomoteur ^^.