Comment piloter un écran en néopixels?

Bonjour,

La façade de l’hôtel INTERCONTINENTAL de MIAMI est illuminée des leds représentant des animations vidéo du plus bel effet.
Chaque fenêtre de l’hôtel est équipée d'une bande de leds.

Un exemple : https://www.youtube.com/embed/L0GlTYYHrUk

Je souhaiterais reproduire ce genre d'écran en taille réduite simplement avec des led adressables type neopixel.

Avez-vous une idée de la manière la plus optimisée pour générer ce genre d'animation? Quel fichier utiliser pour piloter les leds? Je voudrais éviter de réinventer trop de choses :slight_smile:

Avez-vous aussi une idée de la façon de générer le fichier d'animation? A partir d'une vidéo, à partir d'image de synthèse?

Merci par avance pour vos idées et vos conseils :slight_smile:

En gros il faut allumer des pixels qui sont dans une "grille" avec une certaines couleur ou les éteindre

Pour faciliter l'adressage dans la grille vous pouvez utiliser la Adafruit_NeoMatrix library qui vous permet de gérer une matrice simple ou une matrice de matrices

Les maths d'adressage n'étant pas non plus super compliqués, utiliser FastLED est aussi sans doute un bon choix.

pour la génération de film, le mieux c'est de retraiter cela sur ordi avant. Si vous avez une matrice de W pixel de large sur H pixel de haut, le plus simple est peut être de générer image par image un bitmap de W x H pixels et ensuite analyser le fichier, extraire les couleurs des pixels et stocker ça en format binaire sur carte SD ou en flash et que vous lirez depuis votre arduino.

il faut un arduino qui a bcp de mémoire et qui pédale assez vite car chaque pixel c'est 3 octets de RAM et c'est gourmand en énergie ces petits pixels, donc si vous avez bcp de pixels, il faut bcp de watts...

vous pouvez compresser en travaillant en noir et blanc seulement, 1 bit par pixel alors

Merci :slight_smile:

Je vais regarder les bibliothèques ADAFRUIT ou FASTLED pour piloter les leds.

Concernant la génération des matrices d’images à afficher, il me semble quasi impossible de faire chaque image à la main… Aussi je me demande quelle solution me permettrait de retraiter par exemple une vidéo existante… Ou alors de générer une animation en SVG puis de la transformer en une suite de matrices d’images qui seront affichées par l’Arduino…
Je suis encore très loin de pouvoir animer une chorégraphie… gloups :slight_smile:
Il doit exister des forums plus spécialisés pour la génération du fichier ‘vidéo’ ou ‘images’. Avez-vous des liens vers des forums appropriés?

je bosse sur mac (la même chose est faisable sur Linux et windows mais je n'ai jamais essayé)

il y a un utilitaire ligne de commande
** **[url=https://ffmpeg.org]ffmpeg[/url]** **
et si vous regardez la documentation vous verrez qu'il est possible de prendre un film en fichier d'entrée, extraire des images. par exemple

ffmpeg -i monFilm.avi -r 1 -s 64x36 -pix_fmt bgr8  mesImages-%03d.bmp

va analyser le fichier monFilm.avi extraire une image par seconde à la résolution de 64x36 pixels dans le fichier mesImages-xxx.bmp où xxx est une numérotation séquentielle (000, 001, 002) en format BITMAP sur 8 bits (ou bgr4 sur 4 bits)

une fois chaque image générée, le format BMP étant bien documenté et l'image pas compressée, vous pouvez extraire en lisant ce fichier assez facilement chacun de pixels et sa couleur. (éventuellement utilisez la bibliothèque imlib pour simplifier la lecture du fichier et aller directement chercher le buffer des pixels)

==> c'est ce que vous pourriez mettre dans vos fichiers d'animation. Vous aurez 3 octets par pixel pour générer la couleur dans votre bande LED.