Page 1 of 2

Test module TI-Python (versions .0006, prototype DVT)

Unread postPosted: 12 Nov 2018, 16:51
by critor
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 :
  1. Premier coup d’oeil module TI-Python
  2. Système TI-83 Premium CE 5.3.5 et application PyAdaptr
  3. Editeur de scripts Python et menus
  4. Bibliothèque native Python et menus
  5. Modules Python et menus
  6. Connexion module TI-Python et mise à jour
  7. Console Python et menus
  8. Stockage des scripts Python et mode examen
  9. Matériel module TI-Pyhon
  10. Conclusion





1) Premier coup d'oeil module TI-Python :Go to top

100101000910011Deux 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

99069904Pour 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.

991799619903Nous 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

9912L’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.

99489960Le 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.
99139935993699399938
9940994499379945


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
99219923992299289919
9924993199239945


99269929Notons 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.





5) Modules Python et menus :Go to top

9933La 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
9927993299349930






6) Connexion module TI-Python et mise à jour :Go to top

99621001310008La 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. :bj:

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.

9902Le 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.





7) Console Python et menus :Go to top

1000499149911Avec 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. :bj:

9915Le 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 ! :bj:

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

9918Les 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. :mj:

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. :mj:





9) Matériel module TI-Python :Go to top

10016Hors 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. :o
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. :bj:

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 ?... ;)

Re: Test module TI-Python (versions .0006, prototype DVT)

Unread postPosted: 12 Nov 2018, 17:07
by Adriweb
Je l'avais déjà soupçonné, mais je confirme donc que c'est un choix technique fort intéressant qui, je suis sûr, va intéresser les bidouilleurs :D

Très bon test en tout cas !

Re: Test module TI-Python (versions .0006, prototype DVT)

Unread postPosted: 12 Nov 2018, 18:11
by parisse
Excellent article, merci pour ces infos, critor!
Helas il n'y a que 32K de RAM sur le processeur externe, une quantite de memoire digne du debut des annees 1990 sur calculatrices...
Il sera donc impossible d'y porter Xcas :-(
Cela risque aussi de limiter les possibilites des scripts Python.

Re: Test module TI-Python (versions .0006, prototype DVT)

Unread postPosted: 12 Nov 2018, 18:34
by critor
De rien, merci. :)

Ce sera pour un prochain article, mais il me semble que les 32K de RAM sont entièrement utilisables en tant que mémoire de travail Python.

Donc ce serait mieux que la mémoire de travail Python actuelle de la NumWorks.
Même si NumWorks a encore de la marge à la différence avec ses 256K de RAM, à condition de s'en donner la peine.

Re: Test module TI-Python (versions .0006, prototype DVT)

Unread postPosted: 12 Nov 2018, 19:30
by jean-baptiste boric
parisse wrote:Helas il n'y a que 32K de RAM sur le processeur externe, une quantite de memoire digne du debut des annees 1990 sur calculatrices...
Il sera donc impossible d'y porter Xcas :-(
Cela risque aussi de limiter les possibilites des scripts Python.

Porter Xcas sur un module dédié à l'exécution de scripts Python? Même si on remplaçait son firmware par une adaptation de Xcas, je ne pense pas qu'utiliser PyAdaptr sur une TI-83 PCE couplée à un TI-Python comme un shell texte pour Xcas donne quelque chose qu'on voudrait vraiment utiliser en pratique... Ça reste une solution bouche-trou pour exécuter des scripts Python de niveau lycée, d'où le choix d'un MCU relativement modeste pour limiter la perte sèche côté TI sur un produit qui n'est même pas vendu.

Dans tous les cas, je doute très fortement que la démocratisation du CAS au lycée viendra un jour d'une plateforme de la lignée de la TI-81. C'est triste à dire, mais à moins d'un changement radical de plateforme l'entrée et le moyen de gamme de TI ne risque pas d'embarquer un CAS faute d'en avoir la capacité matérielle...

Re: Test module TI-Python (versions .0006, prototype DVT)

Unread postPosted: 12 Nov 2018, 20:01
by critor
jean-baptiste boric wrote:Ça reste une solution bouche-trou pour exécuter des scripts Python de niveau lycée, d'où le choix d'un MCU relativement modeste pour limiter la perte sèche côté TI sur un produit qui n'est même pas vendu.

