Panneau LED « Merci » pour conducteurs courtois – Arduino MKR1000, Bluetooth & DotStar
Concept
Un panneau matriciel 8×32 LED RGB (256 pixels DotStar) fixé à la lunette arrière de la voiture, piloté par un Arduino MKR1000 connecté en Bluetooth à un smartphone. L'application mobile affiche des boutons (« Merci », « Bienvenue », « Gauche », « Droite », « Arrêt », « Départ », « Distance », « Urgence ») qui envoient des messages texte défilants sur le panneau.
Matériel principal
| Arduino MKR1000 (WiFi/BLE natif, 3,3V) | 1 |
| Module Bluetooth BlueSMiRF Silver (UART) | 1 |
| Convertisseur de niveau logique 4 canaux bidir. (BSS138) 3,3V ↔ 5V | 1 |
| Matrice Adafruit DotStar 8×32 flexible (256 LED RGB) | 1 |
| Alimentation 5V 4A (secteur) + adaptateur allume-cigare 12V→5V pour voiture | 1 |
| Boîtier projet, plaque bouleau 4,5×15″, ruban double-face, colle chaude | 1 |
Points critiques – Niveaux logiques 3,3V / 5V
Le MKR1000 est **intolérant au 5V** sur ses GPIO. La matrice DotStar et le module Bluetooth **requièrent 5V** pour un niveau haut fiable. Le convertisseur bidirectionnel 4 canaux est **indispensable** sur les lignes :
- SPI MOSI (Data) & SCK (Clock) vers DotStar
- TX/RX vers BlueSMiRF
Alimentez le côté « HV » du convertisseur en 5V (depuis l'alim 5V), le côté « LV » en 3,3V (depuis le MKR1000).
Câblage résumé
- DotStar Data → Pin 11 (MOSI), Clock → Pin 12 (SCK) via level-shifter
- BlueSMiRF TX → Pin 13 (RX1), RX → Pin 14 (TX1) via level-shifter
- Alim 5V 4A → Matrice (bornes +/−) + MKR1000 (via Vin ou USB)
- Interrupteur sur le 5V pour coupure totale
Logiciel – Architecture
Bibliothèques Arduino
Adafruit_DotStarMatrix,Adafruit_GFX,Adafruit_DotStarArduinoJsonVirtualShield+Text,Graphics,Recognition,Colors(pour l'application Windows Virtual Shields)
Fonctionnement du sketch
setup(): Initialise la matrice (luminosité 40%, zigzag, GBR), le shield virtuel, enregistre les callbacksrefresh,screenEvent.loop(): Unique appelshield.checkSensors()– gère événements Bluetooth.refresh(): À la connexion Bluetooth, dessine l'interface (boutons) sur l'écran virtuel du téléphone.screenEvent(): Détecte quel bouton est pressé, appelleDisplayText()avec le message correspondant.DisplayText(): Fait défiler le message sur la matrice DotStar (calcul largeur, défilement pixel par pixel).
Exemple de messages
- « Merci » (vert), « Bienvenue » (bleu), « Gauche » (jaune), « Droite » (cyan), « Arrêt » (rouge), « Départ » (vert), « Distance » (orange), « Urgence 112 » (rouge clignotant).
Boîtier & Intégration véhicule
- Plaque bouleau découpée (défonceuse à fraises Forstner pour trous propres).
- Boîtier électronique collé au ruban double-face (24h sous presse).
- Matrice collée à la colle chaude sur l'avant de la plaque.
- Passage câbles par trous fraisés.
- Fixation pare-brise : ventouses + sangles élastiques (à améliorer).
Alimentation véhicule
Un convertisseur allume-cigare 12V→5V 4A (5€) alimente le tout. Le MKR1000 est alimenté via son port USB (5V). Courant max théorique 256 LED × 60 mA ≈ 15 A, mais avec luminosité 40% et animations défilantes, la consommation moyenne reste < 3 A.
Code & Ressources
- Code complet : GitHub pulcher/mkr1000_challenge
- Démarrage MKR1000 : Tutoriel Hackster
Processus de fabrication
- UnifiedWater v1 – Kit complet de capteur de qualité d'eau Arduino
- Système de vote portable avec connectivité GSM
- Lunettes connectées « Smart Match-Making » avec Arduino 101 et tinyTILE BLE
- Jeu Whac-A-Mole DIY (Version Boutons) – Projet Arduino
- Jukebox moderne : Lecteur de musique Raspberry Pi & Arduino avec LED
- Montre connectée Arduino DIY : Construisez votre propre montre style Apple Watch
- Guide complet des finitions PCB : types, applications, bonnes pratiques
- Électroérosion par étincelage expliquée : technologie, méthodes et applications
- Guide complet des roulements à bride : Types, caractéristiques et applications