Aller au contenu


Contenu de alex54-RX

Il y a 34 élément(s) pour alex54-RX (recherche limitée depuis 20-mai 13)



#28695 CUBE 3D avec des leds

Posté par alex54-RX sur 26 juillet 2008 - 04:14 dans Electronique

ça a l'air génial sa ! .



#31020 roby, contrôle des moteurs

Posté par alex54-RX sur 19 décembre 2010 - 11:03 dans Electronique

Bonjour tout le monde !

Voilà j'ai un problème sur le tuto pour faire Roby,les deux servomoteur son relié directement a des piles 6v et je ne comprend pas comment la carte arduino peut commander les moteurs avec juste le fil jaune (analogique). :o

Merci :D



#31022 roby, contrôle des moteurs

Posté par alex54-RX sur 20 décembre 2010 - 11:19 dans Electronique


bonjour :D

Merci d'avoir répondu maintenant c'est plus clair pour moi :D


re-bonjour :D

Désolé ,j'ai une dernière questions,les deux résistances pour les capteur de contact sur roby c'est des résistances de n'importe quelle valeurs ?

Merci :)



#31024 roby, contrôle des moteurs

Posté par alex54-RX sur 20 décembre 2010 - 04:04 dans Electronique


ok?Merci :D


C'est obligé d'en mettre pour les contact ?



#31026 roby, contrôle des moteurs

Posté par alex54-RX sur 20 décembre 2010 - 08:45 dans Electronique





re-bonjour



j'aimerai savoir si conviennent en taille pour roby ou si ils sont trop petits.Car d'après les mesures qu'ils donnent je les trouves petits





Merci



--> Bon tant pis j'ai commandé,je verrais si sa colle avec le robot :D



#31028 roby, contrôle des moteurs

Posté par alex54-RX sur 22 décembre 2010 - 11:57 dans Electronique

[quote"Esprit"]
Pour les moteurs, ils sont effectivement un peu petits... Mais avec un couple de 2kg/cm, ça devrait suffire. Il faut juste que tu aies une base assez allégée.

En général, essaie d'attendre un peu avant de commander, quand tu as des doutes et que tu demandes sur le forum. Il faut parfois un peu de patience mais ça évite d'acheter n'importe quoi. Même si dans ce cas-ci, ça devrait aller. [/quote]

Bonjour,Merci d'avoir répondu et désolé pour les citation et tout...je suis pas encore habitué,pour les moteurs je verrais et j’essayerai d’alléger le robot :D



#31029 Roby,alimentation

Posté par alex54-RX sur 23 décembre 2010 - 09:59 dans Electronique

Bonsoir !

Je me doute que vous en avez marre de mes questions mais,pour alimenter l'arduino Uno (pour Roby) il faut mettre du 9volt sur gnd et vin ou par la prise jack d'arduino ??

Merci :D



#31033 Roby,alimentation

Posté par alex54-RX sur 23 décembre 2010 - 11:37 dans Electronique

Merci Esprit,Donc en clair,la prise jack sert pour alimenter avec un adaptateur puis Vin et Gnd c'est pour alimenter avec des piles des batteries...

c'est sa ?



J'ai rajouté le capteur infrarouge sur le schéma de roby, j’espère qu'il es bon



Schéma



#31036 Roby,alimentation

Posté par alex54-RX sur 25 décembre 2010 - 12:09 dans Electronique

Bonjour alex54



Ton lien n'est plus valide, si tu as besoin remet le.


Étrange pour moi il marche :o






#31039 Roby,alimentation

Posté par alex54-RX sur 26 décembre 2010 - 07:09 dans Electronique

Bonjour :D

Oui en effet Esprit j'ai utilisée Paint pour rajouter le capteur :)



#31066 Problème code Roby (Moteurs)

Posté par alex54-RX sur 05 janvier 2011 - 05:00 dans Electronique




Bonjour,



Voilà j'ai un problème avec le code pour Roby,celui la :





#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 86;

else

return 84;

}





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]



