Pages: [1]   Go Down
Author Topic: Un petit projet simple de robot  (Read 3935 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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


* 001_web.jpg (283.26 KB, 2454x1891 - viewed 303 times.)
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

les photos de la réalisation.

Le programme et les explications sur le fonctionnement suivront.


Amitié
Olivier


* 20130315_161932_web.jpg (110.79 KB, 800x582 - viewed 166 times.)

* 20130315_162000_web.jpg (91.32 KB, 630x532 - viewed 102 times.)

* 20130315_162009_web.jpg (136.86 KB, 800x600 - viewed 90 times.)
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: March 17, 2013, 02:10:52 am by ocoquet » Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3230
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Les codes entre les balises, merci !
Logged

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

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

désolé un souci avec mon copier/coller
Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3230
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Tu peux éditer en cliquant sur "modify" en haut à droite du message et rajouter les balises avec le bouton #
Logged

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

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

cette fois ci c'est fait.

Amitié
Olivier
Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3230
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci.
Logged

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

Pages: [1]   Go Up
Jump to: