Un affichage couleur déroulant à LEDs

Un affichage couleur déroulant à LEDs

Durant de la réalisation de notre radar la semaine dernière, nous nous sommes dit qu'il était un peu dommage qu'il faille utiliser deux Yocto-Color-V2 pour piloter l'écran de 32x8 pixels, d'autant plus que nous venions de faire un module sur mesure pour un client capable de piloter 512 LEDs RGB. Cette semaine, nous avons donc rectifié le tir en augmentant les possibilités du Yocto-Color-V2.


Il y a deux raisons pour lesquelles le Yocto-Color-V2 était jusqu'à présent limité à 150 LEDs. D'une part, la puissance de calcul du processeur embarqué qui gère les animations autonomes est limitée, et il n'y avait matériellement pas la possibilité d'animer plus de LEDs de manière autonome. D'autre part, nous voulions pouvoir offrir une fréquence de rafraîchissement jusqu'à 100Hz, et le temps nécessaire à transmettre les bits sur la chaîne de LEDs ne permettait pas cette fréquence pour une chaîne plus longue.

Pourtant, à l'usage, on constate qu'on pourrait dans certains cas préférer augmenter le nombre de LEDs, quitte à renoncer aux animations autonomes pour les LEDs supplémentaires et à baisser la fréquence de rafraîchissement... C'est donc ce que nous vous proposons dans les nouveaux firmwares disponibles cette semaine pour le Yocto-Color-V2, le Yocto-MaxiBuzzer et le Yocto-MaxiKnob:

  • Le nombre maximal de LEDs n'est plus limité à 150 mais à 512.
  • Avec 150 LEDs, la fréquence de rafraîchissement reste 100Hz.
  • La fréquence descend linéairement jusqu'à 25Hz lorsqu'on augmente le nombre de LEDs jusqu'à 512.
  • Seules les 150 premières LEDs sont capables d'exécuter des animations autonomes.

Avec 512 LEDs RGB, on peut par exemple construire un affichage couleur déroulant de 64x8 pixels:

Afficheur couleur déroulant 64x8 piloté par USB
Afficheur couleur déroulant 64x8 piloté par USB


L'écran est construit simplement à l'aide de huit dalles Neopixel 8x8 connectées en série, pilotées par un seul module Yocto-Color-V2:

Construction de notre afficheur RGB 64x8
Construction de notre afficheur RGB 64x8


Notez que l'animation du message n'est pas gérée par le module lui-même, mais par un petit programme python qui envoie des bitmaps RGB à 25Hz exactement. Cela peut paraître trivial, mais en fait ce n'est pas si simple: si la fréquence d'avance du texte ne correspond pas exactement à la fréquence de rafraîchissement des LEDs, on observe des petits à-coups durant le défilement.

A l'aide de la même police de caractère Small.yfm que nous utilisons pour le Yocto-MiniDisplay, nous avons écrit pour réaliser cet exemple

  • une fonction qui prend en entrée une chaîne de caractère et la dessine de la couleur choisie dans un grand bitmap
  • une fonction qui affiche une section du bitmap à sur l'écran RGB

En faisant glisser progressivement la section à afficher de gauche à droite, on donne l'impression que le texte défile de droite à gauche sur l'écran. Si jamais vous voulez réutiliser ce code de conversion de texte en bitmap, vous le trouverez sur notre repository d'exemples GitHub.

Notez encore que pour obtenir la vitesse de rafraîchissement maximale de 25Hz sur un écran de cette taille, il faut utiliser une connexion USB. Si l'on utilise un YoctoHub-Ethernet pour piloter l'écran, on est limité à 20Hz en raison de la limitation de bande passante entre le hub et le Yocto-Color-V2. Mais pour bien des applications, cela suffira largement...

Un charmant goût vintage...
Un charmant goût vintage...



Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.