ENIB 2023 : Panique dans les Monts : Différence entre versions
(→photo de l'équipe) |
(→Code) |
||
(10 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | == | + | ==Photo de l'équipe== |
− | [[Fichier:photo_pdgo.jpg]] | + | [[Fichier:photo_pdgo.jpg||600px]] |
− | ==Que | + | ==Que faut-il faire dans ce projet ? == |
+ | |||
+ | Deux alpinistes se sont perdu dans les monts durant une randonnée. Afin de sauver leur vie il faut résoudre une suite d'enigme. Chaque solution vous amènera a la prochaine énigme pour trouver la trappe ou se trouve les alpinistes. | ||
==Liste des composants== | ==Liste des composants== | ||
− | * | + | * W-mos D1 mini |
− | * | + | * Ecran LCD |
− | * .. | + | * Moteur |
+ | * Bouton poussoir | ||
+ | * Resistance | ||
+ | |||
+ | ==Liste des machines utilisé== | ||
+ | |||
+ | * Découpeuse laser | ||
+ | * Imprimante 3D | ||
+ | * Pistolet a colle | ||
+ | * Fer a souder | ||
+ | |||
+ | ==Photos du câblage== | ||
+ | [[Fichier:cablage1.jpg||400px]] | ||
+ | [[Fichier:cablage2.jpg||400px]] | ||
==Code== | ==Code== | ||
<pre> | <pre> | ||
− | ici je | + | #include <Servo.h> // permet de faire appel à la bibliothèque Servo |
+ | |||
+ | #include <Wire.h> | ||
+ | #include <LiquidCrystal_I2C.h> | ||
+ | |||
+ | LiquidCrystal_I2C lcd(0x27,16,2); | ||
+ | |||
+ | Servo monservo; // crée une constante appelée « monservo » utilisable par la bibliothèque Servo. | ||
+ | // (vous pouvez la nommez comme vous voulez, exemple : servo_1, mais pensez à le remplacer dans le programme). | ||
+ | |||
+ | int boutonservo = D6; | ||
+ | int boutonlcd = D7 ; // déclare le bouton poussoir sur la PIN 8. | ||
+ | int etatboutonservo = 0; // variable représentant le bouton, soit ouvert ou fermé, ici au départ à 0 donc fermé. | ||
+ | int etatboutonlcd = 0; // variable représentant le bouton, soit ouvert ou fermé, ici au départ à 0 donc fermé. | ||
+ | |||
+ | |||
+ | void setup() { | ||
+ | pinMode (boutonservo, INPUT) ; // on indique que le bouton est une entrée. | ||
+ | pinMode (boutonlcd, INPUT) ; // on indique que le bouton est une entrée. | ||
+ | |||
+ | monservo.attach(D5); // commande de la bibliothèque Servo, qui consiste à « attacher » le servomoteur à la PIN 9 | ||
+ | monservo.write (0); | ||
+ | |||
+ | lcd.init(); | ||
+ | |||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | etatboutonservo = digitalRead (boutonservo); // On lit l’état du bouton pour savoir s’il est ouvert ou fermé | ||
+ | |||
+ | if (etatboutonservo==HIGH) { // Si la variable “etatbouton” est ouverte, à l’état haut, donc laisse passer le courant. | ||
+ | monservo.write (190); // alors le servomoteur prend un angle de 90°. | ||
+ | delay(5000) ; // on attend un délais de 5 secondes | ||
+ | |||
+ | lcd.backlight(); | ||
+ | lcd.clear(); | ||
+ | lcd.setCursor(0,0); | ||
+ | lcd.print("trouves le bouton"); | ||
+ | lcd.setCursor(0,1); | ||
+ | lcd.print("des énigmes"); | ||
+ | //monservo.write (0); // le servomoteur revient à l’angle 0, sa position de départ. | ||
+ | //delay(150); // crée un délais de 150 millisecondes avant de refaire la boucle et de tester à nouveau l’état du bouton. | ||
+ | } | ||
+ | |||
+ | etatboutonlcd = digitalRead (boutonlcd); // On lit l’état du bouton pour savoir s’il est ouvert ou fermé | ||
+ | |||
+ | if (etatboutonlcd==HIGH) { | ||
+ | lcd.backlight(); | ||
+ | lcd.clear(); | ||
+ | lcd.setCursor(0,0); | ||
+ | lcd.print("Enigme 1"); | ||
+ | lcd.setCursor(0,1); | ||
+ | lcd.print("Sans moi, Paris"); | ||
+ | delay(2000); | ||
+ | lcd.clear(); | ||
+ | lcd.setCursor(0,0); | ||
+ | lcd.print("Enigme 1"); | ||
+ | lcd.setCursor(0,1); | ||
+ | lcd.print("serait pris !"); | ||
+ | delay(2000); | ||
+ | lcd.clear(); | ||
+ | lcd.setCursor(0,0); | ||
+ | lcd.print("Enigme 1"); | ||
+ | lcd.setCursor(0,1); | ||
+ | lcd.print("Qui suis-je ? "); | ||
+ | delay(3000); | ||
+ | lcd.clear(); | ||
+ | lcd.setCursor(0,0); | ||
+ | lcd.print("Enigme 2"); | ||
+ | lcd.setCursor(0,1); | ||
+ | lcd.print("l'oiseau me "); | ||
+ | delay(2000); | ||
+ | lcd.clear(); | ||
+ | lcd.setCursor(0,0); | ||
+ | lcd.print("Enigme 2"); | ||
+ | lcd.setCursor(0,1); | ||
+ | lcd.print("sort et l'humain "); | ||
+ | delay(2000); | ||
+ | lcd.clear(); | ||
+ | lcd.setCursor(0,0); | ||
+ | lcd.print("Enigme 2"); | ||
+ | lcd.setCursor(0,1); | ||
+ | lcd.print("me vole! "); | ||
+ | delay(2000); | ||
+ | lcd.clear(); | ||
+ | lcd.setCursor(0,0); | ||
+ | lcd.print("Enigme 2"); | ||
+ | lcd.setCursor(0,1); | ||
+ | lcd.print("Qui suis-je ? "); | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | |||
</pre> | </pre> | ||
Version actuelle datée du 26 janvier 2023 à 15:04
Sommaire
Photo de l'équipe
Que faut-il faire dans ce projet ?
Deux alpinistes se sont perdu dans les monts durant une randonnée. Afin de sauver leur vie il faut résoudre une suite d'enigme. Chaque solution vous amènera a la prochaine énigme pour trouver la trappe ou se trouve les alpinistes.
Liste des composants
- W-mos D1 mini
- Ecran LCD
- Moteur
- Bouton poussoir
- Resistance
Liste des machines utilisé
- Découpeuse laser
- Imprimante 3D
- Pistolet a colle
- Fer a souder
Photos du câblage
Code
#include <Servo.h> // permet de faire appel à la bibliothèque Servo #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); Servo monservo; // crée une constante appelée « monservo » utilisable par la bibliothèque Servo. // (vous pouvez la nommez comme vous voulez, exemple : servo_1, mais pensez à le remplacer dans le programme). int boutonservo = D6; int boutonlcd = D7 ; // déclare le bouton poussoir sur la PIN 8. int etatboutonservo = 0; // variable représentant le bouton, soit ouvert ou fermé, ici au départ à 0 donc fermé. int etatboutonlcd = 0; // variable représentant le bouton, soit ouvert ou fermé, ici au départ à 0 donc fermé. void setup() { pinMode (boutonservo, INPUT) ; // on indique que le bouton est une entrée. pinMode (boutonlcd, INPUT) ; // on indique que le bouton est une entrée. monservo.attach(D5); // commande de la bibliothèque Servo, qui consiste à « attacher » le servomoteur à la PIN 9 monservo.write (0); lcd.init(); } void loop() { etatboutonservo = digitalRead (boutonservo); // On lit l’état du bouton pour savoir s’il est ouvert ou fermé if (etatboutonservo==HIGH) { // Si la variable “etatbouton” est ouverte, à l’état haut, donc laisse passer le courant. monservo.write (190); // alors le servomoteur prend un angle de 90°. delay(5000) ; // on attend un délais de 5 secondes lcd.backlight(); lcd.clear(); lcd.setCursor(0,0); lcd.print("trouves le bouton"); lcd.setCursor(0,1); lcd.print("des énigmes"); //monservo.write (0); // le servomoteur revient à l’angle 0, sa position de départ. //delay(150); // crée un délais de 150 millisecondes avant de refaire la boucle et de tester à nouveau l’état du bouton. } etatboutonlcd = digitalRead (boutonlcd); // On lit l’état du bouton pour savoir s’il est ouvert ou fermé if (etatboutonlcd==HIGH) { lcd.backlight(); lcd.clear(); lcd.setCursor(0,0); lcd.print("Enigme 1"); lcd.setCursor(0,1); lcd.print("Sans moi, Paris"); delay(2000); lcd.clear(); lcd.setCursor(0,0); lcd.print("Enigme 1"); lcd.setCursor(0,1); lcd.print("serait pris !"); delay(2000); lcd.clear(); lcd.setCursor(0,0); lcd.print("Enigme 1"); lcd.setCursor(0,1); lcd.print("Qui suis-je ? "); delay(3000); lcd.clear(); lcd.setCursor(0,0); lcd.print("Enigme 2"); lcd.setCursor(0,1); lcd.print("l'oiseau me "); delay(2000); lcd.clear(); lcd.setCursor(0,0); lcd.print("Enigme 2"); lcd.setCursor(0,1); lcd.print("sort et l'humain "); delay(2000); lcd.clear(); lcd.setCursor(0,0); lcd.print("Enigme 2"); lcd.setCursor(0,1); lcd.print("me vole! "); delay(2000); lcd.clear(); lcd.setCursor(0,0); lcd.print("Enigme 2"); lcd.setCursor(0,1); lcd.print("Qui suis-je ? "); } }