
Surprise inattendue pour cette rentrée 2022,
Texas Instruments nous sort une mise à jour de
TI-Connect CE, son logiciel de connectivité pour calculatrices
TI-82/83/84 munies d'un port
USB.
Mais ce qui est suprenant c'est surtout le numéro de version du logiciel, qui habituellement suivait la numérotation des mises à jour de calculatrices. Nous passons en effet de la version
5.6.3 qui était sortie pour la rentrée 2021 avec le support de la nouvelle
TI-82 Advanced Edition Python, à une version
6.0.
Or la
TI-82 Advanced Edition Python est restée depuis en version
5.6.3, pendant que les
TI-83 Premium CE et
TI-84 Plus CE viennent à peine de passer à la version
5.8.
Un saut de version aussi important, c'est curieux hors contexte de toute sortie d'un nouveau modèle ou d'une mise à jour majeure de calculatrice.
Tentons donc de creuser les nouveautés.
Les scripts
Python que tu transférais vers ta calculatrice
TI-83 Premium CE ou
TI-84 Plus CE pouvaient être sous deux formats différents :
- le format .py issu de n'importe quel outil de concetpion Python
- le format .8xv de Texas Instruments pour les variables d'applications
Mais inversement, lorsque tu faisais ressortir des scripts depuis ta calculatrice, tu les obtenais obligatoirement au format
.8xv, pour lequel il n'existe aucun lecteur autre que la calculatrice et aucun convertisseur non plus.
C'est-à-dire qu'ils ne pouvaient pas être édités ni même utilisés dans un autre environnement
Python. Et c'était particulièrement embêtant pour les scripts dont tu ne disposais d'aucune copie sous un autre format, par exemple parce que tu les avais saisis directement sur la calculatrice.


Et bien bonne nouvelle.
Désormais, lorsque tu exporte un script
Python de ta calculatrice,
TI-Connect CE te donne enfin le choix du format d'enregistrement :
.8xv ou
.py !



Le langage
Python supporté par les derniers modèles
TI-83 Premium CE et
TI-84 Plus CE est très riche. Pour tes scripts tu disposes entre autres de la possiblité d'importer
ti_graphics, une bibliothèque de tracé par pixels gérant tout une collection d'objets graphiques élémentaires :
- pixel -
setPixel(x,y)
- texte -
drawString(text,x,y)
- ligne -
drawLine(x1,y1,x2,y2)
- ligne brisée et polygone -
drawPolyLine([(x1,y1),(x2,y2),...,(xn,yn)])
et fillPolygone([(x1,y1),(x2,y2),...,(xn,yn)])
- rectangle et rectangle plein -
drawRect(x,y,largeur,hauteur)
et fillRect(x,y,dx,dy)
- disque -
fillCircle(x,y,r)
- arc et secteur d'ellipse -
drawArc(x,y,dx,dy,t1,t2)
et fillArc(x,y,dx,dy,t1,t2)
La couleur se règle via
setColor([r,g,b])
en
RGB-888, pour un affichage effectif en
RGB-565 sur l'écran de la calculatrice.
setPen(taille,type)
permet également de régler le stylo, l'épaisseur du trait ainsi que son style : continu ou en pointillés.
ti_graphics est de loin la bibliothèque
Python de tracé par pixels la plus complète toute concurrence confondue. C'est de plus une véritable pépite pédagogique, avec le gros avantage de permettre dès la Seconde d'aborder et mener à bien des projets graphiques ambitieux en un minimum de lignes, sans avoir à traiter au préalable l'intégralité des notions mathématiques ou algorithmiques qu'il y a derrière tout cela !



Et c'est loin d'être tout, dans le même esprit la formidable bibliothèque
ti_graphics permet également d'afficher des images !

Ici encore nul besoin d'attendre le chapitre sur le codage des images, une seule ligne suffit dès la Seconde :
drawimage("nom",x,y)
. Cet appel va alors chercher en mémoire la variable d'application
nom.8xv pour l'afficher.
Pour enrichir ainsi tes projets,
Texas Instruments t'avait
partagé une banque de 14 images libres.
Ces images utilisent un format
IM8C que nous t'avions
analysé et documenté :
- Les images utilisent une palette d'au plus 256 couleurs, dont éventuellement 1 couleur transparente.
- Les données des pixels ainsi indexées sont compressées au format RLE.
Toutefois fallait-il déjà être capable de produire des images au format IM8C en question, et aucun outil de conversion officiel n'était disponible jusqu'à présent.
Aussi t'avions-nous
intégré le support de ce format à notre outil de conversion en ligne
img2calc.
TI-Connect CE gérait déjà la conversion d'images en fonds d'écran pour les calculatrices couleur ; il suffisait pour cela de tenter de transférer une image.
Et bien nouveauté, la conversion d'images au format
IM8C des scripts
Python pour
TI-83 Premium CE et
TI-84 Plus CE est maintenant supportée !

