Hardrobot : Différence entre versions
(→3 Détection de l'arrivée) |
|||
Ligne 114 : | Ligne 114 : | ||
On utilise un capteur optique pour détecter le changement de couleur du sol ainsi on détectera la zone d'arrivée du robot. | On utilise un capteur optique pour détecter le changement de couleur du sol ainsi on détectera la zone d'arrivée du robot. | ||
Voici le schéma du cablage du capteur optique: | Voici le schéma du cablage du capteur optique: | ||
− | [[Fichier:Detect_arrive. | + | [[Fichier:Detect_arrive.jpg|100px]] |
Version du 15 mars 2013 à 14:38
Sommaire
1 ere Étape moteur
programme arduino
int pwm_a = 10;
//PWM control for motor outputs 1 and 2 is on digital pin 10
int pwm_b = 11;
//PWM control for motor outputs 3 and 4 is on digital pin 11
int Pindir_a = 12;
int dir_a=0;
//PWM control for motor outputs 1 and 2 is on digital pin 12
int Pindir_b = 13;
int dir_b=0;
//PWM control for motor outputs 3 and 4 is on digital pin 13
int val;
int compteur;
int entreePin=4;
int entreePin2=2;
char c;
void setup() {
Serial.begin(115200); // ouvre le port série, fixe le débit à 9600 bauds
pinMode(pwm_a, OUTPUT); //Set control pins to be outputs
pinMode(pwm_b, OUTPUT);
pinMode(Pindir_a, OUTPUT);
pinMode(dir_b, OUTPUT);
pinMode(Pindir_b, OUTPUT);
//capteur optique
attachInterrupt (0,test , CHANGE);//patte 2, moteur a
attachInterrupt (1,test2 , CHANGE);//patte 3, moteur b
//sens du moteur
dir_a=1;//si 0 recule,si 1 avance
digitalWrite(Pindir_a, dir_a);
dir_b=1;//si 0 recule,si 1 avance
digitalWrite(Pindir_b, dir_b);
}
void test()
{
if (dir_a==1){
compteur=compteur+1;
}
else{
compteur=compteur-1;
}
Serial.println(compteur);
}
void test2(){
Serial.println("change2");
}
void loop(){
c = Serial.read();
if(compteur<=5000){
analogWrite(pwm_a, 100);
analogWrite(pwm_b, 100);
}
if(compteur>=5000){
analogWrite(pwm_a, 0);
analogWrite(pwm_b, 0);
}
}
roue codeuse et capteur optique
1.remplacement des nouvel roue codeuse 30 noir 30 blache 4 degret chacune
2.voici le shéma du cablage que nous avons réalisé
3.Mise en place des capteur, puis test petit problème du à l'alignement des capteurs optiques et à la position qui créaient des frottement sur le moteur. Réparation du et remise en place des composants. Mise en place de la batterie.
2 ème étape l'esquive
capteur de proximité
On a choisi de mettre 3 capteurs fait a base de photodiode et photo-transistor. L'émetteur d'entrée est alimenté sous un courant provocant une émission radiative puis récupérée par la base du photo-transistor pour donner à la sortie un courant collecteur. Listes des composants: - 1 photodiode LD271
- 1 photo-transistor BPW50 - 1 résistance de 19 Ohm - 1 résistance de 220 KOhm
Schéma de principe:
Détection de blocage
Grace a une commande interrupt on peut constater quand le robot est à l’arrêt.
cli(); //stop interrupts // TCCR1A = 0; // Reset control registers // TCCR1B = 0; // Reset control registers // TCCR1B |= (1 << WGM12); // Clear Timer on Compare Match (CTC) Mode // TCCR1B |= (1 << CS10); // Prescaler x1 // OCR1A = 255; // Set compared value // TIMSK1 = 0; // Reset Timer/Counter2 Interrupt Mask Register TIMSK1 |= (1 << OCIE1A); // Enable Output Compare Match A Interrupt */ sei(); //allow interrupts } ISR(TIMER1_COMPA_vect) { //timer1 interrupt 1Hz toggles pin 13 (LED) testtimer++; if (testtimer==2000) { testtimer=0; afaire=1; } }
3 Détection de l'arrivée
On utilise un capteur optique pour détecter le changement de couleur du sol ainsi on détectera la zone d'arrivée du robot. Voici le schéma du cablage du capteur optique: 100px