Aller au contenu


Photo
- - - - -

Robot Suiveur de Ligne [Arduino]


2 réponses à ce sujet

#1 Galariel

Galariel

    Nouveau membre

  • Membres
  • 5 messages

Posté 13 mars 2014 - 07:04

Bonjour!

Je suis en Terminale S, en spécialité ISN mais je ne connais que très peu de choses en informatique, (pour ne pas dire rien...).

Pour le Bac, avec trois camarades de classes nous avons eu comme idée de projet d'organiser un concours de robots suiveurs de lignes dans l'enceinte de notre établissement. (plus précisément nous voulions programmer des robots et notre professeur nous a informés qu'il souhaitait réaliser cette idée depuis quelques années). Nous avons donc comme sous-projet de réaliser un site internet, tenir une communication avec un adresse mail, faire un manuel de codes vulgarisés ou très basiques et de tester des codes sur un robot.

Notre professeur nous as confié un robot diduino avec une carte arduino duemilanove. Je joins des photos car n'y connaissant vraiment pas grand chose mes mots ne sauraient décrire bien précisément ce que nous avons en matériel :
Notre robot : X
Fils : X
Accessoires : X(diodes et résistances)
Une Dell : X

Depuis un certain moment nous arrivons à faire avancer, reculer et tourner le robot. Donc je suppose que nous avons intégré comment les moteurs des roues marchent.

On a recensé les choses suivantes :
LED verte : avance
LED rouge : recule
delay : temps durant lequel on effectue ce qui est indiqué
0 : puissance max
255 : puissance min

M1 E1 = droit
M2 E2 = gauche

//1er Programme, avance par à-coups:
// Moteur droit
int M1 = 5;
int E1 = 4;   
//Moteur gauche
int E2 = 7;
int M2 = 6;

byte pwm_val = 0;

void setup()
{
pinMode(M1, OUTPUT);   
pinMode(M2, OUTPUT);
pinMode(E1, OUTPUT);   
pinMode(E2, OUTPUT);
}
void loop()
{
// Moteur droit en mode avance puissance moyenne
digitalWrite(M1, HIGH);   
analogWrite(E1, 125); 
//Moteur Gauche en mode recul puissance nulle, inutile donc(?) mais je préfère garder le squelette en l'état
  digitalWrite(M2, LOW);   
analogWrite(E2, 255);  
// Temps d'agissement 1 sec
delay(1000);
// Moteur droit en mode recul puissance nulle, inutile donc(?) mais je préfère garder le squelette en l'état
digitalWrite(M1, LOW);   
analogWrite(E1, 255);  
//Moteur Gauche en mode avance puissance moyenne
    digitalWrite(M2, HIGH);   
analogWrite(E2, 125); 
// Temps d'agissement 1 sec
delay(1000);
} 
Pages d'aides utilisées pour ce code :
http://www.apprendre-en-ligne.net/info/robotique/DdR.pdf

On a aussi testé le code qui utilise les moustaches c'est très drôle ! ^^

Par contre pour ce qui concerne les dell j'ai bidouillé quelque chose avec ce que j'ai trouvé, et ça fonctionne ! :D/>/>
//Avancer dans la lumière :
int photocellPin = 0; // the cell and 10K pulldown are connected to a0
int photocellReading; // the analog reading from the analog resistor divider
int M1 = 5;

int E1 = 4;   

// Moteur gauche

int E2 = 7;                    	 

int M2 = 6;                      	 

byte pwm_val = 0;

void setup()

{

	pinMode(M1, OUTPUT);   

	pinMode(M2, OUTPUT);

	pinMode(E1, OUTPUT);   

	pinMode(E2, OUTPUT);

  // We'll send debugging information via the Serial monitor
  Serial.begin(9600);
}

void loop(void) {
  photocellReading = analogRead(photocellPin);
  Serial.print("Analog reading = ");
  Serial.print(photocellReading); // the raw analog reading
  // We'll have a few threshholds, qualitatively determined
  if (photocellReading > 550) {
    digitalWrite(M1, HIGH);   //tout droit
    analogWrite(E1, 0); // 0: puissance max (en mode avance)
    digitalWrite(M2, HIGH);   //
    analogWrite(E2, 0);  // 255 : puissance min (en mode avance)
    delay(100);
  } else {
    digitalWrite(M1, HIGH);
    analogWrite(E1, 125);     
    digitalWrite(M2, LOW);   
    analogWrite(E2, 255);  
    delay(10);
  }
  delay(1000);

}

Auriez-vous des conseils pour rendre ce code plus performant, ou je ne sais quoi ? :D/>/>

Merci d'être passé ! ^^

#2 ChristianR

ChristianR

    Membre passionné

  • Membres
  • PipPipPip
  • 474 messages
  • Gender:Male
  • Location:Isère (38)

Posté 17 mars 2014 - 06:47

Ce que tu appelles les "Dell" c'est les photorésistances ?
Christian

#3 Galariel

Galariel

    Nouveau membre

  • Membres
  • 5 messages

Posté 19 mars 2014 - 07:58

Hum c'est un composé avec une lampe et une photorésistance d'après moi ^^
(merci de la réponse 8))



Répondre à ce sujet



  


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

0 members, 0 guests, 0 anonymous users