Item:POGL Dance e metre : Différence entre versions

(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... »)
 
Ligne 6 : Ligne 6 :
 
|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.
  
=== 🔩 Étapes de fonctionnement ===
+
===🔩 Étapes de fonctionnement===
  
# État 1 — Calme / Faible affluence
+
#État 1 — Calme / Faible affluence
#* Le socle est en position basse.
+
#*Le socle est en position basse.
#* Les LEDs émettent une lumière bleu-gris claire (calme, froide).
+
#*Les LEDs émettent une lumière bleu-gris claire (calme, froide).
# État 2 — Activité moyenne
+
#État 2 — Activité moyenne
#* Le socle monte d’un palier.
+
#*Le socle monte d’un palier.
#* La couleur devient plus vive (bleu profond / turquoise).
+
#*La couleur devient plus vive (bleu profond / turquoise).
# État 3 — Forte affluence
+
#État 3 — Forte affluence
#* Le socle atteint sa position haute.
+
#*Le socle atteint sa position haute.
#* Les LEDs virent au bleu-blanc lumineux, la “ville” est en mouvement.
+
#*Les LEDs virent au bleu-blanc lumineux, la “ville” est en mouvement.
  
 
Le passage d’un état à l’autre peut être déclenché :
 
Le passage d’un état à l’autre peut être déclenché :
  
* par une API simulant l’affluence (valeur numérique 0 → 1 → 2 → 3 )
+
*par une API simulant l’affluence (valeur numérique 0 → 1 → 2 → 3 )
  
 
----<br />
 
----<br />
  
== 🔧 Matériel utilisé ==
+
==🔧 Matériel utilisé==
 
{| class="wikitable"
 
{| class="wikitable"
 
!Composant
 
!Composant
Ligne 32 : Ligne 32 :
 
|🧠 '''ESP32'''
 
|🧠 '''ESP32'''
 
|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'''
Ligne 40 : Ligne 40 :
 
|💡 '''Bandeau LED NeoPixel'''
 
|💡 '''Bandeau LED NeoPixel'''
 
|Lumière d’ambiance
 
|Lumière d’ambiance
|12 LEDs RGB (WS2812B)
+
|12 LEDs RGB
 
|}
 
|}
 
----<br />
 
----<br />
  
== 🧰 Librairies Arduino ==
+
==🧰 Librairies Arduino==
  
* <code>Adafruit_NeoPixel.h</code> → gestion des LEDs WS2812B
+
*<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)
+
*<code>Servo.h</code> ou <code>Stepper.h</code> → contrôle du moteur (selon le modèle choisi)
  
 
<br />
 
<br />
 
----<br />
 
----<br />
  
== 👨🏻‍💻 Structure logicielle ==
+
==👨🏻‍💻 Structure logicielle==
<code>main.ino
+
<syntaxhighlight lang="c">
+
main.ino
├── setup()        # Initialisation LEDs + moteur
+
├── [CONFIG] constantes moteur + LEDs
├── loop()         # Boucle principale
+
├── [DOMAIN] types (enum Densite, Color, TramPoint)
  ├── lireEtat() # récupère le niveau d'activité (API ou variable)
+
├── [DATA]   scénario de simulation tram
│  ├── majLEDs()  # adapte la couleur selon l’état
+
├── [STATE]  variables d'état (couleurs, index, timer)
│  └── majMoteur()# déplace le socle selon l’état
+
├── [API HW] moteurs/LEDs (tournerMoteur, setTargetColor, smoothTransition, showColor)
+
├── [LOGIC] mapping densité → angle/couleur + traitement changement
└── fonctions utilitaires :
+
├── [APP]    setup(), loop() non-bloquante (tick simulation)
    ├── goToLevel(level) # 0, 1, 2 → positions moteur
+
</syntaxhighlight>
    └── setColor(level)   # renvoie une couleur RGB selon l’état</code>
+
 
 +
 
 +
==📚 Bibliographie==
 +
 
 +
*https://github.com/benjaminbourlet/Fete_de_la_science_2025.git
 +
*https://boxes.hackerspace-bamberg.de/
 +
*https://docs.arduino.cc/
 +
*https://www.pinterest.com/
 
}}
 
}}
 
{{Tuto Status
 
{{Tuto Status
 
|Complete=Draft
 
|Complete=Draft
 
}}
 
}}

Version du 15 octobre 2025 à 13:57


Pas encore d'image

POGL Dance e metre

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.

10EUR (€)


Description longue

L’installation combine un moteur pas à pas (ou servo) et un bandeau LED NeoPixel contrôlés par un ESP32.

🔩 Étapes de fonctionnement

  1. État 1 — Calme / Faible affluence
    • Le socle est en position basse.
    • Les LEDs émettent une lumière bleu-gris claire (calme, froide).
  2. État 2 — Activité moyenne
    • Le socle monte d’un palier.
    • La couleur devient plus vive (bleu profond / turquoise).
  3. É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 )


🔧 Matériel utilisé

Composant Rôle Détails
🧠 ESP32 Microcontrôleur principal Gère moteur + LEDs + API en wifi
⚙️ Moteur pas à pas / Servo SG90 Action mécanique du socle 3 positions (basse, moyenne, haute)
💡 Bandeau LED NeoPixel Lumière d’ambiance 12 LEDs RGB


🧰 Librairies Arduino

  • Adafruit_NeoPixel.h → gestion des LEDs avec fil pilote
  • Servo.h ou Stepper.h → contrôle du moteur (selon le modèle choisi)




👨🏻‍💻 Structure logicielle

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)


📚 Bibliographie

Pages liées

Commentaires

Draft