![12006](/forum/gallery/image.php?mode=thumbnail&image_id=12006)
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.
![:) :)](./images/smilies/smile.png)
![12132](/forum/gallery/image.php?mode=thumbnail&image_id=12132)
Le
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: Tout sélectionner
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)
![12213](/forum/gallery/image.php?mode=thumbnail&image_id=12213)
Une fois cet aspect traité, la programmation de notre dégradé est extrêmement simple, ne nécessitant plus que quelques lignes :
- Code: Tout sélectionner
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
![12134](/forum/gallery/image.php?mode=thumbnail&image_id=12134)
Question 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...
![;) ;)](./images/smilies/wink.png)
![](https://i.imgur.com/N5X5BEut.jpg)
Selon 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 !
![Bien joué! :bj:](./images/smilies/sg3agbjg3ag.gif)
Allons plus loin, prenons-nous donc un véritable ruban
RGB.
![12209](/forum/gallery/image.php?mode=thumbnail&image_id=12209)
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
Nous ne connecterons pas le
BB5 pour le moment, ne sachant pas trop ce que c'est.
![12210](/forum/gallery/image.php?mode=thumbnail&image_id=12210)
Et bingo, ça marche sans avoir à rien changer au programme,
Texas Instruments a visiblement fait dans le standard !
![Bien joué! :bj:](./images/smilies/sg3agbjg3ag.gif)
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) !
![Bien joué! :bj:](./images/smilies/sg3agbjg3ag.gif)
![12212](/forum/gallery/image.php?mode=thumbnail&image_id=12212)
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.
![:( :(](./images/smilies/sad.png)
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.
![Négatif :#non#:](./images/smilies/10.gif)