quand j'allume le robot les moteurs tournent en arrière au-lieu d'aller en avant.Donc je voulais savoir si il etait possible d'inverser le sens des moteurs dans le code et si oui,qui faut il changer ?



Merci d'avance !



#31068 Problème code Roby (Moteurs)

Posté par alex54-RX sur 05 janvier 2011 - 05:31 dans Electronique


Merci d'avoir répondu si vite. :)

C'était bien ça,ça marche. :D

Désolé pour l'orthographie,j'ai tendance a écrire vite. :s



#31101 Code Arduino

Posté par alex54-RX sur 08 janvier 2011 - 10:08 dans Electronique

Bonjour !



Alors je m'explique,je souhaiterais faire un code qui ferais clignoter 4 leds.Et je me demandais si il était possible de faire fonctionner ce code en même Temp que le code pour roby.

Car quand je met les leds elles interfèrent sur le fonctionnement du robot.





Merci pour vos réponses :D



#31103 Code Arduino

Posté par alex54-RX sur 08 janvier 2011 - 11:24 dans Electronique

[quote"lordcuty"]bonjour, la politesse ne serai pas un luxe...[/quote]
--> pourtant j'ai dit bonjour et merci mais bon...

Merci pour ta réponse.



#31105 Code Arduino

Posté par alex54-RX sur 09 janvier 2011 - 10:59 dans Electronique

Bonjour,

Merci d'avoir répondu.


#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 ledPin1 = 12;
int ledPin2 = 11;
int ledPin3 = 8;
int ledPin4 = 7;
int ledPin5 = 13;


int vLdr = 5;

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


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 >= 230)
{
move(ARRIERE);
delay(300);
move(DROITE);
delay(900);
}
else if (v >= 140)
{
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);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);

}

void loop()
{
handleUPDD(UPDDG);
handleUPDD(UPDDD);
sharp();
move(AVANT);
delay(100);

digitalWrite(ledPin1, HIGH);
digitalWrite (ledPin2,LOW);
delay(500);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
delay(500);


digitalWrite(ledPin3, HIGH);
digitalWrite (ledPin4,LOW);
delay(500);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, HIGH);
delay(500);

digitalWrite(ledPin5, HIGH);
delay(100);
digitalWrite(ledPin5, LOW);
delay(100); [/code]
}

Donc voilà le code.Dites moi si vous voulez plus de détails :D .



#31107 Code Arduino

Posté par alex54-RX sur 09 janvier 2011 - 12:23 dans Electronique

Bonjour,

En fait, peut importe comment elles clignotent c'est juste pour faire joli.Et ce n'est pas obligé qu'elles clignotent pareil c’est juste pour décorer :D .

Et merci pour le petit test :).



#31108 Code Arduino

Posté par alex54-RX sur 09 janvier 2011 - 08:48 dans Electronique

Re-Bonjour,



J'aimerai bien que quand je démarre le robot il y 'ai un piezzo speaker qui fasse 4 bip et qu'après le robot marche.Mais je n'arrive pas a faire ce code,pouvez vous m'aider?

Puis je pensais que pour la fréquences des bip sa serais : BIP,attente d'une seconde,BIP,attente d'une seconde,BIP,attente d'une seconde,BIP,attente d'une seconde





Merci de vos éventuelles réponses.






#31113 Code Arduino

Posté par alex54-RX sur 10 janvier 2011 - 07:52 dans Electronique

Bonjour,

Merci pour vos réponses :D .
Je vais essayer de tester tout sa :) .

EDIT : J'ai trouvé le code pour faire BIP BIP.




#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;
//Buzzer
int buzzer = 6;


int ledPin1 = 12;
int ledPin2 = 11;
int ledPin3 = 8;
int ledPin4 = 7;
int ledPin5 = 13;


