π
<-

News 2025
April (7)
March (1)

News 2024
June (4)
May (4)
April (2)

News 2023
August (2)
July (3)
June (3)
May (7)
April (2)
March (3)

News 2022
August (3)
July (1)
June (4)
May (1)
April (6)
March (4)
January (12)

News 2021
August (8)
July (28)
June (20)
May (19)
April (25)
March (15)

News 2020
August (16)
July (13)
June (17)
May (38)
April (21)
March (17)

News 2019
August (10)
July (3)
June (4)
May (11)
April (8)
March (18)
January (14)

News 2018
August (5)
July (1)
June (9)
May (10)
April (2)
March (14)
January (12)

News 2017
August (10)
July (14)
June (14)
May (11)
April (9)
March (12)
January (11)

News 2016
October (10)
August (8)
July (4)
June (8)
May (14)
April (9)
March (13)
January (11)

News 2015
October (15)
August (11)
July (4)
June (7)
May (12)
April (6)
March (11)

News 2014
August (2)
July (4)
June (2)
May (5)
April (4)
March (5)

News 2013
August (6)
July (6)
June (8)
May (14)
April (24)
March (16)
January (10)

News 2012
October (11)
August (6)
July (7)
June (8)
May (16)
April (16)
March (6)

News 2011
August (4)
July (4)
June (11)
May (5)
April (2)
March (6)

News 2010
July (1)
June (1)
May (2)
April (1)

News 2009
August (2)
April (1)

Unfair levels, 3 salles de tests Portal CE sur 83 Premium CE

New postby critor » 15 May 2020, 08:01

12304Portal Returns CE est une autre magnifique création de MateoConLechuga pour ta fantastique TI-83 Premium CE. Il s'agit d'un jeu inspiré de Portal : the Flash version, soit une transposition en 2D de l'univers 3D du jeu Portal original, et respectant fort bien l'esprit du jeu.

Il fait suite sur calculatrices à Portal Prelude par BuilderBoy pour TI-82/83/84+ monochromes, ainsi qu'à Portal Returns par le même MateoConLechuga pour le premier modèle couleur TI-84 Plus C Silver Edition.

Un autre superbe échantillon des meilleures réalisations permises par le langage assembleur sur calculatrices Texas Instruments ! :bj:
As-tu déjà résolu les 40 salles de test d'origine ainsi que les 38 salles de test additionnelles venant avec le téléchargement du jeu ?

Alors champion voici pour toi les Unfair Levels, un pack de 3 salles perso par Parziter. On ressent toute la bienveillance de notre chère Glados dès l'écran d'accueil. :p
C'est pas juste, il paraît-il que ce sont les derniers mots articulés des sujets de tests passés par là avant toi... :bat:

Pour y accéder il te suffira de transférer le fichier Portal2P.8xv, et de choisir Custom puis l'emplacement n°2 dans le menu d'accueil de Portal Returns CE.

Téléchargements :

MyLevel, niveau perso Oiram Mario CE pour TI-83 Premium CE

New postby critor » 14 May 2020, 10:36

12303Voici à l'approche du week-end MyLevel pour Oiram CE, le moteur de jeu Mario-like sorti en janvier 2017 par MateoConLechuga pour ta superbe TI-83 Premium CE, la calculatrice graphique actuellement la plus fun du marché.

MyLevel est un niveau perso conçu par PT_ et que voici illustré ci-contre.

Pour fonctionner correctement, Oiram CE a besoin des bibliothèques C téléchargeables ci-dessous. Mais rien de bien compliqué, il suffit juste de récupérer et transférer leur fichier. :)

Téléchargements :

Banque d'images Python TI-83 Premium CE 5.5 pour SNT

New postby critor » 12 May 2020, 20:56

Dans le cadre du concours de démo graphiques Python de Planète Casio, Kikoodx a développé un script d'affichage d'image pour Casio Graph 90+E.

Nous avons vu à cette occasion qu'il était hélas impossible de le faire fonctionner tel quel sur TI-83 Premium CE Edition Python.

L'image fait 384×192 pixels et Kikoodx l'inclut astucieusement dans le code dans une version indexée, faisant appel à une palette de 256 couleurs optimisée pour cette image.

