ENIB 2022 - groupe A : Palette en Bois
photo de l'équipe
Que fait ce projet ?
c'est un jeu de palette en bois : Lancer une petite palette de diamètre 15mm, après il y a un capteur ultra son qui capte la position du palette et selon sa position un Led s'allume.
- Règles de jeu :
tirer une palette avec un élastique et il y a une zone à viser : * si la palette tombe dans le carré la LED ne s'éteint pas et on gagne * si la palette ne tombe pas dans le carré la LED s'éteint et on perd
Liste des composants
- composant 1 Carte Arduino
- composant 2 Bois
- composant 3 Capteur ultra son
- composant 4 Fils
- composant 5 Led
Code
ici je pose mon code documenté !
/* Constantes pour les broches */ const byte TRIGGER_PIN = 5; // Broche TRIGGER const byte ECHO_PIN = 4; // Broche ECHO
/* Constantes pour le timeout */ const unsigned long MEASURE_TIMEOUT = 25000UL; // 25ms = ~8m à 340m/s
/* Vitesse du son dans l'air en mm/us */ const float SOUND_SPEED = 340.0 / 1000;
- define LEDPIN 13
/** Fonction setup() */ void setup() {
/* Initialise le port série */ Serial.begin(9600); /* Initialise les broches */ pinMode(TRIGGER_PIN, OUTPUT); digitalWrite(TRIGGER_PIN, LOW); // La broche TRIGGER doit être à LOW au repos pinMode(ECHO_PIN, INPUT); pinMode(LEDPIN, OUTPUT);
}
/** Fonction loop() */ void loop() {
/* 1. Lance une mesure de distance en envoyant une impulsion HIGH de 10µs sur la broche TRIGGER */ digitalWrite(TRIGGER_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIGGER_PIN, LOW); /* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */ long measure = pulseIn(ECHO_PIN, HIGH, MEASURE_TIMEOUT); /* 3. Calcul la distance à partir du temps mesuré */ float distance_mm = measure / 2.0 * SOUND_SPEED; float a = distance_mm; /* Affiche les résultats en mm, cm et m */ Serial.print(F("Distance: ")); Serial.print(a); Serial.print(F("mm \n"));
if(a>60){
digitalWrite(LEDPIN,HIGH);//led on
} else{ digitalWrite(LEDPIN,LOW);//led off }
/* Délai d'attente pour éviter d'afficher trop de résultats à la seconde */ delay(500);
}