π
<-

News 2024
October (12)
August (9)
July (10)
June (20)
May (14)
April (16)
March (7)
January (20)

News 2023
October (19)
August (14)
July (13)
June (21)
May (29)
April (24)
March (24)
January (24)

News 2022
October (23)
August (14)
July (15)
June (17)
May (31)
April (27)
March (28)
January (34)

News 2021
October (24)
August (37)
July (50)
June (32)
May (48)
April (61)
March (35)
January (34)

News 2020
October (17)
August (43)
July (43)
June (45)
May (60)
April (78)
March (36)
January (39)

News 2019
October (13)
August (18)
July (23)
June (28)
May (31)
April (26)
March (38)
January (37)

News 2018
October (13)
August (32)
July (23)
June (64)
May (63)
April (45)
March (43)
January (45)

News 2017
October (26)
August (39)
July (52)
June (88)
May (51)
April (43)
March (37)
January (33)

News 2016
October (25)
August (42)
July (34)
June (109)
May (55)
April (34)
March (37)
January (24)

News 2015
October (22)
August (56)
July (22)
June (94)
May (56)
April (32)
March (40)
January (21)

News 2014
October (26)
August (18)
July (23)
June (101)
May (57)
April (59)
March (54)
January (31)

News 2013
October (67)
August (50)
July (43)
June (193)
May (93)
April (102)
March (45)
January (50)

News 2012
October (64)
August (63)
July (53)
June (132)
May (88)
April (73)
March (57)
January (58)

News 2011
October (56)
August (31)
July (27)
June (71)
May (61)
April (32)
March (36)
January (24)

News 2010
October (11)
August (8)
July (14)
June (10)
May (3)
April (3)
March (1)

News 2009
August (3)
July (1)
June (2)
May (1)
April (2)
March (1)

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)

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:

Découvre le Python haut de gamme des TI-Nspire CX II

New postby critor » 13 May 2020, 04:10

Ce n'est pas prévu avant la rentrée de septembre 2020, mais nous nous proposons de te faire découvrir aujourd'hui en avant-première la prochaine mise à jour qui rajoutera la programmation en Python aux TI-Nspire CX II.

Sauf surprise il s'agira donc de la première solution Python sur calculatrices haut de gamme, et nous allons voir si elle est bien partie pour être à la hauteur. ;)

La fonctionnalité Python sera disponible :
  • sur les calculatrices TI-Nspire CX II, dont entre autres les modèles TI-Nspire CX II-T et TI-Nspire CX II-T CAS distribués en Europe :)
  • sur tous les logiciels TI-Nspire pour ordinateur, aussi bien dans leur version enseignant qu'élève, aussi bien dans leur version CAS que non-CAS :)


Attention, le Python ne sera par contre pas disponible :
  • sur les anciens modèles TI-Nspire CX et TI-Nspire CX CAS, qui ne sont plus concernés par les mises à jour depuis la version 5.0 :#non#:
  • sur les applications TI-Nspire pour iPad :#non#:


La force exclusive des calculatrices TI-Nspire, c'est leur logiciel de Mathématique intégré.

Plusieurs applications sont disponibles et rajoutables :
  • sous forme de pages au sein de documents
  • même en plusieurs exemplaires
  • et il est même possible de regrouper jusqu'à 4 applications sur une même page de document, les applications prenant alors la forme de widgets
Nous remarquons a priori un bon signe niveau intégration, le Python prenant la forme d'une nouvelle application rajoutable aux documents depuis la calculatrice, la 10ème. :)



Sommaire :



1) 1er coup d'oeil éditeur

Go to top

Plus précisément comme tu le vois l'application Python peut prendre 2 formes différentes :
  • celle d'un éditeur si tu crées un nouveau script ou ouvres un script existant
  • et celle de la console (shell) pour importer tes scripts ou taper des commandes Python

L'éditeur pour commencer par lui t'indique comme tu le vois en haut à droite des informations essentielles pour quand le Python t'indiquera une ligne d'erreur : numéro de ligne sur laquelle se situe actuellement le curseur et nombre total de lignes du script.

Il a également l'avantage de te donner le nom du script en cours d'édition pour t'éviter toute erreur, permet de visualiser simultanément 11 lignes de scripts ce qui est assez confortable pour une vue d'ensemble.

On apprécie la coloration syntaxique, l'indentation automatique, ainsi que la notation spéciale légère mais bien visible pour les espaces d'indentation en début de ligne, comme sur TI-83 Premium CE.

Notons qu'il n'y a nul besoin de repasser par le menu d'ajout d'application pour obtenir une console si on a fait le choix de l'éditeur, la simple touche
menu
appelée depuis l'éditeur permettra de vérifier la syntaxe du script saisi et d'accéder à la console Python en lançant le script courant automatiquement ou pas. :)




2) Des modèles de scripts

Go to top

Tentons maintenant de créer un nouveau script. Comme dans la mise à jour 5.5 à venir pour TI-83 Premium CE Edition Python et qui semble donc développée en parallèle, nous remarquons la possibilité de préciser un type de script :
  • Script Vierge / Blank Program
  • Calculs Mathématiques / Math Calculations
  • Simulation Aléatoire / Random Simulations
  • Image Processing (non présent sur TI-83 Premium CE Edition Python 5.5)
  • Tracer (x,y) et Texte / Plotting (x,y) & Text
  • Partage de Données / Data Sharing
  • Projets STEM Hub / Hub Project
  • Rover / Rover Coding
Remarquons au passage le choix Image Processing qui n'était pas proposé sur TI-83 Premium CE Edition Python 5.5. ;)

A l'exception du premier choix, les autres nous font démarrer avec des scripts déjà préremplis avec les appels d'importation correspondants, et que voici ci-contre pour Calculs Mathématiques et Projets STEM Hub.

Une excellente initiative qui permettra aux élèves les plus pressés et passionnés d'aller plus rapidement au coeur du problème, mais également d'aiguiller les plus timides en leur éviter le syndrome de la page blanche ! :bj:




3) Les modules disponibles

Go to top

Mais justement puisque nous parlons d'importation, quels sont les bibliothèques disponibles ? Il nous suffit de taper
menu
. Nous avons donc de listés :
  • 4 modules standard
    • math
    • random
    • cmath (non présent sur TI-83 Premium CE Edition Python 5.5)
    • time
  • 6 modules spécifiques à Texas Instruments :
    • ti_plotlib (tracés dans un repère orthogonal)
    • ti_hub (projets d'objets connectés avec l'interface TI-Innovator Hub)
    • ti_rover (projets de robotique avec le TI-Innovator Rover)
    • ti_system
    • ti_draw (non présent sur TI-83 Premium CE Edition Python 5.5)
    • ti_image(non présent sur TI-83 Premium CE Edition Python 5.5)

On apprécie ici la disponibilité de la bibliothèque standard cmath pour les fonctions sur les nombres complexes, absente sur TI-83 Premium CE Edition Python 5.5, et qui sera fort utile aux élèves choisissant l'option Mathématiques Expertes en Terminale. :bj:

Du côté des bibliothèques de Texas Instruments, on ne retrouve pas la bibliothèque ti_graphics de la TI-83 Premium CE Edition Python 5.5, peut-être ici remplacée et scindée en deux bibliothèques ti_draw et ti_image, que nous allons détailler plus loin.
Quelle différence avec ti_plotlib ?
  • ti_plotlib te permet de réaliser des tracés dans un repère orthogonal, des diagrammes notamment, repère dont tu choisis librement les unités sur les deux axes.
  • alors qu'avec ti_graphics et donc ici ses remplaçants ti_draw et ti_image, tu spécifies à la différence des coordonnées en pixels par rapport au coin supérieur gauche de l'écran


En tous cas un changement de nom qui suggérerait a priori que pour les scripts Python réalisant des tracés au niveau du pixel, il n'y aurait pas de compatibilité entre les TI-83 Premium CE Edition Python 5.5 et TI-Nspire CX II. :'(




4) Organisation du menu des modules

Go to top

Explorons déjà rapidement quelques-uns des sous-menus associés. Bien loin de lister en vrac le contenu associé aux bibliothèques en question, ils l'organisent et le répartissent en divers catégories pour un accès plus rapide à ce que tu cherches : :bj:
  • le contenu builtins est par exemple réparti sur 6 catégories, rien que ça : :)
    1. fonctions
    2. contrôles
    3. opérateurs
    4. listes
    5. types
    6. entrées/sorties
  • math pour sa part offre la plupart des fonctions au premier niveau, mais également des catégories dédiées aux constantes et trigonométrie




5) L'assistant à la saisie, 1ère rencontre

Go to top


Si tu penses que chaque entrée te menu te saisit une simple ligne à compléter, attends-toi à être surpris(e). ;)

Déjà c'est tout un bloc de lignes qui peut être saisi automatiquement, notamment pour les boucles et instructions conditionnelles.

Mais surtout regarde bien, tu disposes de tout un dispositif d'aide à la saisie à un niveau jusqu'ici jamais atteint ! :o

C'est un peu comme un texte à trous. Les zones de saisie que tu te dois de compléter te sont notées en gris clair, avec même une étiquette indicative au cas où ! :bj:

