Piano Lumineux

Cet article présente comment customiser un piano numérique avec un microcontrôleur arduino et une bande de LED de couleurs, pour produire des effets lumineux lorsqu’on presse les touches.

L’idée est de connecter la sortie MIDI du clavier numérique à la carte arduino pour qu’elle puisse contrôler les LED en fonction des notes jouées.

Voici les éléments que j’ai utilisé

  • Un piano numérique Casio Privia. N’importe quel clavier qui a une sortie MIDI USB pour le connecter à un ordinateur fera l’affaire (et ils en ont presque tous)

  • Un microcontrolleur ESP8266 (NodeMCU). Mais là également n’importe quel microcontrolleur compatible Arduino avec un port série fera l’affaire. J’ai choisi l’ESP8266 car par la suite je voudrais pouvoir controller les LEDs via WiFi
  • Une carte USB hôte qui permet de convertir les messages envoyés par le piano via USB, en messages MIDI en série. C’est l’élément le plus difficile à trouver je l’ai acheté ici. A noter que si votre piano a des entrées/sorties MIDI (non USB) cet élément est inutile car le protocole MIDI est en fait une liaison série avec un baud rate de 31250, donc dans ce cas vous pouvez directement connecter la sortie MIDI au port série de l’arduino.
  • Une bande de LED RGB de type NeoPixel, qui permet de contrôler la couleur de chaque LED individuellement. J’ai utilisé des WS2812B.
  • Une alimentation 5V 4A
  • Quelques composant électroniques: un condensateur  (1000 µF, 6.3V ou plus), une résistance (entre 300 et 500 Ohm), un connecteur pour l’alimentation, des fils, etc…

Voici le schéma du montage:

schéma électronique pour piano lumineux

J’ai d’abord réalisé une version sur breadboard exactement comme sur le schéma ci-dessus, puis j’ai fait une version plus définitive, cf photo ci-dessous.

circuit électronique pour piano lumineux

Coté logiciel j’ai utilisé les librairies Arduino suivantes:

Et voici mon code Arduino:

PianoLED.zip

C’est très basique pour le moment, j’ai pris comme point de départ cet exemple de la librairie Arduino MIDI que j’ai modifié pour y incorporer la librairie NeoPixel et pour faire en sorte  que la LED la plus proche de la touche jouée s’allume. Il y a aussi une boucle sur les couleurs utilisées pour qu’elles ne soient pas toujours les mêmes. Dans une version future j’essaierai d’améliorer les effets de couleurs, et j’ai aussi l’intention d’utiliser le WiFi de l’ESP8266 pour commander ces lumières depuis mon système domotique. Il serait également possible d’utiliser le protocole MIDI dans l’autre sens et de faire jouer le piano tout seul en lui envoyant des messages MIDI. Bref il reste de quoi s’amuser…

2 réflexions au sujet de « Piano Lumineux »

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *