ENIB 2023 : Les petits voyageurs

De Les Fabriques du Ponant
Révision datée du 26 janvier 2023 à 14:36 par L0cazard (discussion | contributions) (Code)
Aller à : navigation, rechercher

Les petits voyageurs:

Description courte

Résoudre une énigme faisant deviner un pays.

Déplacer le capteur de couleur dans le labyrinthe pour faire une suite de couleur correspondant au drapeau du pays.

Matériels et machines utilisés

  • plaque de bois de 30cm x 30cm
  • 2 boutons poussoirs
  • 1 capteur RGB TCS3200
  • carte Arduino
  • cartons ( pour créer le prototype)
  • câbles Dupont
  • plaque de Cork de 30cm x 30cm
  • découpeuse laser
  • poste à souder
  • pistolet a colle

Réalisation

Etape 1: Souder les composants si nécessaires.

Etape 2: Créer les énigmes. Ci dessous la liste de nos énigmes Fichier:Liste des énigmes.docx

Etape 3: Ecrire le code. (cf code ci dessous)

Etape 4: Etablir un plan du labyrinthe.

Petits voyageurs 1.jpg

Etape 5: Faire un prototype du labyrinthe en carton.

Petit voyageurs2.jpg

Etape 6: tracer le labyrinthe sur la plaque de bois.

Petit voyageurs3.jpg

Etape 7: Sur inskape, creer un fichier avec toutes les murs du labyrinthe qui doivent être découpés / graver.

téléchargez le svg


Etape 8: Découper et graver les murs du labyrinthe à la découpe laser.

Murs.jpeg

Etape 9: Peindre certaines cases du labyrinthe en fonction des couleurs nécessaires. Astuce : Mettre du scotch pour avoir des bords lisses

Peinture.jpeg —> Peinture2.jpeg


Etape 10: A l'aide de la colle à bois, coller les murs du labyrinthe.

Colle1.jpeg —> Colle2.jpeg


Code

#define brocheS0 2




#define brocheS1 3


#define brocheS2 4


#define brocheS3 5


#define brocheLecture 6


#define brocheLED 7







// valeur mesurée pour chaque couleur


int rouge, vert, bleu, total;







void setup() {







 pinMode(brocheS0, OUTPUT);


 pinMode(brocheS1, OUTPUT);


 pinMode(brocheS2, OUTPUT);


 pinMode(brocheS3, OUTPUT);


 pinMode(brocheLED, OUTPUT);


 pinMode(brocheLecture, INPUT);







 // éteignons les LEDs pour l'instant


 digitalWrite(brocheLED, LOW);







 // Réglage de l'échelle de fréquence à 2% (plus facile à lire avec pulseIn)


 digitalWrite(brocheS0, LOW);


 digitalWrite(brocheS1, HIGH);







 // pour affichage des résultats dans le moniteur série


 Serial.begin(9600);







}












void loop() {







 digitalWrite(brocheLED, HIGH);  // on allume les LEDs







 digitalWrite(brocheS2, LOW); // rouge


 digitalWrite(brocheS3, LOW);


 rouge = pulseIn(brocheLecture, LOW);







 Serial.print("rouge: ");


 Serial.print(rouge);







 digitalWrite(brocheS2, HIGH); // vert


 digitalWrite(brocheS3, HIGH);


 vert = pulseIn(brocheLecture, LOW);







 Serial.print("  vert: ");


 Serial.print(vert);







 digitalWrite(brocheS2, LOW); // bleu


 digitalWrite(brocheS3, HIGH);


 bleu = pulseIn(brocheLecture, LOW);







 Serial.print(" bleu: ");


 Serial.print(bleu);







 digitalWrite(brocheS2, HIGH); // lumière complète, sans filtre


 digitalWrite(brocheS3, LOW);


 total = pulseIn(brocheLecture, LOW);






 Serial.print("  total: ");


 Serial.println(total);







 digitalWrite(brocheLED, LOW);   // on éteint les LEDs


 delay(1000); // pause avant la prochaine mesure


Catégories