int vLdr = 5;

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


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 >= 230)
{
move(ARRIERE);
delay(300);
move(DROITE);
delay(900);
}
else if (v >= 140)
{
handleS(SERVOG, VMAX);
handleS(SERVOD, 0);
delay(1500);
}
}
void setup()
{
pinMode(buzzer,OUTPUT);
analogWrite (buzzer, HIGH);
delay (500);
analogWrite (buzzer, LOW);
delay (500);
analogWrite (buzzer, HIGH);
delay (500);
analogWrite (buzzer, LOW);
delay (500);
analogWrite (buzzer, HIGH);
delay(500);
analogWrite (buzzer, LOW);
delay (500);
analogWrite (buzzer, HIGH);
delay (500);
analogWrite (buzzer, LOW);

pinMode(UPDDG, INPUT);
pinMode(UPDDD, INPUT);

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


pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);




}

void loop()
{
handleUPDD(UPDDG);
handleUPDD(UPDDD);
sharp();
move(AVANT);


digitalWrite(ledPin1, HIGH);
digitalWrite (ledPin2,LOW);
delay(500);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
delay(500);


digitalWrite(ledPin3, HIGH);
digitalWrite (ledPin4,LOW);
delay(500);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, HIGH);
delay(500);

digitalWrite(ledPin5, HIGH);
delay(100);
digitalWrite(ledPin5, LOW);
delay(100);




}[/code]


Maintenant,il faut que je trouve comment faire pour que Premier BIP avec led1 ; Deuxième BIP avec led4 ; Troisième BIP avec led3 et Quatrième BIP avec led2.




#31115 Code Arduino

Posté par alex54-RX sur 10 janvier 2011 - 09:11 dans Electronique

il n'y a pas vraiment de fonction pour l'ordre c'est plutôt l'emplacement dans le code qui régie l'ordre

exemple:


void setup()

{

étape 1

étape 2

}

void loop()

{

étape 3

étape 4

}

[/code]

ce qui nous donne l'ordre 1,2,3,4,3,4,3,4....



sinon essai et apprends à programmer


Oui,je vient de découvrir sa , avant je ne savais pas.Maintenant il ne reste plus qu'a ajouter les leds comme j'ai dit,mais je n'y arrive pas.



Premier BIP avec led1 ; Deuxième BIP avec led4 ; Troisième BIP avec led3 et Quatrième BIP avec led2.



#31118 Code Arduino

Posté par alex54-RX sur 11 janvier 2011 - 04:57 dans Electronique

Bonjour,



Oui je sais faire clignoter une led et un buzzer,facile.



EDIT : Hier j'avais essayer de mettre le buzzer en même Temp qu'une led mais sa n'a pas marché . Je pense que sa doit interférer avec l'autre code.

Voici ce que j'avais fais,ligne 116 à 134 :







#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;

//Buzzer

int buzzer = 6;





int ledPin1 = 12;

int ledPin2 = 11;

int ledPin3 = 8;

int ledPin4 = 7;

int ledPin5 = 13;





int vLdr = 5;



int getNeutral(int s)

{

if(s == SERVOG)

return 86;

else

return 84;

}





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 >= 230)

{

move(ARRIERE);

delay(300);

move(DROITE);

delay(900);

}

else if (v >= 140)

{

handleS(SERVOG, VMAX);

handleS(SERVOD, 0);

delay(1500);

}

}

void setup()

{

pinMode(buzzer,OUTPUT);



analogWrite (buzzer, HIGH);

digitalWrite(ledPin1, HIGH);

delay (500);

analogWrite (buzzer, LOW);

delay (500);

analogWrite (buzzer, HIGH);

digitalWrite(ledPin4, HIGH);

delay (500);

analogWrite (buzzer, LOW);

delay (500);

analogWrite (buzzer, HIGH);

digitalWrite(ledPin3, HIGH);

delay (500);

analogWrite (buzzer, LOW);

delay(500);

analogWrite (buzzer, HIGH);

digitalWrite(ledPin2, HIGH);

delay(500);

analogWrite (buzzer, LOW);





pinMode(UPDDG, INPUT);

pinMode(UPDDD, INPUT);



Serial.begin(9600);

servog.attach(10);

servod.attach(9);

move(AVANT);





pinMode(ledPin1, OUTPUT);

pinMode(ledPin2, OUTPUT);

pinMode(ledPin3, OUTPUT);

pinMode(ledPin4, OUTPUT);

pinMode(ledPin5, OUTPUT);









}



