Voici ce que peux faire mon robot.
Donc il peux évité les obstacle grasse a c'est 3 capteur infrarouge , et il a aussi un capteur de mouvement infrarouge PIR qui permet des qu'il voie un mouvement une LED s'allume , et un buzzer se mes a sonner.
Voila ça fonction.
Pour commencer voici ce qu'il faut comme matériel.
La ou j'ai acheté mon matos: http://www.arobose.com/shop/
3 module capteur de distance infrarouge Sharp GP2D12
1 support pour un capteur infrarouge sharp
kit 20 fil connecteur mâle
cable USB A-B
Batterie Lipo 7,4V 2200mAh
Une carte chipKIT Uno 32.
une carte Arduino Motor Shield (L293) (SKU: DRI0001) qui vas sur la carte arduinoDFR
Module buzzer digitale.
Capteur de mouvement infrarouge
Plateforme robot mobile 2 roues
Télécharger l'environnement de la programmation de la carte chipKIT Uno 32 ici.
Voici le programme que vous aller coller dans votre environnement.( logiciel chipkit uno 32 )
Donc il peux évité les obstacle grasse a c'est 3 capteur infrarouge , et il a aussi un capteur de mouvement infrarouge PIR qui permet des qu'il voie un mouvement une LED s'allume , et un buzzer se mes a sonner.
Voila ça fonction.
Pour commencer voici ce qu'il faut comme matériel.
La ou j'ai acheté mon matos: http://www.arobose.com/shop/
3 module capteur de distance infrarouge Sharp GP2D12
1 support pour un capteur infrarouge sharp
kit 20 fil connecteur mâle
cable USB A-B
Batterie Lipo 7,4V 2200mAh
Une carte chipKIT Uno 32.
une carte Arduino Motor Shield (L293) (SKU: DRI0001) qui vas sur la carte arduinoDFR
Module buzzer digitale.
Capteur de mouvement infrarouge
Plateforme robot mobile 2 roues
Télécharger l'environnement de la programmation de la carte chipKIT Uno 32 ici.
Voici le programme que vous aller coller dans votre environnement.( logiciel chipkit uno 32 )
- Code:
int LEDROUGE = 2; // broche digitale pour la LEDROUGE 2
int capteur = 0; // broche analogique utilisé pour connecter le capteur infrarouge SHARP sur la broche 0 droite
int capteur1 = 1; // broche analogique utilisé pour connecter le capteur1 infrarouge SHARP sur la broche 1 gauche
int capteur2 = 2; // broche analogique utilisé pour connecter le capteur2 infrarouge SHARP sur la broche 2 gauche
int val; // Variable pour lire la valeur du capteur de la broche analogique 1
int val2; // Variable pour lire la valeur du capteur1 de la broche analogique 1
int val3; //Variable pour lire la valeur du capteur2 de la broche analogique 1
int val4 = 0; // Variable pour la lecture de l'état de la broches
int LED13 = 13; // Choisir la broche pour la LED 13
int Mouvement = 3; // Choisir la broche d'entrée (pour le capteur PIR)
int EX = LOW; // Je commence, en supposant qu'aucun mouvement sera détecté
// Moteur
int EN1 = 6;
int EN2 = 5;
int IN1 = 7;
int IN2 = 4;
void Moteur1(int pwm, boolean reverse)
{
analogWrite(EN1,pwm); //définir le contrôle PWM, 0 pour l'arrêt, et 255 pour une vitesse maximale
if(reverse)
{
digitalWrite(IN1,HIGH);
}
else
{
digitalWrite(IN1,LOW);
}
}
void Moteur2(int pwm, boolean reverse)
{
analogWrite(EN2,pwm);
if(reverse)
{
digitalWrite(IN2,HIGH);
}
else
{
digitalWrite(IN2,LOW);
}
}
void setup()
{
int i;
for(int i=3;i<=8;i++) // Shield Moteur
pinMode(i, OUTPUT); //met les pin 4,5,6,7 en mode sortie
pinMode(LEDROUGE, OUTPUT); // Déclare la LEDROUGE 2 en sortie
pinMode(LED13, OUTPUT); // Déclare la LED 8 en sortie
pinMode(Mouvement, INPUT); // Déclare le capteur comme une entrée
Serial.begin(9600);
}
void loop()
{
digitalWrite(LEDROUGE, HIGH);
val = analogRead(capteur); // lit la valeur du capteur SHARP
val2 = analogRead(capteur1); // lit la valeur du capteur 1 SHARP
val3 = analogRead(capteur2); // lit la valeur du capteur 2 SHARP
delay(100);
if ((val >= 255) || (val2 >= 255) || (val3 >= 255)) // si on est à quelque cm d'un obstacle pour les 3 capteurs
{
Moteur1(0,true); //j'arrete le moteur 1
Moteur2(0,true); // j'arrete le moteur 2
delay(200); //j'attend 2 seconde
Moteur1(100,true); //J'avance tout droit
Moteur2(0,true); // j'arrete le moteur 2
delay(200); //la valeur à mettre reste à définir en fonction de la vitesse du robot
Moteur1(100,true); //J'avance tout droit en metant les 2 moteurs
Moteur2(105,false); //J'avance tout droit en metant les 2 moteurs ( Moteur2 un peux faible donc valeur 105 )
}
else
{
Moteur1(100,false); //J'avance tout droit en metant les 2 moteurs
Moteur2(105,true); //J'avance tout droit en metant les 2 moteurs ( Moteur2 un peux faible donc valeur 105 )
val3 = digitalRead(Mouvement); // Lire la valeur d'entrée
if (val4 == HIGH) // Vérifier si l'entrée est HAUTE
{
digitalWrite(LED13, HIGH); // Clignotants àLED 13 ON
if (EX == LOW)
{
// allumage
Serial.println("Mouvement detecte!!!!!");
EX = HIGH;
}
}
else
{
digitalWrite(LED13, LOW); // Clignotants à LED 13 OFF
if (EX == HIGH)
delay(1);
{
//éteinte
Serial.println("Mouvement terminee!");
EX = LOW;
delay(1);
}
}
}
}
Dernière édition par Seb le Mar 12 Juin - 14:08, édité 8 fois