π
<-

Animation Radar Python optimisée TI-83 Premium CE 5.5

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

Animation Radar Python optimisée TI-83 Premium CE 5.5

Unread postby critor » 12 May 2020, 16:10

Dans un article précédent, nous te présentions notre bibliothèque de compatibilité automatique PolyPyNet pour les scripts Python graphiques sur calculatrices.

Au menu, compatibilité totale entre les scripts utilisant les bibliothèques graphiques propriétaires des différents constructeurs, même si utilisés chez la concurrence : :bj
  • kandinsky pour NumWorks
  • casioplot pour Casio Graph 90/35+E II
  • ti_graphics pour TI-83 Premium CE Edition Python
En prime PolyPyNet permet d'exécuter les scripts utilisant ces bibliothèques sur ordinateur, traduisant et corrigeant les appels graphiques en question pour tkinter ! :bj:

12509En pratique, les performances des scripts faisant appel à PolyPyNet étaient globalement très satisfaisantes :
  • pas de ralentissement si exécuté sur la plateforme associée à la bibliothèque graphique utilisée
  • performances restant honorables si exécuté sur la plupart des plateformes concurrentes... à une exception près
Sur l'exemple traité d'une animation de radar, la TI-83 Premium CE était dans les 250 à 750 fois plus lente, mettant plus de 40 minutes à faire un tour complet là où la concurrence se contentait de quelques secondes ! :bj:

Le problème venait de l'architecture matérielle même de la TI-83 Premium CE Edition Python, déjà réexplicitée récemment. Les scripts Python n'y sont pas exécutés par le processeur eZ80 principal, mais par un coprocesseur 32 bits Cortex-M0+/ARMv6.

C'est-à-dire que les scripts Python n'ont pas d'accès direct au matériel de la machine et notamment à l'écran. Toute commande graphique génère un événement de rafraichissement qui doit ici transiter via la processeur eZ80 plus lent avant d'atteindre l'écran, d'où une latence très supérieure.

Les scripts conçus pour les bibliothèques graphiques minimalistes de la concurrence, faute de mieux appellent en boucle plein de commandes d'allumage de pixels "set_pixel", ce qui est effectivement une catastrophe si exécuté à l'identique sur TI-83 Premium CE Edition Python. :'(

Mais Texas Instruments avait prévu le problème. Sa bibliothèque ti_graphics est tout sauf minimaliste. Elle comprend plein de fonctions dédiées pour tracer des primitives et formes géométriques en ne géréant qu'un seul événément de rafraichissement :
  • lignes
  • lignes brisées
  • polygones avec remplissage optionnel
  • rectangles avec remplissage optionnel
  • arcs de cercles ou cercles avec remplissage optionnel
  • arcs d'ellipses ou ellipses vec remplissage optionnel
12514En attendant mieux nous avons donc la solution manuelle, se sortir pour chaque script graphique Python une version dédiée spécialement optimisée pour la TI-83 Premium CE Edition Python.

Il suffit de remplacer les boucles de set_pixel() par les appels graphiques correspondants si existants dans ti_graphics.

Nous l'avons donc fait pour le radar, avec cette fois-ci un cadre d'affichage correspondant bien à la zone graphique de 320×210 pixels de la TI-83 Premium CE Edition Python.


Et bien la différence est impressionnante, plus que 18.535s pour une révolution, soit une accélération d'un facteur de 133 ! :#tritop#:
  1. 3.2754s: NumWorks N0110 (firmware tiers Omega)
  2. 3.4296s : NumWorks N0100
  3. 3.5284s : NumWorks N0110
  4. 3.6286s : NumWorks N0100 (firmware tiers Omega)
  5. 6.499s : Graph 90+E
  6. 7.412s : TI-Nspire CX CR3-
  7. 9.703s : TI-Nspire CX CR4+
  8. 18.535s : TI-83 Premium CE Edition Python (script dédié optimisé à la main)
  9. 41min08.685s : TI-83 Premium CE Edition Python (compatibilité automatique PolyPyNet)
Un effort donc manuel certes, mais un effort qui vaudra largement le coût pour tes futurs scripts graphiques ! ;)

Téléchargements :
  • Radar (optimisé TI-83 Premium CE)
  • Radar (compatible tous modèles via PolyPyNet)
  • PolyPyNet (dernière version)
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.2%
 
Posts: 41951
Images: 15649
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Return to News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Who is online

Users browsing this forum: No registered users and 14 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
710 utilisateurs:
>670 invités
>31 membres
>9 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)