Lecture couleur avec TI-Innovator Rover, épisode 2
Posted: 07 Mar 2018, 22:57
Le TI-Innovator Rover, robot pilotable à partir d'une TI-83 Premium CE ou TI-Nspire CX munie d'une interface TI-Innovator Hub, dispose sur sa face inférieure d'un détecteur de couleur RVB (Rouge, Vert, Bleu - soit RGB en anglais).
Une porte ouverte vers une multitude de projets, que ce soit transformer le robot en scanner, lui faire suivre des formes, ou encore le commander rien qu'en disposant des carrés de couleur sur son chemin, chacune associée à une comportement distinct.
Une fois le robot correctement connecté matériellement puis logiciellement, son utilisation est très simple :
Le robot étant commun aux TI-Nspire CX et TI-83 Premium CE, il n'est pas surprenant de constater que cette dernière commande ne renvoie pas des codes couleurs directement compréhensibles par la TI-83 Premium CE.
Toutefois, nous avons vu dans l'épisode précédent comment convertir ces codes en seulement 2 lignes :
Une porte ouverte vers une multitude de projets, que ce soit transformer le robot en scanner, lui faire suivre des formes, ou encore le commander rien qu'en disposant des carrés de couleur sur son chemin, chacune associée à une comportement distinct.
Une fois le robot correctement connecté matériellement puis logiciellement, son utilisation est très simple :
- Code: Select all
Send("CONNECT RV
[...]
Send("READ RV.COLORINPUT.RED
Get(R
Send("READ RV.COLORINPUT.GREEN
Get(V
Send("READ RV.COLORINPUT.BLUE
Get(B
Send("READ RV.COLORINPUT.GRAY
Get(G
Send("READ RV.COLORINPUT
Get(C
Le robot étant commun aux TI-Nspire CX et TI-83 Premium CE, il n'est pas surprenant de constater que cette dernière commande ne renvoie pas des codes couleurs directement compréhensibles par la TI-83 Premium CE.
Toutefois, nous avons vu dans l'épisode précédent comment convertir ces codes en seulement 2 lignes :
- Code: Select all
{ROUGE,VERT,BLEU,BLEU CLR,MAGENTA,JAUNE,NOIR,BLANC,GRIS
Rep(C
Toutefois, on peut regretter que le robot ne reconnaisse via l'instruction
READ RV.COLORINPUT
que 9 couleurs différentes contre 15 couleurs gérées par la calculatrice :TI-Innovator Rover | TI-Basic TI-83 Premium CE |
1=Rouge 2=Vert 3=Bleu 4=Cyan 5=Magenta 6=Jaune 7=Noir 8=Blanc 9=Gris | 10=Bleu 11=Rouge 12=Noir 13=Magenta 14=Vert 15=Orange 16=Marron 17=Bleu marine 18=Bleu clair 19=Jaune 20=Blanc 21=Gris clair 22=Gris moyen 23=Gris 24=Gris foncé |
Par exemple, le robot ne reconnaît que deux teintes de bleu (cyan et bleu), alors que la calculatrice est capable d'en afficher trois différentes (bleu clair, bleu et bleu marine). Nous avons déjà associé le bleu clair au cyan dans l'épisode précédent. Mais il reste donc une teinte de bleue inutilisée.
On peut résoudre cela facilement avec une procédure complémentaire spécifique au cas où le robot détecte du bleu.
En ouvrant une capture d'écran avec un logiciel de dessin, on peut récupérer les coordonnées RVB et donc les quantités de bleu correspondant aux teintes de la calculatrice :
10: 000 000 255 (BLEU)
17: 000 000 132 (BLEU MRN)
18: 000 146 255 (BLEU CLR)
Dans le cas où le robot nous retourne du bleu, il nous suffit donc d'utiliser l'instruction
Et voilà, le robot détecte maintenant correctement les différentes teintes de bleu !
Pire, le robot ne reconnaît qu'une seule teinte de gris, alors que la calculatrice est capable d'en afficher quatre différentes (gris clair, gris moyen, gris et gris foncé). Nous avons déjà associé le bleu clair au cyan dans l'épisode précédent. Il reste donc trois teintes de gris inutilisées.
De même récupérons les niveaux de gris de la calculatrice à l'aide d'un logiciel de dessin :
21: 228 (GRIS CLR)
22: 196 (GRIS MOY)
23: 139 (GRIS)
24: 84 (GRIS FON)
Là avec 4 valeurs, il est plus compliqué de déterminer la plus proche. Mais grâce aux instructions gérant les listes, on va quand même te faire le coup d'y arriver sans utiliser la moindre boucle :
Et voilà, le robot détecte maintenant correctement les différentes teintes de gris !
On peut résoudre cela facilement avec une procédure complémentaire spécifique au cas où le robot détecte du bleu.
En ouvrant une capture d'écran avec un logiciel de dessin, on peut récupérer les coordonnées RVB et donc les quantités de bleu correspondant aux teintes de la calculatrice :
10: 000 000 255 (BLEU)
17: 000 000 132 (BLEU MRN)
18: 000 146 255 (BLEU CLR)
Dans le cas où le robot nous retourne du bleu, il nous suffit donc d'utiliser l'instruction
READ RV.COLORINPUT.BLUE
et de regarder de quelle valeur on est le plus proche :- Code: Select all
If Rep=BLEU
Then
Send("READ RV.COLORINPUT.BLEU
Get(B
BLEU+7(B<.5(255+132
End
Et voilà, le robot détecte maintenant correctement les différentes teintes de bleu !
Pire, le robot ne reconnaît qu'une seule teinte de gris, alors que la calculatrice est capable d'en afficher quatre différentes (gris clair, gris moyen, gris et gris foncé). Nous avons déjà associé le bleu clair au cyan dans l'épisode précédent. Il reste donc trois teintes de gris inutilisées.
De même récupérons les niveaux de gris de la calculatrice à l'aide d'un logiciel de dessin :
21: 228 (GRIS CLR)
22: 196 (GRIS MOY)
23: 139 (GRIS)
24: 84 (GRIS FON)
Là avec 4 valeurs, il est plus compliqué de déterminer la plus proche. Mais grâce aux instructions gérant les listes, on va quand même te faire le coup d'y arriver sans utiliser la moindre boucle :
- Code: Select all
If Rep=GRIS
Then
Send("READ RV.COLORINPUT.GRAY
Get(G
{228,196,139,84→⌊T
abs(G-⌊T→⌊T
min(⌊T
BLANC+Σ(I(⌊T(I)=Rep),I,1,dim(⌊T
End
Et voilà, le robot détecte maintenant correctement les différentes teintes de gris !
Nous sommes donc maintenant capables de détecter et afficher non plus 9, mais 13 couleurs différentes.
Mais nous n'atteignons donc pas encore les 15 couleurs affichables par la calculatrice. A suivre...
Mais nous n'atteignons donc pas encore les 15 couleurs affichables par la calculatrice. A suivre...
Téléchargement : archives_voir.php?id=1380401