Un petit projet simple de robot

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

les photos de la réalisation.

Le programme et les explications sur le fonctionnement suivront.

Amitié
Olivier

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:

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

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

petite modification du programme, les roues gauches et droite tournent en sens inverse pour accélérer la rotation du robot.

// 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

Les codes entre les balises, merci !

désolé un souci avec mon copier/coller

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

cette fois ci c'est fait.

Amitié Olivier

Merci.