ENIB 2023 : Labyrinthe invisible : Différence entre versions
(Page créée avec « ==photo de l'équipe== 600px ==Que fait ce projet ? == ==Liste des composants== * composant 1 * composant 2 * ... ==Code== <pre> ici je... ») |
(→Catégories) |
||
(15 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
==photo de l'équipe== | ==photo de l'équipe== | ||
− | [[Fichier: | + | [[Fichier:Labyrinthe.jpg|600px]] |
− | == | + | == Notre projet == |
− | + | Nous créons un labyrinthe de LED RGB. | |
+ | Le but du joueur est de trouver le chemin vers la sortie en déplaçant son personnage en tapotant la table du côté vers lequel il veut se diriger, tapotement détecté par des capteurs de vibrations. L'objectif est que les murs du labyrinthe se révèlent quand le joueur se heurte à l'un d'entre eux. | ||
− | + | Le projet a été grandement ralentit à cause des microcontrôleurs que nous essayons de communiquer avec les rubans de LED. D'abord nous avons essayé d'utiliser le wemosD1 mini mais nous avons obtenues aucun résultats, aucune des LED ne s'allumaient. Ensuite nous sommes passé au ESP32 mais avons rencontrés des problème de mise en place avec lIDE Arduino avant d'enfin passer à l'Arduino micro qui nous a permit d'avoir la réponse souhaitée. Cependant trouver un microcontrôleur adapté non a pris trop de temps, temps que nous avons pas pu passer sur le code qui était déjà ambitieux. | |
− | |||
− | |||
− | == | + | En manque de capteur de vibration, nous avons essayé d'utiliser un piezo en inversant son utilisation initiale afin qu'il détecte les vibrations mais notre solution technique n'a pas fonctionnée. Etant donné que nous n'avions pas d'autre capteur de vibration à disposition nous avons choisi de les remplacer par des boutons poussoirs mais n'avons pas eu le temps de les câbler. |
+ | |||
+ | Parallèlement nous avons créé un support en bois et carton afin de cacher le câblage ainsi qu'un sticker a but purement esthétique. | ||
+ | |||
+ | == Notre matériel == | ||
+ | |||
+ | * Pièce de puzzle | ||
+ | * Rubans de LED | ||
+ | * 4 Piezo | ||
+ | * Arduino Uno | ||
+ | * Fils conducteurs | ||
+ | * Scotch | ||
+ | * Fer à souder | ||
+ | * Du bois | ||
+ | * Des boutons | ||
+ | |||
+ | ==Notre code== | ||
<pre> | <pre> | ||
− | + | #include <Adafruit_NeoPixel.h> | |
+ | |||
+ | int mySensVals[81] = {1,0,0,0,0,0,0,0,0, | ||
+ | 0,0,0,0,0,0,0,0,0, | ||
+ | 0,0,0,0,0,1,1,0,0, | ||
+ | 0,0,0,0,0,1,1,1,0, | ||
+ | 0,0,1,1,0,0,0,0,0, | ||
+ | 1,1,1,1,0,0,0,0,0, | ||
+ | 0,0,0,0,0,1,1,0,0, | ||
+ | 0,0,0,0,0,0,0,0,0, | ||
+ | 1,1,1,1,1,1,1,1,1}; | ||
+ | |||
+ | // Declare a NeoPixel strip with 64 LEDs | ||
+ | #define LED_COUNT 81 | ||
+ | Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, 6, NEO_GRB + NEO_KHZ800); | ||
+ | |||
+ | void setup() { | ||
+ | strip.begin(); | ||
+ | strip.show(); | ||
+ | } | ||
+ | |||
+ | void setLED(int ledNum, int red, int green, int blue) { | ||
+ | strip.setPixelColor(ledNum, red, green, blue); | ||
+ | strip.show(); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | // Turn on the first LED | ||
+ | for (int i = 0; i<80; i = i + 1){ | ||
+ | if (mySensVals[i] == 1){ | ||
+ | setLED(i, 5, 5, 5); | ||
+ | }else{ | ||
+ | setLED(i, 0, 0, 0); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | } | ||
</pre> | </pre> | ||
− | |||
==Catégories== | ==Catégories== | ||
[[Catégorie:Enib2023]] | [[Catégorie:Enib2023]] | ||
+ | |||
+ | [[Catégorie:Arduino]] |
Version actuelle datée du 15 janvier 2024 à 16:01
photo de l'équipe
Notre projet
Nous créons un labyrinthe de LED RGB. Le but du joueur est de trouver le chemin vers la sortie en déplaçant son personnage en tapotant la table du côté vers lequel il veut se diriger, tapotement détecté par des capteurs de vibrations. L'objectif est que les murs du labyrinthe se révèlent quand le joueur se heurte à l'un d'entre eux.
Le projet a été grandement ralentit à cause des microcontrôleurs que nous essayons de communiquer avec les rubans de LED. D'abord nous avons essayé d'utiliser le wemosD1 mini mais nous avons obtenues aucun résultats, aucune des LED ne s'allumaient. Ensuite nous sommes passé au ESP32 mais avons rencontrés des problème de mise en place avec lIDE Arduino avant d'enfin passer à l'Arduino micro qui nous a permit d'avoir la réponse souhaitée. Cependant trouver un microcontrôleur adapté non a pris trop de temps, temps que nous avons pas pu passer sur le code qui était déjà ambitieux.
En manque de capteur de vibration, nous avons essayé d'utiliser un piezo en inversant son utilisation initiale afin qu'il détecte les vibrations mais notre solution technique n'a pas fonctionnée. Etant donné que nous n'avions pas d'autre capteur de vibration à disposition nous avons choisi de les remplacer par des boutons poussoirs mais n'avons pas eu le temps de les câbler.
Parallèlement nous avons créé un support en bois et carton afin de cacher le câblage ainsi qu'un sticker a but purement esthétique.
Notre matériel
- Pièce de puzzle
- Rubans de LED
- 4 Piezo
- Arduino Uno
- Fils conducteurs
- Scotch
- Fer à souder
- Du bois
- Des boutons
Notre code
#include <Adafruit_NeoPixel.h> int mySensVals[81] = {1,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,1,1,0,0, 0,0,0,0,0,1,1,1,0, 0,0,1,1,0,0,0,0,0, 1,1,1,1,0,0,0,0,0, 0,0,0,0,0,1,1,0,0, 0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1}; // Declare a NeoPixel strip with 64 LEDs #define LED_COUNT 81 Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, 6, NEO_GRB + NEO_KHZ800); void setup() { strip.begin(); strip.show(); } void setLED(int ledNum, int red, int green, int blue) { strip.setPixelColor(ledNum, red, green, blue); strip.show(); } void loop() { // Turn on the first LED for (int i = 0; i<80; i = i + 1){ if (mySensVals[i] == 1){ setLED(i, 5, 5, 5); }else{ setLED(i, 0, 0, 0); } } }