Aujourd’hui, parlons
Zero. Dans une actualité d'
avril 2022 nous t'annoncions la sortie prochaine pour la rentrée 2022 d'une nouvelle calculatrice graphique en Amérique du Nord, la
Zero par l'entreprise du même nom
(une façon de faire qui rappelait initialement la NumWorks). Le projet se voulait offrir une version améliorée et plus abordable de la
TI-84 Plus CE, équivalent à l'international de notre
TI-83 Premium CE française, tout en étant compatible avec ces dernières au niveau de l'utilisation.
Nous avions reçu initialement un premier échantillon, la
Zero ZGC1, dont nous t'avions offert un
unboxing puis un
test matériel avec des performances formidablement supérieures à celles des
TI-84 Plus CE.
Nous avions reçu par la suite en
septembre 2022 un 2
e échantillon utilisant une nouvelle révision matérielle, la
Zero ZGC2.
Si la
Zero avait pour objectif de concurrencer la
TI-84 Plus CE en Amérique du Nord, rappelons que la plateforme
CE est déclinée par
Texas Instruments en différentes éditions de par le monde, avec de petites différences :
- TI-83 Premium CE (2015) puis TI-83 Premium CE Edition Python (2019) en France
- TI-84 Plus CE-T (2015) puis TI-84 Plus CE-T Python Edition (2020) en Europe
- TI-84 Plus CE Python (2021) en Amérique du Nord
- TI-84 Plus CE (2015) dans le reste du monde
Bien que donc prévues pour concurrencer la
TI-84 Plus CE Python, avec une diode examen, un mode examen assez restrictif et l'absence de programmation
Python, les
ZGC1 et
ZGC2 étaient en fait plus proche du modèle européen
TI-84 Plus CE-T, dans son édition sans
Python.
Prévu initialement pour la rentrée 2022, la sortie avait été retardée sans aucune nouvelle jusqu'à ce jour, et le site officiel
zerocalculators.com avait même été vidé de tout contenu.
Il faut dire que le projet avançait à notre connaissance sans l'accord de
Texas Instruments, et que la rumeur populaire racontait que ces derniers avaient exigé un changement de
design.
Aujourd'hui nous avons l'immense honneur d'avoir entre les mains un 3e échantillon dans une nouvelle révision matérielle, la Zero ZGC3, que nous allons donc pouvoir tester devant toi.
Lors de l'écriture de cet article, il n'y avait pas encore de simulateur Zero disponible, donc il a fallu prendre des photos. Celui-ci est arrivé quelques jours après, cela dit !
Si il n’y a pas d’autre contretemps, la Zero devrait enfin pouvoir sortir d'ici quelques mois, prête pour la rentrée 2024, en Amérique du Nord pour commencer. Mais avant cela, regardons donc tout de suite ce qu’elle vaut.
Nous mentionnerons régulièrement dans ce test la TI-84 Plus CE à des fins de comparaisons, et tu pourras considérer à chaque fois que c’est pareil que la TI-83 Premium CE française. Lorsqu’il y aura une différence notable, nous le préciserons.
Sommaire :Mais avant tout, derrière la
Zero il y a un homme que nous allons enfin te présenter après plus d’une année de mystère :
Jesse McLaughlin, fondateur de l'entreprise
Zero créée en 2019.
Jesse, diplômé de l'
Université d'Oregon, est tétraplégique depuis un terrible accident alors qu'il avait tout juste 20 ans, en
octobre 2008 : au cours d'une partie de
paintball en forêt avec ses amis,
Jesse, se cachant dans un fourré, a été pris pour du gibier par des chasseurs qui passaient en voiture, et gravement touché au cou.
Mais comme tu peux le constater, cela ne l'a pas empêché de vouloir viser la Lune en se proposant de chatouiller le géant
Texas Instruments (comme NumWorks a pu réussir à le faire en France), ambition que nous ne pouvons que saluer.
On nous a prévenu que ceci aura changé d'ici la sortie, mais l'emballage de la
ZGC3 que nous avons eu semble identique à ceux qui étaient déjà venus avec les
ZGC1 et
ZGC2 et donc ne nous semble à ce jour pas prêt pour une sortie de la calculatrice
(qui en conséquence n'est sans doute pas encore imminente). On remarque d'ailleurs le même code barre
1 95893 43641 5, et le guide de démarrage rapide illustre toujours le
design de la
ZGC2.
Par contre, la
ZGC3 est visuellement très différente
Plusieurs changements semblent effectivement avoir été apportés afin d'éloigner davantage la
Zero ZGC3 de l'aspect d'une
TI-84 Plus CE, rendant toute confusion avec cette dernière encore plus improbable :
- les touches passent d'une forme rectangulaire à une forme circulaire, plus exactement des calottes sphériques, et les reflets lumineux alors répliqués sur chaque touche donnent un cachet tout particulier à cette calculatrice
- dans la partie supérieure proche de l'écran et donc caractéristique dans l'esprit des utilisateurs de l'identité de chaque calculatrice, nous notions également plusieurs changements par rapport à l'organisation des touches clavier d'une TI-84 Plus CE :
- pavé directionnel qui passe au centre (ce qui ne nous semble pas des plus ergonomiques pour les jeux, mais aussi pour naviguer dans les menus ce que l'on fait sans arrêt sur une machine dépourvue d'un écran tactile)
- touches X,Y,θ,n, mode, del qui adoptent des emplacements jusqu'ici inédits
- touches stat qui quitte la zone supérieure et inversement touche clear qui y fait son entrée
- plastique de la façade clavier qui abandonne sa finition sablée pour un polissage miroir certes très beau, mais avec malheureusement plusieurs inconvénients majeurs :
- marquage durable de toute trace d'utilisation dès que l'on ne prend pas de gants
- rendant hélas les inscriptions en rouge foncé des fonctions alphabétiques beaucoup plus pénibles à lire sous un éclairage domestique
Nous verrons bien d'ici la rentrée 2024 si
Texas Instruments se satisfait de ces changements ou pas.
Sur la tranche inférieure, la
Zero dispose d’un port
USB-C.
La diode par contre a été déplacée. Elle passe de la tranche inférieure sur
ZGC1 et
ZGC2, à la tranche supérieure sur
ZGC3.
Il est grand temps d'allumer notre
Zero ZGC3. Et bien grosse surprise immédiate. Contrairement aux prédécesseurs
ZGC1 et
ZGC2, la
ZGC3 fonctionne par défaut dans un thème sombre. Quand on pense à tous ceux qui se donnent du mal à programmer des thèmes sombres pour
TI-83 Premium CE et
TI-84 Plus CE, comme entre autres celui de
Cesium, et aux utilisateurs qui peinent à les rajouter et conserver actifs depuis que
Texas Instruments a
supprimé le support des programmes en langage assembleur...
Peut-être un effort supplémentaire afin de distinguer la
ZGC3 des
TI-84 Plus CE, et dans tous les cas un bel avantage !
Bon par contre, comme tu dois le deviner nous n'avons à ce jour ni émulateur ni de quoi prendre des captures d'écran de la calculatrice. Et sur cette technologie d'écran, il est fort pénible de prendre des photos correctes de l'écran lorsqu'une bonne partie des pixels sont réglés pour afficher du noir, c'est-à-dire en pratique sont éteints. Alors commençons par changer de thème d'affichage, si possible...
Nous trouvons heureusement vite de quoi, une option
"Dark mode" mais bizarrement disponible non pas dans le menu
mode, mais dans le menu
'Format' accessible via
2ndF3.
Nous voici maintenant fin prêts pour la suite…
Déjà, à quelle version système avons-nous affaire ? Rendons-nous sur l’écran
’About’ en tapant
2nd+1.
Là où l’ultime mise à jour pour
ZGC1 et
ZGC2 fut la version
1.66.23 compilée le
26 avril 2023, nous découvrons ici que la
ZGC3 vient préchargée avec un système d’exploitation en version
2.18.3 compilé le
16 août 2023.
Une incrémentation majeure de la numérotation de version qui suggère des différences significatives, soit au niveau du logiciel, soit au niveau du matériel, soit les deux. Il va nous falloir creuser.
En attendant, ajout notable à cet écran, on note l’affichage d’un identifiant faisant office de numéro de série numérique.
Comme sur
TI-84 Plus CE, les inscriptions clavier de la
Zero indiquent pour chaque touche :
- une fonction principale
- une fonction secondaire accessible via le modificateur 2nd
- une fonction alphabétique accessible via le modificateur alpha
Concernant le modificateur alphabétique, comme sur
TI-84 Plus CE il suffit de taper :
- alpha pour saisir 1 caractère en majuscule selon les inscriptions de fonctions alphabétiques au clavier
- 2ndalpha pour verrouiller la calculatrice en mode alphabétique et pouvoir ainsi saisir toute une série de ces caractères en majuscules sans avoir à réappuyer sur alpha à chaque fois
Saisir des lettres minuscules sur
TI-84 Plus CE n’est pas aisé, car possible uniquement dans certains contextes :
- n’est librement possible qu’au sein de l’application Python
- En dehors de cela il te faut passer par Caractères, interface de saisie accessible uniquement si la calculatrice est réglée dans une autre langue que l’Anglais (1ère entrée au catalogue
2nd
0
), ce qui exclut déjà l’Amérique du Nord, et où les minuscules sont alors accessibles avec alpha
alpha
.
Cette manipulation ouvrant une interface, sa possibilité et sa pertinence vont de plus dépendre du contexte. - Si rien de ce qui précède ne te convenait, il te fallait installer des outils comme Cesium hélas plus difficilement accessibles et plus péniblement utilisables depuis que Texas Instruments a supprimé la gestion des programmes assembleur.
Formidable ajout d’origine sur la
Zero, il est possible de saisir des caractères en minuscules via une double pression de la touche
alpha :
- alphaalpha pour pouvoir saisir 1 caractère en minuscule
- 2ndalphaalpha pour verrouiller la calculatrice en mode alphabétique minuscule et pouvoir saisir toute une série de ces caractères en minuscules
Attention, lorsque le modificateur
alpha est actif la touche
enter ne fonctionne pas. C’est particulièrement embêtant lorsque l’on est en mode verrouillage alphabétique.
De plus, cela nous est plusieurs fois arrivés d’avoir une touche
enter non réactive alors qu’aucun modificateur n’était actif, ne pouvant alors qu’annuler la saisie pour recommencer. Petit bug de drapeaux ou événements on dirait…
F) Nommage des variables, listes et matrices
Go to topMaintenant que nous savons saisir, parlons variables.
Sur
TI-84 Plus CE, tu peux affecter entre autres avec l’opérateur
sto→
, mais la gestion des variables était extrêmement rigide :
- 27 variables numériques (les lettres de A à Z ainsi que la lettre grecque θ)
- 10 noms de variables dédiés aux matrices (de [A] à [J])
- 10 noms de variables dédiés aux chaînes de caractères (Str0 à Str9, ou en Français sur TI-83 Premium CE Chn0 à Chn9)
- 6 noms de variables dédiés aux listes (de L1 à L6)
- divers noms de variables dédié à la configuration des grapheur et tableau de valeurs de fonctions (bornes de la fenêtre Xmin et Xmax entre bien d’autres choses)
À noter que tous les noms précédents affichés avec plusieurs caractères sont en fait des jetons insécables. Ils sont saisis d’un coup aux menus ou au clavier et se comportent exactement comme un caractère, c’est-à-dire que le curseur ne peut être positionné qu’avant ou après le jeton en question.
Sur la
Zero tu retrouveras les mêmes jetons dédiés à certains types de variables. Attention petit détail concernant les matrices et listes, la syntaxe permettant de les redimensionner sur
TI-84 Plus CE n’est pas reconnue. Il faut passer par la fonction
resize() ajoutée à cette fin.
Dans le cas particulier des listes, la
TI-84 Plus CE te permet également de choisir des noms de variables sur 6 caractères sous les contraintes suivantes :
- le premier caractère doit être le préfixe dédié L
- le deuxième caractère doit obligatoirement être une lettre alphabétique
- les 4 caractères restant si utilisés peuvent faire appel aussi bien à lettres que chiffres ou encore à la lettre grecque θ
Sur la
Zero, les jetons ne sont en fait conservés qu’à des fins de compatibilité. Nous avons droit en prime à une gestion des noms de variables enfin digne de ce que l’on trouve sur les modèles haut de gamme !
Les noms de variables peuvent être librement choisis sur 15 caractères sous les seules règles suivantes :
- les caractères peuvent être des lettres majuscules ou minuscules, ou la lettre grecque θ
- les chiffres par contre sont strictement interdits, même au-delà du premier caractère
Précisons que les variables ainsi définies peuvent accueillir n’importe quel type de donnée, mêmes des types de données pour lesquels il existe des variables système dédiées
(listes, matrices, …) !
Malheureusement cet énorme avantage n’est pas entièrement fonctionnel. Par exemple, la syntaxe permettant d’accéder aux éléments de listes et matrices n’est pas reconnue si l’on n’utilise pas l’une des variables dédiées. De même, la fonction de redimensionnement
resize() ne fonctionnera pas sur un nom de variable non dédié.
Quel dommage, car cela casse presque entièrement le formidable intérêt de pouvoir enregistrer n’importe quel type de donnée dans un nom de variable.
G) Langage de programmation Zero Basic
Go to topCommençons par parler programmation, car cela va pouvoir nous être utile pour nombre de tests. La
Zero est programmable dans un langage interprété appelé le
Zero Basic.
Si il ressemble beaucoup au
TI-Basic, il y a plusieurs différences qui feront que le code ne sera pas directement compatible
(mais pourra être facilement adapté, dans un sens ou dans l’autre).
Les différences essentielles concernent les instructions de boucle :
- Déjà, la boucle "Repeat" (”répéter jusqu’à”) de la TI-84 Plus CE n’existe pas sur Zero. Il faudra la transcrire en boucle "While" (”tant que”) et éventuellement adapter le test qui va avec.
- La boucle conditionnelle "while" (”tant que”) adopte une syntaxe différente :
TI-84 Plus CE | Zero |
---|
- Code: Select all
While …condition… …instruction_1… …instruction_2… … End
| - Code: Select all
while …condition… do …instruction_1… …instruction_2… … end
|
- La boucle d’itération "for" (’pour’) adopte également une syntaxe différente :
TI-84 Plus CE | Zero |
---|
- Code: Select all
For(…variable… , …départ… , …fin…) …instruction_1… …instruction_2… … End
| - Code: Select all
for …variable… in …départ… , …fin… do …instruction_1… …instruction_2… … end
|
- Code: Select all
For(…variable… , …départ… , …fin… , …pas…) …instruction_1… …instruction_2… … End
| - Code: Select all
for …variable… in …départ… , …fin… , …pas… do …instruction_1… …instruction_2… … end
|
Attention à une petite différence qui nécessitera d’adapter légèrement ton code. À chaque itération de la boucle for il y a une incrémentation du compteur et un test par rapport à la borne de fin.
- En TI-Basic, la boucle For s’arrête après avoir atteint et itéré sur la borne de fin. C’est-à-dire qu’après chaque itération, l’incrémentation est effectuée après le test.
Par exemple, une boucle ’pour i de 1 à 10’ exécutera 10 fois son corps avec des valeurs de i allant de 1 jusqu’à 10 inclus. - En Zero Basic, la boucle for s’arrête avant que l’on n’atteigne la borne de fin (comme en Python). C’est-à-dire qu’après chaque itération, l’incrémentation est effectuée avant le test.
Par exemple, une boucle ’pour i de 1 à 10’ exécutera 9 fois son contenu avec des valeurs de i allant de 1 jusqu’à 9.
Notons que le langage
Zero Basic accepte 2 écritures différentes pour la plupart des opérateurs de comparaison :
- le caractère spécial associé récupérable via le menu 2ndmath
- mais aussi une écriture avec de simples caractères ASCII 7 bits, à la différence disponible directement sur tout clavier d’ordinateur (nous verrons pourquoi dans la partie connectivité ) :
<=
au lieu de ≤
>=
au lieu de ≥
!=
au lieu de ≠
Exception qui confirme la règle, le test d’égalité en
Zero Basic ne s’écrit pas
=
mais
==
comme dans bien d’autres langages de programmation professionnels, et comme c’était le cas à partir de 1993 sur le haut de gamme de l’époque
TI-85 puis
TI-86. Toutefois c’est davantage discutable ici, dans le sens où c’est l’opérateur
→
saisi via la touche
sto→ qui sert à l’affectation et qu’il n’y a donc pas de confusion possible. En conséquence, l’opérateur
=
quant à lui ne sert strictement à rien sur
Zero, déclenchant dans tous les cas une erreur de syntaxe.
Et pour appeler un sous programme en
Zero Basic, on ne fait pas
prgm…nom…
mais
call …nom…
.
Regardons du côté des commandes accessibles depuis l’éditeur via la touche
prgm.
Notons sur
Zero que le menu de l’éditeur de programme met à portée de main dans un onglet les instructions relatives à l’horloge système dans un onglet dédié
TIME.
Signalons la présence remarquable sur
Zero d’équivalents à certaines instructions pourtant rajoutées fort récemment au langage
TI-Basic sur
TI-84 Plus CE :
Wait()
eval()
expr()
toString()
Par contre inversement, certaines instructions
TI-Basic semblent à ce jour ne pas avoir d’équivalent en
Zero Basic :
Menu(
pour afficher un choix plein écranLbl
et Goto
pour les branchements, à remplacer donc par des boucles ou appels de sous-programmesOpenLib
et ExecLib
pour les applications fournissant des bibliothèques d’instructionsSend(
et Get(
pour échanger des valeurs de variables par câble avec une autre calculatrice ou un périphérique
Rappelons que le
TI-Basic t’interdisait d’indenter ton code, déclenchant une erreur de syntaxe sur le moindre caractère espace rencontré en début de ligne. Gros avantage pour le
Zero Basic qui n’a pas cette rigidité, tu ici es libre de rajouter des espaces où bon te semble, ce qui te permet entre autres :
- d’indenter les différentes lignes de ton programme comme on apprend à le faire au lycée, ce qui en facilite grandement la lisibilité et par conséquent la production et la maintenance !
- d’aligner certains paramètres sur des lignes consécutives similaires
Inversement, en
TI-Basic tu n’étais pas obligé de fermer les délimiteurs
(parenthèses, crochets, accolades) en fin de ligne. En
Zero Basic par contre il vaudra mieux le faire systématiquement dans les programmes, un délimiteur non fermé ayant en effet des conséquences sur l’exécution des lignes suivantes.
H) Programmation et écran texte
Go to topMaintenant que nous savons programmer, profitons-en pour explorer les capacités de l’écran texte
(ou écran de calcul) de la
Zero. La définition est certes la même que sur
TI-84 Plus CE,
320×240 pixels, mais la police est différente, nous semblant plus petite sur la
Zero.
Créons donc un programme qui va nous permettre de numéroter les lignes et colonnes. Comme un affichage hors écran génère une erreur, nous testerons les flèches du pavé directionnel afin d’augmenter ou diminuer le nombre de lignes ou colonnes à numéroter.
(Indentation TI-Basic ajoutée pour des raisons de lisibilité, et à enlever si vous testez)TI-84 Plus CE | Zero |
---|
- Code: Select all
0→K 1→X 1→Y While K≠45 ClrHome For(L,1,Y Output(L,1,L End For(C,1,X Output(1,C,remainder(C,10 End Output(3,3,{X,Y 0→K While K≠45 and K≠24 and K≠25 and K≠26 and K≠34 getKey→K End max(1,X+(K=26)-(K=24→X max(1,Y+(K=34)-(K=25→Y End
| - Code: Select all
0→K 1→X 1→Y while K≠45 do ClrHome() for L in 1,Y+1 do Output(L,1,L) end for C in 1,X+1 do Output(1,C,remainder(C,10)) end Output(3,3,{X,Y}) 0→K while K≠45 and K≠24 and K≠25 and K≠26 and K≠34 do getKey()→K end max(1,X+(K==26)-(K==24))→X max(1,Y+(K==34)-(K==25))→Y end
|
Si tu l’avais oublié, tu pourras constater que la
TI-84 Plus CE t’offre des possibilités d’affichage de textes sur
10 lignes de
26 colonnes.
Comme on pouvait s’y attendre, la
Zero est effectivement plus généreuse avec
12 lignes sur
32 colonnes. Une formidable aubaine pour les passionnés du langage
TI-Basic !
Petit problème toutefois avec les colonnes, si tu donnes à la fonction
Output( une position supérieure à la limite, la
Zero plante et redémarre, au lieu de se contenter d’un message d’erreur comme lorsque l’on utilise une position de ligne hors écran. Précisons toutefois que le contenu mémoire est préservé malgré cela, c’est une bonne nouvelle !
Nous remarquons également un petit bug plus embêtant, dans certains cas, les affichages effectués avec l’instruction
Disp() oublient de faire défiler l’affichage lorsqu’elles atteignent le bas de l’écran.
I) Interface et langue
Go to topNiveau interface, précisons avant tout que la calculatrice
Zero ne fonctionne que dans une seule langue, l’Anglais.
Nous retrouvons sur la
Zero les menus par onglets plein écran de la
TI-84 Plus CE.
Vu les tests précédents sur l’écran texte, on aurait pu s’attendre à avoir davantage de choix affichés simultanément à l’écran sous chacun de ces onglets. Et bien non. Là où la
TI-84 Plus CE déroule les menus sur 10 lignes, la
Zero se contente de 8 lignes. Mais attends un petit peu car il y a une raison derrière cela.
Sur
TI-84 Plus CE, on pouvait accéder à une aide sur chaque fonction ou instruction sélectionnée aux menus en tapant
+
, donnant alors un écran décrivant les paramètres attendus. Une superbe possibilité hélas précisée nulle part sur l’interface ou le clavier, et donc non intuitive.
Et bien justement, nouvelle innovation sur la
Zero, cette aide en ligne est directement intégrée aux menus, dans l’espace justement libéré en bas d’écran !
Petite différence notable, lorsque l’on sélectionne un choix hors écran la ligne affichant les titres de chaque onglet est conservée sur
TI-84 Plus CE, alors que sur
Zero elle part avec le défilement. Pas forcément un bug, cela peut très bien être un choix, compensant le nombre réduit de lignes listant les entrées sous chaque onglet.
Notons quelques petits problèmes d’homogénéité lorsque l’on souhaite quitter un menu sur
Zero :
- la plupart des menus peuvent être fermés aussi bien en tapant clear que 2ndmode (fonction secondaire ‘quit’)
- mais certains menus ne peuvent être refermés qu’avec 2ndmode (menus des applications, de choix du langage de programmation, menu statistiques)
Autre problème : dans certaines conditions, appeler un menu depuis une interface de saisie
(boîte de dialogue, éditeur de programmes, …) ferme l’interface en question. Bien embêtant pour saisir des caractères spéciaux non disponibles au clavier…
Parlons maintenant de l’écran graphique. Par cela nous entendons la zone de l’écran dont l’utilisateur peut contrôler librement l’allumage des pixels ainsi que leurs couleurs, notamment :
- depuis le grapheur de fonctions
- via des instructions graphiques depuis un programme
Commençons par tenter de découvrir ses dimensions.
Sur
TI-84 Plus CE, il suffit d’un petit calcul faisant intervenir les bornes de la fenêtre graphique :
- Code: Select all
(Xmax-Xmin)/ΔX+1
(Ymax-Ymin)/ΔY+1
L’écran de
320×240 pixels de la
TI-84 Plus CE offre une zone graphique de
265×165 pixels. C’est justement l’un des gros inconvénients de ce modèle, encadrant le petit timbre graphique de grosses bordures inesthétiques et essentiellement inutiles.
Rien de tel sur
Zero où nous avons droit à une zone graphique hautement plus généreuse. Le calcul toutefois nous donne un résultat surprenant,
321×196 pixels, alors que l’écran ne fait certainement pas plus de
320 pixels de large.
Mais nous nous souvenons du comportement de la boucle
’pour’ vu plus haut, qui s’arrêtait avant la borne supérieure. Et effectivement cela semble bien être ça. Si nous réglons par exemple les bornes horizontales de la fenêtre graphique à
Xmin=0
et
Xmax=320
, le curseur ne peut pas dépasser l’abscisse
319, en contradiction donc avec le réglage, petit bug.
Bref, la généreuse zone graphique sur
Zero fait finalement très exactement
320×195 pixels.
Avant la suite, rappelons que la plupart des instructions graphiques attendent des coordonnées dans le repère réglé. Lorsque tu cibles un affichage par pixels
(c’est-à-dire relativement au coin supérieur gauche de la zone graphique), ou lorsque tu utilises certaines instructions graphiques qui attendent obligatoirement des coordonnées en pixels
(Text() par exemple), il est fort pratique de régler les bornes de la fenêtre graphique pour correspondre exactement à ses dimensions en pixels :
TI-84 Plus CE | Zero |
---|
- Code: Select all
ZDecimal 0→Xmin 0→Ymax 40Xmax→Xmax 40Ymin→Ymin
| - Code: Select all
ZDecimal 0→Xmin 0→Ymax 20*Xmax→Xmax 20*Ymin→Ymin
|
Le code précédent règle
Xmin=0
,
Ymax=0
et :
Xmax=264
et Ymin=-164
sur TI-84 Plus CEXmax=320
et Ymin=-196
sur Zero
Attention, on se rend compte que dans le contexte de programmes, les multiplications implicites ne sont pas toujours gérées correctement, d’où quelques précautions à prendre dans la traduction du code ici, et également dans tout ce qui va suivre.J2) Affichage de textes
Go to topPour afficher du texte dans la zone graphique, la
TI-84 Plus CE offre 2 instructions que tu peux appeler depuis l’écran de calcul, depuis l’écran graphique ou encore depuis un programme :
TextColor(...couleur…)
pour régler la couleurText(...ligne… , …colonne… , …text1… , …text2… , …)
pour afficher un ou plusieurs textes à la position indiquée
Sur la
Zero nous n’avons pas réussi à trouver d’instruction équivalente permettant de régler la couleur du texte, et l’instruction permettant d’écrire du texte dans la zone graphique ne prend pas davantage de couleur en paramètre selon l’aide en ligne. Nous ne traiterons donc les couleurs que dans la prochaine partie.
Selon cette même aide en ligne, les paramètres attendus par l’instruction
Text() sont identiques sur
Zero et
TI-84 Plus CE. Sauf que c’est faux, en pratique les coordonnées sont inversées sur
Zero :
Text(...colonne… , …ligne… , …text1… , …text2… , …)
Autre anomalie qui ressemble vraiment à un bug d’évaluation et non à un choix, quand on met un nom de variable en paramètre, ce n’est pas sa valeur qui est affichée mais le nom en question. Un contournement pour afficher la valeur d’une variable est d’englober son nom dans un appel
toString().
Sur
TI-84 Plus CE l’instruction
Text() dispose également d’un mode non documenté : si le premier paramètre est négatif, alors elle permet les affichages dans la zone graphique en utilisant la grande police de l’écran de calcul :
Text(-1, ...ligne… , …colonne… , …text1… , …text2… , …)
Sur
Zero ce mode spécial grande police ne semble pas exister pour les écritures graphiques. Par contre petit truc amusant, si l’on indique une valeur négative à la place du numéro de colonne d’affichage en premier paramètre, cela permet d’afficher du texte avec un effet italique à gauche, et même de contrôler la force de l’effet en question :
- Code: Select all
ClrDraw
15→H
for L in 0,13 do
Text(-I,L*H,"Plop from inside !")
Text(293,L*H,toString(L))
end
Bien évidemment il s’agit d’un bug involontaire, puisque activer cet effet empêche de positionner le texte en italique ailleurs qu’à gauche de l’écran. Ce serait toutefois sympa de trouver une spécification permettant de conserver cet effet lors des prochaines mises à jour.
Niveau couleurs, sur
TI-84 Plus CE tu pouvais choisir parmi un palette de 15 teintes système différentes pour tes graphes ou tracés depuis des programmes. En rajoutant la transparence cela donnait un codage sur 4 bits lorsque tu sauvegardais les affichages de premier plan sous forme de variables à l’aide de l’instruction
StorePic.
A priori la
Zero propose les mêmes choix. Mais la machine ayant déjà réussi plusieurs fois à nous surprendre jusqu’ici, prenons nos précautions.
Réalisons donc un programme de mire qui va nous permettre de tester l’affichage avec différentes valeurs de couleurs :
(Indentation TI-Basic ajoutée pour des raisons de lisibilité, et à enlever si vous testez)TI-84 Plus CE | Zero |
---|
- Code: Select all
Prompt A,B B→C For(X,Xmax,0,1 Line(X,0,X,Ymin,C,1 C→O A+int(X/(Xmax+1)(B-A+1→C If C≠O ou X=0 Then TextColor(O Text(0,X,O End End
| - Code: Select all
Prompt(A,B) B→C for X in Xmax-1,-1,-1 do Line(X,Ymin,X,Ymax,C) C→O A+int(X/(Xmax+1)*(B-A+1))→C if C≠O or X==0 then Text(X,0,toString(C)) end end
|
Sur
TI-84 Plus CE, l’éventail le plus large de codes de couleur que nous pouvons afficher sans erreur va de
10 (BLUE) à
24 (DARKGRAY), ce qui donne bien dans l’ordre les 15 couleurs précédemment listées au menu :
- 10 : BLUE (BLEU)
- 11 : RED (ROUGE)
- 12 : BLACK (NOIR)
- 13 : MAGENTA
- 14 : GREEN (VERT)
- 15 : ORANGE
- 16 : BROWN (MARRON)
- 17 : NAVY (BLEU MRN)
- 18 : LTBLUE (BLEU CLAIR)
- 19 : YELLOW (JAUNE)
- 20 : WHITE (BLANC)
- 21 : LTGRAY (GRIS CLR)
- 22 : MEDGRAY (GRIS MOY)
- 23 : GRAY (GRIS)
- 24 : DARKGRAY (GRIS FON)
Et bien nous n’avons pas fait tout cela pour rien, sur
Zero l’éventail est élargi pour accepter des codes de couleur allant de
10 à
26, soit 2 couleurs supplémentaires qui n’étaient pas au menu précédent, et donc au total
17 couleurs différentes utilisables.
On se demande bien quel codage pourrait bien être utilisé pour sauvegarder ces 17 couleurs, nécessitant donc plus de 4 bits. Mais un autre bug nous retarde dans nos comparaisons et analyses, quelque soit le nom de variable que l’on passe à l’instruction
StorePic, cette dernière semble systématiquement sauvegarder l’affichage dans la variable
Pic0.
Rappelons que la palette de couleurs est également défilable pour choisir la couleur de tracé du graphe d’une fonction. Ici à la différence, les 2 couleurs supplémentaires sont bel et bien affichées, et nous découvrons leurs noms au passage :
La
TI-84 Plus CE te permet également de choisir parmi différents styles
(ou plus exactement stylos) pour tes graphes de fonctions ou instructions de tracés appelées depuis tes programmes.
8 stylos sont disponibles pour les graphes de fonctions.
2 d’entre eux ci-contre sont particuliers car correspondant à des animations, avec un curseur décrivant la courbe de gauche à droite.
Les 6 autres permettent de choisir entre :
- trait plein (fin + épais)
- ombrage (supérieur + inférieur)
- trait en pointillés (fin + épais)
Le stylo pouvait également être indiqué en dernier paramètre des instructions de tracé. On peut faire un petit programme pour constater l’effet associé à chaque valeur :
TI-84 Plus CE | Zero |
---|
- Code: Select all
0→K 1→S TextColor(BLANC While K≠45 ClrDraw Line(Xmin,Ymax,Xmax,Ymin,BLACK,S Text(0,0,S 0→K While K≠45 and K≠85 and K≠95 getKey→K End S+(K=95)-(K=85→S End
| - Code: Select all
0→K 1→S while K≠45 do ClrDraw Line(Xmin,Ymax,Xmax,Ymin,BLACK,S) Text(0,0,S) 0→K while K≠45 and K≠85 and K≠95 do getKey()→K end S+(K=95)-(K=85)→S end
|
4 choix reprenant une partie des stylos précédents sont disponibles sur
TI-84 Plus CE, seules les valeurs entières de
1 à
4 étant acceptées sans erreur :
- trait plein fin
- trait plein épais
- ombrage supérieur
- ombrage inférieur
La
TI-84 Plus CE manquait donc ici d’homogénéité. Si on pouvait comprendre ne pas avoir les 2 tracés animés, il était dommage de ne pas avoir droit aux stylos en pointillés en dehors des graphes de fonctions
Pour les styles de représentations graphiques sur
Zero, on retrouve entre autres les 2 tracés animés.
Pour le reste, ce sont
8 stylos différents qui sont disponibles soit
2 de plus, rajoutant les ombrages accompagnés d’un trait en pointillés :
Regardons maintenant avec notre programme ce qui est disponible pour les instructions de tracé :
Cette fois-ci
10 valeurs sont acceptées de
0 à
9, mais seulement 6 sont utiles :
- 0 : trait plein fin
- 1 : trait plein épais
- 2 : trait en pointillés fin
- 3 : trait en pointillés épais
- 6 : ombrage inférieur
- 7 : ombrage supérieur
Les autres valeurs ne produisent qu’un trait plein fin. Cela peut certes se comprendre pour les animations, mais c’est dommage de ne pas avoir droit aux ombrages avec pointillés dans le contexte de programmes.
Dans tous les cas c’est plus cohérent que sur
TI-84 Plus CE, et nous avons donc
6 stylos différents pour tes dessins et programmes au lieu de
4 !
Nous venons de les évoquer plusieurs fois, alors parlons un petit peu fonctions et graphes.
Notons une belle amélioration sur la
Zero, le menu calcul relatif aux graphes et accessible via
2ndtrace est affichée via des onglets en bas d’écran, et non en plein écran. Ce qui permet de garder à tout moment les graphes sous les yeux !
Il semble par contre y avoir encore un petit bug. La
ZGC3 refuse souvent de tracer les tangentes, alors que nous n’avions pas ce problème sur
ZGC1 et
ZGC2.
Rajoutons que le symbole intégrale n’est pas correctement affiché dans ce menu, ni dans la description du résultat associé.
Regardons du côté des suites numériques, il semble que ce soit l’une des fonctionnalités
TI-84 Plus CE qui ait été le moins bien copiée par la
Zero.
Déjà, contrairement à la
TI-84 Plus CE, la
Zero ne permet de saisir qu’uniquement des définitions au rang
n. Les relations de récurrences étant la plupart du temps données dans les énoncés aux rangs
n+1 ou
n+2, elles nécessiteront une transformation
(remplacement de toutes les occurrences de n par des n-1 ou n-2) qui peut déjà être génératrice d’erreurs si l’on ne parenthèse pas correctement afin de respecter les mêmes priorités opératoires.
Mais ce n’est pas tout, bug d’interface également, la
Zero considère une définition de suite comme invalide si tu ne fournis pas les valeurs des 2 premiers termes, soit :
- 2 valeurs inutiles si la suite est définie par son terme général
- 1 valeur inutile si il s’agit d’une suite récurrente d’ordre 1
C’est n’est qu’une fois ces 2 valeurs saisies que ta suite sera active pour les graphes ou tableaux de valeurs.
Outre leur caractère inutile, cela ajoute la possibilité de se tromper et saisir de mauvaises valeurs…
En l’état, le support des suites numériques est donc très mauvais sur
Zero.
Les
TI-84 Plus CE et
TI-83 Premium CE française ne sont pas identiques. Elles ont entre autres une différence fondamentale au niveau du moteur de calcul exact :
- sur TI-83 Premium CE, moteur de calcul exact de type QPiRac, supportant les 2 familles de nombres suivantes :
- sur TI-84 Plus CE, moteur de calcul exact de type Q, ne supportant que les nombres rationnels
La
Zero s’inspirant de la
TI-84 Plus CE et non pas de la
TI-83 Premium CE, il ne faut pas s’attendre à des résultats exacts en dehors de
$mathjax$\mathbb{Q}$mathjax$
:
Problème malgré nos faibles attentes, puisque l’on se rend compte que la
Zero est capable de donner facilement de faux résultats exacts, prétendant par exemple que
$mathjax$\frac{2024\pi}{12}$mathjax$
est un nombre rationnel se simplifiant en
$mathjax$\frac{3577763}{6752}$mathjax$
...
Après le calcul exact, passons au calcul numérique. Rappelons que dans ce contexte les calculatrices ne travaillent pas sur l’ensemble des nombres réels, mais sur un sous-ensemble de nombres décimaux. Ces nombres peuvent s’écrire sous la forme
$mathjax$M\times 10^E$mathjax$
avec :
En conséquence, même lorsque le résultat attendu est un nombre entier ou décimal, selon les calculs intermédiaires sollicités il pourra y avoir une petite marge d’erreur.
Reste encore à déterminer la précision de la mantisse, et les bornes de l’exposant.
Pour la précision de la mantisse, nous pouvons faire appel au petit programme suivant :
TI-84 Plus CE | Zero |
---|
- Code: Select all
Prompt B 0→K While 1+B^-K-1 K+1→K End K
| - Code: Select all
Prompt(B) 0→K while 1+B^-K-1 do K+1→K end K
|
A priori les résultats semblent en faveur de la
Zero :
- sur TI-84 Plus CE, mantisses permettant d’accueillir des nombres jusqu’à 40 bits ou 13 chiffres significatifs en base décimale
- sur Zero, mantisses permettant d’accueillir jusqu’à 53 bits ou 16 chiffres significatifs en base décimale
Passons maintenant à un programme de détection des bornes autorisées pour l’exposant :
- pour la borne supérieure, il suffit de calculer des nombres de plus en plus grands jusqu’à déclenchement d’une erreur
- pour la borne inférieure, Il suffit de calculer des nombres de plus en plus petits en valeur absolue, jusqu’à-ce que le résultat retourné s’annule
TI-84 Plus CE | Zero |
---|
- Code: Select all
0→K While 1 10^K Disp K K+1→K End
| - Code: Select all
0→K while 1 do 10^K disp(K) K+1→K end
|
- Code: Select all
0→K While 10^-K K+1→K End -K
| - Code: Select all
0→K while 1 do 10^-K K+1→K end -K
|
Résultats des courses :
- la TI-84 Plus CE accepte des exposants allant de -99 à +99
- la Zero accepte des exposants allant de -324 à +308
On pourrait donc s’attendre sur
Zero à des calculs plus précis, à une marge d’erreur inférieure.
Sauf que non, en pratique nous obtenons bien plus souvent des écarts au résultat attendu sur la
Zero, et notamment avec des calculs très simples sur lesquels la
TI-84 Plus CE ne fait aucune erreur…
Par exemple :
$mathjax$0,1-0,1=0$mathjax$
sur TI-84 Plus CE ✅ et Zero ✅$mathjax$0,2-0,1-0,1=0$mathjax$
sur TI-84 Plus CE ✅ et Zero ✅$mathjax$0,3-0,2-0,1=0$mathjax$
sur TI-84 Plus CE ✅ mais $mathjax$0,3-0,2-0,1\neq 0$mathjax$
sur Zero ❌$mathjax$0,3-0,1-0,1-0,1=0$mathjax$
sur TI-84 Plus CE ✅ mais $mathjax$0,3-0,1-0,1-0,1\neq 0$mathjax$
sur Zero ❌
Cela semble témoigner d’un codage interne des nombres sur la
Zero directement en binaire, et non pas en
BCD (Binary-Coded Decimal). Pour un produit ciblant le contexte scolaire, c’est un choix assez surprenant...
N1) Connectivité avec logiciel ZeroConnect
Go to topNous avons déjà commencé à saisir des programmes assez conséquents, alors il est temps de parler connectivité.
À la différence de la
TI-84 Plus CE qui utilise un port
USB mini-AB issu de la norme de 2001, la
Zero dispose d’un port
USB-C moderne pour lequel tu pourras donc trouver facilement à tout moment la connectique qu’il te faut.
Comme la
TI-84 Plus CE qui nécessite
TI-Connect CE, les transferts de données avec la
Zero peuvent se faire via le logiciel de connectivité
Zero Connect (compatible actuellement Windows, macOS, et Linux).
Le logiciel supporte aujourd’hui :
- la mise à jour de la calculatrice
- le transfert de données mais uniquement dans le contexte de programmes (pas possible via ce logiciel de sauvegarder tes listes, matrices ou images par exemple)
Concernant les programmes donc,
Zero Connect inclut un éditeur de programmes avec, à l’image de ce que propose
TI-Connect CE un index reproduisant le contenu de divers menus de la calculatrice, te permettant ainsi de saisir certains caractères spéciaux si tu en as besoin. Il manquerait juste un peu de coloration syntaxique pour y voir plus clair.
Mais précisons justement que les fichiers de programmes
.zcb sont de simples fichiers au format texte, et que tu as donc toute liberté de les modifier ou créer avec d’autres logiciels d’édition que tu jugeras plus appropriés.
Mais ce n’est pas fini ! Dans la version que l'on a, la
Zero a également le gros avantage de proposer de transférer tes données autrement. Si tu allumes la calculatrice en maintenant la touche
enter, tu constateras que la calculatrice entre dans un mode de fonctionnement spécial :
- la calculatrice ne peut plus être utilisée
- l’écran se remplit entièrement blanc (ZGC1 et ZGC2) ou reste maintenant éteint (ZGC3)
- la diode de la calculatrice se met à clignoter en vert
(tranche inférieure à côté du port USB-C pour les ZGC1 et ZGC2, tranche supérieure pour la ZGC3)
Dans ce mode la calculatrice n’est plus utilisable normalement, mais devient détectable en tant que périphérique de stockage de masse, c’est-à-dire exactement comme une clé
USB sans besoin d’installer le moindre logiciel !
En l’absence de connexion à l’ordinateur, ce mode peut être quitté avec la touche
2nd.
Tu trouveras sur le nouveau disque cette fois-ci accessible l’ensemble du contenu de la calculatrice :
- dans le dossier /exchange/, les fichiers .zcb de programmes Zero Basic
- dans le dossier /draws/, les fichiers correspondant aux images de premier plan enregistrées avec l’instruction
StorePic
- dans le dossier /matrix/, un unique fichier BASE correspondant aux matrices que tu as affectées
- à la racine :
- un fichier lists.sav correspondant aux listes que tu as affectées
- un fichier vars.sav correspondant aux autres variables que tu as affectées
Profitons-en pour regarder la capacité du disque
USB ; une belle surprise nous y attend :
- sur ZGC1 et ZGC2, nous avions une capacité utilisable de 3,48 Mio
- sur ZGC3 le disque USB nous annonce 7,48 Mio de capacité utilisable, ce qui nous permet de supposer une capacité Flash totale d’au moins 8 Mio ; nous tenterons de vérifier cela plus tard
Parlons maintenant applications.
Sur
TI-84 Plus CE, il y a 1 application intégrée,
Finance, dont on retrouve les fonctions associées au catalogue. Ces fonctions sont clairement absentes sur
Zero.
Sur
TI-84 Plus CE beaucoup de fonctionnalités essentielles sont apportées par des applications additionnelles préinstallées en usine :
- CabriJr : géométrie dynamique
- CelSheet : tableur / feuille de calcul
- Conics : représentation graphique de coniques
- EasyData : acquisition de mesures physiques à l’aide des interfaces ou périphériques Vernier
- Hub : lecture de capteurs et pilotage d’actionneurs en TI-Basic dans le cadre de projets STEM via l’interface additionnelle TI-Innovator Hub
- Inequalz : représentation graphiques d’inéquations en f(x), colorant donc les zones supérieures ou inférieures
- Periodic : interface de consultation de la classification périodique des éléments
- PlySmlt2 qui regroupe :
- recherche des zéros d’un polynôme
- résolution de systèmes d’équations linéaires
- Prob Sim : simulation d’expériences aléatoires
- Python : programmation en langage Python
- SciTools qui regroupe :
- calculatrice respectant la règle des chiffres significatifs
- convertisseur d’unités + bibliothèque de constantes physiques
- interface pour la représentation de données en diagrammes
- calcul vectoriel en dimension 2 ou 3
- SmartPad : transforme la calculatrice en télécommande USB pour l’émulateur TI-SmartView CE
- Transfrm : transformations de fonctions/courbes
Et bien c’est un des points qui a été le moins travaillé sur la
Zero. Déjà a priori, pas de support d’applications additionnelles ; nous n’en voyons aucune trace dans le menu mémoire ou lors d’une connexion à l’ordinateur.
Selon la touche
apps, nous avons droit uniquement à 2 applications intégrées scindant les fonctionnalités de
PlySmlt2 :
- Poly Root Finder
- Simultaneous EQN solver
On retrouve dans
Poly Root Finder sur
Zero une interface de recherche des racines de polynômes similaire à ce qu’offre
PlySmlt2 sur
TI-84 Plus CE, avec a priori des capacités identiques selon l’écran de configuration. Tout petit détail, les listes dans lesquelles mémoriser les coefficients et racines se choisissent ici à l’écran de configuration, et non à l’écran de résultats.
Déroulons devant toi quelques exemples, déjà
$mathjax$x^2+x+1=0$mathjax$
:
Déjà par rapport à la
ZGC2, une bonne nouvelle et une mauvaise nouvelle sur
ZGC3 :
- Commençons par la mauvaise. Contrairement à la ZGC2, nous n’avons plus droit sur ZGC3 pendant la saisie des coefficients à la visualisation en temps réel de l’expression correspondante. Une régression fort regrettable.
- Par contre belle amélioration par rapport à la ZGC2, la ZGC3 offre enfin sur l’écran de réponse des composantes de résultats exactes et en écriture naturelle (certes limitées à
$mathjax$\mathbb{Q}$mathjax$
comme déjà expliqué).
Formidable amélioration de la
ZGC3, les coefficients complexes de polynômes sont maintenant gérés, alors qu’ils étaient ignorés sur
ZGC2 et refusés
(avec erreur) sur
TI-84 Plus CE, encore une fois une fonctionnalité haut de gamme !
Voici par exemple
$mathjax$i x^2+x+2=0$mathjax$
:
TI-84 Plus CE | Zero ZGC2 | ZGC3 |
| | |
Nous ignorons si cet ajout est volontaire, cela pourrait très bien être un test de vérification du type de donnée oublié lors de la mise à jour du code depuis la dernière fois.
Plus précisément, une fonctionnalité jusqu’ici regrettablement réservée au haut de gamme par la concurrence, alors que paradoxalement ce sont pourtant les mêmes formules derrière.
Hélas, la
ZGC3 ne fait malheureusement pas que progresser. Prenons par exemple
$mathjax$2x^2-2x-2=0$mathjax$
:
La
ZGC3 tente de nous convaincre ici que le nombre d’or est un nombre rationnel… Problème déjà constaté plus haut, la
ZGC3 sort bien trop facilement des fractions pour les résultats alors que c’est inapproprié et même, n’ayons pas peur des mots, faux.
Et niveau régressions, nous ne sommes hélas pas au bout de nos surprises. Il semble y avoir sur
ZGC3 le même bug que sur
HP Prime concernant l’écriture des expressions de polynômes, à savoir des problèmes lorsque l’on utilise des coefficients de valeur absolue 1 mais différents de 1. Prenons par exemple
$mathjax$x^2+x-1=0$mathjax$
:
Un comble étant qu’il n’y avait pas ce problème sur
ZGC2.
Les écritures deviennent même encore plus déroutantes et pire trompeuses si l’on fait intervenir des coefficients complexes :
Espérons qu’une prochaine mise à jour ne corrigera surtout pas le problème en retirant la gestion des coefficients complexes, car c’est un avantage formidable sur la
TI-84 Plus CE et une excellente surprise à laquelle nous ne nous attendions pas puisque absente de l’ancienne
ZGC2.
Simultaneous EQN solver est un autre exemple d’application sur laquelle ne semble pas avoir été passé suffisamment de temps, même si a priori les capacités semblent identiques à celles de
PlySmlt2 sur
TI-84 Plus CE.
Il s’agit donc ici d’une interface de résolution de systèmes d’équations linéaires. Déjà ici, notons que les coefficients complexes sont refusés, ce qui hélas crédibilise davantage l’hypothèse d’une acceptation accidentelle dans l’application précédente.
Donc première chose qui ne semble pas avoir été creusée à fond, l’interface de saisie. Au lieu d’une saisie intuitive des différentes équations du système comme sur
TI-84 Plus CE, ici nous devons remplir une matrice, sans la moindre explication de ce qui y est attendu
(tout-le-monde ne devinera pas) :
Mais ce n’est pas tout. Rappelons que la
TI-84 Plus CE est capable de décrire les solutions dans le cas où il y en a une infinité :
Et bien voici un bug très grave, lorsque le système n’a pas de solutions, la
Zero répond complètement faux en te faisant croire qu’il y en a en fait une infinité :
Formidable surprise, elle n’était pas listée via la touche
apps mais la
Zero ZGC3 inclut une application
Python, un ajout remarquable par rapport à l’ancienne
ZGC2 !
Quelques premiers calculs nous semblent optimaux :
- support des entiers longs activé
- nombre flottants gérés jusqu’à 53 bits (15 chiffres significatifs en base décimale), soit le standard double précision
- support des nombres complexes activé
Cherchons à en apprendre un peu plus sur l’interpréteur utilisé. Pas de bibliothèque
sys, mais nous trouvons la bibliothèque équivalente
usys.
Déjà, notons
usys.platform==’Zero Calculator’
qui pourra être un test permettant d’identifier la plateforme auprès des scripts en ayant besoin.
Nous apprenons dans la bibliothèque
usys que l’interpréteur utilisé est
Micropython en version
1.20.0, implémentant lui-même un sous-ensemble de
Python 3.4.0.
Un excellent choix, cela change de
CircuitPython, version allégée de
Micropython présente sur la
TI-84 Plus CE Python américaine et ses équivalents
(TI-83 Premium CE Edition Python en France, TI-84 Plus CE-T Python Edition dans le reste de l’Europe). Mais aussi, c’est la version
Micropython la plus récente actuellement disponible sur calculatrices :
- Micropython 1.20.0 (Zero)
- Micropython 1.19.1 (PythonExtra pour Casio)
- Micropython 1.17.0 (NumWorks)
- Micropython 1.12.0 (KhiCAS/Micropy pour Casio, TI-Nspire et NumWorks)
- Micropython 1.11.0 (TI-Nspire CX II)
- Micropython 1.9.4 (Casio Graph 90/35+E II + fx-9750/9860GIII + HP Prime)
Impossible d’appeler
help(‘modules’)
, la fonction
help() ne semblant pas présente. Donc pour avoir un aperçu des bibliothèques standard disponibles, il ne nous reste plus qu’à tester à la main. Nous pouvons te confirmer au moins
8 bibliothèques importables intégrées :
| TI-84 Plus CE Python | Zero ZGC3 |
(u)array cmath (u)collections gc math micropython (u)random (u)struct (u)sys (u)time turtle | ✅ ❌ ✅ ✅ ✅ ❌ ✅ ❌ ✅ ✅ ✅(ajoutable) | ✅ ✅ ✅ ✅ ✅ ✅ ❌ ✅ ✅ ❌ ❌ |
Un peu plus de bibliothèques standard offertes sur la
ZGC3 donc, même si l’on regrette des manques flagrants comme
time ou
random.
Aucune bibliothèque de tracé
(matplotlib, turtle) ne semble à ce jour présente sur
ZGC3 ce qui, nous concernant, limite de beaucoup l’intérêt de cette application.
Nous aurions bien voulu t’effectuer un test complet du
Python, avec entre autres les performances, mais nous regrettons cela va nous être impossible.
D’une part, nous avons de grosses difficultés de saisie :
- seules les touches alphanumériques sont fonctionnelles dans l’application Python, toute autre touche saisit systématiquement un caractère w
- même les menus permettant d’accéder à des caractères non disponibles au clavier (comme 2ndmath pour les affectations et tests) ne sont pas fonctionnels et saisissent également w
- si l’on peut récupérer une saisie précédente avec ↑, il semble par contre impossible de récupérer une sortie ou un résultat pour une nouvelle saisie
Nous avons bien tenté de saisir nos scripts
.py de test sur ordinateur puis de les transférer selon les deux méthodes précédentes, mais peu importe le dossier utilisé
(racine ou /exchange/), nous n’arrivons pas ensuite à les importer dans l’application
Python.
Pour interroger la mémoire de tas
(heap) sans avoir à saisir les caractères
_
ou
=
, nous avons une petite astuce par
iPhoenix :
- Code: Select all
import gc
#gc.mem_alloc() + gc.mem_free()
eval("gc.mem" + chr(95) + "alloc() + gc.mem" + chr(95) + "free()")
Avec dans les
4,047 Mo de
heap près de
230 fois supérieur à celui des
TI-84 Plus CE Python, la
Zero ZGC3 se classe à la 2
nde place de la génération actuelle !
- 252,1 Mo (HP Prime G2)
- 4,048 Mo (Zero ZGC3)
- 2,068 Mo (TI-Nspire CX II)
- 1,033 Mo (Casio fx-CG50 + Graph 90+E)
- 100,432 Ko (Casio fx-9750/9860GIII + Graph 35+E II)
- 64,888 Ko (NumWorks)
- 17,601 Ko (TI-84 Plus CE Python)
Bref, la
ZGC3 a bien une application
Python, mais à ce jour dans cette version, elle vient sans éditeur, sans possibilité d’importer des scripts et sans possibilité de saisir autre chose que des caractères alphanumériques
(même pas l’opérateur d'affectation =
), et est donc quasiment inutilisable.
Allons maintenant voir du côté du gestionnaire de mémoire avec
2nd+2.
Commençons par la mémoire de stockage :
- sur TI-84 Plus CE, nous avons d’usine 1,247 Mo d’espace libre en mémoire de stockage, pour une capacité de 3,014 Mo si l’on efface toute le contenu préchargé
- sur ZGC1 et ZGC2, nous avions une capacité utilisable de 3,56 Mo
- sur ZGC3 nous avons droit à 7,656 Mo de capacité utilisable, soit dans les 2,5 fois plus d’espace de stockage que les TI-84 Plus CE et plus de 2 fois plus d’espace de stockage que les ZGC1/ZGC2… ce qui consolide notre hypothèse d’une capacité Flash totale d’au moins 8 Mio
Comme il n’y a pas de contenu préchargé sur
Zero, il nous semble plus équitable de comparer les capacités à vide. La
ZGC3 se classe ainsi 5
e en terme d’espace de stockage parmi les modèles actuels :
- 461,500 Mo : HP Prime G2
- 92,300 Mo : TI-Nspire CX II
- 24,696 Mo : Casio fx-CG500/CP400
- 16,248 Mo : Casio fx-CG50 / Graph 90+E
- 7,652 Mo : Zero ZGC3
- 3,560 Mo : Zero ZGC1/ZGC2
- 3,097 Mo : Casio fx-9750/9860GIII / Graph 35+E II
- 3,014 Mo : TI-84 Plus CE Python / TI-83 Premium CE Python
- 2,560 Mo : NumWorks N0110/N0115/N0120
Regardons maintenant la mémoire de travail, juste après un
reset :
- sur TI-84 Plus CE nous avons 152,851 Ko
- sur ZGC1 et ZGC2, c’était seulement 52,192 Ko
- la ZGC3 prétend avoir 8,225 Mo… soit près de 54 fois plus d’espace de travail que les TI-84 Plus CE et près de 158 fois plus d’espace de travail que les ZGC1/ZGC2... tellement incroyable que l’on se demande si ce ne serait pas un bug, mais nous ferons ce qu’il faut pour confirmer cela dans un moment
Les
TI-Nspire CX II ne fournissant aucun moyen officiel de mesurer l’espace de travail, la
ZGC3 se classe directement à la 2
e place parmi les modèles actuels !
- 246,400 Mo : HP Prime G2
- 8,227 Mo : Zero ZGC3
- 514,708 Ko : Casio fx-CG500/CP400
- 152,891 Ko : TI-84 Plus CE Python / TI-83 Premium CE Python
- 61,904 Ko : Casio fx-CG50 / fx-9750/9860GIII / Graph 90/35+E II
- 59,736 Ko : Zero ZGC1/ZGC2
- 43,006 Ko : NumWorks
Avec tout ceci, il nous semble clair que, clairement, le matériel de la nouvelle
Zero ZGC3 est sensiblement différent de celui des anciennes
ZGC1/ZGC2.
Il ne semble pas y avoir à ce jour de moyen d’archiver/désarchiver les différentes variables depuis la calculatrice, c’est-à-dire respectivement :
- de les transférer vers la mémoire de stockage (prise sur la Flash)
- de les transférer vers la mémoire de travail (prise sur la RAM)
ZeroConnect ne permet pas davantage de choisir la destination, l’imposant peut-être en fonction du type de variable transférée.
Le seul choix possible de la destination semble être à ce jour uniquement via le mode
USB MSD, en fonction du dossier utilisé à l’image de ce que font les
Casio actuelles
fx-9750GIII (Graph 35+E II) et
fx-CG50 (Graph 90+E) :
- copie dans le dossier /exchange/ pour mettre en mémoire de travail
- copie dans tout autre dossier ou encore à la racine du lecteur pour mettre en mémoire de stockage
Puisque nous venons de voir que le matériel de la
ZGC3 était très différent de celui des
ZGC1/ZGC2, il est intéressant de creuser la chose avec des tests de performances.
Commençons par un test de performances via un calcul, une grosse somme développée par
pier4r sur HP Museum, en mode degrés :
$mathjax$\sum\limits_{x=1}^{1000}{\sqrt[3]{e^{sin\left(Arctan\left(x\right)\right)}}}$mathjax$
Pour les modèles trop rapides difficiles à chronométrer, nous multiplierons la borne supérieure de la somme, et diviserons d’autant le temps chronométré.
Le calcul prend donc :
- sur TI-84 Plus CE Python, 13,2s
- sur ZGC1 et ZGC2, 0,49s
- sur ZGC3, 0,256s… soit presque 2 fois plus rapide que les ZGC1/ZGC2 et dans les 51,5 fois plus rapide que les TI-84 Plus CE Python !
La
ZGC3 se classe ainsi… à la 3
e place parmi tous les modèles actuels, formidable !
- 0,130s : HP Prime G2
- 0,252s : NumWorks N0120
- 0,256s : Zero ZGC3
- 0,49s : Zero ZGC1/ZGC2
- 0,997s : TI-Nspire CX II
- 1,100s : NumWorks N0110/N0115
- 6,330s : Casio fx-CG500/CP400
- 8,550s : Casio fx-CG50 / Graph 90+E
- 13,200s : TI-84 Plus CE Python / TI-83 Premium CE Python
- 14,100s : Casio fx-9750/9860GIII / Graph 35+E II
Pour confirmer, passons sur un autre test un peu différent, faisant intervenir l’écran graphique. Il s’agit de représenter les fonctions d’expressions suivantes, en mode radians :
$mathjax$f(x)=Arcsin\left(Arccos\left(cos\left(sin\left(Arcsin\left(Arccos\left(Arctan\left(tan\left(cos\left(sin\left(Arcsin\left(Arccos\left(Arctan\left(tan\left(cos\left(sin\left(x\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)$mathjax$
$mathjax$g(x)=-Arcsin\left(Arccos\left(cos\left(sin\left(Arcsin\left(Arccos\left(Arctan\left(tan\left(cos\left(sin\left(Arcsin\left(Arccos\left(Arctan\left(tan\left(cos\left(sin\left(x\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)\right)$mathjax$
Pour les modèles trop rapides difficiles à chronométrer, nous multiplierons le nombre de fonctions tracées, et diviserons d’autant le temps chronométré. Nous ramènerons de plus le tout à une vitesse de tracé par colonne, en tenant compte de la largeur en pixels de la zone graphique.
Le tracé prend donc :
- sur TI-84 Plus CE Python, 1min 8s pour 320 colonnes (0,17s par colonne)
- sur ZGC1 et ZGC2, 2,858s pour 320 colonnes (0,00893s par colonne)
- sur ZGC3, 1,480s pour 320 colonnes (0,00463s par colonne)… soit plus de 2 fois plus rapide que les ZGC1/ZGC2 et dans les 86,5 fois plus rapide que les TI-84 Plus CE Python !
La
ZGC3 se classe ainsi une nouvelle fois à la 3
e place :
- 0,0005s : HP Prime G2
- 0,0017s : NumWorks N0120
- 0,0046s : Zero ZGC3
- 0,0054s : NumWorks N0110/N0115
- 0,0089s : Zero ZGC1/ZGC2
- 0,0108s : Casio fx-CG50 / Graph 90+E
- 0,0184s : TI-Nspire CX II
- 0,0281s : Casio fx-9750/9860GIII / Graph 35+E II
- 0,0913s : Casio fx-CG500/CP400
- 0,1700s : TI-84 Plus CE Python / TI-83 Premium CE Python
La nouvelle
Zero ZGC3 offre donc des performances absolument remarquables, autour du double de celles des anciennes
ZGC1/ZGC2 et désormais intermédiaires entre celles des
TI-Nspire CX II et
HP Prime G2, chatouillant bien souvent celles de la
NumWorks N0120.
Les performances du haut de gamme… mais au prix
(américain) du milieu de gamme !
Tout comme les modèles des grands constructeurs, la
ZGC3 dispose d'un mode examen permettant de limiter les fonctionnalités et d'effacer la mémoire de la calculatrice durant un examen. La procédure pour activer le mode examen est très similaire à la combinaison internationale qu'on retrouve sur les TI, par contre, elle n'offre aucune option pour choisir quelles fonctionnalités seront limitées.
Pour activer le mode examen sur la
Zero tu dois:
- Éteindre la calculatrice
- Maintenir les touches ◀ et ▶
- Rallumer la calculatrice
Dans une
actualité précédente, nous t'annoncions la découverte du mode examen sur la Zero. Dans cet article, nous avions identifiés un total de 4 problèmes de conformité avec le mode examen:
- La diode doit se situer sur la tranche supérieure pour être visible sans obstacle par les surveillants
- La diode doit présenter un motif régulier (clignotement par exemple) - or ici elle restait simplement allumée
- Ce signal doit rester présent en permanence tant que le mode examen est actif, y compris calculatrice éteinte - or ici la diode s'éteignait avec la calculatrice
- Il suffisait d'aller faire un reset dans le menu mémoire pour désactiver le mode examen.
Désormais, nous sommes heureux de constater que 3 de ces problèmes sont maintenant résolus !
- ✅La diode a été déplacée sur la tranche supérieure de la calculatrice.
- ✅La diode clignote maintenant en bleu lorsque le mode examen est activé.
- ❌Cependant, on note que la diode s'éteint toujours avec la calculatrice.
Si non prévu dès le départ, ce problème pourrait nécessiter des modifications matérielles pour être résolu. - ✅Un simple reset ne permet plus de désactiver le mode examen.
De grosses améliorations certes, mais la
ZGC3 n’est donc toujours pas conforme pour une utilisation dans les pays ou aux examens nécessitant de vérifier la diode examen comme en France.
Dans l’ultime mise à jour
1.66 pour
ZGC1 et
ZGC2, le mode examen interdisait de plus l’usage de plusieurs fonctionnalités, de façon similaire à celui des
TI-84 Plus CE :
- création et utilisation de tout programme
- utilisation de toute application (à l’époque uniquement Poly Root Finder et Simultaneous EQN Solver)
Grande nouvelle, ce n'est plus le cas avec la
ZGC3 dont le mode examen se rapproche de celui de la
TI-83 Premium CE, ce qui serait parfait pour la France !
Mais vu plusieurs anomalies dans les test précédents, vu que le mode examen des
TI-84 Plus CE bloque bien l’appli
PlySmlt2 équivalente, et vu qu’à notre connaissance la
ZGC3 ne ciblerait à ce jour que le marché nord américain, nous craignons encore une fois très fortement que cette amélioration des fonctionnalités en examen découle d’une erreur non intentionnelle, et soit retirée dès la prochaine mise à jour.
| TI-83 Premium CE | TI-84 Plus CE | ZGC1/ZGC2 | ZGC3 |
données préchargées | verrouillées | verrouillées | effacées | effacées |
création/utilisation programmes | ✅ | ❌ | ❌ | ✅ |
racines polynômes | ✅ | ✅/❌ | ❌ | ✅ |
systèmes équations | ✅ | ✅/❌ | ❌ | ✅ |
Python | ✅ | ❌ | | ✅ |
coniques | ✅ | ✅/❌ | | |
graphes inéquations | ✅ | ✅❌ | | |
autres applis | ✅ | ❌ | | |
(les TI-84 Plus CE disposent de 2 modes examen, l’un pour l’Amérique du Nord interdisant toutes les applications, et l’autre pour les Pays-Bas laissant les applications PlySmlt2, et Conics utilisables)Ouvrons donc enfin la nouvelle
ZGC3… Grosse surprise, la carte électronique qui dans les révisions précédentes
ZGC1/ZGC2 arborait une inscription
GraphingCalculator v1.11, est maintenant estampillée
GraphingCalculator v2.1, suggérant donc une révision matérielle majeure.
Pour ce qui est de la batterie, aucun changement par rapport à la
ZGC2, on retrouve encore la même batterie rechargeable Lithium-Ion d'une capacité de
2200 mAh.
Mais par contre effectivement, tout le reste des puces électroniques ont changé par rapport aux
ZGC1/ZGC2 !
On note aussi que la diode d'examen a été déplacée vers le haut de la carte, avec un câble plat, permettant peut-être de la remplacer facilement ou de produire des variantes sans diode de la même carte-mère… Mais avec le gros inconvénient d’être désormais facilement altérable par tout bricoleur souhaitant frauder ses examens.
Voici donc un comparatif visuel des 2 cartes
(qui ne se ressemblent plus vraiment) (
HD ZGC3 vs
HD ZGC3) :
Faites glisser le slider en basUse the slider at the bottom!
Et voici les différences que nous pouvons voir :
- Pour le microcontrôleur en U1, le STM32F413 (100 MHz, 320K RAM, 1M Flash) est remplacé par un GD32F470ZKT6 de chez GigaDevice (200 MHz; 256K RAM, 3M Flash).
Nous restons donc sur un processeur 32-bit Arm7, et le passage de 100 MHz à 200 MHz est cohérent par rapport au doublement des performances constaté dans nos tests précédents. - Pour la puce Flash externe en U4, la MX25L3206EZNI (4 Mio) de chez MXIC (Macronix), est remplacée par une 25Q64JVSIQ de chez Winbond.
Si cette référence te rappelle quelque chose, c'est parce qu'il s'agit justement de la même série de puces que celles utilisées dans les TI-84 Plus CE révision M+.
Par contre le ’64’ dans la référence nous indique une capacité de 64 Mib soit 8 Mio, conformément à nos hypothèses précédentes, soit le double de la 25Q32JVSIQ des TI-84 Plus CE. - Pour la puce RAM externe en U3, la IS61WV25616EDBLL-10TLI (512 Kio) de chez ISSI ajoutée à partir de la ZGC2 est ici remplacée par la IS42S16400J-6TLI de chez ISSI également.
Il s'agit de 8 Mio de mémoire vive, tu ne rêves pas, cette fois-ci disponible pour l'utilisateur pour stocker des programmes et fichiers ! Elle est accessible à 166 MHz, permettant donc au nouveau microcontrôleur de l'accéder plus rapidement qu'avant. - Finalement, on note que, par rapport aux ZGC1/ZGC2, la puce LVTH16374 de Texas Instruments a été supprimée, n'étant plus nécessaire grâce à la nouvelle puce RAM qui supporte un interface LVTTL directement.
Au total en terme de capacité
Flash avec
3M en interne et
8M en externe, nous avons donc
11 Mio, plaçant la
Zero ZGC3 à la 5
e place de la génération actuelle :
- 512 Mio : HP Prime G2
- 128 Mio : TI-Nspire CX II
- 64 Mio : Casio fx-CG500/CP400
- 32 Mio : Casio fx-CG50 / Graph 90+E
- 11 Mio : Zero ZGC3
- 8,5 Mio : NumWorks N0120
- 8,0625 Mio : NumWorks N0110/N0115
- 8 Mio : Casio fx-9750/9860GIII / Graph 35+E II
- 5 Mio : Zero ZGC1/ZGC2
- 4,25 Mio : TI-84 Plus CE Python / TI-83 Premium CE Python
Et en terme de capacité
RAM, nous cumulons donc
256K en interne et
8M en externe, pour un total de
8,25 Mio, cette fois-ci à la 3
e place de la génération actuelle :
- 256 Mio : HP Prime G2
- 64 Mio : TI-Nspire CX II
- 8,25 Mio : Zero ZGC3
- 8 Mio : Casio fx-CG50 / Graph 90+E
- 2 Mio : Casio fx-CG500/CP400
- 832 Kio : Zero ZGC2
- 564 Kio : NumWorks N0120
- 512 Kio : Casio fx-9750/9860GIII / Graph 35+E II
- 320 Kio : Zero ZGC1
- 288 Kio : TI-84 Plus CE Python / TI-83 Premium CE Python
- 256 Kio : NumWorks N0110/N0115
La
ZGC3 offre clairement du matériel haut de gamme mais au prix
(américain) du milieu de gamme. Comparons avec quelques modèles de milieu de gamme qui devraient être ainsi proposés à des prix similaires :
Modèle | TI-84 Plus CE Python | Zero ZGC1 | Zero ZGC2 | Zero ZGC3 | NumWorks N0100 | NumWorks N0110 | NumWorks N0115 | NumWorks N0120 | Casio fx-CG50 |
Sortie | 2019/2021 | 2022
| 2023
| 2024 ? | 2017 | 2019 | 2023 | 2022 | 2017 |
Microcontrôleur | JB-007 + ATSAMD21E18 | | | | | | | | |
Processeur | Zilog eZ80 + Cortex-M0+ | Cortex-M4 | Cortex-M4 | Cortex-M4 | Cortex-M4 | Cortex-M7 | Cortex-M7 | Cortex-M7 | Renesas SH4 |
Architecture | ARMv6 | ARMv7 | ARMv7 | ARMv7 | ARMv7 | ARMv7 | ARMv7 | ARMv7 | |
Fréquence | 48 MHz + 48 MHz | 100 MHz | 100 MHz | 200 MHz | 100 MHz | 216 MHz | 216 MHz | 550 MHz | 117.96 MHz |
RAM intégrée | 256 Kio | 320 Kio | 320 Kio | 256 Kio | 256 Kio | 256 Kio | 256 Kio | 564 Kio | 8 Mio |
RAM externe | 32 Kio | | 512 Kio | 8 Mio | | | | | |
Flash intégrée | 256 Kio | 1 Mio | 1 Mio | 3 Mio | 1 Mio | 64 Kio | 64 Kio | 512 Kio | 32 Mio |
Flash externe | 4 Mio | 4 Mio | 4 Mio | 8 Mio | | 8 Mio | 8 Mio | 8 Mio | |
Connectivité | USB mini-A/B | USB-C | USB-C | USB-C | USB micro-B | USB micro-B | USB-C | USB-C | USB mini-B |
Si tu regardes bien sur la carte, tu remarqueras que la
ZGC3 dispose de 4 contacts de
debug, généreusement identifié :
SWCLK,
GND,
SWDIO et
+3VO.
Les trois premiers principalement permettent l'usage du
SWD pour
OpenOCD, donc protocole compatible
STLink ou
Raspberry. À partir de là on peut réaliser quelques
dumps du contenu des différentes puces.
Il en résulte que le
firmware de la
ZGC3 réside dans la mémoire
Flash interne du microcontrôleur, laissant tous les
8 Mio de la flash externe disponibles pour l'utilisateur. Cependant, le
firmware fait moins de
1 Mio, et le reste des
3 Mio de mémoire
Flash interne demeure apparemment inaccessible à l'utilisateur.
Niveau alimentation, nous venons donc de voir que :
- la TI-84 Plus CE utilisait une batterie de spécifications nominales 3.7 V et 1200 mAh
- la Zero était alimentée par une batterie de spécifications nominales 3.7 V et 2200 mAh
Mais avant de dire que c’est mieux sur
Zero, il faut tenir compte de la consommation de chaque calculatrice. Pour pouvoir comparer, laissons la
ZGC3 sur son thème clair/blanc.
Nous trouvons plus pertinent de mesurer les consommations à vide
(c’est à dire calculatrice inoccupée). Car sur les calculatrices plus puissantes qui consomment davantage lors des gros calculs, ces gros calculs dureront justement moins longtemps ce qui compense.
L’écran
”À propos” de la
Zero ZGC3 accessible avec
2nd+1 a la bonne idée de nous détailler l’état et la consommation de la batterie :
- hors mode examen, avec le minimum d’éclairage de l’écran : 38,1 mA tirés sur une batterie de 3,928 V, soit une puissance de 149,657 mW
- en mode examen, avec le minimum d’éclairage de l’écran : 41,4 mA tirés sur une batterie de 3,924 V, soit une puissance de 162,454 mW
- hors mode examen, avec la luminosité d’écran maximale : 70,9 mA tirés sur une batterie de 3,921 V, soit une puissance de 277,999 mW
- en mode examen, avec la luminosité d’écran maximale : 72,7 mA tirés sur une batterie de 3,919 V, soit une puissance de 284,911 mW
Comparons avec la
TI-84 Plus CE Pour cela nous disposons d’une fausse batterie fabriquée par
Excale et munie de câbles nous permettant d’externaliser la vraie batterie, et donc de rajouter un voltmètre et intercaler un ampèremètre.
Nous mesurons,
TI-84 Plus CE également inoccupée sous un éclairage maximal de l’écran :
- hors mode examen : 272.771 mW
- en mode examen : 291.429 mW
Bref, nous avons donc :
- hors mode examen, 277,999 mW sur ZGC3 contre 272.771 mW sur TI-84 Plus CE
- en mode examen, 284,911 mW sur ZGC3 contre 291.429 mW sur TI-84 Plus CE
Finalement les consommations des
TI-84 Plus CE et
Zero ZGC3 sont donc très similaires.
Seule la capacité de la batterie l'emporte donc a priori, et avec
2200 mAh contre
1200 mAh, la
Zero ZGC3 devrait avoir une autonomie dans les
1,83 fois supérieure à celle de la
TI-84 Plus CE... du moins si l'on considère des batteries neuves.
Resterait encore à savoir si ces différentes batteries vieilliront aussi bien avec le temps…
Soyons honnêtes, même si il y a à ce jour plein de bugs, cette
"reproduction" du logiciel de calculatrice graphique
TI-82/83/84 de
Texas Instruments est un travail colossal.
Niveau interface, quasiment tout ce qui concerne les fonctionnalités intégrées
(hors applications additionnelles) est reproduit ou adapté de façon extrêmement minutieuse… clairement trop pour un seul homme.
Quelle peut donc bien être l’entité qui se charge donc d'
"imiter" Texas Instruments ?
Et bien,
Google et son indexation ubiquiste a la réponse. Regarde bien, nous avons trouvé en public 2 captures d’écran montrant des extraits du code source C++ du
firmware de la calculatrice
Zero. Si rien ne le dit dans le texte affiché par la page en question, ces images mentionnent "zero" et "zb" (pour
Zero Basic) et sont associés à des descriptions alternatives on ne peut plus explicites :
- "Piece of embedded firmware code that uses the Zero Basic compiler for calculating mathematical expressions."
- "Piece of embedded firmware code that uses the float data type for the purpose of memory optimization."
Ne te faisons pas languir plus longtemps, la
page en question sur laquelle il est vaguement question du projet de
firmware Zero entre autres, appartient à
Integra Sources, une entreprise de développement basée au
Kazakhstan, avec aussi un bureau marketing en Floride aux Etats-Unis.
En fin de compte, si la Zero est destinée à être opposée à la TI-84 Plus CE Python nord-américaine, en pratique elle est plus proche de la TI-84 Plus CE-T Python Edition européenne de par la présence d’une diode examen.
Ne te la cachons pas, nous sommes extrêmement divisés par Zero…
D’un côté nous avons un matériel haut de gamme, qui devrait être commercialisé au prix du milieu de gamme. Cela inclut :
- des performances clairement intermédiaires entre celles des TI-Nspire CX II et HP Prime G2, chatouillant celles de la NumWorks N0120
- une mémoire Flash externe conséquente de 8 Mio, laissée entièrement libre puisque le firmware est installé dans les 3 Mio de mémoire Flash interne
- une mémoire RAM externe très généreuse de 8 Mio, apparemment laissée elle aussi presque entièrement libre
Ces 2 derniers points sont très prometteurs si la
Zero pouvait se mettre à gérer des applications additionnelles tierces, la rapprochant fortement en terme de capacités de la
Casio fx-CG50 (Graph 90+E en France), cette dernière offrant dans les
6,5 Mio de mémoire de stockage libre en sortie d’usine, et
8 Mio de mémoire
RAM. Rappelons en effet que la
Casio bénéficie de nombreuses applications additionnelles développées par sa communauté, dont plusieurs de qualité professionnelle. Nous pouvons citer des interpréteurs
Micropython, ou encore des outils de calcul formel comme des portages d’
EigenMath ou
Xcas (KhiCAS).
Avec un tel matériel, il serait parfaitement envisageable de porter
KhiCAS pour la
Zero ZGC3, entre autres. Des ajouts d’autant plus salvateurs si l’on juge le développement officiel trop lent ou insuffisant.
Ajoutons de plus de superbes améliorations sur la
Zero par rapport aux
TI-84 Plus CE, des choses que nous attendions parfois désespérément depuis des décennies :
- saisie alphabétique en minuscules
- thème sombre
- zone graphique sur toute la largeur de l’écran, enfin débarrassée de ses énormes et horribles bordures
- couleurs supplémentaires dans la palette système utilisable pour les graphes et instructions graphiques de programmes
- stylos supplémentaires pour les graphes et instructions graphiques de programmes
- véritable interpréteur Micropython
- polynômes à coefficients complexes
- libre nommage des variables sur plusieurs caractères
- variables pouvant accueillir librement différents types de données
- connectivité contemporaine et réversible grâce au port USB-C
- connectivité sans logiciel grâce au mode USB MSD
Nous sommes profondément touchés. La
Zero, c’est littéralement la calculatrice qu’un fan/passionné des
TI-82/83/84 et/ou du
TI-Basic comme nous en avons tant vu passer sur
TI-Planet cette dernière décennie aurait pu rêver et inventer !
Toutefois, si les interfaces
Texas Instruments sont minutieusement reproduites dans leur quasi-totalité, derrière la façade beaucoup de choses ne vont pas.
Nous t’avons énuméré pléthore de bugs, et encore nous ne t’avons pas tout dit afin de ne pas t’ennuyer, nous contentant des bugs que nous comprenions ou qui se prêtaient bien au contexte :
- Quelques problèmes de calcul ou liés à l’évaluateur d’expressions…
- Quelques graves problèmes d’affichages faux (systèmes d’équations et zéros de polynômes)...
- Des résultats exacts Q pas toujours pertinents…
- Une application Python extrêmement préliminaire et quasiment inutilisable à ce jour…
- … et surtout, beaucoup de problèmes liés aux interfaces et événements
Heureusement, en dehors des résultats faux dans les 2 applications et du
Python, la
Zero est fonctionnelle, il y a moyen de lui faire sortir les bonnes réponses.
Mais ce dernier point particulièrement fait manquer la
Zero d’homogénéité et rend ainsi sa prise en main plus fastidieuse, avec la nécessité dans chaque contexte de savoir dans quel ordre appeler les différentes interfaces/touches afin de contourner les différents bugs et bien obtenir les réponses souhaitées, comme si le projet avait manqué dès le départ d’une vision d’ensemble.
Rajoutons de plus une absence de stabilité du développement, dans le sens où de nouveaux bugs arrivent même à faire leur apparition depuis la dernière version.
Le
firmware n’est bien qu’en façade, dès que l’on creuse un tout petit peu on trouve facilement des
bugs. Fonctionnellement c’est à peine de la qualité
bêta, et après au moins 18 mois de développement c’est extrêmement décevant.
Après ne jetons pas trop la pierre ; il n'est pas impossible que l’entreprise
Zero ait été accaparée ces derniers temps par les diverses exigences de changement de
design provenant de
Texas Instruments, ainsi que par le changement majeur de matériel.
Quoi qu’il en soit, en l’état, pour nous la calculatrice
Zero est très loin d’être un produit fini, et nous voyons fort mal comment elle pourrait sortir prochainement et s’opposer sérieusement à la
TI-84 Plus CE Python, du moins si il n’y a pas un effort très sérieux sur le logiciel, pour réaliser en seulement quelques mois ce qui ne l’a apparemment pas été en plus de 18 mois. Un changement de méthode de développement serait peut-être même nécessaire selon nous, les tests de qualité et de non-régression nous semblant cruellement faire défaut dans le cadre de ce projet. Une ouverture du code source, comme chez
NumWorks, pourrait potentiellement être salvatrice si des enthousiastes viennent à la rescousse, afin de ne pas rater la rentrée 2024, car il reste du boulot pour le moins que l’on puisse dire.
Après heureusement, la calculatrice peut être mise à jour. Un lancement dans les prochains mois resterait donc malgré tout envisageable car n’empêchant pas, en théorie, les mises à jour indispensables corrigeant les bugs pour la rentrée 2024.
Jesse qui sait bien mieux que nous ce qui se cache derrière les différents bugs nous annonce que tout est
relativement mineur et facile à corriger :
Jesse wrote:[...] thanks for all your feedback. We definitely needed some real-world testing to see that we need to make improvements to both the firmware and the enclosure. It will take some work but it won’t be anything like the amount of time it took from ZGC2 to ZGC3. Everything is relatively minor fixes and we aren’t doing a major redesign like that.
Tant mieux, nous te disons en conséquence à très bientôt pour la sortie de la
Zero !
En attendant nous te proposons des comparaisons de la
Zero permettant de mieux la positionner par rapport aux produits disponibles chez toi :
- Comparer la Zero ZGC3 en France
(TI-82 Advanced Edition Python, TI-83 Premium CE Edition Python, NumWorks N0110/N0115/N0120, TI-Nspire CX II-T(CAS), HP Prime G2, Casio Graph 35+E II, Graph 90+E et fx-CP400+E) - Comparer la Zero ZGC3 en Europe
(TI-84 Plus CE-T Python Edition, NumWorks N0110/N0115/N0120, TI-Nspire CX II-T(CAS), HP Prime G2, Casio fx-9860GIII, fx-CG50 et fx-CP400) - Comparer la Zero ZGC3 en Amérique du Nord
(TI-84 Plus CE Python, NumWorks N0110/N0115/N0120, TI-Nspire CX II(CAS), HP Prime G2, Casio fx-9750GIII, fx-CG50 et fx-CG500)