Capteur à InfraRouge Détecter des obstacles avec un capteur à ultrasons Utiliser un capteur à UltraSon Eviter les obstacles avec des moustaches
Accueil du site | Accessibilité | Rechercher | Menu | Contenu | Plan du site | | Contact

°°TechNoLand°°

°°TechNoLand°°

 

Eviter les obstacles avec des moustaches

10 novembre 2012
par chamayou

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

Activité 1 :Réaliser l’organigramme de programmation

opendocument graphics - 12.2 ko

Activité 2 :Programmer le robot avec PhysicalEtoys avec liaison filaire

Exemple :

Activité 3 :Programmer le robot avec PhysicalEtoys sans liaison filaire

Il faut programmer physical etoys en changeant le mode de connexion. Il faut ensuite charger le programme principal (les sous-programmes seront aussi chargés).

Activité 4 :Programmer avec l’IDE arduino

// robot avance, tourne droit ou gauche si capteur droit ou gauche
// by f. chamayou

#include <Servo.h>

Servo servod;  // cree un objet servodroit
Servo servog;  // cree un objet servogauche
int captdroit = 2;
int captgauche = 3;

// setup : programme lu une seule fois
void setup()
{
 servod.attach(8);  // servo droit connecté sur sortie 8
 servog.attach(9);  // servo gauche connecté sur sortie 9
 pinMode(captdroit, INPUT);
 pinMode(captgauche, INPUT);

}

// loop : programme en boucle
void loop()
{
if (digitalRead(captdroit) == HIGH) {
recularret ();
retournegauche ();
} else if (digitalRead(captgauche) == HIGH) {
recularret ();
retournedroit (); // dit au servo gauche de prendre la position 0
} else avance();
}

 
void avance()
{
servod.write(180);   // dit au servo droit de prendre la position 180
servog.write(0);     // dit au servo gauche de prendre la position 0
delay(300);         // attendre 5000 ms (5s)  
}

void recularret()
{
servod.write(99);
servog.write(101);
   delay(200);
servod.write(0);
servog.write(180);
   delay(1000);
}

void retournegauche()
{
servod.write(180);
servog.write(180);
   delay(600);      
}

void retournedroit()
{
servod.write(0);
servog.write(0);
   delay(600);      
}

Test :


calle

calle