Plaque LISBOA - projet final - Qiancheng, Polina, Fatmagül, Olivier
Projet Final - Plaque Lisboa
• Membres : Qiancheng, Polina, Fatmagül, Olivier
• Fablab : Sorbonne Université
• Période : Avril 2025
Nous souhaitons créer une plaque en plexiglas qui s'illuminera par en bas grâce aux leds par diffraction. Le tout sera sur un boitier en bas qui cachera les leds. Afin de complexifier le projet, on souhaiterait intégrer un capteur de présence pour que les leds s'allument uniquement en présence de quelqu'un ou lors d'un passage. L'arduino sera également caché dans le boitier en bois.
Partie contrôle bandeau LED
Compréhension du fonctionnement du bandeau LED : https://www.youtube.com/watch?v=xw8iRNxt-VU
Problème 1 : Mauvaise couleur dans l'affichage du projet.
FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS); // GRB ordering is typical
Il fallait remplacer RGB par GRB :
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS); // GRB ordering is typical
Voici le code fonctionnel, faisant clignoter 9 LED
#include <FastLED.h>
// How many leds in your strip?
#define NUM_LEDS 9
// For led chips like WS2812, which have a data line, ground, and power, you just
// need to define DATA_PIN. For led chipsets that are SPI based (four wires - data, clock,
// ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN
// Clock pin only needed for SPI based chipsets when not using hardware SPI
#define DATA_PIN 5
// Define the array of leds
CRGB leds[NUM_LEDS];
void setup() {
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS); // GRB ordering is typical
}
void loop() {
for (int i=0; i<=8; i++) {
// Turn the LED on, then pause
leds[i] = CRGB::Red;
FastLED.show();
delay(500);
// Now turn the LED off, then pause
leds[i] = CRGB::Black;
FastLED.show();
delay(100);
}
}
Nous voulons synchronisé l'affichage des LED avec le son. Pour cela nous branchons un micro à l'arduino avec le schéma suivant.
Nous avons testé avec un microphone (KY-037) qui n'est pas adapté à notre besoin. Ce microphone est fait pour mesurer les forts pics de son (un gros bruit, un clap), il n'est pas bon dans la mesure continue du son.
Nous avons testé plusieurs façons de faire réagir la led en fonction du son
A ENLEVER LA VERSION EN HAUT UNE FOIS QUE LA VERSION EN BAS SERA VALIDE PAR TOUS
Résumé du projet
Dans le cadre du cours de prototypage, nous avons conçu un panneau interactif lumineux représentant le logo de la ville de Lisbonne. Ce prototype est pensé comme un souvenir de notre voyage de promotion, à emmener avec nous à Lisbonne pour l’intégrer dans nos photos. L’objet associe plexiglas, LEDs et un boîtier en bois, le tout animé par un Arduino et un microphone qui réagit à la musique ambiante en synchronisant l’éclairage avec le rythme sonore.
Objectifs du projet
-
Créer un objet-souvenir esthétique et interactif
-
Apprendre à utiliser les outils de fabrication numérique : découpe laser, design SVG, Arduino
-
Expérimenter l’interaction entre son et lumière grâce à un microphone et des LEDs
Outils & Logiciels utilisés
-
Arduino Uno
-
Bande de LED
-
Microphone sonore compatible Arduino (VCC: 2.4-5.5V)
-
Plaque de plexiglas (PMMA extrudé 6mm)
-
Panneau bois (CP peuplier 6 mm)
-
Découpeuse laser
-
Logiciels : Canva, Inkscape, Boxes.py, Arduino IDE
Étapes de réalisation
1. Design du boîtier en bois
-
Génération du modèle via le site Boxes.py, avec adaptation des dimensions à notre projet.
- Ajout d’un trou rectangulaire sur la face supérieure, conçu pour accueillir précisément le logo de Lisbonne en plexiglas.
- Ajout des ouvertures sur la face arrière de la boite pour le bouton poussoir, le potentiomètre et le micro.
-
Plusieurs tests de découpe ont été réalisés pour affiner les mesures et assurer un ajustement parfait du logo.
- Mesures:
2. Préparation du logo Lisbonne
-
-
Création graphique sur Canva.
-
Après avoir créé la version initiale du logo sur Canva et exporté au format SVG, nous avons utilisé Inkscape pour adapter le fichier à une découpe précise.
-
Notre objectif est de ne découper que la partie supérieure des lettres, afin de laisser intactes les inscriptions ou détails présents en bas du logo.
-
Dans un premier temps, nous avons utilisé l'outil de dessin de ligne pour relier et dessiner manuellement une ligne horizontale sous les lettres « L » et « a » de « Lisboa » afin d'inclure tous les éléments suivants ( "M16", "logo de tram", “2025”).
-
Ensuite nous avons sélectionné les nœuds situés sous la ligne, c’est-à-dire la partie inférieure du mot “Lisboa”.
Puis nous avons supprimé ces segments, en ne gardant que la partie supérieure du mot. - Enfin, nous utiliserons l'outil d'alignement pour aligner parfaitement les deux couches afin de former le logo complet et nous laisserons la ligne rouge entourer la périphérie de la partie supérieure afin de découper de manière réaliste uniquement la partie souhaitée.
-
3. Programmation Arduino
- Le cœur interactif du prototype repose sur un script Arduino qui permet aux LEDs de s’animer en fonction du rythme de la musique captée par un microphone. L’objectif était de faire en sorte que le logo Lisbonne s’illumine dynamiquement, apportant une dimension vivante et festive à l’objet.
- Objectif: Synchroniser l'affichage lumineux des LEDs avec le son ambiant (musique) capté par un micro.
- Étapes et apprentissages clés :
-
Compréhension du fonctionnement du bandeau LED (WS2812) :
Nous avons suivi un tutoriel expliquant le contrôle de ces LEDs RGB : https://www.youtube.com/watch?v=xw8iRNxt-VU
- Problème rencontré – mauvaise couleur affichée :
Lors des premiers tests, les LEDs n'affichaient pas les bonnes couleurs.
➤ Le souci venait du fait que le bandeau utilisait un ordre GRB (et non RGB comme par défaut).-
-
Problème 1 : Mauvaise couleur dans l'affichage du projet.
FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS); // GRB ordering is typical
Il fallait remplacer RGB par GRB :
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS); // GRB ordering is typical
-
-
Premier test – Code de base
Nous avons commencé avec un code simple pour faire clignoter 9 LEDs de manière aléatoire : -
#include <FastLED.h> // How many leds in your strip? #define NUM_LEDS 9 // For led chips like WS2812, which have a data line, ground, and power, you just // need to define DATA_PIN. For led chipsets that are SPI based (four wires - data, clock, // ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN // Clock pin only needed for SPI based chipsets when not using hardware SPI #define DATA_PIN 5 // Define the array of leds CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS); // GRB ordering is typical } void loop() { for (int i=0; i<=8; i++) { // Turn the LED on, then pause leds[i] = CRGB::Red; FastLED.show(); delay(500); // Now turn the LED off, then pause leds[i] = CRGB::Black; FastLED.show(); delay(100); } }
- Intégration du microphone
Pour synchroniser l’effet lumineux avec le son, nous avons connecté un micro analogique à l’Arduino selon un schéma de base : - ➤ Le but était de récupérer la valeur de l’amplitude sonore et de l’utiliser pour modifier l’intensité ou la couleur des LEDs.
-
Choix du micro – KY-037 non adapté
Nous avons d'abord testé avec un microphone KY-037, qui s’est révélé inadapté.
➤ Ce micro est conçu pour détecter des pics sonores forts (type clap ou bruit soudain), et ne donne pas une lecture fluide du son ambiant continu comme la musique. - AJOUTER LA SOLUTION TROUVE
- Voici le script Arduino pour que les LEDs s’animent en fonction du rythme sonore capté par le micro.
-
Ainsi nous avons pu obtenir un effet visuel dynamique lorsque de la musique est détectée, renforçant l’aspect festif et mémorable du prototype.
- Intégration du microphone
- A VERIFIER PAR OLIVIER AVEC L'AJOUT DU CODE FINAL
- Le microphone est connecté au 3,3V, au GND et à l’entrée analogique A0 de l’Arduino. Il envoie des valeurs entre 0 et 1024 selon l’intensité du son. Le programme Arduino détecte les variations rapides (pics sonores) sur A0 : quand un son est perçu, cela déclenche l'allumage des LEDs.
Les bandes de LEDs sont branchées sur le 5V, le GND et la sortie digitale D5 (PWM), et contrôlées via la bibliothèque FastLED.
Un potentiomètre ajuste la sensibilité : il permet de sélectionner une plage de détection selon l’intensité sonore (ex : 600–1024 pour voix fortes, 0–600 pour voix faibles).
Enfin, un bouton permet de changer dynamiquement entre 4 modes de couleurs différents pour varier les effets lumineux.
-
- 3. Découpe et assemblage
-
Découpe laser de la boîte en bois
-
Insertion de l’Arduino et des autres composant à l’intérieur du boîtier.
- Collage de la bande LED sous la zone du logo.
- Résultat final:
- Nous obtenons un boîtier en bois compact et élégant, surmonté du logo de Lisbonne en plexiglas. Le logo est éclairé par en dessous, la lumière se diffusant grâce à la transparence et à la diffraction, créant un effet visuel marquant. La réactivité au son ajoute une dimension vivante à l’objet.
- INSERER UNE URL YOUTUBE POUR MONTRER LA VERSION FINALE !!!!!
- Défis rencontrés
-
Précision d’insertion du logo : ajustements fins nécessaires pour obtenir un bon emboîtement,
on a dû ajuster plusieurs fois son épaisseur.
-
Problèmes de tolérances de la machine laser : certaines parties trop fines ont cassé (ex: le petit cœur au-dessus du i).
-
Découpe partielle des lettres : séparation manuelle des points dans Inkscape pour un rendu fidèle au design voulu.
-
Réglages du micro : calibration des seuils pour que les LEDs réagissent bien à la musique sans s'allumer tout le temps.
- Perspectives d’amélioration
-
Ajouter une interrupteur pour allumer et éteindre le logo.
-
Ajouter une fonctionnalité Bluetooth pour contrôler l’éclairage à distance via une app.
-
Ajouter un trou discret pour fixer la plaque au mur ou sac à dos.
- Usage prévu
- Ce prototype a été conçu pour être emmené pendant notre voyage de promotion à Lisbonne. Il servira de souvenir collectif, de décoration et de symbole de notre passage, et apparaîtra dans nos photos de groupe pour immortaliser ce moment unique.
- Produits existants
- https://wiki.fablab.sorbonne-universite.fr/BookStack/books/petits-projets-h6V/page/trophee-lumineux
- Le wiki n'étant pas très documenté, nous n'avons pas pu s'en inspirer pour notre projet.