Hardrobot

De troyesGEII
Révision datée du 22 février 2013 à 08:58 par Troyesgeii (discussion | contributions) (2 ème étape capteur de proximité)
Aller à : navigation, rechercher

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