(Page créée avec « {{Item |Description=Ce projet s’inscrit dans une démarche POGL (Phénomène d’Occupation et de Gestion des Lieux), cherchant à matérialiser l’influence de la popu... ») |
|||
| (9 révisions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
{{Item | {{Item | ||
| + | |Main_Picture=Item-POGL_Dance_e_metre_IMG_5112.jpg | ||
| + | |Main_Picture_02=Item-POGL_Dance_e_metre_25F580E8-7149-4529-92DB-4BC97D9034BE.JPG | ||
|Description=Ce projet s’inscrit dans une démarche POGL (Phénomène d’Occupation et de Gestion des Lieux), cherchant à matérialiser l’influence de la population sur un espace urbain. | |Description=Ce projet s’inscrit dans une démarche POGL (Phénomène d’Occupation et de Gestion des Lieux), cherchant à matérialiser l’influence de la population sur un espace urbain. | ||
|Categories=Matériel, Outils, Parts, Tools | |Categories=Matériel, Outils, Parts, Tools | ||
| − | |||
|Currency=EUR (€) | |Currency=EUR (€) | ||
| − | |ItemLongDescription=L’installation combine un moteur pas à pas (ou servo) et un bandeau LED NeoPixel contrôlés par un ESP32. | + | |ItemLongDescription=L’installation combine un moteur pas à pas (ou servo) et un bandeau LED NeoPixel contrôlés par un ESP32, afin de faire monter un plaque perforer et faire un jeu de lumière. |
| + | |||
| + | ==📊 L'utilisation des données== | ||
| + | Les données de fréquentation du tram sont entièrement simulées dans le tableau `tramDensite` car nous avons pas pu avoir les données en temps réel d'un point de vue RGPD. | ||
| + | |||
| + | Chaque entrée associe une heure (ex. "06:00", "07:00", "08:00") à un niveau de densité passagers : "faible", "moyenne" ou "elevee". | ||
| + | |||
| + | Ce jeu de données joue le rôle d’un scénario type de la journée : faible affluence tôt le matin, pic de densité entre 8h et 9h, puis retour progressif à une densité plus faible. | ||
| + | |||
| + | À partir de ces valeurs simulées, le programme pilote le moteur (angle de rotation) et l’anneau de LED (nuance de bleu) pour représenter visuellement la charge du tram en temps réel simulé. | ||
| + | ---- | ||
| + | |||
| + | ==📖 Sommaire== | ||
| + | |||
| + | #Introduction du projet | ||
| + | ##Contexte et objectif | ||
| + | ##Principe général de l’installation | ||
| + | #Description de l’installation | ||
| + | ##Architecture globale (mécanique et lumineuse) | ||
| + | ##Rôle du moteur et du bandeau LED NeoPixel | ||
| + | ##Interaction entre mouvement et lumière | ||
| + | #Utilisation des données simulées | ||
| + | ##Contexte RGPD et justification du choix | ||
| + | ##Structure des données de fréquentation (tramDensite) | ||
| + | ##Scénario journalier simulé | ||
| + | ##Traduction visuelle des données (moteur + LEDs) | ||
| + | #Notice de montage | ||
| + | ##Présentation générale du Dense-e-mètre | ||
| + | ##Éléments fournis | ||
| + | ##Étapes de montage détaillées | ||
| + | ##Mise en service | ||
| + | ##Consignes de sécurité | ||
| + | #Matériel utilisé | ||
| + | ##Composants électroniques | ||
| + | ##Éléments mécaniques | ||
| + | ##Matériaux de diffusion et de réflexion lumineuse | ||
| + | #Fonctionnement du système | ||
| + | ##État 1 — Faible affluence | ||
| + | ##État 2 — Activité moyenne | ||
| + | ##État 3 — Forte affluence | ||
| + | ##Logique de transition entre les états | ||
| + | #Architecture logicielle | ||
| + | ##Rôle de l’ESP32 | ||
| + | ##Algorithme embarqué | ||
| + | ##Gestion des états et des transitions | ||
| + | #Librairies Arduino utilisées | ||
| + | ##Adafruit_NeoPixel | ||
| + | ##Servo / Stepper | ||
| + | #Perspectives d’évolution | ||
| + | ##Connexion à une API temps réel | ||
| + | ##Ajout d’interactions utilisateur | ||
| + | ##Améliorations visuelles et mécaniques | ||
| + | #Bibliographie et ressources | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==🏗️ Notice de montage== | ||
| + | <br /> | ||
| + | |||
| + | ===1. Présentation Générale=== | ||
| + | Le Dense‑e‑mètre est un objet lumineux interactif composé d’un socle technique intégrant l’électronique, d’un système mécanique rotatif, d’un disque perforé diffusant la lumière, d’un ruban LED circulaire et d’un diffuseur cylindrique translucide. | ||
| + | |||
| + | <br /> | ||
| + | |||
| + | ===2. Éléments fournis=== | ||
| + | |||
| + | *- Socle technique | ||
| + | *- Disque perforé | ||
| + | *- Crémaillère verticale | ||
| + | *- Moteur pas‑à‑pas | ||
| + | *- Ruban LED circulaire | ||
| + | *- Carte microcontrôleur et driver | ||
| + | *- Diffuseur translucide | ||
| + | *- Câblage et alimentation | ||
| + | |||
| + | ===3. Étapes de montage=== | ||
| + | |||
| + | #Installer le moteur sur la paroi centrale. | ||
| + | #Engager la crémaillère avec le pignon moteur. | ||
| + | #Fixer le disque perforé sur l’axe vertical. | ||
| + | #Positionner le ruban LED en cercle. | ||
| + | #Raccorder les éléments électroniques. | ||
| + | #Installer le diffuseur cylindrique. | ||
| + | #Effectuer un test de fonctionnement. | ||
| + | |||
| + | <br />{{#annotatedImageLight:Fichier:Item-POGL Dance e metre ItemPOGL Dance e metre Vue eclatee dun dispositif electronique.png|0=512px|hash=|jsondata=|mediaClass=Image|type=frameless|align=left|src=https://www.wikidebrouillard.org/images/f/f7/Item-POGL_Dance_e_metre_ItemPOGL_Dance_e_metre_Vue_eclatee_dun_dispositif_electronique.png|href=./Fichier:Item-POGL Dance e metre ItemPOGL Dance e metre Vue eclatee dun dispositif electronique.png|resource=./Fichier:Item-POGL Dance e metre ItemPOGL Dance e metre Vue eclatee dun dispositif electronique.png|caption=|size=512px}}<br /> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | <br /> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | Brancher l’alimentation USB. Le système lumineux et mécanique se met en mouvement automatiquement. | |
| + | ===5. Sécurité=== | ||
| + | Ne pas ouvrir le socle sous tension. Ne pas forcer les éléments mobiles. Usage intérieur uniquement. | ||
| + | <br /> | ||
----<br /> | ----<br /> | ||
| − | + | ==🔧 Matériel utilisé== | |
| − | == 🔧 Matériel utilisé == | ||
{| class="wikitable" | {| class="wikitable" | ||
!Composant | !Composant | ||
| Ligne 30 : | Ligne 139 : | ||
!Détails | !Détails | ||
|- | |- | ||
| − | |🧠 '''ESP32''' | + | |🧠 '''ESP32 (6)''' |
|Microcontrôleur principal | |Microcontrôleur principal | ||
| − | |Gère moteur + LEDs + API | + | |Gère moteur + LEDs + API en wifi |
|- | |- | ||
| − | |⚙️ '''Moteur pas à pas / Servo SG90''' | + | |⚙️ '''Moteur pas à pas / Servo SG90 (4)''' |
|Action mécanique du socle | |Action mécanique du socle | ||
|3 positions (basse, moyenne, haute) | |3 positions (basse, moyenne, haute) | ||
|- | |- | ||
| − | |💡 '''Bandeau LED NeoPixel''' | + | |💡 '''Bandeau LED NeoPixel (3)''' |
|Lumière d’ambiance | |Lumière d’ambiance | ||
| − | |12 LEDs RGB ( | + | |12 LEDs RGB |
| + | |- | ||
| + | |📜 Papier rugueux et épais (1) | ||
| + | |décorer et refléter la lumière | ||
| + | |environ 60cmx15cm selon la taille du POGL | ||
| + | |- | ||
| + | |🪞Papier réfléchissant perforer(2) | ||
| + | |laisse passer plus ou moins la lumière | ||
| + | |15cm de diamètre, trou aléatoire 1cm de diamètre | ||
|} | |} | ||
----<br /> | ----<br /> | ||
| + | ==🔩 Étapes de fonctionnement== | ||
| + | |||
| + | #État 1 — Calme / Faible affluence | ||
| + | #*Le socle est en position basse. | ||
| + | #*Les LEDs émettent une lumière bleu-gris claire (calme, froide). | ||
| + | #État 2 — Activité moyenne | ||
| + | #*Le socle monte d’un palier. | ||
| + | #*La couleur devient plus vive (bleu profond / turquoise). | ||
| + | #État 3 — Forte affluence | ||
| + | #*Le socle atteint sa position haute. | ||
| + | #*Les LEDs virent au bleu-blanc lumineux, la “ville” est en mouvement. | ||
| − | + | Le passage d’un état à l’autre peut être déclenché : | |
| − | * | + | *par une API simulant l’affluence (valeur numérique 0 → 1 → 2 → 3 ) |
| − | |||
<br /> | <br /> | ||
----<br /> | ----<br /> | ||
| + | ==🧰 Librairies Arduino== | ||
| + | |||
| + | *<code>Adafruit_NeoPixel.h</code> → gestion des LEDs avec fil pilote | ||
| + | *<code>Servo.h</code> ou <code>Stepper.h</code> → contrôle du moteur (selon le modèle choisi) | ||
| + | |||
| + | <br /> | ||
| + | ----<br /> | ||
| + | |||
| + | ==👨🏻💻 Structure logicielle== | ||
| + | <syntaxhighlight lang="c"> | ||
| + | main.ino | ||
| + | ├── [CONFIG] constantes moteur + LEDs | ||
| + | ├── [DOMAIN] types (enum Densite, Color, TramPoint) | ||
| + | ├── [DATA] scénario de simulation tram | ||
| + | ├── [STATE] variables d'état (couleurs, index, timer) | ||
| + | ├── [API HW] moteurs/LEDs (tournerMoteur, setTargetColor, smoothTransition, showColor) | ||
| + | ├── [LOGIC] mapping densité → angle/couleur + traitement changement | ||
| + | ├── [APP] setup(), loop() non-bloquante (tick simulation) | ||
| + | </syntaxhighlight> | ||
| + | ---- | ||
| + | |||
| + | ==⌨️ Algorithme à mettre dans l'ESP32== | ||
| + | {{#annotatedImageLight:Fichier:Item-POGL Dance e metre sketch.ino|0=1px|hash=|jsondata=|mediaClass=Image|type=frameless|align=center|src=https://www.wikidebrouillard.org/images/f/f4/Item-POGL_Dance_e_metre_sketch.ino|href=./Fichier:Item-POGL Dance e metre sketch.ino|resource=./Fichier:Item-POGL Dance e metre sketch.ino|caption=Code esp32|size=1px}}<br /> | ||
| + | ----<br /> | ||
| + | ==📚 Bibliographie== | ||
| − | + | *https://github.com/benjaminbourlet/Fete_de_la_science_2025.git | |
| − | + | *https://boxes.hackerspace-bamberg.de/ | |
| − | + | *https://docs.arduino.cc/ | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
}} | }} | ||
{{Tuto Status | {{Tuto Status | ||
| − | |Complete= | + | |Complete=Published |
}} | }} | ||
Ce projet s’inscrit dans une démarche POGL (Phénomène d’Occupation et de Gestion des Lieux), cherchant à matérialiser l’influence de la population sur un espace urbain.
L’installation combine un moteur pas à pas (ou servo) et un bandeau LED NeoPixel contrôlés par un ESP32, afin de faire monter un plaque perforer et faire un jeu de lumière.
Les données de fréquentation du tram sont entièrement simulées dans le tableau `tramDensite` car nous avons pas pu avoir les données en temps réel d'un point de vue RGPD.
Chaque entrée associe une heure (ex. "06:00", "07:00", "08:00") à un niveau de densité passagers : "faible", "moyenne" ou "elevee".
Ce jeu de données joue le rôle d’un scénario type de la journée : faible affluence tôt le matin, pic de densité entre 8h et 9h, puis retour progressif à une densité plus faible.
À partir de ces valeurs simulées, le programme pilote le moteur (angle de rotation) et l’anneau de LED (nuance de bleu) pour représenter visuellement la charge du tram en temps réel simulé.
Le Dense‑e‑mètre est un objet lumineux interactif composé d’un socle technique intégrant l’électronique, d’un système mécanique rotatif, d’un disque perforé diffusant la lumière, d’un ruban LED circulaire et d’un diffuseur cylindrique translucide.
Brancher l’alimentation USB. Le système lumineux et mécanique se met en mouvement automatiquement.
Ne pas ouvrir le socle sous tension. Ne pas forcer les éléments mobiles. Usage intérieur uniquement.
| Composant | Rôle | Détails |
|---|---|---|
| 🧠 ESP32 (6) | Microcontrôleur principal | Gère moteur + LEDs + API en wifi |
| ⚙️ Moteur pas à pas / Servo SG90 (4) | Action mécanique du socle | 3 positions (basse, moyenne, haute) |
| 💡 Bandeau LED NeoPixel (3) | Lumière d’ambiance | 12 LEDs RGB |
| 📜 Papier rugueux et épais (1) | décorer et refléter la lumière | environ 60cmx15cm selon la taille du POGL |
| 🪞Papier réfléchissant perforer(2) | laisse passer plus ou moins la lumière | 15cm de diamètre, trou aléatoire 1cm de diamètre |
Le passage d’un état à l’autre peut être déclenché :
Adafruit_NeoPixel.h → gestion des LEDs avec fil piloteServo.h ou Stepper.h → contrôle du moteur (selon le modèle choisi)
main.ino
├── [CONFIG] constantes moteur + LEDs
├── [DOMAIN] types (enum Densite, Color, TramPoint)
├── [DATA] scénario de simulation tram
├── [STATE] variables d'état (couleurs, index, timer)
├── [API HW] moteurs/LEDs (tournerMoteur, setTargetColor, smoothTransition, showColor)
├── [LOGIC] mapping densité → angle/couleur + traitement changement
├── [APP] setup(), loop() non-bloquante (tick simulation)Item-POGL_Dance_e_metre_IMG_5112.jpg Published
Vous avez entré un nom de page invalide, avec un ou plusieurs caractères suivants :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #