Aller au contenu


Photo
- - - - -

Robot suiveur de ligne


  • Veuillez vous connecter pour répondre
13 réponses à ce sujet

#1 MONBOUD

MONBOUD

    Nouveau membre

  • Membres
  • 9 messages

Posté 23 mai 2010 - 04:44

Bonjour a tous, voila je me suis lancé dans un projet de construire un robot qui suis une ligne blanche, pour se faire j'ai acheté une carte arduino duemilanove 2 moteur et 2 détecteurs infrarouges. Pour le moment j'ai réalisé toute la partie assemblage du robot qui a été relativement simple g mis les 2 moteur au milieux avec une roue "jockey" à l'avant puis j'ai mis mes 2 capteur infrarouge sur l'avant du robot pointant vers le sol narturellement.
Maintenant je m'attaque à la programation du robot avec le logiciel arduino sauf que je n'y arrive pas du tout.
Est-ce que quelqu'un pourrait m'aider pour le programmer?
Merci d'avance

#2 Electron

Electron

    Pilier du forum

  • Membres
  • PipPipPipPip
  • 906 messages
  • Gender:Male
  • Location:LABEGE

Posté 24 mai 2010 - 10:14

Perso, je ne connais pas l'arduino :/
Je voulais juste te dire que pour faire un suiveur de ligne tu as juste besoin de quelques composants électroniques classiques et courants et de deux petits moteurs.
Si tu veux en savoir plus je suis à ta disposition, mais peut-être que tu veux utiliser la Arduino plus spécialement ;)

"Plus on partage, plus on possède, voilà le miracle". LEONARD NIMOY
"Celui qui se bat peut perdre, celui qui ne se bat pas a déjà tout perdu". BERTOLT BRECHT (1898-1956)
Comment se lancer dans la robotique !
Mince encore un post pour augmenter mon compteur ;)


#3 MONBOUD

MONBOUD

    Nouveau membre

  • Membres
  • 9 messages

Posté 24 mai 2010 - 01:34

l'arduino c'est du codage en C++ et oui je voudrai l'utiliser si tu c'est comment faire meme un petit truc se serai très utile...

#4 Electron

Electron

    Pilier du forum

  • Membres
  • PipPipPipPip
  • 906 messages
  • Gender:Male
  • Location:LABEGE

Posté 24 mai 2010 - 04:59

Nan, je suis désolé, car je ne parle que de ce que je connais au moins un peu, là en Arduino j'y connais rien, même si je programme un peu en C++ :/

"Plus on partage, plus on possède, voilà le miracle". LEONARD NIMOY
"Celui qui se bat peut perdre, celui qui ne se bat pas a déjà tout perdu". BERTOLT BRECHT (1898-1956)
Comment se lancer dans la robotique !
Mince encore un post pour augmenter mon compteur ;)


#5 Réplicarter

Réplicarter

    Membre

  • Membres
  • 25 messages
  • Gender:Male
  • Location:Nord de la France

Posté 24 mai 2010 - 07:49

Hello !

Si tu n'as pas peur de traduire un peu d'anglais voila un site avec les fonctions de base de l'Arduino : http://arduino.cc/en/Reference/HomePage

Maintenant, si tu veux un peu plus d'explication sur le langage "commum" de l'Arduino (genre : loop, delay, setup...) Je peux peut-être te filer un coup de main...

Tu bloques sur quoi ?


RépliCarter
Carpe Diem

#6 MONBOUD

MONBOUD

    Nouveau membre

  • Membres
  • 9 messages

Posté 24 mai 2010 - 08:32

Je bloque sur la partie de la ligne blanche c'est a dire que j'arrive a faire tourner les moteurs mais je n'arrive pas à faire avancer le robot en suivant la ligne je c que ca peut se faire en imbriquant 2 if mais sa marche jamais quant je le fait, si tu sait???

#7 Réplicarter

Réplicarter

    Membre

  • Membres
  • 25 messages
  • Gender:Male
  • Location:Nord de la France

Posté 24 mai 2010 - 08:37

