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

 
Voir en ligne

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