Test module TI-Python (versions .0006, prototype DVT)
Posted: 12 Nov 2018, 16:51
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.
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
f3offre é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
f5permet 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
0a é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
f1permet é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
mathspermettant 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.
5) Modules Python et menus :Go to top
La touche
mathsagit 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
f5permet alors de découvrir enfin la version firmware du module TI-Python, ici 3.0.0.0006.
7) Console Python et menus :Go to top
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
varsest 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.
9) Matériel module TI-Python :Go to top
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é.
Conclusion :Go to top
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 ?...