Pour y accéder, dans la liste déroulante de la boîte de dialogue, il te suffit de choisir
Image Python au lieu d'un des 10 noms de fonds d'écran.

Nous obtenons à une boîte de dialogue a priori très complète, suggérant un grand soin apporté à cet outil :
- permettant de choisir le nom que prendra l'image sur la calculatrice
- indiquant des règles de nommage (imposant une écriture en lettres capitales, contrairement à img2calc)
- rappelant les dimensions originales de l'image soumise
- permettant de préciser les dimensions souhaitées sur calculatrice, tout en rappelant la taille maximum de 320×210 pixels


Testons tout-de-suite une comparaison des conversions
TI-Connect CE et
img2calc. Prenons les 2 images suivantes :
- ZELDAB : une image de fond d'écran de 800×450 pixels en 94570 couleurs, que les deux outils passent en 320×180 pixels
- ZELDAF : une image de premier plan de 1000×933 pixels en 80570 couleurs avec transparence, que les deux outils passent en 225×210 pixels


Voici un script
Python exploitant ces deux images, ainsi que ce qu'il donne ci-contre :
- Code: Select all
from ti_graphics import *
from ti_system import *
drawImage("ZELDAB", 0, 30)
drawImage("ZELDAF", 0, 30)
disp_wait()
Déjà, premier problème évident avec
TI-Connect CE, la transparence pourtant supportée par le format
IM8C conçu par
Texas Instruments, n'est visiblement pas gérée correctement au niveau du convertisseur.
À y regarder de plus près, on peut également noter des différences globales sur ce genre d'images, les algorithmes de réduction en pixels et en couleurs n'étant bien évidemment pas les mêmes pour les deux outils, on pouvait s'attendre à ce qu'ils génèrent des palettes de couleurs différentes..

Mais explorons ces conversions plus en détails. Malgré un affichage similaire si l'on fait abstraction du bug précédent, nous pouvons noter que les images converties avec
TI-Connect CE occupent sensiblement plus de place :

- ZELDAB occupe non pas 47,453 Ko mais 54,821 Ko (+15,53%)
- ZELDAF occupe non pas 14,411 Ko mais 15,795 Ko (+9,60%)
Ce n'est probablement pas la seule, mais nous trouvons rapidement une des explications de cette hausse dans la palette de couleurs, plus importante avec
TI-Connect CE :
- ZELDAB définit non pas 252 mais 254 couleurs, mais quel gapillage quand on se rend compte finalement que l'image n'affiche que 221 couleurs différentes !
- ZELDAF définit non pas 248 mais le maximum de 256 couleurs, pour de façon absolument ridicule n'afficher que 157 couleurs différentes !
À mieux regarder les fichiers obtenus à l'éditeur hexadécimal, nous pensons comprendre le problème avec
TI-Connect CE. En fait ce n'est pas que la palette contient des couleurs jamais affichées, mais c'est qu'elle contient plein de couleurs absolument identiques, ce qui certes gaspille un petit peu de place, mais est surtout un éparpillement sabotant littéralement la compression
RLE.

Nous pensons donc que l'équipe de développement, peut-être prise par le temps, a commis les erreurs de :
- rechercher la palette de couleurs optimale non pas en directement en RGB565 (16 bits) mais en RGB888 (24 bits), et effectivement lorsque l'on passe ensuite au format 16 bits les couleurs trop proches peuvent devenir identiques
- ne pas supprimer les doublons en découlant de la palette RGB565 obtenue
L'affichage précédent ayant raté avec les conversions
TI-Connect CE, nous te laissons de quoi te permettre de comparer toi-même séparément les images converties :
Nous ne pouvons que saluer une belle évolution de
TI-Connect CE allant enfin dans le bon sens pour faciliter la création de projets
Python, la mettant ainsi à portée de tout-le-monde.

La conversion d'images au format
IM8C mériterait certes d'être retravaillée concernant le support de la transparence ainsi que le gaspillage significatif et inutile d'espace mémoire.
Mais quelque chose nous tracasse ; nous avons malgré tout l'impression de passer à côté d'une nouveauté majeure avec ce saut de version à
6.0...