Vous êtes sur la page 1sur 2

Exercice-07 Domotique/Robotique

Arduino avec Ardublock


Robot Labyrinthe

Eviter les obstacles avec des moustaches


Le robot doit être capable de détecter devant lui des
obstacles. Pour cela, on placera deux contacteurs à
l’avant.

Activité 1 : Logigramme
Réaliser le logigramme du robot.
Robot avance
Actions possible :
tourne droite de xx°, tourne gauche
de xx°, arrêt, avance, recule

Conditions : obstacle à droite


mur à droite, mur à gauche oui

non

Pour cela, il faut fixer les données suivantes :


- Valeurs des servomoteurs
Avance Arrêt Recule
Servo droit (d)
Servo gauche (g)

Ce qui donnera ensuite ce qui suit sur l'organigramme :

Servo d =
Servo g =

Contacteur droit

oui

non

Faire le branchement

Arduino avec Ardublock page 1 / 2 Alain GRIMAULT


Exercice-07 Domotique/Robotique
Arduino avec Ardublock
Robot Labyrinthe

Réaliser le programme Ardublock

Voici le programme en langage Arduino


// robot avance, tourne droit ou gauche si }
capteur droit ou gauche void avance()
#include <Servo.h> {
servod.write(180); // dit au servo droit de
Servo servod; // cree un objet servodroit prendre la position 180
Servo servog; // cree un objet servogauche servog.write(0); // dit au servo gauche de
int captdroit = 2; prendre la position 0
int captgauche = 3; delay(300); // attendre 5000 ms (5s)
}
// setup : programme lu une seule fois void recularret()
void setup() {
{ servod.write(99);
servod.attach(8); // servo droit connecté sur servog.write(101);
sortie 8 delay(200);
servog.attach(9); // servo gauche connecté sur servod.write(0);
sortie 9 servog.write(180);
pinMode(captdroit, INPUT); delay(1000);
pinMode(captgauche, INPUT); }
} void retournegauche()
// loop : programme en boucle {
void loop() servod.write(180);
{ servog.write(180);
if (digitalRead(captdroit) == HIGH) { delay(600);
recularret (); }
retournegauche (); void retournedroit()
} else if (digitalRead(captgauche) == HIGH) { {
recularret (); servod.write(0);
retournedroit (); // dit au servo gauche de servog.write(0);
prendre la position 0 delay(600);
} else avance(); }

Arduino avec Ardublock page 2 / 2 Alain GRIMAULT

Vous aimerez peut-être aussi