void loop()

{

handleUPDD(UPDDG);

handleUPDD(UPDDD);

sharp();

move(AVANT);





digitalWrite(ledPin1, HIGH);

digitalWrite (ledPin2,LOW);

delay(500);

digitalWrite(ledPin1, LOW);

digitalWrite(ledPin2, HIGH);

delay(500);





digitalWrite(ledPin3, HIGH);

digitalWrite (ledPin4,LOW);

delay(500);

digitalWrite(ledPin3, LOW);

digitalWrite(ledPin4, HIGH);

delay(500);



digitalWrite(ledPin5, HIGH);

delay(100);

digitalWrite(ledPin5, LOW);

delay(100);









}[/code]



Pour l'instant,mon robot,quand j'appuis sur l'interrupteur,fais 4 bip puis démarre normalement .Mais je voudrais en plus rajouter les led avec les bip. 1er bip = led1 2eme bip = led4 3eme bip = led3 4eme bip = led2



#31120 Code Arduino

Posté par alex54-RX sur 11 janvier 2011 - 05:46 dans Electronique

ben en faite a partir de la ligne 146 c'est pour initialisé les leds pour le jeux de lumières,puis donc si j'utilise le code la,le buzzer faire un bip continu puis âpres les 4 leds s’allument donc cela ne marche pas et je ne sais pas pourquoi.Et analogwrite pour le buzzer , oui sa marche.

EDIT : Mince alors, tu avais raison , j'ai mis pinmode...des led avant et maintenant sa marche, merci !



#27637 Problème Urgent avec Roby

Posté par alex54-RX sur 15 janvier 2011 - 12:08 dans Aide pour projets scolaire

Bonjour,



Moi j'aurais plus tôt fais sa pour le schéma :






Puis pour le code :



#define AVANT 1

#define ARRIERE 0

#define GAUCHE 2

#define DROITE 3

#define SERVOG 1

#define SERVOD 0

#define SHARP 4

#define VMAX 5

Servo servog;

Servo servod;

int vLdr = 5;

int getNeutral(int s)

{

if(s == SERVOG)

return 86;

else

return 84;

}

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 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()

{







Serial.begin(9600);

servog.attach(10);

servod.attach(9);

move(AVANT);

}



void loop()

{



sharp();

move(AVANT);

delay(100);

}[/code]




#27640 Problème Urgent avec Roby

Posté par alex54-RX sur 15 janvier 2011 - 12:22 dans Aide pour projets scolaire

Pour la partie programmation je pense que c'est bon

Oui j'ai construit ce robot mais moi j'ai le capteur infrarouge,les capteur a contact puis j'ai rajouté des effets lumineux.

Les valeurs du capteurs dans le code sont ceux du tuto pour faire roby .



Voila ce qui est dit dans le tuto pour Roby : si v était supérieur à 180 (obstacle à 10 cm), alors il fallait reculer pour éviter l'obstacle, alors que si v est supérieur à 100 (obstacle à 30 cm) il suffisait de ralentir d'un coté pour éviter l'obstacle.



J’espère que sa marchera.Mais je ne comprend toujours pas ton problème ?



#27642 Problème Urgent avec Roby

Posté par alex54-RX sur 15 janvier 2011 - 12:40 dans Aide pour projets scolaire

Ah oui en effet j'avais pas vu que ce n'était pas le même :)

Pour remplacer les valeur c'est simple puis si tu ne veut pas qu'il recule quand il y'a un obstacle a 30cm ben faut juste supprimer.Donc il faut remplacer (v >=180) et (v >=100).Après cela dépend à combien de distance tu veut qu'il détecte.


{

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);

}

}[/code]




#27644 Problème Urgent avec Roby

Posté par alex54-RX sur 15 janvier 2011 - 12:51 dans Aide pour projets scolaire

ça je ne sais pas,sinon pour le code ça va ou pas ?