ENIB 2025 : Reflex Box : Différence entre versions
(→Elémlent de présentation) |
(→Sources et documentation complémentaire) |
||
Ligne 67 : | Ligne 67 : | ||
==Sources et documentation complémentaire== | ==Sources et documentation complémentaire== | ||
+ | /********* | ||
+ | Rui Santos | ||
+ | Complete project details at http://randomnerdtutorials.com | ||
+ | https://randomnerdtutorials.com/interrupts-timers-esp8266-arduino-ide-nodemcu/ | ||
+ | *********/ | ||
+ | /* | ||
+ | Lolin (Wemos) D1 mini | ||
+ | |||
+ | _________________ | ||
+ | / D1 mini \ | ||
+ | |[ ]RST TX[ ]| | ||
+ | |[ ]A0 -GPIO RX[ ]| | ||
+ | |[ ]D0-16 5-D1[ ]| SCL | ||
+ | SCK - |[ ]D5-14 4-D2[ ]| SDA | ||
+ | MISO - |[ ]D6-12 0-D3[ ]| | ||
+ | MOSI - |[ ]D7-13 2-D4[ ]| LED_BUILTIN | ||
+ | SS - |[ ]D8-15 GND[ ]| | ||
+ | |[ ]3V3 . 5V[ ]| | ||
+ | | +---+ | | ||
+ | |_______|USB|_______| | ||
+ | |||
+ | */ | ||
+ | |||
+ | #define timeSeconds 10 | ||
+ | |||
+ | // Set GPIOs for LED and PIR Motion Sensor | ||
+ | const int led = 2; //D4 | ||
+ | const int bouton = 0; //D3 input pullup | ||
+ | |||
+ | // Timer: Auxiliary variables | ||
+ | unsigned long now = millis(); | ||
+ | unsigned long lastTrigger = 0; | ||
+ | boolean startTimer = false; | ||
+ | |||
+ | // vérifie si on a appuyé sur le bouton | ||
+ | ICACHE_RAM_ATTR void detectsMovement() { | ||
+ | Serial.println("bouton appuyé !!!"); | ||
+ | digitalWrite(led, LOW); | ||
+ | startTimer = true; | ||
+ | lastTrigger = millis(); | ||
+ | } | ||
+ | |||
+ | void setup() { | ||
+ | // Serial port for debugging purposes | ||
+ | Serial.begin(115200); | ||
+ | |||
+ | // PIR Motion Sensor mode INPUT_PULLUP | ||
+ | pinMode(bouton, INPUT_PULLUP); | ||
+ | // Set motionSensor pin as interrupt, assign interrupt function and set RISING mode | ||
+ | attachInterrupt(digitalPinToInterrupt(bouton), detectsMovement, RISING); | ||
+ | |||
+ | // Set LED to LOW | ||
+ | pinMode(led, OUTPUT); | ||
+ | digitalWrite(led, HIGH); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | // Current time | ||
+ | now = millis(); | ||
+ | // Turn off the LED after the number of seconds defined in the timeSeconds variable | ||
+ | if(startTimer && (now - lastTrigger > (timeSeconds*1000))) { | ||
+ | Serial.println("Motion stopped..."); | ||
+ | digitalWrite(led, LOW); | ||
+ | startTimer = false; | ||
+ | } | ||
+ | } | ||
==Elément de présentation== | ==Elément de présentation== |
Version du 22 janvier 2025 à 16:34
Titre de la fiche expérience :
Sommaire
[masquer]description (résumé)
Photo de l'équipe :
Introduction
éventuelle vidéo
outil et matériel
Lors de la construction de notre Reflexe Box, nous avons utilisé plusieurs composants :
- 5 boutons - Une batterie externe - Une plaque Labdec - Un D1 Mini pour contrôler l'ensemble des composants de notre projet - Un DF Player MP3 pour lire la carte SD - Un ruban de 20 LED permettant d'afficher les scores - Des câbles - Des planches de bois servant à confectionner l'armature
Nous avons également eu besoin de plusieurs outils :
- Un fer à souder - Une découpeuse laser - Une pince à dénuder
fichiers à joindre
code, ficher d'impression 3D, de découpe laser ou vinyle, ...
Mettre du code Arduino
1
2 #define PIN 9
3 #include <Arduino_GFX_Library.h>
4
5 void setup() {
6 // put your setup code here, to run once:
7
8 }
9
10 void loop() {
11 // put your main code here, to run repeatedly:
12
13 }
étapes de fabrication
indiquer autant d'étape que nécessaire, chacune illustrée par des images (photo, dessins, ...)
étape 1
Nous avons réfléchi à une idée puis fais un dessin de la future maquette.
étape 2
Après avoir dessiné la maquette, nous l'avons construite pour se faire une idée plus réelle.
étape 3
Nous avons effectuer plusieurs tests afin de nous familiariser avec les composants, de les tester et de verifier quelles utilisations nous pourrons en faire.
Troubleshouting
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?
Sources et documentation complémentaire
/*********
Rui Santos Complete project details at http://randomnerdtutorials.com https://randomnerdtutorials.com/interrupts-timers-esp8266-arduino-ide-nodemcu/
- /
/* Lolin (Wemos) D1 mini
_________________ / D1 mini \ |[ ]RST TX[ ]| |[ ]A0 -GPIO RX[ ]| |[ ]D0-16 5-D1[ ]| SCL SCK - |[ ]D5-14 4-D2[ ]| SDA MISO - |[ ]D6-12 0-D3[ ]| MOSI - |[ ]D7-13 2-D4[ ]| LED_BUILTIN SS - |[ ]D8-15 GND[ ]| |[ ]3V3 . 5V[ ]| | +---+ | |_______|USB|_______|
*/
- define timeSeconds 10
// Set GPIOs for LED and PIR Motion Sensor const int led = 2; //D4 const int bouton = 0; //D3 input pullup
// Timer: Auxiliary variables unsigned long now = millis(); unsigned long lastTrigger = 0; boolean startTimer = false;
// vérifie si on a appuyé sur le bouton ICACHE_RAM_ATTR void detectsMovement() {
Serial.println("bouton appuyé !!!"); digitalWrite(led, LOW); startTimer = true; lastTrigger = millis();
}
void setup() {
// Serial port for debugging purposes Serial.begin(115200); // PIR Motion Sensor mode INPUT_PULLUP pinMode(bouton, INPUT_PULLUP); // Set motionSensor pin as interrupt, assign interrupt function and set RISING mode attachInterrupt(digitalPinToInterrupt(bouton), detectsMovement, RISING);
// Set LED to LOW pinMode(led, OUTPUT); digitalWrite(led, HIGH);
}
void loop() {
// Current time now = millis(); // Turn off the LED after the number of seconds defined in the timeSeconds variable if(startTimer && (now - lastTrigger > (timeSeconds*1000))) { Serial.println("Motion stopped..."); digitalWrite(led, LOW); startTimer = false; }
}
Elément de présentation
je met ici le document de présentation de mon projet