Il serait question de le vendre, à moins de 10€ pièce a-t-on dit à l'UdPPC.
Mais après si ça se trouve, les distributeurs transformeront ça en 20€, ce ne serait pas la première fois.

Re: Test module TI-Python (versions .0006, prototype DVT)

Unread postPosted: 12 Nov 2018, 20:33
by parisse
jean-baptiste boric wrote:Porter Xcas sur un module dédié à l'exécution de scripts Python? Même si on remplaçait son firmware par une adaptation de Xcas, je ne pense pas qu'utiliser PyAdaptr sur une TI-83 PCE couplée à un TI-Python comme un shell texte pour Xcas donne quelque chose qu'on voudrait vraiment utiliser en pratique...

Pourquoi pas? L'interaction de Xcas avec Geogebra se fait par une unique fonction dont le prototype est char * caseval(char *), je suis sur qu'il serait possible de faire la meme chose entre la 83ce en natif et le module Python s'il avait assez de RAM (128K me semble le mininum). Evidemment l'UI devrait etre codee sur la 83ce (vu le nombre d'acheteurs de la 83ce, ca vaudrait le coup de travailler dessus). Mais la, rien a faire pour le moment.
Ca laisse un peu de temps a Numworks pour augmenter la taille de sa flash et a Casio pour tester KhiCAS ...

Re: Test module TI-Python (versions .0006, prototype DVT)

Unread postPosted: 12 Nov 2018, 21:12
by Lionel Debroux
Hmm... si la board utilisée par TI s'avère compatible avec les Trinket M0 - ça reste à démontrer, mais ça semble possible s'ils n'ont pas ajouté de composants significatifs sur la face inférieure qu'on ne peut pas voir - les distributeurs n'ont pas trop intérêt à monter le prix à 20€, vu qu'on trouve les Trinket M0 pour moins que ça.

Sans même aller jusqu'au firmware, qui serait le top si on pouvait le dumper, il serait très intéressant d'obtenir des dumps des descripteurs USB du TI-Python Adapter: ça donnerait (ou pourrait donner) une indication du (des) protocole(s) qui pourrai(en)t être géré(s) pour la communication avec le TI-Python Adapter. Que ce soit le SilverLink, les 84+(C)(SE) / 89T / TI-eZ80 ou les Nspire, les habitudes de TI sont de faire des devices en class vendor-specific avec des protocoles propriétaires... non pas que ça empêche le RE, mais ça le ralentit.

Re: Test module TI-Python (versions .0006, prototype DVT)

Unread postPosted: 13 Nov 2018, 23:09
by pierronot
critor wrote:
jean-baptiste boric wrote:Ça reste une solution bouche-trou pour exécuter des scripts Python de niveau lycée, d'où le choix d'un MCU relativement modeste pour limiter la perte sèche côté TI sur un produit qui n'est même pas vendu.

Il serait question de le vendre, à moins de 10€ pièce a-t-on dit à l'UdPPC.
Mais après si ça se trouve, les distributeurs transformeront ça en 20€, ce ne serait pas la première fois.


Est-ce que cette information est sûre ? Pour un élève en seconde avec une TI 83 PCE, c'est hyper-enthousiasmant ! Pour quelqu'un qui n'a pas d'ordinateur sous la main, et qui rechigne à racheter une calculatrice à 80€ (et je pense que je ne serais pas le seul...), c'est une très bonne solution, malgré quelques points noirs (mode examen et les limitations qu'on doit avoir avec un python sur calculatrice notamment).

Re: Test module TI-Python (versions .0006, prototype DVT)

Unread postPosted: 13 Nov 2018, 23:27
by critor
Sûre non, bien pour ça que j'ai employé le conditionnel.

Il me semble me souvenir du robot TI-Innovator Rover annoncé pour "un peu plus de 100€" aux journées APMEP 2017...
Ce qui a ensuite donné des tarifs de d'un peu plus de 140€ chez les distributeurs/revendeurs :
http://boutique.jarrety.fr/accessoires- ... x-cas.html
https://www.boutique-calculatrice-ti.co ... rover.html

Donc non, je ne peux pas exclure qu'un "moins de 10€" se transforme en "un peu plus de 20€" chez les distributeurs, sinon j'aurais mis cette information directement dans l'article. On verra dans quelques mois.