Bonjour je suis nouveau !
j'ai réaliser mon premier robot "roby" grâce au tuto de ROBOCOP que j'en remercie , pendant environ 3 semaines j'ai réaliser le châssis fait la programmation sachant que j'ai aucune connaissance avec le language c++.
je suis un père de famille avec 3 enfants en bas age et je viens de trouvé une nouvel passion !!!
Maintenant que mon roby est opérationnel je voudrai faire une modification en faite je voudrai y introduire un troisième servomoteur qui pivotera de droite a gauche avec le capteur infrarouge "sharp".
Si vous pouvez m'aidé dans ma programmation a fin de poursuivre dans mon projet car je bloc la ...

ROBY AVEC UN SERVO TETE
Débuté par izgaghan, janv. 25 2012 12:44
6 réponses à ce sujet
#1
Posté 25 janvier 2012 - 12:44
#2
Posté 25 janvier 2012 - 12:52
Bonsoir izgaghan , félicitation pour ton 1 "roby"
Pour t’aidai a mettre un troisième servomoteur avec capteur sharp sur ton roby , il nous
faudrait ton code , plus tous les branchement ( un petit schémas ) si cela et possible.
Pour t’aidai a mettre un troisième servomoteur avec capteur sharp sur ton roby , il nous
faudrait ton code , plus tous les branchement ( un petit schémas ) si cela et possible.
#3
Posté 25 janvier 2012 - 12:03
#include <Servo.h>
#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
Servo servog;
Servo servod;
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 setup()
{
pinMode(UPDDG, INPUT);
pinMode(UPDDD, INPUT);
servog.attach(10);
servod.attach(9);
move(AVANT);
}
void loop()
{
handleUPDD(UPDDG);
handleUPDD(UPDDD);
move(AVANT);
delay(15);
}
voila pour mon code
et pour le schemas le voila

voila je compte sur votre générositer pour m'aidé dans mon projet cordialement.
#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
Servo servog;
Servo servod;
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 setup()
{
pinMode(UPDDG, INPUT);
pinMode(UPDDD, INPUT);
servog.attach(10);
servod.attach(9);
move(AVANT);
}
void loop()
{
handleUPDD(UPDDG);
handleUPDD(UPDDD);
move(AVANT);
delay(15);
}
voila pour mon code
et pour le schemas le voila

voila je compte sur votre générositer pour m'aidé dans mon projet cordialement.
#4
Posté 25 janvier 2012 - 12:49
Bonjour izgaghan .
Voila tu prend ton servomoteur et tu le
Branche sur la pin 8 digitale de la carte Arduino.
Le plus du servomoteur tu le mes sur la pin 5v de ta carte Arduino.
Et la masse du servomoteur tu la mes sur une pin GND.
Le capteur sharp tu le branche sur la pin A0 analogique de la carte Arduino.
Le plus du capteur sharp tu le branche sur la pin 5V de la carte Arduino.
La masse du capteur sharp tu le branche sur une pin GND de ta carte Arduino
Voila tien moi informé .
Voila tu prend ton servomoteur et tu le
Branche sur la pin 8 digitale de la carte Arduino.
Le plus du servomoteur tu le mes sur la pin 5v de ta carte Arduino.
Et la masse du servomoteur tu la mes sur une pin GND.
Le capteur sharp tu le branche sur la pin A0 analogique de la carte Arduino.
Le plus du capteur sharp tu le branche sur la pin 5V de la carte Arduino.
La masse du capteur sharp tu le branche sur une pin GND de ta carte Arduino
Voila tien moi informé .
#5
Posté 25 janvier 2012 - 01:31
ok merçi je ferais sa ce soir je te tiend au couran et pour le code aussi ? ya rien qui change ?
#6
Posté 10 mars 2012 - 10:58
salut le sujet est peut etre vieux mais je pourrai peut etre avoir une réponse quelle bout de code dois je ajouté pour que le servo fasse des rotations de 180° ?
A.R.M.I
Autonomous Robotics Mechanics Intelligent
#7
Posté 10 mars 2012 - 01:35
salut le sujet est peut etre vieux mais je pourrai peut etre avoir une réponse quelle bout de code dois je ajouté pour que le servo fasse des rotations de 180° ?
resalut
la tu voix il va falloir que tu t'y mets a programmer
commence par aller sur un bon tuto de C++
inspire toi du bout de code du roby
essai de comprendre le fonctionnement
et tu y arriveras comme un grand

ps: on vas y arriver a te former, je ne desepere pas

1 utilisateur(s) li(sen)t ce sujet
0 members, 1 guests, 0 anonymous users