- Robot Maker
- → Contenu de alex54-RX
Contenu de alex54-RX
Il y a 34 élément(s) pour alex54-RX (recherche limitée depuis 20-mai 13)
Par type de contenu
Voir pour ce membre
#28695 CUBE 3D avec des leds
Posté par alex54-RX sur 26 juillet 2008 - 04:14 dans Electronique
#31020 roby, contrôle des moteurs
Posté par alex54-RX sur 19 décembre 2010 - 11:03 dans Electronique
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
#31028 roby, contrôle des moteurs
Posté par alex54-RX sur 22 décembre 2010 - 11:57 dans Electronique
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
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
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
#31039 Roby,alimentation
Posté par alex54-RX sur 26 décembre 2010 - 07:09 dans Electronique
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
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
--> 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
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
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
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
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
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
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
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
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
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
- Robot Maker
- → Contenu de alex54-RX
- Privacy Policy