Tu pourrais poster ton code et ton schéma électrique global ? Je pourrais voir comment arranger le truc ;) (enfin j'espère y arriver :) )
Carpe Diem

#8 MONBOUD

MONBOUD

    Nouveau membre

  • Membres
  • 9 messages

Posté 25 mai 2010 - 10:20

Donc voila le schémas de montage en gros avec les entrées sur la carte:
Fichier joint  img025.jpg   1,62 Mo   125 téléchargement(s)
(pièce jointe)

et voici mon debut de codde qui marche pas du tout:

Pot=capteur de distance
Det1=infrarouge gch
Det2=infrarouge drt
*/

int moteur1 = 3;//moteur gch commande pin sortie PWM
int moteur2 = 5;//moteur drt sortie PWM
int Pot = 0 ; //curseur potentiomètre branché Eanalog 0.
int PotValeur = 0;//pas besoin de pinMode car analogique dc sous entendu det distance
int Det1 = 4; //det tout ou rien
int det1 = 0; //gch
int Det2 = 2; //drt

void setup() //config entree sortie
{
pinMode(moteur1, OUTPUT);
Serial.begin(9600); //commencer la transmission, taux de transmission = 9600 bps(bits pas sec)

}

void loop()
{
PotValeur = analogRead(Pot);
det1 = digitalRead(Det1);
Serial.print("Valeur du potentiometre:");
Serial.println(PotValeur); //ln = retour chariot

Serial.print("Valeur du PotValeur:\n\n");
Serial.println(PotValeur/4);

if(det1 == 1 || PotValeur/4 >= 50)
{
analogWrite(moteur1, 450);//450 valeur minimale pour avancer //plus la valeur augmente plus la bande haute s'élargie et la basse rétrecie
//PotValeur/4
delay(500);
}
else{
analogWrite(moteur1, 0);
delay(500);
}
}

#9 MONBOUD

MONBOUD

    Nouveau membre

  • Membres
  • 9 messages

Posté 25 mai 2010 - 10:22

pour l'instant je tien pa compte du détecteur télémetrique je verrai par la suite pour celui la...

#10 Réplicarter

Réplicarter

    Membre

  • Membres
  • 25 messages
  • Gender:Male
  • Location:Nord de la France

Posté 25 mai 2010 - 04:55

Ta bien mis un else entre les deux if que tu veux imbriquer ?
Carpe Diem

#11 MONBOUD

MONBOUD

    Nouveau membre

  • Membres
  • 9 messages

Posté 25 mai 2010 - 05:34

Je vois pa 2 if dans ce que j'ai fait je pense que c'est comme ca qu'il faut faire mais j'y arrive pa

le code que j'ai mis c'est ce que j'ai fait j'arrive pa a plus donc si tu peu m'aider...

#12 Réplicarter

Réplicarter

    Membre

  • Membres
  • 25 messages
  • Gender:Male
  • Location:Nord de la France

Posté 25 mai 2010 - 10:45

Nan, je veux dire dans les deux if que tu veux mettre dans ton code, tu sais déjà ce que tu vas leur attribuer non ? Si c'est le cas essaye en veillant à bien placer un "else" entre les deux, sinon pour ton programme sa va faire comme si tu introduisait une condition dans une autre condition.
Carpe Diem

#13 Jean T-DRIS

Jean T-DRIS

    Nouveau membre

  • Membres
  • 5 messages
  • Gender:Male
  • Location:St Soupplets

Posté 28 mai 2010 - 06:43

Salut,

if(det1 == 1 || PotValeur/4 >= 50)

je trouve que ca manque de parenthèses dans ta condition,
y a des opérateurs plus prioritaires que d'autres
essaye avec
if((det1 == 1) || ((PotValeur/4) >= 50))


#14 Electron

Electron

    Pilier du forum

  • Membres
  • PipPipPipPip
  • 906 messages
  • Gender:Male
  • Location:LABEGE

Posté 29 mai 2010 - 03:13

ff
Désolé je voulais effacer mon post inutile mais je ne suis pas modérateur sur ce topic, bizarre.

"Plus on partage, plus on possède, voilà le miracle". LEONARD NIMOY
"Celui qui se bat peut perdre, celui qui ne se bat pas a déjà tout perdu". BERTOLT BRECHT (1898-1956)
Comment se lancer dans la robotique !
Mince encore un post pour augmenter mon compteur ;)





0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users