Page 1 sur 1

Module Python turtle rajoutable TI-83 Premium CE 5.5 !

Message non luPosté: 05 Mai 2020, 14:34
de critor
12382Dans sa prochaine mise à jour 5.5 gratuite prévue pour Mai 2020, Texas Instruments va rajouter de formidables possibilités à ta TI-83 Premium CE :
  • 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)

Cette dernière application apporte de nouveaux modules importables pour tes scripts Python :
  • time, certes déjà présent mais maintenant listé au menu et donc officiel; il ne risque plus de disparaitre :)
  • 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
      ou
      alpha
      )
      , et ça marche aussi avec un clavier USB ! :bj:
    • affichage dans la console à la ligne que tu veux :bj:
    • 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 :bj:
    • importation depuis le contexte Python de listes ou équation de régression existant dans l'environnement de la calculatrice :bj:
    • 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é ! :bj:
  • 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
  • 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 :)
Nous t'avions donc déjà exploré les possibilités des modules ti_system, ti_plotlib et ti_graphics.

A priori donc pas de module turtle. Trouvais-tu donc les possibilités graphiques décevantes ? ;)

Et bien si, crois-le ou pas mais la formidable mise à jour 5.5 n'en a pas terminé de te révéler sa pléthore de secrets. :D
Texas Instruments nous a bien concocté en secret un module comparable à turtle ici appelé ce_turtl ! :bj:

Décidément, c'est bien une mise à jour historique que Texas Instruments est en train de te préparer. La plus grande mise à jour depuis le lancement de la TI-83 Premium CE à la rentrée 2015 ? ;)

Non non tu ne rêves pas. Nous ne t'en avions pas parlé jusqu'à présent car la solution retenue est étrangement similaire à celle de Casio. C'est-à-dire que le module ce_turtle n'est pas intégré à la mise à jour 5.5 et voilà donc pourquoi tu n'as pu en noter aucune trace jusqu'à présent. Il prend en fait la forme d'un fichier externe de variable d'application ce_turtle.8xv qu'il faut à ce jour rajouter manuellement.

Toutefois ce_turtle semble nous réserver quelques surprises, puisqu'une fois rajouté au contenu de la calculatrice ses icônes et types dans l'explorateur de TI-Connect CE diffèrent de ceux utilisés pour les scripts Python, un objet donc a priori fort intéressant... :roll:

Effectivement grosse surprise, la calculatrice ne liste pas ce_turtl avec les autres scripts Python transférés, mais avec les autres modules intégrés importables ! :o

Cela voudrait-il dire que Texas Instruments a codé un moyen de rajouter ses propres modules ? :#roll#:

Outre ce détail, en quoi ce_turtl diffère-t-il d'un script Python normal ?

Et bien à partir de l'entrée précédente tu as ici accès à un menu par onglets documentant ses différentes fonctions et en facilitant l'accès ! :D

Peut-être y a-t-il d'autres avantages à utiliser un module rajouté plutôt qu'un script Python normal comme Casio, comme la disponibilité en mode examen. Ne disposant pas à ce jour du fichier ce_turtle.8xv nous ne pouvons pas tester, mais ne manquerons pas de t'en informer aussitôt que possible. :)

Maintenant pour l'utilisation, l'importation du module ce_turtle apporte apparemment un objet turtle.

Il est donc a priori possible de construire du code compatible avec différents modèles à l'aide des lignes suivantes :
Code: Tout sélectionner
try:
  from ce_turtl import turtle
except:
  import turtle


Terminons justement avec quelques exemples pour commencer à découvrir la compatibilité. Nous utiliserons une fonction annexe mypencolor() pour le réglage de la couleur de crayon, afin de contourner une divergence déjà évoquée chez NumWorks.

Voici les flocons de Koch :
Graph
35+E II
Graph
90+E
TI-83 Premium CE
Edition Python
Num
Works
ordi
Code: Tout sélectionner
try:
  from ce_turtl import turtle
except:
  import turtle

def mypencolor(t):
  cmax=255
  try:
    turtle.pencolor((2, 2, 2))
  except:
    cmax=1
  if cmax==1 and max(t)>1:
    t=tuple(u/255 for u in t)
  elif cmax==255 and any(isinstance(u, float) for u in t):
    t=tuple(int(255*u) for u in t)
  turtle.pencolor(t)
 
def koch(n, l):
  if n<=0:
    turtle.forward(l)
  else:
    koch(n-1, l/3)
    turtle.left(60)
    koch(n-1, l/3)
    turtle.right(120)
    koch(n-1, l/3)
    turtle.left(60)
    koch(n-1, l/3)

