Découverte ce_turtl 83 Premium CE 5.5 + tests compatibilité
Posted: 18 May 2020, 20:26
Dans sa prochaine mise à jour 5.5 gratuite prévue pour Mai 2020, Texas Instruments va rajouter de formidables possibilités historiques à ta TI-83 Premium CE :
Python 5.5 offre de nouveaux modules intégrés pour tes scripts Python :
- mise à jour en 5.5 de l'application SciTools
- mise à jour en 5.5 de l'application Periodic
- mise à jour en 5.5 de l'application Python (TI-83 Premium CE Édition Python uniquement)
Python 5.5 offre de nouveaux modules intégrés pour tes scripts Python :
- time, certes déjà présent mais maintenant listé au menu et donc officiel
- ti_system, avec diverses possibilités :
- détection des simples pressions de touches clavier (sans validation donc) par l'utilisateur, avec même l'éventuel modificateur actif (
2nde
oualpha
), et ça marche aussi avec un clavier USB ! - affichage dans la console à la ligne que tu veux
- exportation de listes de nombres (entiers, flottants ou complexes) existant dans le contexte Python vers l'environnement de la calculatrice, pour traitement à l'aide d'autres applications
- importation depuis le contexte Python de listes ou équation de régression existant dans l'environnement de la calculatrice
- et donc plus généralement un début d'intégration du Python à l'environnement mathématique de la calculatrice, enfin l'application Python va pouvoir servir non plus seulement à coder un truc déconnecté dans un coin, mais à traiter des problèmes et tâches complexes dans leur globalité !
- détection des simples pressions de touches clavier (sans validation donc) par l'utilisateur, avec même l'éventuel modificateur actif (
- ti_plotlib, une bibliothèque graphique pour tracer dans un repère othogonal, conformément aux programmes de Mathématiques et Physique-Chimie, comparable à matplotl chez Casio ou encore matplotlib.pyplot, et gérant ici les diagrammes suivants :
- nuage de points
- diagramme en ligne brisée
- droite de régression linéaire
- ti_graphics pour contrôler directement les pixels de l'écran, comparable à kandinsky chez NumWorks ou encore casioplot
- ti_hub, pour les projets d'objects connectés à l'aide de l'interface TI-Innovator Hub
- ti_rover, pour les projets de robotique à l'aide du TI-Innovator Rover
Aujourd'hui nous poursuivons notre exploration du module complémentaire ce_turtl, donc voici enfin ci-dessous le détail des menus :
Comme tu peux le voir, nous disposons à priori de tout ce qu'il faut pour une faire aussi bien qu'avec le module turtle standard.
Le module ce_turtl semble comporter lui-même un sous-module turtle.
Une même script pourrait même tourner a priori aussi bien avec ce_turtl que le turtle standard sur ordinateur, à condition de tenir compte de tout cela à l'importation. Nous pouvons faire au choix :
Notons que la saisie via les menus ce_turtl préfixe toutes les commandes d'un
Nous allons donc maintenant tester la compatibilité de ce_turtl avec les solutions concurrentes, ainsi que sa conformité au standard turtle.
Précisons que nous ne disposons pas à ce jour du fichier permettant de rajouter ce_turtl à la calculatrice, et sommes donc limités aux exemples fournis par Texas Instruments.
Pour cela nous allons commencer doucement en y allant fonction par fonction, avant d'aborder des exemples plus poussés.
Comme tu peux le voir, nous disposons à priori de tout ce qu'il faut pour une faire aussi bien qu'avec le module turtle standard.
Le module ce_turtl semble comporter lui-même un sous-module turtle.
Une même script pourrait même tourner a priori aussi bien avec ce_turtl que le turtle standard sur ordinateur, à condition de tenir compte de tout cela à l'importation. Nous pouvons faire au choix :
- Code: Select all
try: from ce_turtl.turtle import *
except ImportError: from turtle import *
- Code: Select all
try: from ce_turtl import *
except ImportError: import turtle
Notons que la saisie via les menus ce_turtl préfixe toutes les commandes d'un
turtle.
et n'est donc adaptée qu'à ce dernier point.Nous allons donc maintenant tester la compatibilité de ce_turtl avec les solutions concurrentes, ainsi que sa conformité au standard turtle.
Précisons que nous ne disposons pas à ce jour du fichier permettant de rajouter ce_turtl à la calculatrice, et sommes donc limités aux exemples fournis par Texas Instruments.
Pour cela nous allons commencer doucement en y allant fonction par fonction, avant d'aborder des exemples plus poussés.
Démarrons donc avec un tracé de polygone tout simple:
Ainsi que tu peux voir, comme avec ti_plotlib et ti_graphics, les tracés ce_turtl sont effectués directement sur l'écran d'affichage de la console Python.
D'où la nécessité de commencer par effacer l'écran avec ici non pas le turtle.clearscreen() standard, mais turtle.clear().
De plus, comme les affichages sortent sur la console, ils sont nettoyés et perdus dès que ton script rend la main. Il faut donc insérer une boucle d'attente en fin de script, ici fournie par l'appel non standard turtle.show(). Contrairement à ce que son nom indique, cette fonction n'affiche rien par elle-même et ne fait qu'attendre l'appui sur une touche d'interruption par l'utilisateur. Elle est donc équivalente aux appels ti_plotlib.show_plot() et ti_system.disp_wait(), ainsi qu'au code suivante :
- Code: Select all
try: from ce_turtl import *
except ImportError: import turtle
def polyg(l,n):
for i in range(n):
turtle.forward(l)
turtle.left(360/n)
polyg(100,4)
Ainsi que tu peux voir, comme avec ti_plotlib et ti_graphics, les tracés ce_turtl sont effectués directement sur l'écran d'affichage de la console Python.
D'où la nécessité de commencer par effacer l'écran avec ici non pas le turtle.clearscreen() standard, mais turtle.clear().
De plus, comme les affichages sortent sur la console, ils sont nettoyés et perdus dès que ton script rend la main. Il faut donc insérer une boucle d'attente en fin de script, ici fournie par l'appel non standard turtle.show(). Contrairement à ce que son nom indique, cette fonction n'affiche rien par elle-même et ne fait qu'attendre l'appui sur une touche d'interruption par l'utilisateur. Elle est donc équivalente aux appels ti_plotlib.show_plot() et ti_system.disp_wait(), ainsi qu'au code suivante :
- Code: Select all
while not ti_system.escape():
pass
Graph 35+E II | Graph 90+E | TI-83 Premium CE Edition Python | Num Works | ordi |
|
Mettons maintenant de la couleur, par exemple du bleu. Et voici les ennuis de compatibilité arriver.
Déjà, les différentes plateformes n'utilisent même pas les mêmes systèmes de coordonnées pour les composantes RVB de couleurs :
Mais traitons maintenant du cas d'importation adapté à la saisie via les menus; on pourrait faire :
Ce dernier code marche parfaitement sur Casio et sur ordi (standard), mais hélas pas sur NumWorks qui refuse à la différence que l'on rajoute après importation une fonction à un module.
Tant pis, le code de compatibilité sera donc moins propre en attendant que l'on trouve mieux.
Nous réglerons de plus l'épaisseur de crayon à 1.
Autre divergence ici sur TI-83 Premium CE Edition Python, où le
Déjà, les différentes plateformes n'utilisent même pas les mêmes systèmes de coordonnées pour les composantes RVB de couleurs :
- nombre flottant de 0.0 à 1.0 sur Casio et ordinateur
- nombre entier de 0 à 255 sur NumWorks et TI-83 Premium CE Edition Python
- turtle.pencolor() qui contrôle la couleur du stylo, ici absente sur TI-83 Premium CE Edition Python
- turtle.color() qui règle à la fois la couleur du stylo et du pinceau (remplissage), absente cette fois-ci chez Casio
- Code: Select all
try:
from ce_turtl.turtle import *
pencolor = color
except ImportError:
from turtle import *
try:
color
except:
color = pencolor
Mais traitons maintenant du cas d'importation adapté à la saisie via les menus; on pourrait faire :
- Code: Select all
try:
from ce_turtl import *
ce_turtl.pencolor = ce_turtl.color
except ImportError:
import turtle
try:
turtle.color
except:
turtle.color = turtle.pencolor
Ce dernier code marche parfaitement sur Casio et sur ordi (standard), mais hélas pas sur NumWorks qui refuse à la différence que l'on rajoute après importation une fonction à un module.
Tant pis, le code de compatibilité sera donc moins propre en attendant que l'on trouve mieux.
Nous réglerons de plus l'épaisseur de crayon à 1.
Graph 35+E II | Graph 90+E | TI-83 Premium CE Edition Python | Num Works | ordi |
|
Autre divergence ici sur TI-83 Premium CE Edition Python, où le
turtle.pensize(1)
produit des traits de plus d'1 pixel d'épaisseur contrairement à toutes les autres plateformes.Tentons maintenant de commencer le tracé ailleurs :
Graph 35+E II | Graph 90+E | TI-83 Premium CE Edition Python | Num Works | ordi |
|
Recommençons maintenant en levant le stylo afin d'éviter le tracé parasite au départ :
Graph 35+E II | Graph 90+E | TI-83 Premium CE Edition Python | Num Works | ordi |
|
Passons maintenant à un hexagone :
Graph 35+E II | Graph 90+E | TI-83 Premium CE Edition Python | Num Works | ordi |
|
Voici maintenant les flocons de Koch :
Evidemment, le code utilisant les paramètres turtle.pensize() non standard de la TI-83 Premium CE Edition Python, il ne produit pas le même effet sur la concurrence.
Notons toutefois en passant que les réglages turtle.pensize() semblent totalement ignorés chez Casio.
Graph 35+E II | Graph 90+E | TI-83 Premium CE Edition Python | Num Works | ordi |
|
Evidemment, le code utilisant les paramètres turtle.pensize() non standard de la TI-83 Premium CE Edition Python, il ne produit pas le même effet sur la concurrence.
Notons toutefois en passant que les réglages turtle.pensize() semblent totalement ignorés chez Casio.
Et maintenant les triangles de Sierpiński :
Graph 35+E II | Graph 90+E | TI-83 Premium CE Edition Python | Num Works | ordi |
|
Bien que non parfaite, les bibliothèques turtle de Casio et NumWorks jouissaient d'une très bonne conformité au standard, ce qui permettait quasiment sans aucune modification d'utiliser les mêmes scripts turtle sur ces modèles différents.
Ici avec ce_turtle sur TI-83 Premium CE Edition Python la compatibilité semble nettement inférieure, et le nombre à gérer de cas particuliers connus à ce jour suffisamment important. A priori une bibliothèque compatibilité turtle va donc malgré tout être nécessaire si l'on souhaite que les scripts turtle standard qui tournent déjà sur Casio/NumWorks puissent également fonctionner sur TI-83 Premium CE Edition Python, et inversement.
Ici avec ce_turtle sur TI-83 Premium CE Edition Python la compatibilité semble nettement inférieure, et le nombre à gérer de cas particuliers connus à ce jour suffisamment important. A priori une bibliothèque compatibilité turtle va donc malgré tout être nécessaire si l'on souhaite que les scripts turtle standard qui tournent déjà sur Casio/NumWorks puissent également fonctionner sur TI-83 Premium CE Edition Python, et inversement.
Tuto-vidéo : utilisation du module complémentaire ce_turtl