ENIB 2022 - groupe D : Tirolaser

De Les Fabriques du Ponant
Révision datée du 18 janvier 2022 à 18:00 par Tirolaser (discussion | contributions) (Comment refaire ce projet?)
Aller à : navigation, rechercher

Photo de l'équipe

                             ,-.             __
                            ,'   `---.___.---'  `.
                          ,'   ,-                 `-._
                        ,'    /                       \
                     ,\/     /                        \\
                 )`._)>)     |                         \\
                 `>,'    _   \                  /       |\
                   )      \   |   |            |        |\\
          .   ,   /        \  |    `.          |        | ))
          \`. \`-'          )-|      `.        |        /((
           \ `-`   a`     _/ ;\ _     )`-.___.--\      /  `'
            `._         ,'    \`j`.__/        \  `.    \
              / ,    ,'       _)\   /`        _) ( \   /
              \__   /        /nn_) (         /nn__\_) (
                `--'           /nn__\             /nn__\

Que fait ce projet ?

C'est un stand de tir avec un pistolet laser.

Liste des composants

  • 1 boite en bois
  • 1 plaque de carton
  • 4 LEDs RGB
  • Une Arduino Nano et son câble d'alimentation USB 5V
  • Une diode laser
  • 3 Piles AA + un rack de 3 piles
  • Le boitier de pistolet fait par imprimante 3D
  • 2 Photorésistances
  • Des câbles
  • Un plaque Labdec

Comment refaire ce projet?

Débrouillez vous


Pour le pistolet, utilisez ces deux fichier d'impression 3D Média:pistolet.stl.ogg et Média:Couvercle pistolet.stl.ogg

Code

#define LDR1 A1  // composante photorésistance sur la pin A1
#define LDR2 A2  // composante photorésistance sur la pin A1
#define LDR3 A3  // composante photorésistance sur la pin A1
#define LDR4 A4  // composante photorésistance sur la pin A1
#define LDR5 A5  // composante photorésistance sur la pin A1
int value_LDR1;
int value_LDR2;
int value_LDR3;
int value_LDR4;
int value_LDR5;

int target;
int new_target;
int score;
int miss;

long T;
unsigned long previousMicros_target;
unsigned long previousMillis_score;
int actual_score;
int previous_score;

int red_light_pin1 = 2;
int green_light_pin1 = 3;

int red_light_pin2 = 11;
int green_light_pin2 = 10;

int green_on;
int orange_on;
int red_on;
 
void setup() {

randomSeed(analogRead(7));
  
Serial.begin(9600);
pinMode(LDR1, INPUT);
pinMode(LDR2, INPUT);
pinMode(LDR3, INPUT);
pinMode(LDR4, INPUT);
pinMode(LDR5, INPUT);

pinMode(red_light_pin1, OUTPUT);
pinMode(green_light_pin1, OUTPUT);

pinMode(red_light_pin2, OUTPUT);
pinMode(green_light_pin2, OUTPUT);

value_LDR1 = 0;

green_on = 0;
orange_on = 0;
red_on = 0;

T = 1000;
previousMicros_target = 0;
previousMillis_score = 0;
score = 0;


}

void loop() {

if (target == 0 or new_target == 1){
  target = random(1,3);
  new_target = 0;
}

unsigned long currentMicros = millis();     //attribution du temps d'éxécution du programme à une variable


value_LDR1 = analogRead(LDR1);
value_LDR2 = analogRead(LDR2);
value_LDR3 = analogRead(LDR3);
value_LDR4 = analogRead(LDR4);
value_LDR5 = analogRead(LDR5);


if (new_target == 0){
  if (currentMicros - previousMicros_target >= T and green_on == 0 and orange_on == 0 and red_on == 0){
    if (target == 1){
      RGB_color_1(255,0);
      RGB_color_2(255,255);
    }
    else if (target == 2){
      RGB_color_2(255,0);
      RGB_color_1(255,255);
    }
    previousMicros_target = currentMicros;
    green_on = 1;
  }
  if (currentMicros - previousMicros_target >= T and currentMicros - previousMicros_target <= 2*T and green_on == 1 and orange_on == 0 and red_on == 0){
    if (target == 1){
      RGB_color_1(0,100);
    }
    else if (target == 2){
      RGB_color_2(0,100);
    }
    green_on = 0;
    orange_on = 1;
  }
  if (currentMicros - previousMicros_target >= 2*T and currentMicros - previousMicros_target <= 3*T and green_on == 0 and orange_on == 1 and red_on == 0){
    if (target == 1){
      RGB_color_1(0,255);
    }
    else if (target == 2){
      RGB_color_2(0,255);
    }
    orange_on = 0;
    red_on = 1;
  }
  if (currentMicros - previousMicros_target >= 3*T and currentMicros - previousMicros_target <= 4*T and green_on == 0 and orange_on == 0 and red_on == 1){
    if (target == 1){
      RGB_color_1(255,255);
      miss = miss + 1;
      new_target = 1;
    }
    else if (target == 2){
      RGB_color_2(255,255);
      miss = miss + 1;
      new_target = 1;
    }
    red_on = 0;
  }
}

  if (target == 1 and value_LDR1 > 950 and currentMicros - previousMillis_score >= 100){
    RGB_color_1(255,255);
    new_target = 1;
    green_on = 0;
    orange_on = 0;
    red_on = 0;
    score = score + 1;
    previousMillis_score = currentMicros;
  }
  else if (target == 2 and value_LDR2 > 950 and currentMicros - previousMillis_score >= 100){
    RGB_color_1(255,255);
    new_target = 1;
    green_on = 0;
    orange_on = 0;
    red_on = 0;
    score = score + 1;
    previousMillis_score = currentMicros;
  }

}


void RGB_color_1(int red_light_value1, int green_light_value1)
 {
  analogWrite(red_light_pin1, red_light_value1);
  analogWrite(green_light_pin1, green_light_value1);
}
void RGB_color_2(int red_light_value2, int green_light_value2)
 {
  analogWrite(red_light_pin2, red_light_value2);
  analogWrite(green_light_pin2, green_light_value2);
}
//void RGB_color_3(int red_light_value3, int green_light_value3, int blue_light_value3)
// {
//  analogWrite(red_light_pin3, red_light_value3);
//  analogWrite(green_light_pin3, green_light_value3);
//  analogWrite(blue_light_pin3, blue_light_value3);
//}
//void RGB_color_4(int red_light_value4, int green_light_value4, int blue_light_value4)
// {
//  analogWrite(red_light_pin4, red_light_value4);
//  analogWrite(green_light_pin4, green_light_value4);
//  analogWrite(blue_light_pin4, blue_light_value4);
//}
//void RGB_color_5(int red_light_value5, int green_light_value5, int blue_light_value5)
// {
//  analogWrite(red_light_pin5, red_light_value5);
//  analogWrite(green_light_pin5, green_light_value5);
//  analogWrite(blue_light_pin5, blue_light_value5);
//}

Catégories