Si ton curseur se trouve dans l'une des zones en question son affichage passe en inversé. Pas besoin non plus de t'acharner sur les touches fléchées pour aller rejoindre les différents bouts à compléter, tu peux passer instantanément de l'un à l'autre à l'aide de la touche
tab
! :bj:

Il est à noter que cette formidable assistance à la saisie marche de façon similaire avec l'ensemble des fonctions natives ! :bj:

Et tout ceci marche aussi bien dans l'éditeur que dans la console ! :D




6) Autres touches clavier dédiées

Go to top

Poursuivons justement avec d'autres points forts tirant profit de la bonne conception du clavier TI-Nspire.

Ici dans la console Python, c'est la touche
var
qui permet de liste les variables existant dans le contexte mémoire courant, évitant ainsi d'avoir taper leurs noms. Avec même en prime un visuel différent pour distinguer les fonctions. :)

Mais ce qui est remarquable, c'est que ça marche même de façon similaire dans l'éditeur de script, avec la liste cette fois-ci des variables globales au script en question ! :bj:

Un autre énorme avantage par rapport à la TI-83 Premium CE Edition Python, c'est que nous avons ici une touche
shift
, qui permet lorsque maintenue enfoncée de sélectionner librement des zones de texte à des fins de couper-copier-coller. Un confort d'utilisation fabuleux ! :bj:

On note au passage un autre avantage à ce jour exclusif sur calculatrices au profit de Texas Instruments, la gestion de la saisie d'un bloc d'instructions sur plusieurs lignes dans la console Python, comme sur TI-83 Premium CE Edition Python et sur ordinateur ! :bj:
Tu vérifieras si ça t'amuse, la concurrence retourne à ce jour une erreur dès la saisie de la première ligne du bloc.




7) Bibliothèque ti_system + davantage d'assistance à la saisie

Go to top

Découvrons maintenant la bibliothèque ti_system de la TI-Nspire CX II. Selon son menu ci-contre elle a plusieurs rôles comparables à ceux de la bibliothèque de même nom sur TI-83 Premium CE Edition Python 5.5 :
    faire appel avec eval_function('nom',valeur) à des fonctions existant dans l'environnement TI-Nspire, a priori utile pour les fonctions justement non fournies dans le contexte Python comme tout ce qui touche au calcul formel :bj:
  • détecter des appuis de touches avec get_key(), particulièrement utile pour la conception d'interfaces de menus ou jeux en Python :bj:
  • exporter des variables (store_value('nom',valeur)) ou listes (store_list('nom',list)) du contexte Python vers l'environnement TI-Nspire du document courant :bj:
  • inversement récupérer dans le contexte Python des variables (recall_value('nom')) ou listes (recall_value('nom')) de l'environnement TI-Nspire du document courant :bj:
Nous anticipions plus haut de l'intégration, et bien avec ces deux derniers points ça n'a pas loupé. Dès sa sortie, le Python aura donc un accès intégral à l'environnement TI-Nspire. Via les exportations/importations de variables, tu pourras donc l'interfacer avec n'importe quelle autre application présente dans le même document. Ce décloisonnement du Python est une formidable opportunité; c'est-à-dire que l'utilisation du Python sur TI-Nspire pourra ne pas être une fin en soi, mais servir à résoudre un problème ! :bj:

Par exemple avec l'application de géométrie dynamique, pour tester si le triangle qui y est construit est rectangle :

Ici on importe donc les valeurs des variables TI-Nspire globales a, b et c associées aux longueurs des 3 côtés du triangle sur la page de l'application de géométrie.

En passant pensais-tu avoir déjà tout vu niveau assistant de saisie Python sur TI-Nspire ? Oh que non, et c'est loin d'être fini tu n'as pas idée. En attendant tu pourras remarquer ici qu'en plus de l'étiquette indicative, la zone à compléter active pourra être accompagnée d'une info-bulle explicative ! :bj:

Autre exemple, on peut également imaginer des échanges bidirectionnels. Par exemple une exportation de liste Python vers l'environnement TI-Nspire pour traitement, puis sa réimportation après traitement.

Tiens, tu as vu ? Les zones à compléter bénéficiant de l'assistance à la saisie ça marche donc non seulement pour les blocs d'instructions et paramètre de fonctions, mais également variables à affecter ! :bj:




8) Bibliothèque ti_draw + encore plus d'assistance à la saisie

Go to top

Le menu associé à la bibliothèque ti_draw est scindé en deux catégories : formes et contrôles.

Comme deviné il s'agit bien d'une bibliothèque de dessin permettant de travailler au niveau du pixel, et donc comparable au ti_graphics de la TI-83 Premium CE Edition Python 5.5.

