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 top- 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 topAllons 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.
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. 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