Test TI-RGB Array + compatibilité rubans LED RGB
Posted: 27 Feb 2020, 20:30
La gamme TI-Innovator permet à ta TI-83 Premium CE ou TI-Nspire CX de s'ouvrir au monde de la robotique et des objets connectés à travers nombres de projets pluridisciplinaires (STEM).
Les différents périphériques de cette gamme se connectent à ta calculatrice par l'intermédiaire de l'interface TI-Innovator Hub.
Aujourd'hui, attardons-nous un petit peu sur le tout dernier né dans cette gamme, le TI-RGB Array.
Nous t'en avions déjà parlé à l'occasion de sa découverte l'année dernière au salon Didacta à Köln en Allemagne puis de nos manipulations à la conférence T3IC à Baltimore aux Etats-Unis.
Comme tu as pu le remarquer il y a quelques semaines et à nouveau ci-contre, nous disposons enfin de notre propre échantillon et avons pu commencer à jouer avec. Il est donc grand temps de te dire tout ce que nous avons découvert.
Les différents périphériques de cette gamme se connectent à ta calculatrice par l'intermédiaire de l'interface TI-Innovator Hub.
Aujourd'hui, attardons-nous un petit peu sur le tout dernier né dans cette gamme, le TI-RGB Array.
Nous t'en avions déjà parlé à l'occasion de sa découverte l'année dernière au salon Didacta à Köln en Allemagne puis de nos manipulations à la conférence T3IC à Baltimore aux Etats-Unis.
Comme tu as pu le remarquer il y a quelques semaines et à nouveau ci-contre, nous disposons enfin de notre propre échantillon et avons pu commencer à jouer avec. Il est donc grand temps de te dire tout ce que nous avons découvert.
1) Connexions
Go to topLe TI-RGB Array se connecte sur le port BreadBoard du TI-Innovator Hub. Pour faciliter ces connexions, il vient avec une nappe de 4 câbles de couleur et documente les connexions au verso :
- masse (noir)
- BB2 (jaune)
- BB5 (bleu)
- 5V (rouge)
2) Utilisation + exemple
Go to topLe TI-RGB Array t'offre une grille de 16 diodes RGB adressables (Rouge-Vert-Bleu pour Red-Green-Blue) réparties sur 2 lignes, que tu peux allumer de façon indépendante dans la teinte de ton choix.
En attendant les mises à jour qui permettront de le contrôler en Python, nous allons travailler en TI-Basic.
Il se contrôle en envoyant des commandes au TI-Innovator Hub à l'aide de la fonction Send() :
CONNECT RGB
avant tout autre commande le concernant- puis
SET RGB n r g b
avec :- n le numéro de la diode à contrôler de 0 à 15
- r la valeur de la composante rouge de 0 à 255
- g la valeur de la composante verte de 0 à 255
- b la valeur de la composante bleue de 0 à 255
DISCONNECT RGB
une fois terminé
Nous allons justement commencer de suite avec un dégradé de teintes. Pour cela il sera bien plus pratique de travailler dans des coordonnées qui font sens pour l’œil humain, par exemple en HSV (Teinte-Saturation-Valeur pour Hue-Saturation-Value). Voici donc déjà un programme ZHSV2RGB permettant de convertir les coordonnées HSV que nous préciserons en coordonnées RGB compréhensibles par le TI-Innovator Hub :
- Code: Select all
Rep→⌊HSV
reste(arrondir(⌊HSV(1),0),360→H
⌊HSV(2)⌊HSV(3→C
C(1-abs(reste(H,120)/60-1→X
ent(H/60→H
255{C(non(reste(H,5)))+X(reste(H,3)=1),C(H et H≤2)+X(reste(H,3)=0),C(H=3 ou H=4)+X(reste(H,3)=2)
Une fois cet aspect traité, la programmation de notre dégradé est extrêmement simple, ne nécessitant plus que quelques lignes :
- Code: Select all
Send("CONNECT RGB
16→N
For(I,0,N-1
{360I/N,1,1
prgmZHSV2RGB
Rep→⌊RGB
Send("SET RGB eval(I) eval(⌊RGB(1)) eval(⌊RGB(2)) eval(⌊RGB(3
Disp "LED "+versChaîne(I)+" = "+versChaîne(⌊RGB(1))+" "+versChaîne(⌊RGB(2))+" "+versChaîne(⌊RGB(3
End
While non(getKey
End
Send("DISCONNECT RGB
DelVar ⌊RGB
3) Matériel
Go to topQuestion suivante maintenant, comment marche le TI-RGB Array ?
Sa surface est hélas extrêmement pauvre en électronique, tout juste trouve-t-on une puce LM358 de chez Texas Instruments qui n'est qu'un amplificateur opérationnel pouvant servir à bien des choses différentes.
Par contre, on peut remarquer que les diodes RGB disposent chacune de 4 contacts. Si l'alimentation et la masse sont montées en parallèle, les 2 derniers contacts semblent clairement chaîner les différentes diodes en série, comme si chacune recevait un signal avant de le passer à la suivante. Un fonctionnement comparable à celui des rubans RGB...
4) Compatibilité rubans LED RGB
Go to topSelon de premiers tests par Pavel, il est possible de remplacer le TI-RGB Array par des diodes adressables WS2812B et de les contrôler avec exactement les mêmes commandes !
Allons plus loin, prenons-nous donc un véritable ruban RGB.
Voici par exemple ci-contre notre ruban Neopixel RGB ADA1138 de chez Adafruit. Il chaîne 60 diodes RGB sur une gaine étanche de 1 mètre, et justement il s'agit de diodes WS2812B.
Niveau connexions, nous allons faire presque pareil qu'avec le TI-RGB Array :
Et bingo, ça marche sans avoir à rien changer au programme, Texas Instruments a visiblement fait dans le standard !
Petit détail, même si il accepte bien de transmettre les commandes comme on peut le voir ci-contre, le TI-Innovator Hub émet ici un petit bip d'erreur au lancement du programme, sans doute donc à la commande de connexion.
C'est probablement dû à la non connexion du port BB5. A y repenser maintenant il doit s'agir d'une vérification du signal série en fin de chaîne, et il serait donc à relier au Dout (data-out) de la dernière diode.
En tous cas, le connecter au Dout de la 60ème diode ne fait pas disparaître le bip d'erreur. Sans doute faudrait-il plutôt le relier au Dout de la 16ème diode, mais notre ruban étant sous gaine étanche nous n'avons pas trop envie de le découper vu que ça marche.
Et dernière question. Puisque l'on peut donc connecter d'autres appareils à diodes adressables, serait-ce le moyen de contrôler plus de 16 diodes ?
Cette fois-ci la réponse est apparemment non, toute commande
Allons plus loin, prenons-nous donc un véritable ruban RGB.
Voici par exemple ci-contre notre ruban Neopixel RGB ADA1138 de chez Adafruit. Il chaîne 60 diodes RGB sur une gaine étanche de 1 mètre, et justement il s'agit de diodes WS2812B.
Niveau connexions, nous allons faire presque pareil qu'avec le TI-RGB Array :
- l'alimentation sur le 5V du TI-Innovator Hub
- la masse sur l'une des masses du TI-Innovator Hub
- l'entée Din (pour data-in) de la 1ère diode du ruban sur le BB2 du TI-Innovator Hub
Et bingo, ça marche sans avoir à rien changer au programme, Texas Instruments a visiblement fait dans le standard !
Petit détail, même si il accepte bien de transmettre les commandes comme on peut le voir ci-contre, le TI-Innovator Hub émet ici un petit bip d'erreur au lancement du programme, sans doute donc à la commande de connexion.
C'est probablement dû à la non connexion du port BB5. A y repenser maintenant il doit s'agir d'une vérification du signal série en fin de chaîne, et il serait donc à relier au Dout (data-out) de la dernière diode.
En tous cas, le connecter au Dout de la 60ème diode ne fait pas disparaître le bip d'erreur. Sans doute faudrait-il plutôt le relier au Dout de la 16ème diode, mais notre ruban étant sous gaine étanche nous n'avons pas trop envie de le découper vu que ça marche.
Tu peux donc utiliser ton TI-Innovator Hub avec probablement n'importe quel appareil chaînant des diodes adressables WS2812B ou compatibles, soit plus généralement des diodes RGB adressables utilisant le même protocole (signal RGB sur 1 broche série) !
Et dernière question. Puisque l'on peut donc connecter d'autres appareils à diodes adressables, serait-ce le moyen de contrôler plus de 16 diodes ?
Cette fois-ci la réponse est apparemment non, toute commande
SET RGB n ...
avec n≥16 génère un bip d'erreur sur le TI-Innovator Hub, la commande est clairement refusée. Si donc tu peux a priori connecter et contrôler n'importe quel appareil chaînant des diodes adressables avec le signal RGB sur 1 broche série, tu ne pourras apparemment contrôler que les 16 premières diodes de l'appareil en question.
Contrairement à nous, n'achète donc pas spécifiquement pour un projet TI-Innovator un appareil chaînant bien davantage que 16 diodes.
Contrairement à nous, n'achète donc pas spécifiquement pour un projet TI-Innovator un appareil chaînant bien davantage que 16 diodes.
Téléchargement : dégradé de couleurs pour TI-RGB Array ou compatible