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