def flock(n, l):
  koch(n, l)
  turtle.right(120)
  koch(n, l)
  turtle.right(120)
  koch(n, l)

l=80

turtle.penup()
turtle.forward(5)
turtle.left(90)
turtle.forward(45)
turtle.right(150)
turtle.pendown()
turtle.pensize(3)
mypencolor((0, 0, 255))
flock(2, l)

turtle.penup()
turtle.left(30)
turtle.backward(45)
turtle.right(90)
turtle.backward(105)
turtle.right(90)
turtle.forward(5)
turtle.left(30)
turtle.pendown()
turtle.pensize(5)
mypencolor((0, 255, 0))
flock(1, l)

turtle.penup()
turtle.left(30)
turtle.forward(22)
turtle.left(30)
turtle.pendown()
turtle.pensize(3)
mypencolor((255, 0, 0))
flock(0, l)

turtle.penup()
turtle.left(30)
turtle.forward(14)
turtle.left(90)
turtle.forward(205)
turtle.left(120)
turtle.pendown()
turtle.pensize(1)
mypencolor((0, 0, 0))
flock(3, l)

turtle.penup()
turtle.left(30)
turtle.forward(13)
turtle.pendown()
turtle.left(30)
mypencolor((255, 127, 0))
flock(4, l)

turtle.penup()
turtle.forward(150)

On note en passant également une divergence chez Casio, la fonction turtle.pensize() ne semblant pas être gérée correctement.

Et maintenant les triangles de Sierpiński :
Graph
35+E II
Graph
90+E
TI-83 Premium CE
Edition Python
Num
Works
ordi
Code: Tout sélectionner
try:
  from ce_turtl import turtle
except:
  import turtle

def mypencolor(t):
  cmax=255
  try:
    turtle.pencolor((2, 2, 2))
  except:
    cmax=1
  if cmax==1 and max(t)>1:
    t=tuple(u/255 for u in t)
  elif cmax==255 and any(isinstance(u, float) for u in t):
    t=tuple(int(255*u) for u in t)
  turtle.pencolor(t)

def sierp(n, l):
    if n == 0:
        for i in range (0, 3):
            turtle.fd(l)
            turtle.left(120)
    if n > 0:
        sierp(n-1, l/2)
        turtle.fd(l/2)
        sierp(n-1, l/2)
        turtle.bk(l/2)
        turtle.left(60)
        turtle.fd(l/2)
        turtle.right(60)
        sierp(n-1, l/2)
        turtle.left(60)
        turtle.bk(l/2)
        turtle.right(60)

turtle.penup()
turtle.backward(109)
turtle.left(90)
turtle.backward(100)
turtle.right(90)
turtle.pendown()
mypencolor((255, 0, 0))
sierp(6, 217)
turtle.penup()
turtle.forward(400)

Merci Texas Instruments pour cette belle surprise des modules Python rajoutables à laquelle nous ne nous attendions absolument pas. :D

Le module ce_turtl hautement pertinent et a priori bénéficiant d'une certaine compatibilité avec le turtle standard, offrira donc très bientôt de quoi réinvestir en Seconde les acquis du langage Scratch du collège pour une transition en douceur vers le Python ! :bj:

Mais au-delà de cela, la solution technique retenue est des plus intéressantes. Cela voudrait-il dire qu'il serait à l'avenir possible pour des entités tierces de fournir des modules d'extension Python pour la TI-83 Premium CE Edition Python; avec peut-être validation par le constructeur via une signature électronique si le mode examen entre dans l'équation ?... ;)

Re: Module Python turtle rajoutable TI-83 Premium CE 5.5 !

Message non luPosté: 05 Mai 2020, 18:06
de critor
Revoici l'exemple des flocons de Koch sur TI-83PCE, maintenant en bien meilleure qualité : :)


Visuel remplacé dans l'article.

Re: Module Python turtle rajoutable TI-83 Premium CE 5.5 !

Message non luPosté: 05 Mai 2020, 18:54
de CaptainLuigi
Alors , TI a entendu mes appels pour l'open source :p ?

Re: Module Python turtle rajoutable TI-83 Premium CE 5.5 !

Message non luPosté: 05 Mai 2020, 19:41
de critor
Je ne sais pas. On en saura davantage lorsque nous aurons le fichier.

Re: Module Python turtle rajoutable TI-83 Premium CE 5.5 !

Message non luPosté: 06 Mai 2020, 06:11
de critor
Et maintenant l'exemple des triangles de Sierpiński en bien meilleure qualité également :


Visuel remplacé dans l'article.