La série d’articles ici initiée au sujet du module
TI-Python n’a malheureusement pas pu être réalisée dans des conditions optimales. En effet, nous n'avons pas pour le moment d’échantillon de ce produit, donc ils sont rédigés à posteriori et illustrés avec permission à l’aide des photos de tests prises et réalisés sur le stand de
Texas Instruments aux
journées APMEP 2018 et
congrès UdPPC 2018.
Il est possible que certaines informations soient/deviennent erronées ou obsolètes.
Il peut arriver que d’autres points ne soient pas illustrés ou le soient avec une photo ne correspondant pas exactement à ce qui est décrit, soit parce que la photo n’avait pas été prise mais que le résultat avait bien été noté, soit parce que la photo était floue, soit parce que nous avons depuis recoupé plusieurs résultats, réfléchi et décidé de présenter la chose différemment.
Dans tous les cas, notez que ces tests ont été réalisés sur un prototype non final, certes de niveau
DVT et donc habituellement proche du produit final qui sera livré dans quelques mois. Mais il reste quand même possible que des choses évoquées changent d’ici-là, en bien ou en mal d’ailleurs.
En vous priant donc de bien vouloir excuser toute imprécision ou inexactitude qui serait éventuellement restée malgré nos efforts, et en vous souhaitant bonne lecture et bonne découverte.
Sommaire :- Premier coup d’oeil module TI-Python
- Système TI-83 Premium CE 5.3.5 et application PyAdaptr
- Editeur de scripts Python et menus
- Bibliothèque native Python et menus
- Modules Python et menus
- Connexion module TI-Python et mise à jour
- Console Python et menus
- Stockage des scripts Python et mode examen
- Matériel module TI-Pyhon
- Conclusion
1) Premier coup d'oeil module TI-Python :Go to top Deux modules
TI-Python étaient manipulables sur le stand
Texas Instruments aux
journées APMEP 2018 et
congrès UdPPC 2018. Ils se présentent sous la forme d'un petit boîtier cubique très léger. Comme indiqué au dos par les inscriptions
L-DVT-077,
L-DVT-153 et
NOT FOR SALE, il s'agit de prototypes de niveau
DVT assemblés dans l'usine de code
L aux Philippines. On note de plus au dos la présence d’un bouton
reset spécifique, confortant l’hypothèse que le module fait tourner son propre
firmware (microgiciel).
2) Système TI-83 Premium CE 5.3.5 et application PyAdaptr :Go to top Pour pouvoir exploiter le module
TI-Python, il nous faut l'une des
TI-83 Premium CE du stand. Identifiées au dos par une étiquette manuscrite
Marketing Python, elles sont munies du futur système
5.3.5, plus précisément de la version
5.3.5.0006.
Nous trouvons rapidement ce qu'il y a de nouveau sur ces machines, une application supplémentaire
PyAdaptr (sans doute pour Python Adapter). L’écran de lancement de l’application nous apprend qu’elle est elle aussi en version
5.3.5.0006. Un petit tour par le menu mémoire nous le confirme, et nous fait en prime remarquer qu’elle est tout bonnement énorme. Avec
306,210 Ko c'est la plus grosse application jamais fournie par
Texas Instruments pour cette calculatrice ! Mais que renferme-t-elle ?...
3) Editeur de scripts Python et menus :Go to top L’application
PyAdaptr nous offre un éditeur de scripts
Python. Il utilise une petite police à largeur fixe permettant de rentrer dans l’écran 11 lignes sur 32 colonnes
(contre 9 lignes sur 26 colonnes pour l’éditeur de programmes pour le langage historique), gère la coloration syntaxique, l’indentation automatique et, comme sur
Casio Graph 90+E, indique dans la barre de titre le numéro de la ligne sur laquelle se situe le curseur de saisie.
Notons qu’en cas de dépassement du bord droit de l’écran, l’éditeur retourne automatiquement à la ligne. Afin de distinguer ces retours à la ligne intermédiaires des indentations de nouvelles lignes, ces dernières sont préfixées par des points gris clair.
Le menu de bas d’écran
Outils correspondant à la touche
f3
offre également la possibilité d’indenter ou désindenter manuellement, d’aller au numéro de ligne de son choix comme sur
Graph 90+E, et même de couper/copier/coller. Notons toutefois que contrairement à la
Graph 90+E ces dernières opérations ne sont pas réalisables librement, ne s’appliquant pas à une sélection de caractères mais à une ligne entière, une seule à la fois.
Le menu de bas d’écran
Gérer correspondant à la touche
f5
permet quant à lui de renommer ou supprimer les scripts.
4) Bibliothèque native Python et menus :Go to top Toujours comme sur
Graph 90+E, le catalogue alphabétique accessible via
2nde
0
a été entièrement adapté pour lister les commandes, fonctions, opérateurs et constantes utilisables dans le contexte
Python, avec même des légendes pour certaines entrées.
Depuis l’éditeur, le menu de bas d’écran
Fns (peut-être pour Fonctionnalités) correspondant à la touche
f1
permet également d’accéder plus rapidement par onglets à un sous-ensemble du catalogue, une sorte de sélection de ce qui a été jugé le plus utile selon le constructeur :
- I/O pour entrées/sorties (Input/Output)
- Type
- Ctl pour les commandes de boucles et instructions conditionnelles, confortablement déclinées sous différentes formes
- Ops pour les opérateurs de tests et constantes associées (la liste ci-dessous se poursuit sur un 2nd écran avec A:True et B:False, photo manquante)
- Fonc pour ce qui est relatif aux fonctions définies dans le script
- List pour tout ce qui concerne les listes (ou tableaux), conformément au nouveau programme de Première de la rentrée 2019
- Modul pour les modules Python disponibles
Notons que la combinaison
2nde
maths
permettant historiquement d’accéder au menu de tests a été adaptée dans le contexte
Python agissant en tant que raccourci vers la catégorie
Ops.
La touche
maths
agit quant à elle comme raccourci vers la catégorie
Modul. Les modules
Python sont donc à ce jour apparemment au nombre de deux, exactement comme sur
Graph 90+E :
math et
random (photo manquante pour le contenu de ce dernier, mais nous le traiterons différemment dans un prochain article).
Concernant le module
math, notons qu’il s’agit donc du seul modèle à nous scinder son contenu, le répartissant sur 3 onglets :
- Math
- Const pour les constantes
- Trig pour trigonométrie
6) Connexion module TI-Python et mise à jour :Go to top La connexion du module
TI-Python à la calculatrice
TI-83 Premium CE n’est requise que pour l’accès à la console
Python et l’exécution des scripts. Comme le
TI-Innovator Hub ces modules sont dotés d'un port
USB mini-B, et se relient donc tout simplement à la calculatrice avec le câble de transfert
mini-USB fourni avec celle-ci.
Du côté module, la bonne connexion est indiquée par la diode
D1 verte. Du côté calculatrice, la bonne connexion est indiquée par un carré vert à droite dans la barre de titre.
Pas de photo ici, mais notons que lors de la 1
ère connexion d’un des deux modules du stand, nous avons obtenu dans l’application
PyAdaptr une barre de progression peu bavarde
(aucun texte) qui a mis pas mal de temps à passer de 0 à 100%. Nous n’avons plus jamais obtenu cette barre sur les 3 journées de tests. Cela ressemble énormément à une mise à jour du
firmware du module
TI-Python par l’application. Si donc l’application
PyAdaptr embarque directement le
firmware du module, cela explique sa taille aussi énorme.
Le menu de bas d’écran
Gérer accessible via
f5
permet alors de découvrir enfin la version
firmware du module
TI-Python, ici
3.0.0.0006.
Avec le module
TI-Python maintenant connecté, nous avons accès à la console
(menu de bas d’écran Shell) pour l’exécution des scripts et commandes saisies.
Le démarrage de la console semble bizarrement précharger systématiquement tous les scripts présents en mémoire, ce qui peut prendre un moment. Espérons donc que la mémoire du module
TI-Python sera suffisamment généreuse.
En tous cas cela semble bien être une véritable implémentation
Python comme sur
Graph 90+E et
NumWorks, toutes les commandes que nous avons pu saisir ont été correctement reconnues.
Le catalogue fonctionne toujours pour saisir des commandes ici dans la console, mais un gros avantage c’est que comme chez
NumWorks la touche
vars
est ici fonctionnelle et permettra de lister non seulement les fonctions définies dans l’environnement courant, que ce soit via les scripts chargés ou en ligne de commande, mais également les variables globales !
Notons que comme dans
KhiCAS pour
Graph 90+E, et contrairement donc au
Python officiel de cette machine et à la
NumWorks, la touche
↑
ne permet pas de faire défiler l’écran pour parcourir l’historique des affichages/résultats de la console, juste de récupérer les dernières commandes saisies.
8) Stockage des scripts Python et mode examen :Go to top Les scripts
Python créés sont stockés en mémoire sous la forme de variables d’application
(AppVars), et le menu mémoire se donne la peine de les identifier de façon spécifique par un suffixe
PY de couleur bleue.
Mais c’est peut-être le point que
Texas Instruments a le moins eu le temps de travailler. Ces scripts doivent obligatoirement rester en mémoire principale
(RAM). Un script mis en mémoire d’archive
(Flash) ne sera listé ni par l’éditeur de l’application
PyAdaptr, ni même par sa console pour une simple exécution en lecture seule.
Cela a l’inconvénient de nous inciter à nous contenter des 150K et quelques de la mémoire principale plutôt que des 3Mio de la mémoire d’archive, mais aussi de nous faire risquer la perte intégrale et définitive de tous les scripts Python de la machine au moindre plantage ou redémarrage.
On pouvait supposer que le suffixe
PY était significatif d’un traitement spécifique de ces variables, peut-être pour le mode examen. Et bien non, l’activation du mode examen du système
5.3.5.0006, en plus d’être toujours aussi lente, continue à effacer définitivement toutes les variables d’applications présentes en mémoire, archivées ou non, scripts
Python inclus donc.
Hors de question de démonter le module sur le stand pour lui arracher ses derniers secrets, mais puisqu’il dispose d’une coque transparente on peut se débrouiller autrement.
Il s’articule autour d’une unique puce
ATSAMD21 de chez
Atmel, embarquant donc :
- un processeur Cortex-M0+ (ARMv6, Thumb) cadencé à 48 MHz
- une mémoire Flash de 256Mio, donc compatible avec la taille observée de l’application
- une mémoire SRAM de 32Kio
Une petite recherche au sujet de cette puce nous apprend son utilisation dans la console de jeux portable française, éducative et rétro
Gamebuino META, ou encore pour les cartes de développement
Arduino M0 et
Zero.
Mais de façon encore plus intéressante, c’est également la puce utilisée dans les
PyBoards (cartes de développement Python) Trinket M0 et
Feather M0 de chez
AdaFruit.
Outre une possible compatibilité des
firmwares, cela voudra peut-être dire que la base du code logiciel est commune. Auquel cas l’implémentation
Python serait du
CircuitPython, un dérivé du
MicroPython utilisé sur la
Graph 90+E et la
Numworks, ce qui expliquerait l’excellente compatibilité.
Enfin,
last but not least, à quelques mois de sa sortie la solution
TI-Python de
Texas Instruments est déjà très aboutie sur nombre de points. Elle est comparable à la concurrence, empruntant selon le cas qualités ou défauts à l’un ou à l’autre, et parfois même supérieure sur certains points.
Pour les défauts essentiels, nous retiendrons à ce jour :
- l’extrême volatilité des scripts Python, comme chez NumWorks, avec l’absence de gestion des scripts Python en mémoire Flash et leur destruction définitive par l'entrée en mode examen
- l’absence de module graphique, comme sur Graph 90+E, dans l’optique du nouveau programme de Physique-Chimie Seconde à la rentrée 2019
- le choix d’un module externe, totalement interdit aux examens en France
Quoi qu’il en soit,
Texas Instruments ne fait visiblement pas les choses à moitié, le travail est d’excellente facture. Pour un module externe inutilisable aux examens et dont l’utilisation en classe ne sera pas sans diverses contraintes matérielles et logistiques absentes chez la concurrence, c’est même paradoxal de se donner autant de mal… à moins que ce ne soit qu’un travail préparatoire pour autre chose qui va suivre ?...