Hardrobot : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Détection de blocage)
Ligne 96 : Ligne 96 :
 
Grace a une commande interrupt on peut constater quand le robot est à l’arrêt.
 
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;  } }
+
  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;  } }

Version du 5 mars 2013 à 14:44

1 ere Étape moteur

programme arduino

Présentation en ligne

 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é Schema fourche optique.jpg

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;  } }