Première contrainte, les scripts qui doivent être chargés occupent 196 Kio. Or si ta TI-83 Premium CE Edition Python dispose bien d'un espace de stockage pris sur la mémoire Flash de 3 Mio (dit mémoire d'archive) de capacité, l'application tout script y étant placé sera ignoré par l'application Python. Les scripts que tu souhaites pouvoir utiliser doivent obligatoirement être placés dans l'espace de stockage bien plus petit pris sur la mémoire RAM, avec dans les 150K disponibles à vide, ce n'est pas assez. :#non#:

Mais l'image étant ici plus large que l'écran avec 384 pixels, on pourrait imaginer que ça rentre après l'avoir tronquée d'un petit quart de sa taille, du genre dans les 300×192 pixels ? Et ben non, même si tu arrives à réduire la taille des scripts à 150K tu n'es pas sorti(e) de l'auberge. Car nous venons de voir que le coprocesseur Python de ta machine ne peut importer simultanément qu'un maximum de 50K scripts. :(

C'est donc de trois quarts qu'il faudrait réduire notre image, elle ne serait plus du tout plein écran. Mais attend non même pas, puisque nous avions vu précédemment que le heap (tas) accueillant les valeurs des objets Python à l'exécution ne faisait plus que moins de 17.5K. 17.5K qui devraient donc accueillir à l'exécution non seulement l'objet image, mais également toutes les fonctions d'affichage liées. :'(

Non décidément, la méthode d'inclure les données d'une image à afficher dans un script Python n'est pas envisageable sur TI-83 Premium CE Edition Python. A moins qu'il ne s'agisse que de toutes petites images du genre icônes, et très peu nombreuses. :#non#:

Mais alors comment faire avec une classe équipée en TI-83 Premium CE Edition Python pour l'enseignement de SNT dès la Seconde, et notamment toute sa partie sur la photograhique numérique et le traitement d'image en Python ? :#roll#:

Mais c'est que Texas Instruments a pensé à tout, et semble concevoir sa très prochaine mise à jour 5.5 sur-mesure pour le lycée français. ;)

Dans notre exploration récente de la bibliothèque secrète ti_graphics, nous découvrions 3 fonctions dédiées aux images :
  • pushImage(x, y, w, h)
  • popImage()
  • drawImage()
pushImage(x, y, w, h) définit une image de dimensions w×h pixels qui sera ensuite affichée par popImage() avec comme coin supérieur gauche le pixel de coordonnées (x,y).

Nous n'en avons toutefois pas saisi tout le fonctionnement, puisque n'arrivant à afficher que du bruit mémoire.

Voici maintenant enfin les spécifications de la mystérieuse 3ème fonction d'image drawImage('imgname', x, y).

L'appel drawImage('imgname', x, y) va chercher dans les variables d'application de la calculatrice, c'est-à-dire en externe hors de l'environnement Python, une image correspondant au nom fourni, et l'affiche avec le pixel de coordonnées (x,y) comme coin supérieur gauche.

Exemple ci-contre de ce que l'on obtient avec l'appel ci-dessous après avoir chargé le fichier GIRL_150.8xv :
ti_plotlib.gr.drawImage('GIRL_150', 100, 50)

Cet affichage est ainsi effectué en dehors de l'environnement Python, il n'y a aucune création d'objet, aucune consommation de ressource ! :bj:

Il n'en reste pas moins possible de poursuivre le traitement d'image en Python, avec des transformations répondant au programme de SNT de Seconde. ;)

Une simple boucle de getPixel() / setPixel() te permettra par exemple ensuite de réaliser nombre de choses pertinentes en SNT, sans création de gros objets Python et donc sans problème d'épuisement du tas Python : :bj:
  • symétrie axiale
  • symétrie centrale
  • inversion de couleurs
  • extraction de composantes de couleurs
  • comparaison de divers algorithmes de conversion en niveaux de gris
  • ...


Petit exemple justement sur le passage en niveaux de gris :

Quant aux images justement, il est prévu de nous mettre à disposition une banque d'images téléchargeables déjà préconverties au bon format compatible avec le Python de ta calculatrice.

Nous ignorons à ce jour si il sera possible de convertir ses propres images, ou si les fichiers au format en question seront protégés par une possible signature numérique.

Décidément Texas Instruments a le soucis méticuleux du détail, la moindre ligne des programmes scolaires étant prise en compte; nous n'en revenons toujours pas du travail colossal effectué sur cette mise à jour 5.5 ! :bj:

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