On y retrouve d'ailleurs quasiment toutes les mêmes fonctions de tracé au menu formes :
  • draw_line(x1,y1,x2,y2) : trace un segment entre les pixels (x1,y1) et (x2,y2)
  • draw_poly([(x1,y1),(x2,y2),...]) ou fill_poly([(x1,y1),(x2,y2),...]) : trace une ligne brisée ou remplit un polygone
  • draw_rect(x,y,w,h) ou fill_rect(x,y,w,h) : trace ou remplit un rectangle, de dimensions w×h pixels, avec le pixel (x,y) comme coin supérieur gauche
  • draw_circle(x,y,r) ou fill_circle(x,y,r) : trace un cercle ou remplit un disque, de centre le pixel (x,y) et de rayon r - draw_circle() n'est à ce jour pas présent sur TI-83 Premium CE Edition Python 5.5
  • draw_arc(x,y,w,h,t1,t2) ou fill_arc(x,y,w,h,t1,t2) : trace un arc ou remplit un secteur d'ellipse inscrite dans un rectangle de dimensions w×h pixels, avec le pixel (x,y) comme coin supérieur gauche, entre les angles au centre orientés t1 et t2 exprimés en dixièmes de degrés
  • draw_text('texte',x,y) : écrit un texte avec le pixel (x,y) comme coin supérieur gauche
  • et plot_xy(...), ici un ajout par rapport à ti_graphics
Notons en passant hélas que l'incompatibilité entre ti_draw et ti_graphics ne s'arrête pas à une simple histoire de noms de bibliothèques différents se réglant en 4 lignes; bien que de même spécifications, les fonctions ont également toutes des noms légèrement différents. :(

La catégorie contrôles nous réserve davantage de surprises.

On y retrouve certes de probables équivalents au reste des fonctions de ti_graphics : set_color(), set_pen(), ainsi que clear() pour cls().
Mais bien d'autres surprises sont au menu :
  • clear_rect() pour n'effacer qu'une partie de l'écran
  • set_window()
  • get_screen_dim() pour obtenir donc les dimensions de la zone graphique, plus besoin de les détecter avec des boucles de set_pixel et get_pixel; particulièrement utile sur TI-Nspire où comme peuvent coexister jusqu'à 4 applications par page de document, elles n'ont pas forcément accès à une zone graphique maximale :bj:
  • use_buffer() et paint_buffer(), renvoyant à des fonctions de noms similaires introduites avec les capacités graphiques du langage TI-Basic historique lors de la toute première version 5.0 de la TI-Nspire CX II, et suggérant donc que l'on pourra effectuer des tracés sur un calque initialement invisible, technique du double buffer permettant d'optimiser les affichages complexes d'interfaces de menus ou jeux :bj:
Tentons un petit exemple pour voir, commençons donc par régler la plume du stylo avec set_pen('taille','type') qui attend dans l'ordre :
  • 'thin' (fin), 'medium' (moyen) ou 'thick' (épais) pour la taille
  • 'solid' (continu), 'dot' (traits de pointillé courts) ou 'dash' (traits de pointillé longs) pour le type
Bien évidemment ces quelques seules valeurs autorisées ne se devinent pas, et c'est justement là que l'extraordinaire assistant d'aide à la saisie se rappelle à notre bon souvenir, listant et permettant de sélectionner les valeurs autorisées associées à la zone à compléter active ! :bj:

Choisissons donc setPen('thick','dash') pour un tracé épais en traits de pointillé longs, et terminons avec un draw_line(1,1,120,100).

Cela te donne déjà une idée des dimensions de la zone graphique utilisable lorsque l'application Python est en pleine page. ;)




9) Bibliothèque ti_image + dimensions zone graphique maximale + toujours plus d'assistance à la saisie

Go to top

Et enfin dernière inconnue nous avons donc la bibliothèque ti_image, fournissant sans doute de par son nom et sa séparation de ti_draw de la gestion d'images bien plus étendue que les quelques rudiments trouvés dans le ti_graphics de la TI-83 Premium CE Edition Python 5.5.

A première vue, pas grand chose au menu :
  • new_image(width,height) pour créer une image de width×height pixels
  • load_image('name'), suggérant le chargement d'images extérieures au contexte Python, peut-être :
    • soit rajoutées en tant que ressources du document courant via le logiciel TI-Nspire comme c'est déjà possible dans le contexte des scripts Lua depuis la version 3.0
    • soit provenant d'une banque d'images évoquée très récemment pour TI-83 Premium CE Edition Python 5.5
    • peut-être les deux...
  • copy_image(image) permettant donc un 2ème exemplaire mémoire d'une image déjà créée ou chargée, particulièrement utile à des fins de transformations (symétrie, rotations, inversions de couleurs, extraction de composante couleur, passage en niveaux de gris, ...) et donc fort pertinent dans le cadre de l'enseignement SNT de Seconde :bj:
