Page 1 of 2

Test TI-RGB Array + compatibilité rubans LED RGB

Unread postPosted: 27 Feb 2020, 20:30
by critor
12006La 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. :)








1) Connexions

Go to top

121291213012131Le 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 top

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: 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)


12213Une 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 top

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... ;)




4) Compatibilité rubans LED RGB

Go to top

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 ! :bj:

Allons plus loin, prenons-nous donc un véritable ruban RGB.

12209Voici 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.

12210Et bingo, ça marche sans avoir à rien changer au programme, Texas Instruments a visiblement fait dans le standard ! :bj:

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) ! :bj:


12212Et 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. :#non#:


Téléchargement : dégradé de couleurs pour TI-RGB Array ou compatible

Re: Test TI-RGB Array + compatibilité rubans LED RGB

Unread postPosted: 28 Feb 2020, 06:38
by Adriweb
Tres bon test, et la derniere photo en bas a droite est bien jolie :P

Re: Test TI-RGB Array + compatibilité rubans LED RGB

Unread postPosted: 28 Feb 2020, 09:52
by critor
Merci. :)

Re: Test TI-RGB Array + compatibilité rubans LED RGB

Unread postPosted: 28 Feb 2020, 19:09
by Dogm
Très original et innovant cette gamme de produit. :#top#:

Belle innovation de la part de Ti. :)

Re: Test TI-RGB Array + compatibilité rubans LED RGB

Unread postPosted: 04 Mar 2020, 14:24
by Pavel
Quelques informations intéressantes sur les ports du TI-RGB Array peuvent être trouvées dans la fiche technique du TI-RGB Array. Je pense que les deux lignes suivantes indiquent que le port BB5 est une sortie analogique utilisée pour la mesure du courant consommé par les LEDs:
  • Blue: BB5 – analog out
  • Hub measures the LEDs’ current consumption

Re: Test TI-RGB Array + compatibilité rubans LED RGB

Unread postPosted: 04 Mar 2020, 14:32
by critor
Merci pour ton info précieuse sur BB5. :)

Un moyen de le brancher correctement sur un ruban LED à ton avis, au cas où TI rende l'erreur associée bloquante dans une future mise à jour ?

Re: Test TI-RGB Array + compatibilité rubans LED RGB

Unread postPosted: 04 Mar 2020, 16:35
by Pavel
critor wrote:Un moyen de le brancher correctement sur un ruban LED à ton avis, au cas où TI rende l'erreur associée bloquante dans une future mise à jour ?


Je viens d'essayer de reconstruire le schéma du port BB5 sur la base de cette image. Voici ce que j'ai obtenu:
Image

Le courant mesuré traverse la résistance de 0,1 Ohm (R2) et la chute de tension est amplifiée par l'amplificateur non inverseur basé sur l'amplificateur opérationnel LM385 (U17). La tension entre BB5 et GND peut être calculée comme V = I * 0,1 * (1 + R4 / R5).

Je peux penser à au moins trois solutions pour la connexion BB5:
  • ne rien connecter donc le firmware du TI-Innovator Hub penserait que le courant est très faible
  • mesurer une tension typique entre BB5 et GND du vrai TI-RGB Array et émuler cette tension typique en ajoutant un diviseur de tension entre 5V et GND et en connectant la sortie du diviseur au port BB5
  • construire un circuit de mesure de courant similaire à celui du TI-RGB Array

Re: Test TI-RGB Array + compatibilité rubans LED RGB

Unread postPosted: 04 Mar 2020, 16:42
by Wistaro
Coucou,

très bel article :)

Je pense que la pin BB5 qui indique le courant est là pour éviter que le système ne pompe trop de courant sur le TI-Innovator.
La carte utilisée par le TI-Innovator est une TMS-EXP432P401, avec un LDO TPS735.
Il peut fournir un maximum théorique de 500mA, mais il est possible que cette valeur soit limitée par le firmware du TI-Innovator :)
Du coup, le système de mesure s'assure ne de jamais dépasser le seuil.

Par conséquent, l'AOP dont tu fais référence est très certainement un simple amplificateur transimpédance pour convertir le courant mesuré en tension et l'amplifier pour matcher avec la plage de mesure.

Re: Test TI-RGB Array + compatibilité rubans LED RGB

Unread postPosted: 04 Mar 2020, 16:48
by Wistaro
Pavel wrote:
critor wrote:Un moyen de le brancher correctement sur un ruban LED à ton avis, au cas où TI rende l'erreur associée bloquante dans une future mise à jour ?


Je viens d'essayer de reconstruire le schéma du port BB5 sur la base de cette image. Voici ce que j'ai obtenu:
Image

Le courant mesuré traverse la résistance de 0,1 Ohm (R2) et la chute de tension est amplifiée par l'amplificateur non inverseur basé sur l'amplificateur opérationnel LM385 (U17). La tension entre BB5 et GND peut être calculée comme V = I * 0,1 * (1 + R4 / R5).

Je peux penser à au moins trois solutions pour la connexion BB5:
  • ne connectez rien donc le firmware du TI-Innovator Hub penserait que le courant est très faible
  • mesurer une tension typique entre BB5 et GND du vrai TI-RGB Array et émuler cette tension typique en ajoutant un diviseur de tension entre 5V et GND et en connectant la sortie du diviseur au port BB5
  • construire un circuit de mesure de courant similaire à celui du TI-RGB Array


Effectivement, et tu as été plus rapide que moi :)

Je n'avais pas l'image sous les yeux, mais au lieu d'une amplificateur trans impédance (qui aurait pu faire l'affaire), il ont fait le choix de prendre un simple ampli avec une résistance de shunt. C'est moins précis, mais c'est plus simple :)

Pour inhiber ce paramètre, on pourrait comme tu l'as dit ne rien brancher.
Mais peut-être qu'il n'aime pas recevoir aucun tension (donc qu'aucun courant ne circule dans les LEDs). Je suggère donc de lui fournir un courant constant, dans les ranges d'acceptation. Plusieurs schémas existent, c'est pas très compliqué :)

Re: Test TI-RGB Array + compatibilité rubans LED RGB

Unread postPosted: 10 Mar 2020, 22:55
by critor
Voici un anneau RGB parfaitement dimensionné pour le TI-Innovator Hub, avec pile 16 diodes RGB WS2812 :
https://www.amazon.fr/dp/B01MTS6EGW/?tag=tiplanorg-21