Go Down

Topic: Un petit projet simple de robot (Read 4371 times) previous topic - next topic

ocoquet

Projet réalisé pour mon beau-fils pour son tpe de terminale.

Durée: 3 jours

voici le schéma électronique de la réalisation.
Les commandes à droite, son reliées directement à la carte arduino uno R3 via les sorties digitales 4,5,6,7
Le switch est relié à la carte arduino uno R3 via la sortie digitale 3

La réalisation mécanique suit.

amitié à tous.
Olivier

ocoquet

les photos de la réalisation.

Le programme et les explications sur le fonctionnement suivront.


Amitié
Olivier

ocoquet

enfin le programme, comme vous le voyez c'est simple, le robot avance, si le switch est actionné par un obstacle, il recule, il fait un quart de tour à droite et il repart.

le programme:
Quote

int m1 = 4;
int m2 = 5;
int m3 = 6;
int m4 = 7;
int led = 13;
int obstacle = 3;

// the setup routine runs once when you press reset:
void setup() {               
  // initialize the digital pin as an output.
  pinMode(m1, OUTPUT);
  pinMode(m2, OUTPUT);
  pinMode(m3, OUTPUT);
  pinMode(m4, OUTPUT);
  pinMode(led, OUTPUT);
  pinMode(obstacle,INPUT);
  
  digitalWrite(m1, HIGH); //moteur gauche stop
  digitalWrite(m2, HIGH); //moteur gauche en position avant
  digitalWrite(m3, HIGH); //moteur droit stop
  digitalWrite(m4, HIGH); //moteur droit en position avant
  
  digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
  // Phase de test des moteurs
  delay(2000);
  //Mise en route des deux moteurs
  digitalWrite(m2, HIGH); //moteur gauche en position avant
  digitalWrite(m3, HIGH); //moteur droit en position avant
  digitalWrite(m1, LOW); //moteur gauche marche
  digitalWrite(m4, LOW); //moteur droit marche

}

// the loop routine runs over and over again forever:
void loop() {
 
  //lecture capteur
  int val = digitalRead(obstacle);
  if (val > 0)
  {
  digitalWrite(m1, HIGH); //moteur gauche stop
  digitalWrite(m4, HIGH); //moteur droit stop
  digitalWrite(m2, LOW); //moteur gauche en position arrière
  digitalWrite(m3, LOW); //moteur droit en position arrière
  digitalWrite(m1, LOW); //moteur gauche marche
  digitalWrite(m4, LOW); //moteur droit marche
  delay(5000);
  digitalWrite(m1, HIGH); //moteur gauche stop
  digitalWrite(m4, HIGH); //moteur droit stop
  digitalWrite(m2, HIGH); //moteur gauche en position avant
  digitalWrite(m3, HIGH); //moteur droit en position avant
  digitalWrite(m1, LOW); //moteur gauche marche
  digitalWrite(m4, HIGH); //moteur droit stop
  delay(23500);
  digitalWrite(m1, HIGH); //moteur gauche stop
  digitalWrite(m4, HIGH); //moteur droit stop
  digitalWrite(m2, HIGH); //moteur gauche en position avant
  digitalWrite(m3, HIGH); //moteur droit en position avant
  digitalWrite(m1, LOW); //moteur gauche marche
  digitalWrite(m4, LOW); //moteur droit marche
  }
  
}



amitié à tous
Olivier

ocoquet

Précision importante,

Le projet, la programmation, la logique de fonctionnement, le choix des composants sont l'oeuvre de Benoît.

Je ne suis la que pour la réalisation pratique pour des raisons d'emploie du temps !!!!


Amitié à tous
Olivier

ocoquet

#4
Mar 16, 2013, 11:51 am Last Edit: Mar 17, 2013, 08:10 am by ocoquet Reason: 1
petite modification du programme, les roues gauches et droite tournent en sens inverse pour accélérer la rotation du robot.

Quote

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int m1 = 4;
int m2 = 5;
int m3 = 6;
int m4 = 7;
int led = 13;
int obstacle = 3;

// the setup routine runs once when you press reset:
void setup() {               
  // initialize the digital pin as an output.
  pinMode(m1, OUTPUT);
  pinMode(m2, OUTPUT);
  pinMode(m3, OUTPUT);
  pinMode(m4, OUTPUT);
  pinMode(led, OUTPUT);
  pinMode(obstacle,INPUT);
  
  digitalWrite(m1, HIGH); //moteur gauche stop
  digitalWrite(m2, HIGH); //moteur gauche en position avant
  digitalWrite(m3, HIGH); //moteur droit stop
  digitalWrite(m4, HIGH); //moteur droit en position avant
  
  digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
  // Phase de test des moteurs
  delay(2000);
  //Mise en route des deux moteurs
  digitalWrite(m2, HIGH); //moteur gauche en position avant
  digitalWrite(m3, HIGH); //moteur droit en position avant
  digitalWrite(m1, LOW); //moteur gauche marche
  digitalWrite(m4, LOW); //moteur droit marche

}

// the loop routine runs over and over again forever:
void loop() {
 
  //lecture capteur
  int val = digitalRead(obstacle);
  if (val > 0)
  {
  digitalWrite(m1, HIGH); //moteur gauche stop
  digitalWrite(m4, HIGH); //moteur droit stop
  digitalWrite(m2, LOW); //moteur gauche en position arrière
  digitalWrite(m3, LOW); //moteur droit en position arrière
  digitalWrite(m1, LOW); //moteur gauche marche
  digitalWrite(m4, LOW); //moteur droit marche
  delay(5000);
  digitalWrite(m1, HIGH); //moteur gauche stop
  digitalWrite(m4, HIGH); //moteur droit stop
  digitalWrite(m2, HIGH); //moteur gauche en position avant
  digitalWrite(m3, LOW); //moteur droit en position arrière
  digitalWrite(m1, LOW); //moteur gauche marche
  digitalWrite(m4, LOW); //moteur droit marche
  delay(11500);
  digitalWrite(m1, HIGH); //moteur gauche stop
  digitalWrite(m4, HIGH); //moteur droit stop
  digitalWrite(m2, HIGH); //moteur gauche en position avant
  digitalWrite(m3, HIGH); //moteur droit en position avant
  digitalWrite(m1, LOW); //moteur gauche marche
  digitalWrite(m4, LOW); //moteur droit marche
  }
  
}



amitié à tous
Olivier

Jean-François

Les codes entre les balises, merci !
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

ocoquet

désolé un souci avec mon copier/coller

Jean-François

Tu peux éditer en cliquant sur "modify" en haut à droite du message et rajouter les balises avec le bouton #
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

ocoquet

cette fois ci c'est fait.

Amitié
Olivier

Jean-François

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Go Up