Allez, maintenant la pratique. Créons donc une image rouge de 50x50 pixels.

Pas question ici pour l'assistant d'aide à la saisie de nous ouvrir une liste de toutes les valeurs autorisées, mais il ne nous laisse pas tomber pour autant et adopte un autre comportement supplémentaire : l'info-bulle associée à la zone à compléter active indique les plages de valeurs autorisées :
  • de 0 à 318 pour la largeur
  • de 0 à 212 pour la hauteur
Ce qui nous donne en passant une belle information; lorsque l'application Python occupe seule l'intégralité d'une page de document, elle a accès à une zone graphique maximale de 318×212=67416 pixels (contre 320×210=67200 pixels sur TI-83 Premium CE Edition Python 5.5). Ce sont ici la bordure de l'écran et la barre de statut supérieure qui nous interdisent le reste de l'écran 320×240 pixels.
Nous aurions pu le deviner, puisque c'est à cette même zone graphique maximale de 318×212 pixels qu'ont accès les scripts Lua depuis la version 3.0, et TI-Basic depuis la version 5.0.

Bref, terminons donc en précisant la couleur rouge, et ici encore l'assistant d'aide à la saisie nous indique bien gentiment de saisir des codes couleur entre 0 et 255 ! :bj:

Enfin, si il n'y avait pas beaucoup de fonctions au menu de la bibliothèque ti_image, c'est parce qu'elles sont en fait associées à l'objet image créé, et l'excellent assistant d'aide à la saisie nous en fournit automatiquement la liste au choix dès que l'on suffixe le nom d'objet créé d'un point. get_pixel() et set_pixel() sont notamment au menu de ces fonctions de classe encore appelées méthodes ! :bj:




Conclusion

Go to top

Texas Instruments semble vraiment avoir travaillé très dur; nous ignorons depuis combien de temps ils ont cogité ça, nous en restons presque sans voix...

Ne repartons pas pour un roman, tentons de résumer l'ensemble avec les qualités caractéristiques et à ce jour exclusives de la solution Python sur TI-Nspire CX II :
  • L'application Python bénéficie d'une large intégration à l'environnement TI-Nspire, contrairement à d'autres modèles pas besoin en classe de dissocier les tâches numériques en Python du reste de la résolution d'un problème ! :bj:
  • L'aide à la saisie disponible aussi bien dans la console que l'éditeur est absolument époustouflante, de par ses différents comportements d'assistance qui varient et s'adaptent d'une zone à compléter à une autre. L'assistant est toujours de bon conseil, répondant par avance à toutes les questions que se poserait un codeur débutant, on le croirait presque pensant ! :bj:
Pour une première solution Python sur calculatrice haut de gamme nous trouvons que c'est plus que réussi; c'est sans commune mesure avec ce qui est proposé à ce jour sur les modèles de milieu de gamme, Texas Instruments a mis la barre très haut. Ce n'est pas comme si le code Python se saisissait tout seul, mais presque ! :D

Envie de te faire ta propre opinion ?

Rendez-vous ce Mercredi 13 Mai de 18h30 à 20h pour une vidéoconférence de présentation de la prochaine mise à jour Python pour TI-Nspire CX II, avec cette fois-ci des captures d'écran en français et peut-être même quelques nouvelles informations. ;)

Tu pourras notamment y poser toutes les questions de ton choix ! :D

Attention il est obligatoire de t'inscrire, c'est par ici.

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 :

Soutien scolaire Casio en ligne : Python 14 Mai 14-15h

New postby critor » 14 May 2020, 11:03

L'équipe des enseignants de Maths du réseau Casio t'invite à une nouvelle séance gratuite de soutien scolaire, afin d'être au niveau pour la rentrée de septembre 2020.

Pour ce Jeudi 14 Mai 2020 14-15h, le thème retenu est l'utilisation de Python pour résoudre des problèmes mathématiques :
  • algorithme de Monté-Carlo
  • algorithme de dichotomie
  • méthode de Héron
  • méthode d'Archimède
Tu auras bien évidemment la possibilité de poser toutes les questions de ton choix au cours de la séance ! :D

Attention à bien t'inscrire ci-dessous pour accéder aux informations de connexion.


Source + inscription : Casio Education

-
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.
781 utilisateurs:
>755 invités
>18 membres
>8 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)