New 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)

83 Premium CE 5.5 : 50K de scripts Python importables !

New postby critor » 12 May 2020, 13:33

1132511355Le fonctionnement matériel de ta TI-83 Premium CE Edition Python est absolument passionnant, du véritable travail d'horloger. :)
Elle renferme 3 puces essentielles :
  • un cœur principal JB-007-01 S7TM2-010 qui renferme entre autres le processeur eZ80 et sa mémoire RAM
  • une mémoire Flash externe Winbond 25Q32JVSIQ de 4 Mio de capacité, qui renferme :
    • le code d'amorçage (Boot) de 128 Kio
    • le système d'exploitation
    • un espace de stockage de 3 Mio de capacité qui accueille les applications ainsi que toutes les variables que tu places en mémoire d'archive
  • et un cœur secondaire Atmel ATSAMD21 dédié à l'application Python

10240L'étude du cœur secondaire Atmel avait déjà bien commencé du temps où il était proposé sur le module externe d'extension TI-Python pour l'ancien modèle TI-83 Premium CE. Il comporte :
  • un processeur 32 bits Cortex-M0+/ARMv6 cadencé à 48MHz
  • une mémoire Flash interne de 256 Kio
  • une mémoire SRAM de 32 Kio

La mémoire SRAM Atmel est utilisée :
  • d'une part pour l'exécution du firmware CircuitPython
  • d'autre part pour l'exécution de tes scripts Python, notamment à travers le tas (heap) et la pile (stack) comme évoqué récemment

Aujourd'hui nous nous intéressons à la mémoire Flash Atmel interne. Elle renferme
  • le firmware CircuitPython que nous venons de mentionner
  • et un espace de stockage destiné à accueillir les fichiers utilisés par le firmware ainsi que tes scripts Python importables, avec une capacité mesurée de 58,5 Kio du temps où on pouvait analyser le module TI-Python externe par connexion USB directe à un ordinateur

Bref, ce qu'il faut comprendre avec la TI-83 Premium CE Edition Python, c'est que même si tu peux stocker jusqu'à 3 Mio de scripts Python dans la mémoire Flash externe, ces derniers ne seront pas utilisables. L'application Python ne te permet en effet de lister, modifier, importer ou lancer directement que les seuls scripts présents dans la mémoire RAM associée au cœur principal eZ80, soit jusque dans les 150K si elle est bien vide.

Ensuite, lorsque tu accèdes à l'environnement Python, tous les scripts Python présents dans la mémoire RAM eZ80 (150K) sont copiés dans l'espace de stockage du cœur Atmel (58,5 Kio).

Comme ce dernier est de capacité inférieure, Texas Instruments avait par défaut fixé des limites pour éviter de l'épuiser. Tu avais droit jusqu'à présent à :
  • jusqu'à 80 fichiers de scripts Python différents
  • pour une taille globale de 40 Kio, soit très en-dessous des 58,5 Kio de capacité avec 55,5 Kio d'espace libre lorsque nous avions testé sur le module TI-Python externe
Si tu dépassais l'une des ces deux limites avec les seuls scripts Python présents en mémoire RAM eZ80, l'application Python refusait de démarrer et t'affichait alors l'écran d'erreur ci-contre.

Tu te devais alors soit de supprimer des scripts Python, soit d'en déplacer certains en mémoire d'archive. Un travail de sélection/jonglage pouvant être assez fastidieux.

Et bien bonne nouvelle pour toi avec la prochaine mise à jour 5.5, qui retardera nettement ces légers embêtements. :)

Les limites y sont en effet augmentées de 20% selon nos tests. Tu as désormais droit en mémoire RAM eZ80 de ta calculatrice à très exactement :
  • jusqu'à 100 fichiers de scripts Python différents :bj:
  • pour une taille globale de 50 Kio, bien plus proche cette fois-ci de l'espace libre estimé donc à 55,5 Kio sur le cœur Atmel :bj:
De quoi aller bien plus loin dans tes projets, merci TI ! :D

-
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.
2820 utilisateurs:
>2803 invités
>10 membres
>7 robots
Record simultané (sur 6 mois):
29271 utilisateurs (le 11/07/2025)
-
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)