Projet Maquette réseau de distribution et flux par leds adressables

Pour les WS2812B, chaque LED consomme 24 bits transmis à environ 800 kHz, soit 1,25 µs par bit. Le délai de propagation interne est typiquement de l’ordre de 200 à 300 ns par LED si je me souviens bien.

Dans les bibliothèques donc lorsqu’on demande un show(), Les données sont envoyées en série, LED par LED, chaque LED consommant les 24 premiers bits qu’elle reçoit puis retransmettant le reste du flux à la suivante avec un léger délai interne.

Une trame complète se termine par un niveau bas maintenu pendant au moins 50 µs qui sert de latch, et qui valide les données et déclenche la mise à jour de l’affichage ➜ Le rafraîchissement ne se fait qu’après ce niveau bas donc toutes les LED changent “simultanément” à la fin de la trame.

(ÉDIT: pour être précis - toutes les LEDs appliquent leur nouvelle valeur quasiment en même temps. Le décalage entre la première et la dernière est limité au temps de propagation du signal, donc de l’ordre de quelques dizaine ou centaines de microsecondes , ce qui est négligeable visuellement - 1000 leds x 250ns = 250 microsecondes - 1/4 de milliseconde ce n’est pas perceptible)

Pour les APA102, il y a une horloge dédiée, ce qui supprime les contraintes de timing strictes et permet des fréquences bien plus élevées (souvent plusieurs MHz). Chaque LED traite 32 bits et met à jour sa sortie immédiatement après réception, avec un effet de propagation le long de la chaîne pendant l’envoi. Comme on peut balancer les infos super vite grâce à l’horloge, visuellement les changements sur des bandeaux de taille courante apparaissent instantanés aussi - même s’il y a propagation.

Perso je joue plus avec des APA102 car quand on commence à avoir 5 ou 10m denses de leds les délais de mises à jour sur les neopixels sont problématiques pour certains usages (le rafraîchissement bloque le code plusieurs ms).

1 Like

Donc mes remarques ont été constructives puisqu'elles font apparaître un nouveau composant, on ne se précipite pas sur le modèle à la mode.

Question basique :
Il est important de donner des précisions sur ces APA102.

Compte tenu que l'usage ne sera pas une guirlande de Noël, je le reprécise pour la seconde fois, quels sont les conditionnements disponibles ?

En existe-t-il qui sont adaptés au tableau que le demandeur nous a présenté dans son premier message et que j'ai déjà rappelé ?

Je rappelle qu'actuellement, on ne traite que les détails.
Il reste à établir le principal : le programme qui établira l'état des diodes, quelle que soit leur technologie.

On trouve les APA102 en bandeaux de 1m/3m/5m avec une densité de 30/60/72/96 ou 144 pixels/m.
On coupe ou on veut entre deux leds donc on peut facilement faire des petits bouts d’environ 10 cm et vous pouvez souder des fils entre ces petits bouts pour reconstruire un bandeau avec la géométrie que vous voulez. C’est aussi “bien plus cher” que les neopixels (mais ça reste abordable).

Je vous rejoins cela dit sur l’expression précise du besoin (le cahier des charges) pour voir si telle ou telle technologie est adaptée ou quelles contraintes un choix particulier peut imposer.

@julientoratator

quelque part on s'en approche un peu quand-même : guirlande ou pas, il faut préparer des données (par exemple dans un tableau) et les envoyer au ruban pour affichage.

comme les WS... :
format 5050 : vrac + rubans de 30/60/144 DELs/m en 1m/5m
format 2020 : vrac + rubans de 120/200 DELs/m en 0,5m/1m/2m (peut-être aussi 5m ?)
(les rubans étant sécables à la DEL près)

il va y avoir pas mal de boulot graphique/esthétique sur ce panneau : centrale, éolienne, transfo, etc... je pense que «noyer» les rubans dans tout ça ne sera pas plus difficile que créer les pictogrammes.
ça peut être réalisé sur un panneau translucide (genre diffuseur récupéré sur un TV en panne), les rubans pouvant être disposés au dos afin de n'être pas visibles lorsqu'ils n'éclairent pas.

perso, j'ai grosso-merdo 2 façons de faire ... et je pense ne pas être le seul.
dans tous les cas j'utilise un tableau contenant les valeurs pour chaque DEL, mais ici on a des sections «répétitives», il est donc possible de «grouper» ...

cas 1 : calcul et remplissage de l'intégralité du tableau, puis envoi «en bloc» à tout le ruban : c'est ce qu'on est obligé de faire avec les WS... car le timing d'envoi est strict.
cas 2 : comme en 1 calcul+remplissage dans la boucle, sans s'occuper de l'envoi qui peut être géré de façon cadencée (par exemple par ISR), DEL par DEL (donc 32 bits consécutifs) ou encore par segment (n × 32 bits).

→ le cadencement des envois n'a même pas besoin d'être géré par ISR, on peut très bien calculer un segment entier et l'envoyer, puis passer au segment suivant : l'avantage des APA102 est que tu peux t'arrêter en cours d'envoi puisque c'est toi qui gères l'horloge, contrairement aux WS... qui interprètent une pause longue comme une fin de trame.

en fait, l'utilisation des DELs adressables n'est pas si difficile que ça : on gère chaque DEL comme un pixel sur un écran, avec une «adresse» pour chaque «case».