π
<-
Chat plein-écran
[^]

News 2024
Mai (7)
Avril (16)
Mars (7)
Janvier (20)

News 2023
Octobre (19)
Août (14)
Juillet (13)
Juin (21)
Mai (29)
Avril (24)
Mars (24)
Janvier (24)

News 2022
Octobre (23)
Août (14)
Juillet (15)
Juin (17)
Mai (31)
Avril (27)
Mars (28)
Janvier (34)

News 2021
Octobre (24)
Août (37)
Juillet (50)
Juin (32)
Mai (48)
Avril (61)
Mars (35)
Janvier (34)

News 2020
Octobre (17)
Août (43)
Juillet (43)
Juin (45)
Mai (60)
Avril (78)
Mars (36)
Janvier (39)

News 2019
Octobre (13)
Août (18)
Juillet (23)
Juin (28)
Mai (31)
Avril (26)
Mars (38)
Janvier (37)

News 2018
Octobre (13)
Août (32)
Juillet (23)
Juin (64)
Mai (63)
Avril (45)
Mars (43)
Janvier (45)

News 2017
Octobre (26)
Août (39)
Juillet (52)
Juin (88)
Mai (51)
Avril (43)
Mars (37)
Janvier (33)

News 2016
Octobre (25)
Août (42)
Juillet (34)
Juin (109)
Mai (55)
Avril (34)
Mars (37)
Janvier (24)

News 2015
Octobre (22)
Août (56)
Juillet (22)
Juin (94)
Mai (56)
Avril (32)
Mars (40)
Janvier (21)

News 2014
Octobre (26)
Août (18)
Juillet (23)
Juin (101)
Mai (57)
Avril (59)
Mars (54)
Janvier (31)

News 2013
Octobre (67)
Août (50)
Juillet (43)
Juin (193)
Mai (93)
Avril (102)
Mars (45)
Janvier (50)

News 2012
Octobre (64)
Août (63)
Juillet (53)
Juin (132)
Mai (88)
Avril (73)
Mars (57)
Janvier (58)

News 2011
Octobre (56)
Août (31)
Juillet (27)
Juin (71)
Mai (61)
Avril (32)
Mars (36)
Janvier (24)

News 2010
Octobre (11)
Août (8)
Juillet (14)
Juin (10)
Mai (3)
Avril (3)
Mars (1)

News 2009
Août (3)
Juin (2)
Mai (1)
Avril (2)
Mars (1)

Omega 1.23, ultime mise à jour compatible N0110 r3.43

Nouveau messagede Admin » 14 Nov 2021, 15:33

14415Pour cette rentrée 2021, de nouvelles calculatrices NumWorks N0110 en révision matérielle 3.43 sont arrivées dans le stock des magasins.

Elles venaient préchargées d'une version firmware 15.5 là où les révisions matérielles plus anciennes étaient venues en 11.2.

Ces NumWorks N0110 r3.43 n'étaient donc d'origine pas verrouillées, et tu pouvais tenter d'y installer par exemple le firmware tiers Omega.

14870Sauf qu'en pratique, cela ne marchait pas. Toute tentative d'installation d'Omega coinçait les NumWorks N0110 r3.43 sur un écran noir avec la diode examen allumée en rouge.

Ne t'inquiète pas, rien de grave ni d'irréversible. Nous avons un tuto pour débloquer les machines dans cet état sans avoir à les verrouiller.

Bref, ce comportement signifiait que le firmware installé était incapable de s'amorcer correctement.

1484714852Nous venons tout juste de découvrir la cause de ce problème.

La révision matérielle 3.43 a changé la puce de mémoire Flash adesto, passant d'une 25SF641 à une 25SF641B.

La nouvelle puce Flash 25SF641B est gérée par le firmware officiel Epsilon à compter de la version 15.5.

Le problème d'Omega était que sa dernière version 1.22.1 publiée avant l'abandon du projet, était construite autour du code source d'Epsilon 15.3.1, et donc incompatible avec la dernière révision matérielle.

14609Nous t'avions déjà proposé la solution de passer au firmware tiers Khi, qui pour sa part reprenait le code source d'Omega et donc l'ensemble de ses fonctionnalités et à la différence continue à le faire évoluer, l'un des premiers ajouts ayant été la compatibilité r3.43 avec l'intégration des changements apportés par Epsilon 15.5.

Mais peut-être que le firmware Khi ne te convenait pas non plus ?

Bien qu'étant à ce jour le seul successeur d'Omega, le firmware Khi était développé avec une philosophie très différente.

L'interface web d'installation du firmware Khi et de ses applications n'a absolument rien à voir avec celle d'Omega, et le projet Khi à la différence n'est pas disponible sur github ce qui n'est pas l'usage pour les contributions.

14867Et bien bonne nouvelle pour toi si tu as été patient(e) et n'as pas commis l'erreur de verrouiller ta calculatrice depuis, l'équipe Omega s'est reformée le temps de pouvoir t'offrir une ultime mise à jour, la version 1.23.

Le principal avantage d'Omega 1.23 est d'être contruit autour d'Epsilon 15.5 et donc d'être enfin compatible avec les NumWorks N0110 en révision matérielle 3.43 ! :bj:

14869Omega 1.23 t'apporte également quelques autres nouveautés.

Par exemple, l'interface web d'installation d'Omega t'offrait déjà quelque chose de très intéressant, la possibilité de signer numériquement ta calculatrice par un message de 15 caractères au maximum. Tu peux mettre ton nom, un surnom pour ta calculatrice ou bien d'autres choses entre autres, le message en question étant affiché à l'écran à propos comme on vient de voir. Un formidable moyen d'identification et donc une belle protection contre le vol.

Nouveauté, tes scripts Python seront désormais capables de récupérer ce message via la nouvelle méthode os.getlogin().

Ce n'est pas le seul ajout au module os, os.name te permettra aussi dorénavant à tes scripts Python d'itentifier facilement si ils tournent sur un firmware de type Omega, et donc de réagir en conséquence.



Autre ajout cette fois-ci par Pixelpunker, une amélioration de la traduction en Allemand des messages de la calculatrice, principalement dans la boîte à outils Python. Cela concerne des messages qui n'étaient pas traduits et restaient jusqu'à présent en Anglais, un affinage de la formulation pour d'autres messages, ou encore un raccourcissement de certains autres messages (pour respecter la limitation d'affichage à 35 caractères) :
148641486514863


Normalement tu devrais également pouvoir en bénéficier si ta NumWorks est verrouillée, car Pixelpunker a également soumis ces mêmes améliorations au projet Epsilon officiel, et elles ont apparemment été acceptées.



14866Enfin, le nouvel Omega 1.23 ajoute la gestion des fonds d'écran sur le menu de sélection des applications ! :favorite:

L'installation d'un fond d'écran se passe après l'installation d'Omega sur l'interface web permettant d'installer les applications. Un nouveau bouton te permet d'ajouter l'image de ton fond d'écran à la seule condition qu'elle respecte le format imposé (PNG en 320×222 pixels).



À noter qu'il ne s'agit absolument pas d'une reprise du développement d'Omega, les nouveautés en question ayant simplement été codées avant l'annonce de l'abandon du projet. Les développeurs souhaitaient simplement ne pas rester sur un travail inachevé et sont donc venus ce week-end te dire au revoir avec cette ultime version, la version parfaite incluant tout ce qu'ils avaient encore sous la main.

Merci à vous tous pour cette surprise inespérée et bon vent ! :')

Installation : https://getomega.dev/install/latest
Lien vers le sujet sur le forum: Omega 1.23, ultime mise à jour compatible N0110 r3.43 (Commentaires: 6)

Formation Python-kandinsky sur NumWorks : 17 novembre 15h

Nouveau messagede Admin » 16 Nov 2021, 16:38

14614Envie toi aussi de passer au niveau supérieur dans la programmation de contenus graphiques en Python sur ta calculatrice NumWorks ?

Pour cela il te faut maîtriser le module de tracé par pixels kandinsky.

De riches possibilités s'ouvriront alors à toi : œuvres d'art, interfaces, jeux vidéo... aussi bien pour ton amusement personnel que pour appuyer une activité en classe.

Et bien cela tombe bien, lycéen(ne) ou enseignant(e), tu as rendez-vous ce mercredi 17 novembre à 15h.

Elodie Gamot, responsable pédagogique chez NumWorks (à droite sur la photo), animera en effet une formation en ligne tout spécialement dédiée au module kandinsky.


Lien : https://www.youtube.com/watch?v=RftQNzKcjPI
Lien vers le sujet sur le forum: Formation Python-kandinsky sur NumWorks : 17 novembre 15h (Commentaires: 0)

Bêta-test public NumWorks v17 : nouveautés haut de gamme !

Nouveau messagede Admin » 17 Nov 2021, 18:10

14871Aujourd'hui NumWorks nous lance le bêta-test public de la prochaine mise à jour en version 17 de sa calculatrice.

Il s'agit donc de la première mise à jour majeure suite au verrouillage installé sur les calculatrices par la version 16, étant elle-même l'aboutissement d'une année 2020-2021 qui dénotait des précédentes de par la pauvreté des nouveautés apportées à la calculatrice.

Maintenant que le verrouillage ne vampirise plus l'essentiel de la capacité de développement de l'entreprise, voyons donc si cette version 17 renoue avec les bonnes habitudes de la période 2017-2020. C'est aussi pour nous l'occasion de vérifier si NumWorks a fait des efforts par rapport aux fonctionnalités non officielles que l'on ne peut plus installer depuis le verrouillage.


Sommaire



1) Appli Fonctions

Go to top

Commençons donc par l'application Fonctions qui bénéficie d'une refonte majeure pour le meilleur.

Jusqu'à présent pour définir les fonctions à étudier, tu pouvais basculer au choix entre 3 formes de saisie à compléter :
  • $mathjax$f(x)=…$mathjax$
    pour les fonctions cartésiennes
  • $mathjax$f(θ)=…$mathjax$
    pour les fonctions polaires
  • $mathjax$f(t)=\left[\begin{array}{}…\\…\end{array}\right]$mathjax$
    pour les fonctions paramétriques
Notons qu'un gros avantage de la NumWorks par rapport à la concurrence de milieu de gamme des TI-82/83 était comme illustré ci-contre et comme chez Casio, la possibilité de travailler simultanément sur des fonctions de différents types.

Désormais ce choix disparaît dans le sens où la forme de saisie devient totalement libre, tu contrôles intégralement la relation saisie.

La calculatrice détecte automatiquement le type pertinent de fonction ou courbe correspondant à ta relation saisie, et te l'indique en-dessous.

Cela te permet de saisir les relations sous d'autres formes, soit de plus en plus souvent directement la forme de l'énoncé minimisant ainsi le risque d'erreur ! :bj:

Tu peux par exemple opter pour la forme
$mathjax$y=…$mathjax$
ou même pour toute relation fonction de x et y.

Cela permet à ta calculatrice d'identifier les relations ayant des représentations graphiques remarquables comme des droites, précisant même dans ce cas si elles sont horizontales ou verticales. Oui en passant, les droites verticales deviennent donc enfin traçables sur NumWorks ! :bj:

Dans le cas où la calculatrice identifie la relation en tant que droite ni horizontale ni verticale, il t'est possible de demander des détails et obtenir ainsi coefficient directeur et ordonnée à l'origine.

Ne crois pas que la forme entièrement libre implique forcément une saisie plus longue ou fastidieuse ; NumWorks a trouvé la parade. En effet lorsque tu choisis d'ajouter une nouvelle relation à étudier, la calculatrice t'offre la possibilité de choisir parmi une liste d'exemples de relations couvrant les différents types remarquables de fonctions et courbes. Tu peux donc en fonction de tes besoins soit choisir la forme vide et tout saisir toi-même, soit partir d'un des exemples proposés et le modifier.

Puisque la forme de saisie est maintenant totalement libre, le vaste univers des coniques s'offre maintenant à nous.

Nous avons par exemple pour commencer les paraboles. Lorsque la calculatrice détecte une courbe de type parabole, il t'est ici aussi possible de demander quelques détails qui pourront t'être utile pour son étude : paramètre et coordonnées du sommet.

Sont également reconnues et gérées, les hyperboles. Dans ce cas les détails calculés automatiquement sont bien riches :
  • distance centre-sommet
  • demi axe conjugué
  • distance centre-foyer
  • excentricité
  • coordonnées du centre

Tout juste peut-on déplorer que cette bêta n'arrive pas à identifier certaines équations d'hyperboles et refuse alors de les tracer.

Par exemple
$mathjax$x\times y=3$mathjax$
et
$mathjax$y=\frac{3}{x}$mathjax$
sont traçables, mais pas
$mathjax$x=\frac{3}{y}$mathjax$
.

Mais justement, le but de cette version bêta est de préparer une version 17 finale aussi parfaite que possible. ;)


Sont égalements supportées les équations d'ellipses et donc entre autres de cercles. Dans le cas général des ellipses, les détails d'étude pouvant être obtenus sont :
  • demi grand axe
  • demi petit axe
  • distance centre-foyer
  • excentricité
  • coordonnées du centre

Dans le cas particulier du cercle, les détails récupérables sont :
  • rayon
  • coordonnées du centre

Les cas particuliers dégénérés des ellipses (point), paraboles (droite) et hyperboles (couple de droites sécantes) ne sont certes pas identifiés mais restent pour autant traçables.

Ce qu'il y a d'excellent jusqu'à présent, c'est que les coniques ne nécessitent pas de lancer une application dédiée mais soient étudiables directement dans la même application que les fonctions, bénéficiant ainsi d'une interface commune et nécessitant ainsi moins d'efforts de prise en main ! :bj:

Cela va peut-être te surprendre, mais sur le milieu de gamme toute concurrence confondue, c'était impossible jusqu'à ce jour. NumWorks nous sert à nouveau une solution haut de gamme toujours au prix du milieu de gamme ! :D

Mais crois-tu avoir tout vu ? Oh que non jusqu'à présent ce n'était rien, juste des cas particuliers avec les axes de coniques parallèles aux axes du repère, correspondant aux possibilités de modèles de milieu de gamme concurrents.

Or il se trouve que NumWorks va bien plus loin que ça et gère le cas général, contrairement à toute la concurrence de milieu de gamme, Casio/TI réservant ces capacités aux seuls modèles haut de gamme. Une fois de plus félicitations NumWorks pour les rendre ainsi bien plus accessibles ! :bj:


Voilà, cela semble être à peu près tout à ce jour pour les familles de formes traçables. Notons quand même la possibilité de tracer quelques autres relations n'étant pas des coniques, dans le sens où elles ne correspondent pas à la section d'un cone de révolution par un plan. La forme
$mathjax$y^2=k$mathjax$
par exemple est acceptée, mais bizarrement ici encore pas
$mathjax$x^2=k$mathjax$

Mais nous n'en avons pas terminé pour autant. Jusqu'à présent nous n'avons traité que des égalités. Mais les inégalités sont également gérées, et l'on peut donc enfin les représenter graphiquement ! :bj:

On apprécie même dans ce cadre la distinction visuelle entre les représentations d'inégalités strictes et non strictes.

L'écran couleur est ici un formidable atout, permettant d'identifier facilement la réunion ou intersection de ces différents ensembles de points.

A priori on pourrait s'attendre à quelque chose d'extrêmement simpliste comme chez la concurrence de milieu de gamme, ne faisant que colorier la zone supérieure ou inférieure à la frontière de l'ensemble.

En effet les inéquations ne faisant pas intervenir y ne sont apparemment pas traçables.
Chose fort dommage, des choses du genre
$mathjax$x<5$mathjax$
sont pourtant très fréquentes dans les exercices.

Par exemple pour une activité d'approche ou de mise en application du calcul intégral, ou encore des problèmes d'optimisation.


Mais en fait non c'est bien plus poussé que ça. Mis à part le petit manque que nous venons de pointer, les représentations d'inégalités sont possibles dans le cadre de l'ensemble des autres formes que nous avons couvertes précédemment, et donc entre autres des coniques ! :bj:

Encore une fois NumWorks casse complètement les codes en nous offrant une fonctionnalité aussi poussée sur le milieu de gamme ! :D

Une superbe capacité déjà présente sur la NumWorks dans le cadre des représentations graphiques de fonctions, c'est la détermination automatique de la fenêtre graphique la plus pertinente, tentant de rendre visible l'ensemble des éléments remarquables.
Il y avait toutefois un problème qui pouvait arriver lorsque l'on demandait un calcul intégral à partir de la représentation graphique.

En effet la barre d'informations en bas d'écran doublait alors de hauteur, et pouvait alors masquer des éléments remarquables de la représentation graphique, un axe, voir même l'interprétation graphique du résultat.

Bien embêtant, d'autant plus qu'à l'écran en question il était impossible de corriger les bornes de la fenêtre sans effacer le calcul et sa représentation.
Et bien NumWorks a corrigé la chose, la fenêtre graphique affichée tenant maintenant compte du changement de hauteur de la barre d'informations ! :bj:




2) Appli Probabilités

Go to top

Avec cette mise à jour l'application Probabilités bénéficie de possibilités grandement étendues, devenant une application 3 en 1.

À la superbe interface historique d'étude de lois de probabilités, s'ajoutent 2 nouvelles interfaces, le tout étant désormais au choix à l'appel de l'application :
  • tests statistiques
  • intervalles de confiance

Personnellement je l'avoue, je n'y connais pas grand, mes études supérieures qui commencent à dater n'ayant à l'époque pas inclus de module statistiques et probabilités. Aussi, les possibilités similaires présentes sur les modèles concurrents, trop souvent avec des abréviations anglophones, m'étaient toujours apparues fort obscures et ne m'avaient pas du tout donné envie de creuser la chose.

Ici NumWorks nous signe une fois encore une interface claire donnant envie de faire des Maths dont il a le secret, prenant le temps et la place pour décrire chaque chose en Français.

Pour les tests, tu as donc au choix :
  • 2 tests t : 1 moyenne, 2 moyennes
  • 4 tests z : 1 moyenne, 2 moyennes, 1 proportion, 2 proportions
  • test χ²

Pour les intervalles de confiance, sont au choix :
  • 2 intervalles t : 1 moyenne, 2 moyennes
  • 4 intervalles z : 1 moyenne, 2 moyennes, 1 proportion, 2 proportions

Regardons tout-de-suite l'utilisation pour vérifier un exercice de l'ancien programme de Terminale S.

Un fournisseur affirme que, parmi ses cadenas haut de gamme, il n’y a pas plus de 3% de cadenas défectueux dans sa production.
Un responsable du magasin de bricolage désire vérifier la validité de cette affirmation dans son stock ; à cet effet, il prélève un échantillon aléatoire de 500 cadenas haut de gamme.
Le responsable trouve 19 cadenas défectueux dans l'échantillon prélevé.

  1. Etablir un intervalle de fluctuation asymptotique au seuil de 95% de la proportion attendue de cadenas défectueux dans un tel échantillon.
  2. Au risque de 5%, ce contrôle remet-il en cause l'affirmation du constructeur ?

Pour informations, les réponses attendues sont :
  1. $mathjax$I≈[0,015;0,045]$mathjax$
  2. $mathjax$f=\frac{19}{500}\approx 0,038$mathjax$

    Donc
    $mathjax$f\in I$mathjax$
    et on ne peut rejeter l'affirmation du constructeur au risque de 5%.

Commençons donc par la question 1, avec l'intervalle de fluctuation asymptotique au seuil de 95%.

Rappelons que la NumWorks permettait déjà d'obtenir le résultat via la fonction prediction95(), trouvable dans les menus Probabilités puis Statistiques de la boîte à outils (touche
🧰
)
.

Maintenant, c'est donc également réalisable dans la nouvelle application Probabilités.

Il faut pour cela choisir l'intervalle z à 1 proportion.

On obtient bien le même résultat attendu, mais surtout ici, on en récupère également une interprétation graphique qui en facilitera grandement la compréhension ! :bj:

Question 2 maintenant. La prise de décision dans ce contexte nécessite de réaliser un test z à 1 proportion.

On obient bien le résultat attendu, accompagné ici encore d'une interprétation graphique, et même d'une phrase explicative en Français ! :bj:




3) Appli Calculs

Go to top

Tu es encore là après tout ça ? Accordons-nous une petite pause avant de reprendre, car les grandes nouvelles ne sont pas terminées.

L'application Calculs dispose maintenant d'un raccourci permettant de vider facilement et rapidement l'historique :
shift
.




4) Appli Paramètres

Go to top

Reprenons doucement les nouveautés avec l'application Paramètres.

Changement appréciable, l'unité d'angle par défaut passe du degré au radian.

D'origine ou en cas de réinitialisation, la calculatrice sera donc immédiatement prête à travailler en radians en Mathématiques ou à tracer des courbes de fonctions trigonométriques. :bj:

Un nouveau menu permet enfin de réinitialiser la calculatrice sans avoir à manipuler le bouton reset au dos.

Alternative bien pratique pour les situations où tu n'auras pas d'outil suffisamment fin sous la main.

Passons maintenant au mode examen ou plutôt aux modes examen. La NumWorks disposait jusqu'à présent de 2 modes examen. Leur disponibilité dépend toutefois de la zone géographique réglée.
  • mode examen NL pour un réglage de la zone sur les Pays-Bas : efface le contenu mémoire + interdit l'application Python + désactive le moteur de calcul exact
  • mode examen par défaut pour tous les autres réglages de zone : efface le contenu mémoire (aucun blocage de fonctionalité)

Avec cette mise à jour nous avons accès à 2 nouveaux modes examen :
  • mode examen dédié au Baccalauréat International pour un réglage de la zone sur International : efface le contenu mémoire + interdit le calcul vectoriel + désactive les résultats additionnels dans l'applications Calculs
  • mode examen Press-to-test pour un réglage de la zone sur Etats-Unis : efface le contenu mémoire + permet à celui qui active de choisir les fonctionnalités à interdire (application Equations, tracé d'inéquations, courbes implicites, informations suite aux régressions, calcul vectoriel, logarithme de base a, opérateur de sommation)
Ces nouveaux modes n'activent pas la diode examen.




5) Boîte à outils

Go to top

🧰

Passons maintenant à la boîte à outils commune à l'ensemble des applications intégrées utilisant le moteur mathématique Poincaré (c'est simple, c'est-à-dire toutes les applications sauf Python qui dispose d'une boîte à outils spécifique).

Étais-tu déçu(e) suite au verrouillage de ne plus pouvoir installer Omega pour avoir les constantes physiques ?

Et bien cela tombe bien, car le menu Unités se voit maintenant renommé Unités et constantes. Tu devines ce que cela veut dire ? ;)

Autre grande nouveauté donc de cette version, les constantes physiques directement intégrées au firmware officiel, et donc à nouveau disponibles en mode examen ! :bj:

Les constantes physique sont accessibles en fin de liste des unités. Comme pour les unités, on les appelle en préfixant leur nom d'un tiret bas (_).

13 constantes sont au menu de cette première version officielle les supportant, soigneusement décrites à chaque fois en Français : :bj:
  • c : vitesse de la lumière dans le vide
  • e : charge élémentaire
  • G : constante gravitationnelle
  • g : accélération de pesanteur (appelable en saisissant _g0, car _g est déjà réservé pour l'unité gramme)
  • k : constante de Boltzmann
  • ke : constante de Coulomb
  • me : masse de l'électron
  • mn : masse du neutron
  • mp : masse du proton
  • Na : constante d'Avogadro
  • R : constante des gaz parfaits
  • ε0 : permitivité du vide
  • μ0 : perméabilité du vide


Les valeurs d'unités alors récupérées sont accompagnées de leurs unités, génial ! :D

On note accessoirement que NumWorks ne fait pas les choses à moitié, les valeurs de constantes physiques semblant être à jour par rapport aux dernières corrections apportées lors du CODATA 2018. :bj:



Sinon, petit changement fort appréciable de comportement, désormais la boîte à outil se rouvre automatiquement dans le dernier menu validé.

De quoi te faciliter grandement la saisie par exemple pour des expressions faisant intervenir plusieurs unités ou constantes physiques ! :D




6) Transversal

Go to top

Poursuivons hors boîte à outils avec le reste des changements transversaux.

L'alignement des exposants a été modifié afin d'occuper moins de place verticalement.

Cela te permettra par exemple de visualiser correctement sans défilement sur un même écran, davantage de calculs faisant intervenir des exposants :


Le comportement de la touche
x,n,t
dépend du contexte dans lequel tu l'utilisais. Elle te permettait de saisir :
  • t dans l'application Fonctions pour la définition d'une fonction paramétrique
  • θ dans l'application Fonctions pour la définition d'une fonction polaire
  • n dans l'application Suites
  • x dans tous les autres cas

Or, il pouvait arriver que ce comportement ne corresponde pas à tes besoins.

Si il te suffisait pour x, n et t d'aller les chercher au clavier alphabétique avec la touche
alpha
, ce n'était par contre pas le cas pour θ.

Il t'était donc pénible de faire appel à la variable de nom θ pour tes calculs de géométrie ou de Physique-Chimie, ou encore pour l'affichage de messages en Python.

Il fallait déclencher l'afficher d'un θ quelque part, par exemple dans l'application Fonctions ou sinon dans l'application Python avec print(chr(952)), le sélectionner pour le copier avec
shift
var
, puis ensuite seulement le coller où bon te semblait avec
shift
🧰
.

Aujourd'hui NumWorks fournit enfin un début de solution à ce problème.

Peu importe le contexte, si la saisie par défaut de la touche
x,n,t
ne correspond pas à tes besoins, il te suffit de retaper
x,n,t
si besoin plusieurs fois de suite pour basculer entre les autres possibilités de saisie x, n, t et θ.


Bien dommage toutefois, cela ne fonctionne pas dans le contexte de l'application Python et ne t'aidera donc pas pour les print().


Terminons par une amélioration qui avait été introduite dès la mise à jour 16.4.0 mais bizarrement non annoncée.

Auparavant il n'était pas possible d'appliquer une fonction à un résultat comportant une unité.

Depuis la version 16.4.0 c'est corrigé pour les fonctions pertinentes de la boîte à outils : abs(), floor(), ceil(), round() et sign().




Conclusion

Go to top

Le verrouillage étant maintenant derrière nous, NumWorks semble enfin s'être remis sérieusement au travail dans l'intérêt des utilisateurs, renouant ainsi avec ce qui avait fait son succès sur la période 2017-2020.

Cette version 17 apporte en effet plusieurs évolutions majeures avec dans tous les cas de beaux efforts sur l'intuitivité de l'interface :
  • saisie libre des relations à tracer
  • représentation graphique de droites
  • représentation graphique coniques même dans le cas général
  • représentation graphique d'inéquations pour toutes les formes précédentes d'équations traçables
  • constantes physiques avec unités et description
  • tests statistiques
  • intervalles de confiance

La NumWorks au prix de milieu de gamme poursuit sa progression disruptive dans le monde des calculatrices graphiques, dans le sens où la plupart de ces fonctionnalités sont très supérieures à ce qu'offre le milieu de game chez la concurrence, et ne trouvent d'équivalent que sur le haut de gamme beaucoup plus cher.

Des efforts semblent donc avoir été faits rapidement pour compenser les fonctionnalités non officielles interdites suite au verrouillage, notamment pour les constantes physiques.

Après, ce n'est certes pas suffisant.

Comme gros manque, il y aurait encore par exemple l'application de tableau périodique des éléments Omega, ou encore l'application tableur de KhiCAS.

Et bien évidemment, tant qu'il n'y aura pas de remplaçant au moteur de calcul littéral d'Omega ou encore mieux moteur de calcul formel de KhiCAS, on pourra toujours dire que ce n'est pas suffisant.


Mais terminons donc à ce jour sur une note positive en notant donc ces très gros efforts, certes insuffisants, en faisant justement le souhait qu'ils se poursuivent au moins au même rythme.

Liens :
Lien vers le sujet sur le forum: Bêta-test public NumWorks v17 : nouveautés haut de gamme ! (Commentaires: 20)

Incendie ravageur au bâtiment du siège parisien de NumWorks

Nouveau messagede Admin » 21 Nov 2021, 14:21

Edit: NumWorks nous a informé que tout le monde va bien - leur bureau est heureusement au 5ème étage, donc espérons que les dégâts soient minimaux...


Hier matin, samedi 20 novembre 2021, un terrible incendie a ravagé un superbe immeuble de bureaux Haussmannien à Paris, entre les 2ème et 9ème arrondissements, quartier de l'Opéra Garnier, sur le boulevard des Capucines, très exactement au numéro 17, nouveaux locaux où NumWorks a déménagé son siège parisien en janvier 2020.

Déclaré au 3ème des 7 étages vers 10h30 (dont 4 étages de bureaux), le feu s'est rapidement étendu à l'ensemble du niveau. Promptement intervenue, la BSPP (Brigade de Sapeurs-Pompiers de Paris) n'a pu en venir à bout que vers 16h.

Aucune victime ni blessé ne serait heureusement à déplorer, rendons hommage à nos courageux soldats du feu.

Ignorant la localisation exacte de NumWorks dans ces nouveaux locaux, nous ne savons pas à cette heure si ils ont été impactés ni le cas échéant dans quelle mesure.

Nous formulons bien évidemment des vœux pour que les pertes matérielles et logicielles soient aussi minimes que possible, et dans tous les cas nos pensées accompagnent également les autres entreprises, commerces et habitants de cet immeuble.

Crédits images : @PompiersParis
Lien vers le sujet sur le forum: Incendie ravageur au bâtiment du siège parisien de NumWorks (Commentaires: 11)

Mise à jour 5.7 TI-83 Premium CE + TI-84 Plus CE

Nouveau messagede critor » 22 Nov 2021, 09:33

14877Texas Instruments vient de sortir une mise à jour 5.7 pour l'ensemble de ses modèles TI-83 Premium CE et TI-84 Plus CE. Elle remplace donc enfin la version 5.6.1 sortie le 25 février 2021 il y a près de 9 mois.

Plus précisément le système d'exploitation de cette mise à jour est en version 5.7.0.0017 et a été compilé le 19 octobre 2021. On retrouve bien l'habituel délai de 4 semaines que Texas Instruments se donne usuellement pour valider une mise à jour avant de la publier.

Plusieurs applications sont également mises à jour dans ce contexte.

Nous allons bien évidemment couvrir toutes les formidables nouveautés, mais avant cela nous avons, hélas, une mise en garde à effectuer par rapport à une restriction.



Attention, l'installation de la version 5.7 du système modifie le certificat en mémoire Flash, augmentant son champ 0x37 à 5.7.0, et rappelons qu'aucun menu ne permet de réinitialiser ce certificat. C'est-à-dire qu'une fois la mise à jour effectuée, ta calculatrice refusera définitivement toute tentative de réinstaller une version inférieure à 5.7.0.
(seule et unique exception, les toutes premières TI-83 Premium CE et TI-84 Plus CE de 2015 dont le Boot en version 5.0.0 ne supporte pas l'écriture ou la lecture de ce champ)

Si jamais ta calculatrice fait encore tourner une version 5.5.0 ou inférieure, rappelons que l'installation de toute version 5.5.1 ou supérieure et y compris donc cette 5.7.0 supprimera la capacité de ta calculatrice à exécuter des programmes en langage machine dits ASM (compilés à partir de code source en langage C ou C++, ou bien assemblés à partir de code source en langage assembleur eZ80).

En pratique il reste possible de profiter des programmes ASM sur ta calculatrice via une faille de l'application CabriJr dans sa version 5.0.0.0089. L'outil arTIfiCE exploitant cette faille te permet alors d'installer un autre outil qui te permettra d'exécuter des programmes ASM, comme Cesium ou AsmHook, et nous avons même un tuto pour t'assister.

Précisons que l'application CabriJr n'est pas mise à jour dans le cadre de la sortie de cette version 5.7. :)

arTIfiCE et AsmHook continueront à fonctionner correctement, TI continue donc de respecter sa promesse ! :bj:

Par contre attention si tu préférais Cesium, pense bien à utiliser la dernière version (v3.6.0 à ce jour) qui vient de sortir et qui en plus de corriger des bugs, permet aussi d'être compatible avec l'OS 5.7 :bj:

Avant d'aborder les nouveautés de la version 5.7, poursuivons avec une mise en garde et mauvaise nouvelle.

Le certificat en mémoire Flash comporte un champ 0x42 comportant le nom de la calculatrice, soit d'usine TI-83 Premium CE ou TI-84 Plus CE.

Depuis des années notre programme CERMASTR te permettait d'éditer le certificat, et donc notamment de renommer ta calculatrice comme bon te semblait. Une bonne protection contre le vol qui, rappelons-le, est officiellement présente sur les calculatrices Casio Graph. Ici le nom modifié était alors affiché sur différents écrans d'informations de la calculatrice ! :bj:

Changement unilatéral effectué par Texas Instruments pour cette mise à jour 5.7 comme découvert et signalé par Shadow, le nom présent dans le certificat n'est plus utilisé pour ces affichages ! :'(

Est désormais affiché le seul nom TI-83 Premium CE ou TI-84 Plus CE inscrit dans le système d'exploitation, et donc couvert par sa signature électronique. Ce qui veut dire qu'il devient impossible de renommer sa calculatrice. :#non#:

Avec le mal que l'on se donne dans le contexte de l'outil CERMASTR pour ne pas marcher sur les pieds de Texas Instruments, notamment dans le contexte des champs concernant le mode examen ainsi que la version minimale autorisée, nous aurions apprécié d'être au minimum prévenus avant le blocage de ce qui restait désormais la seule fonctionnalité utile de cet outil. Cela remet en question nombre de choix de limitations de cet outil décidées exprès dans l'intérêt de Texas Instruments... :mj:

Bref, restriction décidée unilatéralement, sans même prévenir, sans aucun élément déclencheur connu depuis la précédente mise à jour, et qui semble ainsi à ce jour totalement incompréhensible. De quoi recommencer à générer du ressentiment...


Donc pourquoi un tel changement ?

On peut imaginer des utilisateurs hors de France ayant transformé leur TI-84 Plus CE en TI-83 Premium CE, afin de pouvoir profiter du moteur de calcul exact QPiRac possiblement interdit à leurs examens.

Une méthode est de démonter sa TI-84 Plus CE et de remplacer sa carte électronique par celle d'une TI-83 Premium CE, la modification via CERMASTR du nom TI-83 Premium CE en TI-84 Plus CE venant terminer le maquillage.
Toutefois cela nécessite donc d'acheter 2 calculatrices, et nous pensons que ce surcoût doit rendre la chose au pire anecdotique...

Une autre possibilité est le programme BootSwap qui permet d'altérer le Boot pour en faire sauter les vérifications effectuées lors de l'installation d'une mise à jour, et ainsi installer directement une mise à jour TI-83 Premium CE sur TI-84 Plus CE. Ici jusqu'à présent pas besoin de renommer pour masquer la chose, puisque le certificat contenait déjà le nom TI-84 Plus CE qui continuait alors à être utilisé. Donc effectivement ici, ignorer le nom modifiable du certificat pour afficher le nom inaltérable venant avec le système d'exploitation, c'est-à-dire dans ce cas TI-83 Premium CE, retire toute discrétion à cette transformation si effectuée avec une version 5.7 ou supérieure (laissons de côté les utilisateurs qui se seront piégés en version 5.7 par eux-mêmes - même si ce n'est pas le cas en France, rappelons pour d'autres examens l'installation de la dernière mise à jour est obligatoire).
L'outil BootSwap avait été publié par commandblockguy à la rentrée 2020 dans un contexte de relations extrêmement tendues avec Texas Instruments, justement suite au blocage des programmes ASM. N'ayant droit qu'à au mieux 1 à 2 mises à jour de la calculatrice par an, le délai serait cohérent pour qualifier ce changement de riposte de la part de Texas Instruments.
Toutefois, BootSwap n'est compatible qu'avec les calculatrices en révision matérielle L ou inférieure (Boot en version 5.3.1 ou inférieure, assemblées jusqu'en Mai 2019, ce qui exclut toutes les TI-83 Premium CE Edition Python). Cela fait donc déjà 2 ans et demi que les machines impactées par cette faille ont cessé d'être fabriquées et donc distribuées, soit presque un cursus intégral au lycée. Rappelons de plus que nous n'avons exprès produit aucun tutoriel pour aider à cette transformation. Quel intérêt donc à réagir maintenant alors que ces machines sont déjà en voie de disparition ?...



Sommaire




1) Menu de diagnostics

Go to top

Le système d'exploitation des TI-83 Premium CE et TI-84 Plus CE intègre un menu d'autodiagnostic ("self-test") accessible via la combinaison secrète
mode
alpha
ln
.

Avec cette version 5.7 les différents tests qu'il permet bénéficient d'une belle refonte visuelle et fonctionnelle.



Déjà, les titres des différents tests qu'il permet de déclencher bénéficient d'une uniformisation graphique sous la forme d'une barre de titre en blanc sur fond vert.




Le test de la diode examen était problématique, dans le sens où aucun retour à l'écran ne t'indiquait qu'il était terminé et que tu pouvais taper une touche pour retourner au menu principal.

Tu pouvais donc croire que ta calculatrice était coincée, ou sinon devais bouger la calculatrice pour voir si la diode avait bien achevé le motif de test.
Pour cette version 5.7 Texas Instruments t'offre enfin une correction de ce problème, un message venant s'afficher en fin de test !




Le test clavier était lui aussi problématique. Il consiste à taper une par une les touches du clavier dont les codes TI-Basic te sont indiqués à l'écran, de gauche à droite et de haut en bas. Ce test ne concerne que 49 des 50 touches du clavier, la touche
on
(code TI-Basic 101 pour 10ème ligne en partant du haut et 1ère colonne en partant de la gauche) étant exclue.

Devoir taper 49 touches clavier sans se tromper, même avec l'habitude ça prend un certain temps et tu pouvais donc avoir envie d'interrompre le test.

Problème, jusqu'à présent c'était totalement impossible, la seule solution étant de redémarrer la calculatrice avec le bouton reset au dos (ou en déconnectant la batterie si tu préfères), à condition donc de disposer sous la main de l'outil adéquat pour cela.
Avec cette mise à jour 5.7, Texas Instruments nous solutionne enfin ce problème.

La touche
on
qui jusqu'à présent ne servait à rien dans ce test, te permet maintenant de l'interrompre à tout moment.




Enfin on peut signaler un changement des messages affichés pour le test de mémoire RAM.




2) Nouveautés applications de langue

Go to top

6 applications de langues sont disponibles pour ta calculatrice : Deutsch (Allemand), Español (Espagnol), Français, Nederlan (Néerlandais), Portug (Portugais) et Svenska (Suédois). Le système d'exploitation incluant de base les messages en Anglais, ce sont ces applications qui permettent le remplacement à l'affichage de ces différents messages par une traduction dans ta langue, le choix de langue étant disponible à l'écran
mode
.



Or, il se trouve que ces applications ont elles aussi mises à jour, passant en version 5.7.0.0.0017 avec un message de copyright actualisé pour 2021.

Cela signifie donc qu'il y a eu des changements. Et cela tombe bien pour nous, car les fichiers de ces applications contiennent essentiellement du texte. C'est donc pour nous une façon simple de découvrir rapidement une partie des modifications apportées au système d'exploitation.



Ta calculatrice te permet de demander différents calculs sur un intervalle directement à partir de la représentation graphique de fonctions, notamment intersection avec l'axe des abscisses (racine), minimum et maximum. L'interface t'invite alors à valider le choix de la borne de gauche, puis de la borne de droite, puis à indiquer une valeur initiale autour de laquelle initier la recherche.
Problème, l'interface ne t'empêche absolument pas de préciser une borne de droite inférieure à la borne de gauche, déclenchant alors une erreur BORNE.

La pire étant que le message d'explication accompagnant l'erreur en question était totalement incompréhensible, disant à la fois une chose et son contraire, et ce peu importe la langue.
Avec la nouvelle version 5.7 Texas Instruments vient enfin de te corriger l'explication.




Tous les messages système ne font toutefois pas l'objet d'une traduction. Par exemple jusqu'à présent, le menu de choix du langage de programmation affiché par la touche
prgm
, t'affichait systématiquement un titre de Programming, et ce peu importe le réglage de langue, ci-contre en Français.
Changement avec cette version 5.7, le titre de ce menu passe en caractères majuscules et bénéficie enfin d'une traduction en fonction de la langue réglée.




Ta calculatrice dispose de 2 types de mémoires :
  • la mémoire de travail (RAM) permettant d'enregistrer tes variables et d'exécuter tes programmes
  • la mémoire de stockage en Flash, dite mémoire d'archive, permettant aussi bien d'accueillir des variables que des applications
Le menu mémoire comporte justement différents choix de réinitialisation : RAM ou Archive, et dans ce dernier cas Variables ou Applications.
Là pour le coup ce n'est pas une amélioration, nous déplorons une erreur de la part de Texas Instruments, désormais le message explicatif accompagnant la demande d'effacement des variables archivées en mémoire Flash est erroné en version 5.7, mentionnant la mémoire RAM.

Une erreur d'autant plus difficilement compréhensible qu'elle n'est présente qu'avec un réglage de langue en Français.




3) Autres nouveautés système

Go to top

Passons maintenant au reste des changements apportés au système d'exploitation, c'est-à-dire en dehors des applications accessibles via
2nde
résol
sur TI-83 Premium CE ou
apps
sur TI-84 Plus CE.

Il n'était pas affichable officiellement sur calculatrice à notre connaissance, mais depuis la version 5.3.6 compilée le 7 mars 2019, le système d'exploitation comportait un message secret d'hommage en mémoire de James D. Hammerquist, ingénieur de Texas Instruments EdTech qui nous a quittés si jeune le 3 mars 2019, à l'âge de seulement 60 ans :
OS 5.3.6 dedicated to James D. Hammerquist, Aug 14, 1958 - Mar 3, 2019; Rest well my friend.

Dans la version 5.7, certes bien loin de 5.3.6, cette chaîne de caractères n'est plus présente.


Tout comme le symbole égal, le symbole moins en mathématiques a différentes significations selon le contexte. On distingue par exemple :
  • l'opérateur unaire de signe (s'appliquant à 1 opérande), préfixé dans la notation usuelle, par exemple -4
  • l'opérateur binaire (s'appliquant à 2 opérandes), infixé dans la notation usuelle, par exemple 7-3
Cela peut paraître anecdotique, mais quand on code un logiciel de mathématiques et plus précisément un logiciel de calcul, il est essentiel d'en tenir compte.

Dès 1990 avec sa toute première calculatrice graphique TI-81, Texas Instruments a fait le choix historique d'offrir ces 2 opérateurs au clavier avec ses touches
-
et
(-)
.

Problème, les utilisateurs ne saisissent pas toujours cette nuance et confondent alors les touches.

Or si la saisie
6
-
7
donnera -1, la saisie
6
(-)
7
donnera pour sa part 42, le signe moins étant ici l'opérateur unaire préfixé ne s'appliquant qu'au terme de droite, donnant alors dans le moteur de calcul les 2 nombres 6 et -7 juxtaposés sans opérateur, et ainsi une multiplication implicite.

Rien à voir donc, les conséquences pouvaient facilement devenir dramatiques, notamment dans le contexte d'examens...

Avec cette version 5.7, Texas Instruments s'attaque à cette difficulté.

Rien ne change pour les résultats, mais par contre, les multiplications implicites induites par l'utilisation de la touche
(-)
seront désormais indiquées clairement dans l'historique une fois le calcul saisi validé.

En plus donc déjà des différences visuelles entre les signes au clavier et à l'affichage, Texas Instruments donne ainsi de façon bienveillante aux utilisateurs une chance supplémentaire de comprendre qu'ils ont fait une erreur de saisie. Merci TI !




4) Application CellSheet (tableur)

Go to top

Ta calculatrice bénéficie d'une application de feuille de calcul nommée CellSheet. La dernière version était la 5.1.0.0110 compilée le 1er septembre 2015. L'application n'avait plus jamais été mise à jour depuis.

Toutefois nous nous doutions que quelque chose était en préparation. La TI-82 Advanced Edition Python sortie pour cette rentrée 2021 a repris une partie des applications des TI-83 Premium CE et TI-84 Plus CE.
Le système d'exploitation étant différent bien évidemment l'application de langue Français différait également, ainsi que l'application Python82 puisqu'offrant un nombre restreint de modules intégrés. Toutefois le reste des applications reprises (PlySmlt2, ProbSim, Inequalz, Transfrm) reprenaient bien le dernier numéro de version de leurs équivalents pour TI-83 Premium CE et TI-84 Plus CE, à une seule exception près, CellSheet qui passait en version 5.1.1.0017.

Sans surprise donc, aujourd'hui dans le cadre de la mise à jour 5.7, l'application CellSheet pour TI-83 Premium CE et TI-84 Plus CE passe à son tour sur la nouvelle version 5.1.1.0017.

Il y a clairement eu des modifications de code par rapport à la version précédente et même par rapport à la version sur TI-82 Advanced Edition Python, mais désolé nous n'avons pas réussi à identifier de différence visuelle ou fonctionnelle. Nous ignorons donc la finalité des changements apportés par Texas Instruments.




5) Application Hub

Go to top

12212En avril 2021, Texas Instruments avait sorti une mise à jour en version 1.5 pour TI-Innovator Hub, l'interface pour piloter des projets STEM depuis ta calculatrice TI-83 Premium CE, TI-84 Plus CE ou TI-Nspire CX

Une mise à jour majeure apportant énormément de nouveautés que nous t'avions détaillées :
  • activation d'un nouveau capteur intégré, TIMER
  • paramètre TEMPO pour émettre du son de façon discontinue (bips)
  • paramètre TIME pour récupérer le temps de vol d'un sonar
  • possibilité de commander plusieurs capteurs/actionneurs simultanément, supprimant ainsi tout décalage
  • commande COLLECT pour récupérer sans boucle une série de mesures
  • contrôle simultané de plusieurs diodes du TI-RGB Array, ou de tout ruban de diodes RGB adressables compatible
  • ...

L'application Hub pour sa part rajoute à l'éditeur de programmes en langage TI-Basic de ta calculatrice, un menu pour insérer facilement les commandes concernant le TI-Innovator Hub.

Sauf que la dernière version de l'application Hub était jusqu'à aujourd'hui la 5.4.0.0034 compilée le 31 mai 2019, et ne comportait bien évidemment aucun menu permettant de saisir ces nouvelles commandes et options.

En langage TI-Basic ce n'était toutefois pas bloquant. C'était en effet contournable : dans ce langage en effet, les menus de programmation servent juste à saisir rapidement des lignes de commandes qui vont être envoyées texto pour exécution au TI-Innovator Hub. En cas de nouveau mot de vocabulaire non présent au menu (ici donc entre autres TEMPO, PATTERN, RATE, AND, COLLECT, ...), il suffisait juste de le saisir à la main au clavier alphabétique.

C'était il n'empêche un peu pénible.

Après plus de 7 mois, nous avons donc enfin aujourd'hui une mise à jour de l'application Hub, en version 5.7.0.0017.

Nous y trouvons bien de nouvelles entrées permettant désormais de saisir rapidement les nouvelles commandes et paramètres :




6) Application Python

Go to top

Si tu disposes d'une TI-83 Premium CE Edition Python, TI-84 Plus CE-T Python Edition ou TI-84 Plus CE Python, ta calculatrice bénéficie d'une application Python. La dernière version commençait à dater, la 5.5.2.0044 compilée le 30 juillet 2020.

Avec cette mise à jour 5.7 nous bénéficions d'une nouvelle application Python en version 5.7.0.0017, découvrons-en les nouveautés.

Rappelons que sur ces calculatrices le processeur est un eZ80 (8 bits), et que l'exécution de code Python est alors confiée à un coprocesseur Cortex-M0+ ARMv6 (32 bits). L'application Python inclut un firmware TI-Python (un dérivé de CircuitPython) tout spécialement dédié à ce coprocesseur, dont on peut consulter la version en appelant sys.implementation. La dernière version étant donc la 3.1.0.58.

Nous nous attentions ici encore à une nouvelle version firmware, la TI-82 Advanced Edition Python sortie entre temps pour la rentrée 2021 passant pour sa part à un firmware TI-Python en version 3.2, plus précisément 3.2.0.71.

Et effectivement avec cette mise à jour 5.7, la nouvelle application Python intègre elle aussi un nouveau firmware TI-Python 3.2, plus précisément en version 3.2.0.76.

Bonne nouvelle, c'est-à-dire que l'on peut s'attendre aussi bien à des nouveautés au niveau de l'interface que des capacités Python, voyons tout ça.

Pour le contexte, rappelons que l'application Python intègre une bel éventail de de modules enrichissant les capacités de tes scripts. Pour certains, tout ou partie de leurs fonctions sont directement disponibles dans les menus :
  • builtins (catalogue)
  • math
  • random
  • time
  • ti_system
  • ti_plotlib
  • ti_hub
  • ti_rover

D'autres modules ne bénéficient pas de cette aide à la saisie via les menus mais restent quand même intégrés et utilisables.
On peut les consulter avec help("modules") :
  • array
  • collections
  • gc
  • sys
  • ti_graphics



Le module ti_system par exemple t'offre nombre de possibilités au menu :
  • l'intégration avec l'importation/exportation de listes ou expression avec les autres applications de la calculatrice
  • mettre en pause un script en testant/attendant un appui sur la touche
    annul
    sur TI-83 Premium CE ou
    clear
    sur TI-84 Plus CE
  • afficher un texte sur la ligne de ton choix
  • figer l'affichage
  • effacer l'écran
Mais ti_system permettait aussi d'autres choses n'étant pas au menu.

Par exemple la méthode ti_system.wait_key() te permettait d'attendre une action clavier, et te renvoyait alors un code tenant compte à la fois de la touche pressée et du contexte (modificateurs
2nde
ou
alpha
, verrouillage alphabétique, mode majuscule ou minuscule)
.

Une formidable possibilité pour coder des interfaces, menus ou même jeux ! :bj:

Sauf que cette méthode n'était pas au menu. Donc d'une part la plupart des utilisateurs ignoraient son existence, et d'autres part pour ceux qui étaient au courant l'utilisation en était pénible, nécessitant de saisir le nom de méthode lettre par lettre au clavier alphabétique.
Et bien excellente nouvelle, Texas Instruments met maintenant clairement en avant cette la méthode wait_key() au menu dont la saisie ne nécessitera donc plus qu'une seule touche, et par conséquent également toutes les formidables possibilités qu'elle ouvre !



Le module ti_hub permet lui le contrôle évoqué plus haut du TI-Innovator Hub avec ses capteurs/actionneurs intégrés ou connectables, quand le module ti_rover se spécialise lui autour du TI-Innovator Rover.
Il y avait donc ici le même genre de problème avec le TI-Innovator Hub, les dernières nouveautés du firmware 1.5 n'étaient pas accessibles aux menus de l'éditeur Python.

Un problème bien plus embêtant ici car beaucoup moins facilement contournable. Ici les menus ne permettent que d'appeler des fonctions des modules associés ti_hub et ti_rover, masquant complètement les lignes de commandes échangées entre la calculatrice et le TI-Innovator Hub pour leur donner un habillage fonctionnel, conformément aux programmes scolaires.

Par exemple l'appel pour allumer la diode RGB en violet, l'appel color.rgb(255, 0, 255) correspondait en fait en interne à l'envoi de la commande SET COLOR 255 0 255.
Et justement il est à noter qu'une méthode alternative utilisant ce langage de script interne est possible en Python : ti_hub.send("set color 255 0 0").

Comment faire alors pour émettre des bips de 400 Hz pendant 5 secondes au rythme de 4 bips par seconde ? La chose n'étant pas disponible au menu, une solution était de connaître le langage de script interne spécifique au TI-Innovator Hub, et de faire ti_hub.send("set sound 500 time 5 tempo 4").

Pas évident à deviner toutefois alors que ce fonctionnement interne est ici totalement masqué, pénible à saisir à la main au clavier alphabétique également, et c'était peut-être beaucoup demander à certains élèves d'utiliser le langage Python pour écrire dans un autre langage.
Fini les acrobaties de ce genre, avec la mise à jour 5.7 les nouvelles commandes et options TI-Innovator Hub 1.5 ont été transcrites sous forme fonctionnelle au menu !

Dans l'exemple que nous venons de prendre, un simple sound.tone(400, 5, 4) suffira.

Bien évidemment des équivalents fonctionnels ont été rajoutés aux menus pour toutes les autres nouveautés : objet collect pour les collections de données, méthode ti_rover.ranger_rime() pour le temps de vol du sonar, etc.


Tant que nous y sommes, attardons-nous maintenant sur le module ti_rover dédié pilotage du TI-Innovator Rover à travers un TI-Innovator Hub.

Pour commander un déplacement tu avais entre autres les méthodes ti_rover.forward(d) et ti_rover.backward(d) pour le faire avancer ou reculer d'une certaine distance d, par défaut en unités arbitraires.

Ces méthodes acceptaient également des paramètres optionnels et le menu te permettait de faire appel à des interfaces en assistant la saisie :
  • unité de distance (arbitraires, mètres ou révolutions)
  • v, vitesse
  • unité de vitesse (arbitraires, mètres ou révolutions par seconde)
Mais peut-être avais-tu envie de préciser l'unité de distance sans rajouter de précision de vitesse ? Surtout que le paramètre de vitesse doit être obligatoirement entre 0,14 m/s et 0,23 m/s, toute valeur extérieure déclenchant une erreur, ce qui ne se devine pas.

Et là c'était embêtant :
  • soit tu utilisais l'interface précédente, t'obligeant à choisir une unité de vitesse, pour ensuite effacer les 2 derniers paramètres
  • soit tu saisissais simplement forward(d) ou backward(d) via le menu, pour ensuite rajouter manuellement au clavier le paramètre d'unité
Et bien bonne nouvelle, Texas Instruments a rajouté au menu les interfaces de saisie correspondant à ce cas.




7) Modules Python additionnels ti_draw et ti_image

Go to top

Les TI-83 Premium CE Edition Python, TI-84 Plus CE-T Python Edition et TI-84 Plus CE Python offrent à tes scripts Python de formidables possibilités graphiques grâce au module de tracé par pixels ti_graphics.

Au menu une superbe collection de primitives et même la gestion d'un format d'image dédié IM8C pour lequel nous t'avons conçu un convertisseur dédié en ligne !

Problème, le module ti_graphics n'était pas disponible au menu.

Pas évidement donc pour tout-le-monde de le trouver, d'en découvrir les différentes méthodes, et ensuite de deviner les paramètres attendus


Jusqu'à présent Texas Instruments n'avait mis en avant qu'assez timidement et partiellement ces grandes possibilités graphiques de la calculatrice à travers des modules additionnels :
À la différence des modules intégrés, les modules additionnels ne sont pas disponibles en mode examen.
Enorme problème toutefois avec cette approche jusqu'à présent, les modules complémentaires n'étaient par défaut pas disponibles au menu.

Ils apparaissaient au menu uniquement lorsque l'on était en train d'éditer un script comportant une ligne les important (et obligatoire sous la forme from module import, pas un simple import module).

Tu commences donc à voir le problème ? Lors de la création d'un script, afin d'obtenir le menu te permettant de saisir facilement et rapidement les appels aux différentes méthodes d'un module complémentaire, tu devrais commencer par te taper la saisie fastidieuse lettre par lettre au clavier de sa ligne d'importation.

Enfin dernier problème, pas de module ti_graphics sur les TI-Nspire CX II, mais des modules hybrides ti_draw et ti_image pouvant fonctionner à la fois par pixels ou par coordonnées dans un repère.

C'est-à-dire que jusqu'à présent il n'y avait aucune compatibilité :
  • les commandes graphiques de scripts Python TI-Nspire CX II ne marchaient pas sur les TI-83 Premium CE ou TI-84 Plus CE
  • et inversement les commandes graphiques de scripts Python TI-83 Premium CE ou TI-84 Plus CE ne marchaient pas sur les TI-Nspire CX II


Avec cette mise à jour 5.7, Texas Instruments se propose de résoudre simultanément tous ces 3 gros problèmes.

D'une part, l'onglet listant les modules utilisables comporte maintenant un menu de bas d'écran permettant de saisir d'une seule touche la ligne d'importation des modules complémentaires installés, et ajouter ainsi leur contenu au menu.

À noter que cela ne fonctionne pas avec les modules complémentaires partagés jusqu'à présent par Texas Instruments, sans doute ont-ils besoin d'une mise à jour, si tant est que ce soit prévu.

Par contre, la mise à jour 5.7 intègre 2 nouveaux modules complémentaires ti_draw et ti_image que tu pourras donc ainsi rajouter au menu.

ti_draw et ti_image sont techniquement des modules interface : ils te présentent des méthodes qui en interne vont effectuer les appels adaptés au module ti_graphics, t'évitant ainsi diverses considérations techniques spécifiques à ton modèle de calculatrice.

Les modules complémentaires sont écrits en Python et convertis en fichier pour calculatrice par Texas Instruments en utilisant un outil nommé py2appvar, compilant le Python en bytecode et générant les menus associés aux différentes méthodes à l'aide des commentaires présents dans le code source. Nous notons ici en entête des fichiers l'utilisation d'une nouvelle version de py2appvar, non plus la 1.2.0 comme pour les derniers modules complémentaires précédents, mais maintenant la 1.2.1. Peut-être la version gérant les nouveaux commentaires rendant les modules complémentaires listables pour importation ou pas.

ti_draw est ici en version 1.0.0.

Finalement il ne s'agit pas d'une simple interface pour le module de tracé par pixels ti_graphics, ti_draw fait un peu plus que ça.

ti_draw est en fait un module de tracé hybride :
  • par défaut il se comporte en tant que module de tracé par pixels comme ti_graphics
  • mais si tu fais appelle à sa méthode ti_draw.set_window(xmin, xmax, ymin, ymax), il se transforme alors en mode de tracé par coordonnées dans un repère


ti_draw porte donc le même nom que sur TI-Nspire CX II et ce n'est pas un hasard, on y retrouve quasiment les mêmes appels que sur TI-Nspire CX II :


Quelques petites différences certes au niveau des contrôles toutefois, suite à des comportements différents (les affichages TI-Nspire CX II peuvent bénéficier d'un double buffering, les affichages TI-83 Premium CE et TI-84 Plus CE non et sont de plus effacés en fin de script) dont on pourra tenir compte via un if/else ou un try/except.

Mais c'est extraordinaire, pour qui le souhaite la compatibilité Python graphique entre TI-83 Premium CE, TI-84 Plus CE et TI-Nspire CX II est maintenant possible et relativement accessible, félicitations Texas Instruments ! :bj:

Et sans aller jusque-là, ce sera aussi bien pratique pour les enseignants de n'avoir plus qu'à apprendre et faire apprendre qu'une seule bibliothèque graphique à de rares variations près. ;)

ti_image est lui aussi en version 1.0.0.

Ici encore il s'agit d'un module interface appelant les méthodes dédiées au format d'image PY8 du module ti_graphics.

Par contre ici malgré le nom, aucune compatibilité avec le ti_draw des TI-Nspire CX II, les méthodes n'ont rien à voir, sans grande surprise puisque c'était déjà le cas des formats d'images et même des façons de les générer.




8) Autres applications (Inequalz, Transfrm, Plysmlt2, ProbSim)

Go to top

D'autres applications sont également mises à jour en accompagnement de cette version 5.7 mais fort bizarrement sans changement du numéro de version de l'application, chose qui ne s'était jamais produite :

Inequalz reste apparemment en version 5.1.0.0110, sauf que l'on note que sa date de compilation n'est plus le 1er septembre 2015 mais le 19 octobre 2021

L'application comportait 2 messages de copyright 2001-2015 identiques. Dans sa nouvelle version, l'un des deux messages de copyright est modifié avec un 2021, mais il ne s'agit apparemment pas de celui affiché pour la liste des applications en mémoire ni à l'écran à propos de l'application.

Nous notons de nombreuses différences dans le reste du code, mais n'arrivons pas à les interpréter.

Par contre la nouvelle application est plus petite, passant de 44,736 Ko à 44,152 Ko, ce n'est pas de refus.



L'application Transfrm prétend elle aussi toujours être en version 5.3.1.0034, sauf qu'ici encore la date de compilation indiquée dans le header ne trompe pas : non plus le 31 mai 2019, mais le 19 octobre 2021.

De même le code de l'application comportait 2 messages de copyright identiques en 2001-2019, et l'un des deux messages passe en 2021, sans que nous arrivions à en obtenir d'affichage nulle-part.

Des différences significatives dans le reste du code sur lesquelles nous ne pouvons hélas pas t'éclairer aujourd'hui. Ici encore la nouvelle application est plus petite, passant de 28,182 Ko à 27,923 Ko.



La façade de l'application ProbSim tente elle aussi de faire croire qu'il n'y a pas eu de changements : version 5.1.0.0110. Sauf que la date de compilation passe du 1er septembre 2015 au 19 octobre 2021.

Cette application comportait bizarrement 2 numéros de versions différents : un 5.1.0.0110 dans le header, puis un 5.1.0.0 plus loin au milieu du code, numéro jamais affiché selon nos tests.

Dans la nouvelle version, ce 2ème numéro de version est modifié, passant à 5.7.0.0, de même sans que nous en constations d'affichage nulle-part.

De nombreuses différences dans le reste du code qui restent un mystère à ce jour.

Par contre ici la nouvelle application est plus grosse, passant de 71,487 Ko à 71,512 Ko.



L'application PolySmlt2 reste en apparence en version 5.5.0.0038, sauf que sa date de compilation passe du 12 mai 2020 au 19 octobre 2021.

Cette application comportait ici aussi 2 numéros de version différents : un 5.5.0.0038 dans le header, puis un 5.5.1.0038 plus loin dans le code, numéro ici encore jamais affiché.

Dans la nouvelle version, ce 2ème numéro de version passe à 5.7.0.0038, de même sans affichage nulle-part.

Mais ce qui est encore plus étrange ici, c'est que tout le reste du code est absolument identique. Donc Texas Instruments se serait embêté à recompiler l'application juste pour changer un numéro de version qui apparemment n'est affiché nulle-part ?... Cela ne tient pas debout.



Tout ceci est extrêmement curieux. Nous avons tenté d'installer ces nouvelles applications sur d'anciennes versions du système et même d'anciennes TI-83 Premium CE, et avons pu les utiliser sans aucun problème.

On pourrait imaginer que Texas Instruments ait effectué des modifications à son compilateur, et n'ait peut-être pas tout configuré correctement.

Ou sinon, en couplant ceci à des numéros de versions qui étrangement apparaissant ou changent également dans le code du système sans être affichés nulle-part, on pourrait se demander si il n'y aurait pas anguille sous roche, et si Texas Instruments ne serait pas en train de concevoir et déployer une nouvelle sécurité permettant de refuser une application dont le numéro de version est trop ancien. Une finalité en serait évidente : le blocage de Cabri 5.0.0.0089 dont une future mise à jour deviendrait alors obligatoire, et ainsi d'arTIfiCE, et par conséquent de AsmHook et à nouveau tout programme ASM. Espérons nous tromper...




Conclusion

Go to top

À nouveau une superbe mise à jour si tu as une TI-83 Premium CE Edition Python, TI-84 Plus CE-T Python Edition ou TI-84 Plus CE Python.

Texas Instruments repousse encore et toujours plus loin les superbes capacités Python de ses calculatrices.

Retenons l'essentiel :
  • les nouveaux modules ti_draw et ti_image mettant enfin au menu les formidables possibilités graphiques du Python et invitant donc enfin les utilisateurs à se mettre à créer en conséquence ! :favorite:
  • pour ti_draw l'extraordinaire compatibilité graphique avec les TI-Nspire CX II, un exploit, de quoi réunir les utilisateurs autour de projets communs transcendant les modèles et milieux sociaux ! :favorite:

Mais qu'attends-tu encore ?... ;)




Téléchargements

Go to top

Lien vers le sujet sur le forum: Mise à jour 5.7 TI-83 Premium CE + TI-84 Plus CE (Commentaires: 46)

Educatec-Educatice Paris 24-26 Novembre 2021 avec Casio

Nouveau messagede critor » 23 Nov 2021, 10:41

Enseignant, as-tu raté l'occasion de rencontrer les constructeurs de calculatrices graphiques Casio et Texas Instruments ces dernières semaines aux journées APMEP à Bourges puis au congrès UdPPC à Nancy ?

Et bien bonne nouvelle il n'est pas trop tard. Tu as une chance de te rattraper à l'occasion du salon Educatec-Educatice à Paris de ce mercredi 24 novembre à ce vendredi 26 novembre inclus.

L'événement se passe au parc des expositions de la Porte de Versailles chaque jour de 9h à 18h, sauf pour le vendredi de 9h à 17h.

Tu pourras y retrouver le constructeur Casio en personne sur la partie Educatice, stand F44 - pavillon 7. L'occasion de les interroger sur leur projet de future plateforme mathématique en ligne avec gestion de classe Classpad Academy.

2 autres stands mettront également en avant entre autres la technologie Texas Instruments :
  • vittascience avec ses superbes interfaces de programmation en ligne, intégrant un éditeur pouvant fonctionner de façon synchronisée en Python ou en mode blocs, couplé avec un simulateur supportant entre autres les solutions Texas Instruments (TI-83 Premium CE, TI-Innovator Hub, TI-Innovator Rover, micro:bit, ...)
  • A4 Technologie qui développe plusieurs maquettes et accessoires pour les TI-Innovator Hub et TI-Innovator Rover

L'accès est gratuit, mais nécessite une inscription sur le lien ci-dessous.

Attention, contrairement aux précédents événements évoqués, l'accès est ici exclusivement réservé aux professionnels.

Lien : https://www.educatec-educatice.com/visiter
Lien vers le sujet sur le forum: Educatec-Educatice Paris 24-26 Novembre 2021 avec Casio (Commentaires: 1)

Python turtle standard avec remplissage sur TI-83 Premium CE

Nouveau messagede critor » 25 Nov 2021, 08:39

Pour accompagner en douceur la transition du Scratch au Python en Seconde, la plupart des solutions Python sur calculatrices graphiques offrent turtle, un module permettant du tracé relatif comme en Scratch. On peut citer :
  • la NumWorks dont l'application Python intègre directement turtle
  • les Casio Graph 35+E II et Graph 90+E dont l'application Python intègre directement turtle
  • les TI-Nspire CX II sur lesquelles on peut rajouter un module turtle officiel à l'environnement Python
  • et sur les TI-83 Premium CE Edition Python (France), TI-84 Plus CE-T Python Edition (Europe) et TI-84 Plus CE Python (Amérique du Nord), on pouvait jusqu'ici rajouter un module officiel ce_turtl à l'application Python

L'utilisation de ce_turtl sur TI-83 Premium CE Edition Python et compatible n'était jusqu'à présent pas de tout repos, loin de là. En effet énorme problème, les modules complémentaires comme ce_turtl n'étaient par défaut pas disponibles au menu.

Ils apparaissaient au menu uniquement lorsque l'on était en train d'éditer un script comportant une ligne les important (dans notre cas forcément sous la forme from ce_turtl import, et pas un simple import ce_turtl).

Lors de la création d'un script, afin d'obtenir le menu te permettant de saisir facilement et rapidement les appels aux différentes méthodes de ce_turtl, tu devrais donc commencer par te taper la saisie lettre par lettre au clavier de sa ligne d'importation, avec en prime le caractère tiret bas qui n'est pas au clavier et était donc à aller chercher dans un menu. :mj:

Mais attends car le pire, c'est que c'était encore loin d'être le pire...
Mais surtout bien pire que cela, ce_turtl était une véritable catastrophe ambulante ! :mj:

Aucun effort ne semblait avoir été fait pour coller au standard : des méthodes essentielles manquantes, des noms de méthodes fantaisistes, des arguments attendus différant du standard dans leur nombre, leur ordre ou leur type... et ne parlons même pas encore du comportement attendu.

Si tu ne faisais pas l'effort d'adapter ton code, il t'était fort probable d'obtenir n'importe quoi. Voici ci-contre ce que donne un escargot sur ordinateur et l'ensemble de la concurrence, et sur TI-83 Premium CE Edition Python et compatibles avec ce_turtl... :#roll#:

Quel professeur allait perdre du temps à faire apprendre un sous-dialecte du turtle ne fonctionnant que sur calculatrice TI-83 Premium CE Edition Python, risquant ainsi de mélanger les élèves par rapport aux documents, ouvrages ou autres autres plateformes auxquels ils ont accès (ordinateur, tablette, smartphone, calculatrice d'un autre modèle) ?...

Nous savons parfaitement que la mémoire de tas (heap) du Python des TI-83 Premium CE Edition Python et compatibles est extrêmement limitée, seulement 19,968 Ko de capacité, et en pratique souvent bien moins de disponible car les modules importés prennent de la place.

Dans ce contexte nous comprenons parfaitement qu'il faille se limiter et faire des choix.

Mais nous persistons à penser que l'on pouvait faire largement mieux niveau compatibilité et conformité que ce que nous a offert ce_turtl, et ce sans augmenter la consommation de heap à l'exécution.

Dans le cadre de sa mise à jour 5.7 pour TI-83 Premium CE Edition Python et compatibles, Texas Instruments publie un nouveau module complémentaire s'appelant cette fois-ci turtle. On pourrait donc s'attendre à un meilleur respect du standard, mais cela va être à vérifier.

Ce nouveau module turtle peut être installé indépendamment de la mise à jour ; il fonctionne tout aussi bien sur les versions précédentes selon nos tests.
Mais si tu mets à jour en version 5.7 tu bénificieras d'un formidable avantage : un nouvel onglet de bas d'écran te permet enfin de lister les modules complémentaires importables et turtle en fait partie ! :bj:

Donc plus de saisie fastidieuse, une seule touche suffit à coller la ligne d'importation et alors faire apparaître tout le contenu du nouveau module turtle au menu ! :D

Mais reste à voir pour le reste. Découvrons donc maintenant ensemble si le nouveau module turtle est effectivement meilleur que ce_turtl.







A) Informations et fonctionnement

Go to top

La publication de Texas Instruments consiste en 2 fichiers de variables d'application pour calculatrice :
  • TURTLE.8xv
  • GRID.8xv

TURTLE.8xv est le module Python complémentaire en question, ici en version 2.0.0. Soit cela signifie qu'il y a eu des versions inférieures de test auxquelles nous n'avons pas eu accès, soit ce changement de numérotation majeure est pour noter une différence significative par rapport à ce_turtle.

Le fichier TURTLE.8xv a été généré par Texas Instruments à l'aide de py2appvar, un outil non public de Texas Instruments permettant à partir d'un fichier source Python :
  • la conversion du cose source Python en bytecode Python
  • l'énumération des éléments à mettre au menu à partir de lignes de commentaires spécialement formatées à cette fin dans le code source

Contrairement à CE_TURTL.8xv, TURTLE.8xv a été généré à l'aide d'une version plus récente de l'outil py2appvar, non plus la 1.2.0 mais la 1.2.1. Nous supposons que py2appvar 1.2.1 ajoute la gestion de la nouvelle ligne de commentaire permettant de spécifier l'ajout de la commande d'importation au menu des modules complémentaires.

GRID.8xv quant à lui n'est rien d'autre qu'une image 320×210 pixels au format IM8C directement affichable par les scripts Python de la calculatrice et que voici justement ci-contre ; il s'agit donc d'une grille.
Code: Tout sélectionner
from ti_image import *
load_image("GRID")
show_image(0, 0)
show_screen()


Cette image sera affichée automatiquement à chaque début d'appel à des fonctions de tracé turtle, se comportant donc comme une sorte de fond d'écran.
Code: Tout sélectionner
from turtle import *
t = Turtle()
t.circle(52)
t.done()


Tu peux très bien te passer de GRID, soit ne pas transférer ou effacer la variable en question. Dans ce cas cela ne déclenche pas d'erreur, mais rappelons que le Python sur TI-83 Premium CE Edition Python et compatible ne dispose pas d'un buffer dédié aux affichages graphiques, ces derniers étant effectués par-dessus la console. Ne trouvant alors rien à afficher, l'écran ne sera pas nettoyé et il te faudra alors rajouter du code en ce sens.

Tu peux également t'amuser à remplacer le fond d'écran du module turtle comme bon te semble. Notre outil en ligne img2calc te permet de convertir n'importe quelle image au format IM8C de Texas Instruments, et il te suffira alors juste de choisir le nom GRID pour la calculatrice.

Rappelons que comme le buffer d'affichage est ici unique, tu dois effectuer une pause en fin de script sous peine de voir ton tracé une fois terminé être immédiatement écrasé par l'affichage de la console. Le module turtle t'offre pour cela la méthode .done() qui attend l'appui sur la touche
annul
(ou
clear
sur les TI-84 Plus CE)
, mais tu es libre d'utiliser n'importe quel autre code générant une attente.

À noter que le module turtle t'offre la possibilité de désactiver l'affichage de la grille. Il te suffira d'appeler la méthode .hidegrid() avant ta première instruction d'affichage.

En pratique la méthode .hidegrid() efface simplement l'écran en blanc.




B) Le tour des menus

Go to top

Les méthodes au menu sont réparties sous différents onglets :
  • Move : pour les déplacements de la tortue
  • Draw : pour les tracés autres que des segments (cercle, texte, remplissage, ...)
  • Pen : pour tout ce qui concerne le stylo (levé, baissé, couleur, taille)
  • Settings : pour différents réglages (effacement du tracé, cacher/montrer la tortue, désactiver l'affichage de la grille comme déjà vu, vitesse)
  • State : pour interroger l'état de la tortue (position, orientation)

14883Mais ce qui est extraordinaire ici et à ce jour une exclusivité toute concurrence confondue, c'est la présence des méthodes de remplissage de formes ! :D

De quoi a priori étendre très largement les possibilités et facilités de tracé pour les élèves ! :D




C) Premier script comparatif (ce_turtl + turtle)

Go to top

Tentons un premier script dessinant une cible :
ce_turtl
turtle
Code: Tout sélectionner
from ce_turtl import *
turtle.clear()
turtle.goto(0,-95)
s = 3
for r in range(0, 159, r):
  turtle.circle(r)
turtle.show()
Code: Tout sélectionner
from turtle import *
t = Turtle()
t.goto(0,-95)
s = 3
for r in range(0, 159, r):
  t.left(90)
  t.circle(r)
  t.right(90)
t.done()


Déjà ce script met en évidence un bug en Python des TI-83 Premium CE Edition Python et compatibles : au-delà d'une certaine valeur de rayon les tracés de cercles se déforment très rapidement et tendent vers des carrés.

Le bug n'est en fait ni dans ce_turtl ni dans turtle, mais dans le module de tracé par pixels ti_graphics qu'ils utilisent tous les deux sur ces calculatrices, visiblement toujours pas corrigé en version 5.7.

Mais problème... Si tu regardes bien bien que la structure soit similaire, nous avons dû écrire 2 scripts différents pour ce_turtl et turtle.

Si en plus on fait rentrer la concurrence dans l'équation, il n'est pas envisageable pour nous de maintenir jusqu'à 7 versions différentes pour chaque script testé...




D) Tests de conformité comparatifs (tous modèles)

Go to top

Tentons donc un autodiagnostic des différences entres tous les modules turtle, c'est-à-dire la vérification de tout ce qui peut différer du standard.

Voici des scripts en ce sens, une amélioration majeure de ceux développés dans le code de notre test de rentrée QCC 2021 :
Code: Tout sélectionner
_turtle_errors = 0

def _turtle_error(k):
  global _turtle_errors
  _turtle_errors |= 1 << k

# import turtle
try:
  import turtle
  if not "forward" in dir(turtle):
    turtle = turtle.Turtle()
except ImportError: #TI-83 Premium CE
  from ce_turtl import turtle
  _turtle_error(0)
try:
  turtle.clear()
except:
  turtle.reset()

# can turtle be patched ?
_fix_turtle = True
try:
  def _fixcolor(c): return c
  turtle._fixcolor = _fixcolor
except:
  _fix_turtle = False

# test color() + pencolor() + fillcolor()
if not "pencolor" in dir(turtle):
  pencolor = turtle.color
  _turtle_error(1)
else:
  pencolor = turtle.pencolor
if not "color" in dir(turtle):
  _turtle_error(2)
if not "fillcolor" in dir(turtle):
  _turtle_error(12)

if not "clear" in dir(turtle):
  _turtle_error(13)
if not "reset" in dir(turtle):
  _turtle_error(14)
if not "heading" in dir(turtle):
  _turtle_error(11)

# test color argument types
_color_types = 0
try:
  pencolor([0, 0, 0])
  _color_types |= 1 << 0
except: _turtle_error(4)
try:
  pencolor((0, 0, 0))
  _color_types |= 1 << 1
except: _turtle_error(5)
try:
  pencolor(0, 0, 0)
  _color_types |= 1 << 2
except: _turtle_error(6)
try:
  pencolor("black")
  _color_types |= 1 << 3
except: _turtle_error(7)

# test colormode()
if not "colormode" in dir(turtle):
  _turtle_error(3)

# test color strings
_colors_fix={
  "blue":(0,0,1),
  "green":(0,1,0),
  "red":(1,0,0),
  "cyan":(0,1,1),
  "yellow":(1,1,0),
  "magenta":(1,0,1),
  "white":(1,1,1),
  "orange":(1,0.65,0),
  "purple":(0.66,0,0.66),
  "brown":(0.75,0.25,0.25),
  "pink":(1,0.75,0.8),
  "grey":(0.66,0.66,0.66),
  "black":(0,0,0),
}
for c in tuple(_colors_fix.keys()):
  try:
    pencolor(c)
    _colors_fix.pop(c)
  except: pass
if len(_colors_fix):
  if _color_types & 1 << 3:
    _turtle_error(8)

# test circle(,)
try: turtle.circle(0,0)
except:
  _turtle_error(9)

# test for unfixable missing functions
_missing_fct=["write","pensize","dot"]
for f in tuple(_missing_fct):
  try:
    eval("turtle."+f)
    _missing_fct.remove(f)
  except: pass
if len(_missing_fct):
    _turtle_error(15)

_missing_alias=[
  ["backward","back","bk"],
  ["forward","fd"],
  ["right","rt"],
  ["left","lt"],
  ["position","pos"],
  ["goto","setpos","setposition"],
  ["setheading","seth"],
  ["pendown","pd","down"],
  ["penup","pu","up"],
  ["pensize","width"],
  ["showturtle","st"],
  ["hideturtle","ht"],
]
for aliases in tuple(_missing_alias):
  validf = None
  for f in tuple(aliases):
    try:
      eval("turtle."+f)
      validf = f
      aliases.remove(f)
      break
    except: pass
  for f in tuple(aliases):
    try:
      eval("turtle."+f)
      aliases.remove(f)
    except: pass
  if not len(aliases):
    _missing_alias.remove(aliases)
  else:
    aliases.insert(0, validf)
if len(_missing_alias):
    _turtle_error(16)

try:
  turtle.position()
except:
  try:
    turtle.pos()
  except:
    _turtle_error(10)
Code: Tout sélectionner
from ttl_chk import *
from ttl_chk import _fix_turtle, _turtle_errors, _colors_fix, _missing_fct, _missing_alias

def turtle_diags():
  print("Type: " + str(type(turtle)))
  print("Patchable: " + (_fix_turtle and "yes" or "no"))
  errors_msg = (
    "No <import turtle>",
    "No pencolor()",
    "No color()",
    "No colormode()",
    "No color as list",
    "No color as tuple",
    "No color as args",
    "No color as string",
    "Missing colors strings: ",
    "No circle(,angle)",
    "Can't get position()",
    "No heading()",
    "No fill",
    "No clear()",
    "No reset()",
    "Other missing: ",
    "Missing aliases: ",
  )
  errors = 0
  for k in range(len(errors_msg)):
    if _turtle_errors & 1 << k:
      errors += 1
      msg = "Err " + str(k) + ": " + errors_msg[k]
      if k == 8:
        msg += str(len(_colors_fix)) + " " + str(tuple(_colors_fix.keys()))
      if k == 15:
        msg += str(len(_missing_fct)) + " " + " ".join(_missing_fct)
      if k == 16:
        l = []
        for v in _missing_alias:
          l.extend(v[1:])
        msg += str(len(l)) + " " + " ".join(l)
      print(msg)
  print(str(errors) + " error" + ((errors > 1) and "s" or ""))

turtle_diags()


Voici ce que nous racontent les scripts sur calculatrices Texas Instruments :

TI-83PCE/84+CE
ce_turtl
TI-83PCE/84+CE
turtle
TI-Nspire CX II
turtle




Pas étonnant que ce_turtle fasse n'importe quoi, c'est une véritable calamité. Pas moins de 11 erreurs, et encore ce sont juste celles qui sont détectées. La grande majorité de ce qui est testé ne va pas :
  • ligne d'importation non standard (à cause du nom)
  • réglage non standard de la couleur du tracé, utilisant la méthode .color() au lieu de .pencolor()
  • absence de la méthode .colormode() et donc pas de possibilité de modifier le mode des coordonnées de couleurs (maximum de chaque composante à 1 ou à 255)
  • refus des paramètres de couleurs sous forme de tuple, liste ou chaîne de caractères, les fonctions concernée prennent obligatoirement 3 paramètres avec les valeurs de chaque composante
  • la méthode .circle() ne prend qu'un seul argument et ne gère donc pas les arcs de cercle
  • absence des méthodes de remplissage
  • absence de la méthode d'effacement et réinitialisation de la tortue .reset()
  • absence de la méthode d'écriture de texte .write()
  • absence de 18 alias courts pour les noms de méthodes
Avec le nouveau module turtle nous tombons à seulement 7 erreurs.

Son code source ne semblerait pas dériver de celui de ce_turtl, puisque certaines erreurs disparaissent alors qu'une autre apparaît.

Restent donc :
  • absence de la méthode .color()
  • absence de la méthode .colormode() et donc pas de possibilité de modifier le mode des coordonnées de couleurs (maximum de chaque composante à 1 ou à 255)
  • refus des paramètres de couleurs sous forme de liste ou chaîne de caractères, mais les tuples sont acceptés
  • la méthode .circle() ne prend qu'un seul argument et ne gère donc pas les arcs de cercle
  • absence de la méthode d'effacement et réinitialisation de la tortue .reset()
  • absence de 16 alias courts pour les noms de méthodes

Le turtle des TI-Nspire CX II pour sa part ne donne que 5 erreurs. Vu la grande similarité, on pourrait se demander si le nouveau module turtle des TI-83 Premium CE Edition Python et compatibles ne découlerait pas de celui des TI-Nspire CX II, avec juste la suppression des paramètres de couleurs sous forme de chaîne de caractères afin d'économiser un peu de place en heap.

Voici pour référence les résultats du même test chez la concurrence :

Casio
Graph 90/35+E II
NumWorks
KhiCAS
NumWorks
TI-Nspire CX II CX


Un avantage des Texas Instruments et des Casio, c'est que le module turtle peut être modifié, et la plupart des erreurs sont ainsi corrigeables ! :bj:
À nuancer toutefois, car vu la faible capacité du heap des TI-83 Premium CE Edition Python et compatibles, on ne peut pas non plus envisager de tout corriger.

Voici un script qu'il suffit d'importer à la place du module turtle de chaque machine, et lorsque autorisé corrige la plupart des erreurs détectées : :bj:
Code: Tout sélectionner
from ttl_chk import *
from ttl_chk import _color_types, _turtle_errors, _colors_fix, _missing_fct, _missing_alias

_fix_turtle = True

def nop(*argv): return None
idty = lambda c: c

try: # can turtle be patched ?
  turtle._fixcolorlist = idty
  turtle._fixcolorval = idty
  turtle._fixcolorstring = idty
  turtle._fixcolorargs = idty
  turtle._fixcolor = lambda c: turtle._fixcolorlist(turtle._fixcolorval(turtle._fixcolorstring(turtle._fixcolorargs(c))))
except:
  _fix_turtle = False

if _fix_turtle:

  # fix color() + pencolor()
  if _turtle_errors & 2:
    turtle.pencolor = turtle.color
  if _turtle_errors & 4:
    turtle.color = turtle.pencolor
  if _turtle_errors & 0x1000:
    turtle.fillcolor, turtle.begin_fill, turtle.end_fill = idty, nop, nop

  _fix_color = _color_types & 0b11 != 0b11 or not "colormode" in dir(turtle)

  # fix list/tuple color argument
  if _color_types & 0b11 == 0b10:
    def _fixcolorlist(c): return type(c) is list and tuple(c) or c
    turtle._fixcolorlist = _fixcolorlist
  if _color_types & 0b11 == 0b01:
    def _fixcolorlist(c): return type(c) is list and list(c) or c
    turtle._fixcolorlist = _fixcolorlist
  if not _color_types & 4:
    def _fixcolorargs(*argv):
      return len(argv) != 1 and argv or argv[0]

  if _fix_color:
    turtle._color = turtle.color
    turtle._pencolor = turtle.pencolor
    turtle._fillcolor = turtle.fillcolor
    if _color_types & 0b11:
      def _color(*argv):
        if not(len(argv)): return turtle._color()
        turtle._color(turtle._fixcolor(len(argv) > 1 and argv or argv[0]))
      def _pencolor(*argv):
        if not(len(argv)): return turtle._pencolor()
        turtle._pencolor(turtle._fixcolor(len(argv) > 1 and argv or argv[0]))
      def _fillcolor(*argv):
        if not(len(argv)): return turtle._fillcolor()
        turtle._fillcolor(turtle._fixcolor(len(argv) > 1 and argv or argv[0]))
    else:
      def _color(*argv):
        if not(len(argv)): return turtle._color()
        c = turtle._fixcolor(len(argv)>1 and argv or argv[0])
        turtle._color(c[0], c[1], c[2])
      def _pencolor(*argv):
        if not(len(argv)): return turtle._pencolor()
        c = turtle._fixcolor(len(argv)>1 and argv or argv[0])
        turtle._pencolor(c[0], c[1], c[2])
      def _fillcolor(*argv):
        if not(len(argv)): return turtle._fillcolor()
        c = turtle._fixcolor(len(argv)>1 and argv or argv[0])
        turtle._fillcolor(c[0], c[1], c[2])
    turtle.color = _color
    turtle.pencolor = _pencolor
    turtle.fillcolor = _fillcolor

  # fix colormode()
  if _turtle_errors & 8:
    # test color mode
    try:
      turtle.pencolor([255, 0, 0])
      _color_mode = 255
    except: _color_mode = 1.0
    turtle._color_mode = _color_mode
    def _colormode(*argv):
      if not(len(argv)): return turtle._color_mode
      if int(argv[0]) in (1, 255):
        turtle._color_mode = int(argv[0]) == 255 and 255 or 1.0
    turtle.colormode = _colormode
    if _color_mode == 255:
      turtle._fixcolorval = lambda c: int(turtle._color_mode) == 1 and type(c) in (list, tuple) and [int(c[k] * 255) for k in range(3)] or c
    else:
      turtle._fixcolorval = lambda c: turtle._color_mode == 255 and type(c) in (list, tuple) and [c[k] / 255 for k in range(3)] or c

  # fix color strings
  if len(_colors_fix):
    def _fixcolorstring(c):
      if type(c) is str and c in _colors_fix:
        c = _colors_fix[c]
        if turtle.colormode() == 255:
          c = [int(c[k] * 255) for k in range(3)]
      return c
    turtle._fixcolorstring = _fixcolorstring

  # fix circle(,)
  if _turtle_errors & 0x200:
    turtle._circle = turtle.circle
    def _circle(r, a=360): turtle._circle(r)
    turtle.circle = _circle

  if len(_missing_fct):
    for f in _missing_fct:
      exec("turtle."+f+"=nop")

  if len(_missing_alias):
    for aliases in _missing_alias:
      validf = aliases[0]
      for f in aliases[1:]:
        exec(validf and "turtle."+f+"=turtle."+validf or "turtle."+f+"=nop")

  # fix clear()
  if _turtle_errors & 0x2000:
    turtle.clear = turtle.reset

  # fix reset()
  if _turtle_errors & 0x4000:
    turtle.reset = turtle.clear

Nous pouvons envisager à partir de maintenant d'avoir une unique version de chaque script utilisable sur l'ensemble des machines. :D




E) 12 exemples comparatifs (tous modèles)

Go to top

Maintenant que nous avons de quoi faire tourner une unique version de chaque script sur l'ensemble des machines, poursuivons l'exploration de l'ensemble des modules turtle avec quelques exemples de script.

Cela va justement être l'occasion de voir si il y a d'autres problèmes qui n'ont pas pu être détectés automatiquement


Exemple n°1 : Rosace à la Casio

Go to top

1107511073C'est donc parti pour quelques exemples afin d'approfondir les améliorations du nouveau module turtle pour TI-83 Premium CE Edition Python et compatibles, ainsi que les points forts et faibles par rapport aux autres modèles de calculatrices.

Précisons que les problèmes récurrents ne seront pas systématiquement réévoqués sur chaque exemple.

Commençons par une petite rosace à la Casio ; tout possesseur de Graph 35+E II sait en effet que Casio aime bien ça : ;)
Code: Tout sélectionner
from ttl_fix import *

turtle.speed(0)
turtle.pensize(1)
turtle.pencolor("black")
for i in range(12):
  turtle.left(30)
  for i in range(8):
    turtle.forward(30)
    turtle.left(45)

try: turtle.show() #TI-83 Premium CE
except: pass


TI-83PCE/84+CE
turtle

TI-Nspire CX II
turtle

Casio
Graph 90+E

KhiCAS
NumWorks
TI-Nspire CX II CX

TI-83PCE/84+CE
ce_turtl

NumWorks
Casio
Graph 35+E II


C'est la base, tout-le-monde s'en sort à peu près, mais tu peux déjà constater quelques légers écarts.
Il y avait donc avec ce_turtl un problème d'écart par rapport au standard, un décalage d'une unité lors du réglage de l'épaisseur via la méthode turtle.pensize().

Ici l'appel turtle.pensize(1) produisait l'effet d'un turtle.pensize(2).
Et plus généralement un appel turtle.pensize(s) produisait l'effet d'un turtle.pensize(s+1).
On peut noter que le problème disparaît avec le nouveau module turtle.

KhiCAS donne également l'impression d'avoir un problème d'épaisseur, mais si tu regardes bien c'est en fait un tout autre problème. L'épaisseur est correcte sur les segments horizontaux et verticaux, seuls les segments obliques sont plus épais qu'ils ne devraient. Cela découle de l'algorithme de tracé choisi dans ce cas.

L'écran de la Casio Graph 35+E II a une définition très inférieure de seulement 128×64 pixels, et bien évidemment le tracé est donc tronqué. Pour le coup, là cela aurait été particulièrement utile de pouvoir faire défiler le tracé...

Exemple n°2 : Fractale de Koch

Go to top

Poursuivons avec une fractale, la fractale de Koch, et profitons-en pour choisir une couleur :
Code: Tout sélectionner
from ttl_fix import *

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)

turtle.speed(0)
turtle.pensize(1)
turtle.pencolor("blue")
turtle.penup()
turtle.goto(-180, -50)
turtle.pendown()
koch(4, 360)

try: turtle.show() #TI-83 Premium CE
except: pass


TI-83PCE/84+CE
turtle

TI-Nspire CX II
turtle

Casio
Graph 90+E

KhiCAS
NumWorks
TI-Nspire CX II CX

TI-83PCE/84+CE
ce_turtl

NumWorks
Casio
Graph 35+E II


Il y avait avec ce_turtl un décalage progressif du tracé, l'affichage obtenu dans la fenêtre n'étant pas symétrique alors que calculé pour.
Ici encore le problème disparaît avec le nouveau module turtle.

Le cas de KhiCAS est complètement différent et n'est à la différence pas un problème. La fenêtre obtenue défile automatiquement en fonction des mouvements de la tortue, et peut même être défilée au clavier une fois le tracé terminé, ce qui est d'ailleurs fort utile pour explorer des tracés débordant de la fenêtre graphique. Une exclusivité à ce jour sur calculatrices ! :bj:

Exemple n°3 : Flocons de Koch

Go to top

Altérons légèrement le tracé afin d'obtenir cette fois-ci des flocons de Koch, et usons de plusieurs couleurs :
Code: Tout sélectionner
from ttl_fix import *

def rotate_list(l):
  l[1:],l[0] = l[0:-1],l[-1]

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)

c = [127, 255, 0]
turtle.speed(0)
turtle.colormode(255)
l = 80
for j in range(2):
  for i in range(3):
    n = j and 3 + i or 2 - i
    s = (7 - n) // 2
    turtle.penup()
    turtle.goto(i*117-157, j*95-25)
    turtle.pencolor(tuple(c))
    turtle.pensize(s)
    turtle.setheading(0)
    turtle.pendown()
    flock(n, l)
    n += 1
    rotate_list(c)

try: turtle.show() #TI-83 Premium CE
except: pass


TI-83PCE/84+CE
turtle

TI-Nspire CX II
turtle

Casio
Graph 90+E

KhiCAS
NumWorks
TI-Nspire CX II CX

TI-83PCE/84+CE
ce_turtl

NumWorks
Casio
Graph 35+E II


Cette fois impossible de ne pas le voir, énorme décalage avec ce_turtl dont le tracé part littéralement dans le décor pour le flocon en haut à droite.
Heureusement, plus aucun problème de ce genre avec le nouveau module turtle.

KhiCAS pour sa part ne termine pas le tracé à cause d'une erreur de mémoire.

Exemple n°4 : Sous le soleil exactement

Go to top

Plaçons-nous maintenant sous le soleil exactement, profitant ainsi de toutes ses couleurs :
Code: Tout sélectionner
from ttl_fix import *

from math import exp

turtle.speed(0)
turtle.pensize(1)
turtle.colormode(1.0)
for i in range(36):
  turtle.pencolor([exp(-.5 * ((i - k) / 12)**2) for k in (6, 18, 30)])
  for i in range(1, 5):
    turtle.forward(60)
    turtle.right(90)
  turtle.right(10)

try: turtle.show() #TI-83 Premium CE
except: pass


TI-83PCE/84+CE
turtle

TI-Nspire CX II
turtle

Casio
Graph 90+E

KhiCAS
NumWorks
TI-Nspire CX II CX

TI-83PCE/84+CE
ce_turtl

NumWorks
Casio
Graph 35+E II


Exemple n°5 : Escargot de lumière

Go to top

Nous voyons maintenant passer un escargot de lumière, notre premier usage de la méthode turtle.circle() :
Code: Tout sélectionner
from ttl_fix import *

from math import exp

turtle.speed(0)
turtle.pensize(1)
turtle.colormode(1.0)
turtle.penup()
turtle.goto(0, -20)
turtle.pendown()
for i in range(36):
  turtle.pencolor([exp(-.5 * ((i - k) / 12)**2) for k in (6, 18, 30)])
  turtle.circle(50 - i)
  turtle.right(10)

try: turtle.show() #TI-83 Premium CE
except: pass


TI-83PCE/84+CE
turtle

TI-Nspire CX II
turtle

Casio
Graph 90+E

KhiCAS
NumWorks
TI-Nspire CX II CX

TI-83PCE/84+CE
ce_turtl

NumWorks
Casio
Graph 35+E II


De nouveau une véritable catastrophe avec ce_turtl qui semble tracer n'importe quoi et pas ce qui est demandé.

C'est que la méthode turtle.circle() de ce_turtl nous trace ici des cercles ayant pour centre la position actuelle de la tortue. Alors que dans le standard, le cercle tracé passe par la position de la tortue.
Heureusement, le nouveau module turtle pour sa part se comporte enfin correctement et conformément au standard.

Exemple n°6 : Triangles de Sierpiński

Go to top

Revenons aux fractales et à la récursivité avec les triangles de Sierpiński :
Code: Tout sélectionner
from ttl_fix import *

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

turtle.speed(0)
turtle.pensize(1)
turtle.penup()
turtle.backward(109)
turtle.left(90)
turtle.backward(100)
turtle.right(90)
turtle.pendown()
turtle.pencolor("red")
sierp(6, 217)
turtle.penup()
turtle.forward(400)

try: turtle.show() #TI-83 Premium CE
except: pass


TI-83PCE/84+CE
turtle

TI-Nspire CX II
turtle

Casio
Graph 90+E

KhiCAS
NumWorks
TI-Nspire CX II CX

TI-83PCE/84+CE
ce_turtl

NumWorks
Casio
Graph 35+E II


À nouveau un décalage avec ce_turtl qui nous trace bêtement une bonne partie de la figure hors fenêtre, un tracé de plus ici très grossier avec le problème déjà évoqué de l'épaisseur.
Heureusement, le nouveau module turtle trace quant à lui à la perfection.

De nouveau un problème de mémoire avec KhiCAS empêchant d'achever le tracé.

Exemple n°7 : Casio Graph 90+E

Go to top

Accordons-nous une petite pause le temps d'une page de publicité à la gloire Casio Graph 90+E :
Code: Tout sélectionner
from ttl_fix import *

turtle.pencolor("black")
turtle.speed(0)
turtle.forward(40)
turtle.backward(100)
turtle.left(90)
turtle.forward(30)
turtle.right(60)
turtle.forward(60)
turtle.right(30)
turtle.forward(30)
turtle.penup()
turtle.forward(18)
turtle.right(90)
turtle.forward(60)
turtle.pendown()
turtle.right(30)
turtle.backward(30)
turtle.right(60)
turtle.forward(60)
turtle.pencolor("red")
turtle.penup()
turtle.goto(80,40)
turtle.right(140)
turtle.pendown()
turtle.circle(30)
turtle.penup()
turtle.goto(105,50)
turtle.pencolor("green")
turtle.pendown()
turtle.circle(-50)
turtle.penup()
turtle.pencolor("red")
turtle.right(21)
turtle.goto(60,20)
turtle.pendown()
turtle.circle(40,60)
turtle.penup()
turtle.pencolor("blue")
turtle.goto(-50,15)
turtle.setheading(0)
turtle.pendown()
turtle.write("CASIO")

try: turtle.show() #TI-83 Premium CE
except: pass


TI-83PCE/84+CE
turtle

TI-Nspire CX II
turtle

Casio
Graph 90+E

KhiCAS
NumWorks
TI-Nspire CX II CX

TI-83PCE/84+CE
ce_turtl

NumWorks
Casio
Graph 35+E II


Là avec ce_turtl c'est un festival, la page de publicité se fait littéralement censurer. 3 problèmes essentiels :
  • Absence de la méthode turtle.write() permettant d'écrire du texte à la position de la tortue, et donc absence du mot CASIO sur le rendu.
  • La méthode standard turtle.circle(r, a=360) permet de préciser l'angle au centre en 2ème argument et ainsi de tracer des arcs de cercle, l'omission de ce paramètre donnant par défaut un angle au centre de 360° et donc un cercle. C'est utilisé ici pour tracer le pied du 9 en rouge. Sauf que l'implémentation dans ce_turtl ne respecte pas le standard et ne gère pas ce 2ème argument. Notre script correctif intercepte le cas et empêche l'interruption du rendu sur une erreur, mais trace alors un cercle complet à la place.
  • La méthode standard turtle.circle(r, a=360) accepte de plus une valeur de rayon négative, inversant dans ce cas le sens de tracé. C'est utilisé ici pour tracé le 0 en vert. Sauf que ce_turtl ne comprend pas ce cas et ne trace alors rien du tout.
Le nouveau module turtle corrige les 2 premiers points.

La TI-Nspire CX II fait un peu moins bien, ne gérant pas le tracé d'arcs de cercle.

Notons une divergence du standard chez une bonne partie des modèles concernant la méthode turtle.write(). La norme est d'écrire le texte dans un rectangle horizontal prenant la position courante de la tortue comme sommet inférieur gauche. Or beaucoup d'implémentations utilisent le sommet supérieur gauche : le nouveau turtle pour TI-83 Premium CE Edition Python et compatibles, ainsi que les Casio Graph 35+E II et Graph 90+E.

Exemple n°8 : Sapin de Noël

Go to top

Passons maintenant au sapin de Noël d'Isabelle Vanacker:
Code: Tout sélectionner
from ttl_fix import *
from math import sqrt

def triangle(t):
  for i in range(4):
    turtle.forward(t/(i%4 == 0 and 2 or sqrt(2)))
    turtle.left(i==1 and 90 or not(i%2) and 135)

def etoiles():
  turtle.pencolor("yellow")
  turtle.pensize(2)
  for i in range(8):
    etoile(-60-30*(i%4)+(i>=4 and 220), (-80,10,-40,60)[i%4])
   
def etoile(x,y):
  turtle.up()
  turtle.goto(x,y)
  turtle.down()
  for i in range(12):
    turtle.forward(10)
    turtle.left(i%2 and -60 or 120)

turtle.up()
turtle.goto(0,60)
turtle.down()
turtle.pencolor("green")
turtle.pensize(5)
for i in range(4):
  triangle(50+20*i)
  turtle.up()
  turtle.goto(0,30-40*i)
  turtle.down()
turtle.pencolor("brown")
turtle.backward(10)
for i in range(4):
  turtle.forward(i%2 and 40 or 20)
  turtle.left(90)

etoiles()

try: turtle.show() #TI-83 Premium CE
except: pass


TI-83PCE/84+CE
turtle

TI-Nspire CX II
turtle

Casio
Graph 90+E

KhiCAS
NumWorks
TI-Nspire CX II CX

TI-83PCE/84+CE
ce_turtl

NumWorks
Casio
Graph 35+E II


Cette fois-ci sur KhiCAS cela ne va plus du tout, le sapin pousse complètement de travers...

Bizarrement ici aussi, La TI-Nspire CX II se met soudainement à ne plus respecter les instructions relatives à l'épaisseur du tracé, alors qu'elles marchaient plus haut...

Exemple n°9 : Supernova PhiX 177

Go to top

Partons justement chercher l'inspiration dans les étoiles, avec la supernova PhiX 177, et notre premier usage des méthodes de remplissage :
Code: Tout sélectionner
from ttl_fix import *

def poly_reg_a(l, a):
  h0 = turtle.heading()
  while True:
    turtle.forward(l)
    turtle.left(a)
    if abs(h0 - turtle.heading()) < .1:
      break

turtle.colormode(255)
turtle.pensize(2)
turtle.penup()
turtle.goto(-90,16)
turtle.pendown()
turtle.pencolor((246,89,164))
try:
  turtle.fillcolor((180,20,90))
  turtle.begin_fill()
except: pass
poly_reg_a(180, 160)
try:
  turtle.end_fill()
except: pass

try: turtle.show() #TI-83 Premium CE
except: pass


TI-83PCE/84+CE
turtle

TI-Nspire CX II
turtle

Casio
Graph 90+E

KhiCAS
NumWorks
TI-Nspire CX II CX


TI-83PCE/84+CE
ce_turtl

NumWorks
Casio
Graph 35+E II


Comme l'ensemble de la concurrence, le module ce_turtl ne gérait pas les méthodes de remplissage.
Et bien là nous sommes en plein sur ce qui fait à ce jour la supériorité et l'exclusivité de la solution turtle par Texas Instruments. Comme la TI-Nspire CX II le nouveau module turtle pour TI-83 Premium CE Edition Python et compatibles gère les méthodes de remplissage, un véritable régal pour les yeux et autant de stimulation supplémentaire pour inciter les élèves à approfondir leurs constructions ! :bj:

Les méthodes de remplissage si manquantes étant directement interceptées dans le code du script, ici c'est pour une autre raison que le tracé échoue sur KhiCAS : l'absence de la possibilité d'interroger l'orientation de la tortue via turtle.heading().

Exemple n°10 : Champ de zinnias en été

Go to top

Redescendons sur Terre, nous atterrissons au milieu d'un champ de zinnias en été :
Code: Tout sélectionner
from ttl_fix import *
from random import randint, seed

def rotate_list(l):
  l[1:],l[0] = l[0:-1],l[-1]

def poly_reg_a(l, a):
  h0 = turtle.heading()
  while True:
    turtle.forward(l)
    turtle.left(a)
    if abs(h0 - turtle.heading()) < .1:
      break

seed(33)
turtle.colormode(255)
turtle.pensize(1)
turtle.hideturtle()
turtle.speed(0)
c=[255,127,0]
cf=[127,255,0]
for k in range(18):
  turtle.penup()
  turtle.goto(randint(-200,120), randint(-100,100))
  turtle.pendown()
  turtle.pencolor(tuple(c))
  try:
    turtle.fillcolor(tuple(cf))
    turtle.begin_fill()
  except: pass
  poly_reg_a(80, 162)
  try:
    turtle.end_fill()
  except: pass
  rotate_list(c)
  rotate_list(cf)

try: turtle.show() #TI-83 Premium CE
except: pass


TI-83PCE/84+CE
turtle

TI-Nspire CX II
turtle

Casio
Graph 90+E

KhiCAS
NumWorks
TI-Nspire CX II CX


TI-83PCE/84+CE
ce_turtl

NumWorks
Casio
Graph 35+E II


Exemple n°11 : Courtepointe de grand-mère

Go to top

Envie de pique-niquer ou t'allonger un moment ? Quelle chance d'avoir emporté avec soi la courtepointe de grand-mère :
Code: Tout sélectionner
from ttl_fix import *

def rotate_list(l):
  l[1:],l[0] = l[0:-1],l[-1]

def poly_reg_a(l, a):
  h0 = turtle.heading()
  while True:
    turtle.forward(l)
    turtle.left(a)
    if abs(h0 - turtle.heading()) < .1:
      break

turtle.hideturtle()
turtle.speed(0)
turtle.pensize(1)
turtle.colormode(255)
c = [255, 127, 0]
for j in range(4):
  for i in range(4):
    turtle.penup()
    turtle.goto(i*88-172, j*85-142)
    turtle.pendown()
    turtle.pencolor(tuple(c))
    poly_reg_a(80, 140)
    rotate_list(c)

try: turtle.show() #TI-83 Premium CE
except: pass


TI-83PCE/84+CE
turtle

TI-Nspire CX II
turtle

Casio
Graph 90+E

KhiCAS
NumWorks
TI-Nspire CX II CX

TI-83PCE/84+CE
ce_turtl

NumWorks
Casio
Graph 35+E II


Exemple n°12 : Vitrail de Notre-Dame

Go to top

Et nous voici enfin devant le vitrail de Notre-Dame :
Code: Tout sélectionner
from ttl_fix import *
from math import sqrt

def rotate_list(l):
  l[1:],l[0] = l[0:-1],l[-1]

def reg_poly(l, n):
  for i in range(n):
    turtle.forward(l)
    turtle.left(360/n)

def square(l):
  reg_poly(l, 4)

turtle.pencolor(0,0,0)
turtle.colormode(255)
turtle.speed(0)
turtle.pensize(3)
turtle.hideturtle()
d=200
c=[0,255,127]
turtle.penup()
turtle.goto(-d/2,-d/2)
turtle.setheading(0)
turtle.pendown()
for i in range(8):
  try:
    turtle.fillcolor(tuple(c))
    turtle.begin_fill()
  except: pass
  square(d)
  try:
    turtle.end_fill()
  except: pass
  turtle.penup()
  turtle.forward(d/2)
  turtle.left(45)
  turtle.pendown()
  d/=sqrt(2)
  rotate_list(c)

try: turtle.show() #TI-83 Premium CE
except: pass


TI-83PCE/84+CE
turtle

TI-Nspire CX II
turtle

Casio
Graph 90+E

KhiCAS
NumWorks
TI-Nspire CX II CX


TI-83PCE/84+CE
ce_turtl

NumWorks
Casio
Graph 35+E II


Que le module ce_turtl ne colorie pas, c'est normal. Par contre il délire complètement sur le tracé, et là c'est un tout autre problème...
Heureusement, plus aucun problème avec le nouveau module turtle.




Conclusion

Go to top

Après l'accident ce_turtl qui était inutilisable en pratique, Texas Instruments nous opère un virage à 180° avec le nouveau module turtle pour TI-83 Premium CE Edition Python et compatibles.

La conformité au standard de turtle n'est certes pas parmi les meilleures, mais c'est sans comparaison avec ce que valait ce_turtl. La conformité est très proche de celle des TI-Nspire CX II, et de plus une bonne partie des défauts restants ne sont pas majeurs dans le sens où ils sont aisément contournables sans avoir à écrire de code conséquent.

Qui plus est Texas Instruments s'offre même le luxe d'aller jusqu'à inclure les méthodes de remplissage de formes, à ce jour une exclusivité toute concurrence confondue ! :bj:
Des possibilités et facilités de tracés largement accrues en conséquence, de quoi inviter encore plus les élèves à tester et créer ! :D
Nous nous devons toutefois de modérer légèrement ce dernier point.

Aucun problème sur TI-Nspire CX II, mais par contre sur TI-83 Premium CE Edition Python et compatibles la taille du heap fait qu'il ne faut pas abuser des méthodes de remplissage.

En effet à partir d'un appel .begin_fill(), l'ensemble des étapes intermédiaires de la tortue est stocké en mémoire afin de pouvoir en effectuer le remplissage suite au prochain appel .end_fill().

Des formes à remplir trop complexes ou trop nombreuses déclencheront une erreur de mémoire insuffisante, et les exemples précédents de remplissages les plus complexes n'en étaient pas bien loin.

C'est franchement dommage et rageant de devoir ainsi se brider dans l'exploitation de cette formidable possibilité... :'(




Téléchargements

Go to top


Source : https://education.ti.com/en/product-res ... 4ce-python
Lien vers le sujet sur le forum: Python turtle standard avec remplissage sur TI-83 Premium CE (Commentaires: 23)

Mise à jour HP Prime 2.1.14597 par Moravia

Nouveau messagede critor » 28 Nov 2021, 21:12

14690Début octobre, Moravia, entreprise tchèque désormais détentrice de la marque HP dans le domaine des calculatrices, avait publié une mise à jour HP Prime en version 2.1.14596.

Rien à voir avec la géniale mise à jour majeure du printemps dernier encore développée chez HP, ici nous étions sur quelque chose d'extrêmement mineur.

La seule correction apportée concernait un bug se produisant lorsque l'on travaillait sur une fonction LOGB() et effectuait un appel au moteur CAS.

Il paraît que c'est un cas d'utilisation fréquent aux Pays-Bas, l'un des principaux marchés ciblés par Moravia avec celui de l'Allemagne.

À côté de cela, d'autres bugs bien plus graves signalés au printemps dernier soit du temps où le développement était encore réalisé chez HP, n'étaient toujours pas corrigés. :mj:

On peut citer le mauvais affichage du terme de degré 0 dans les expressions de polynômes lorsque celui-ci vaut 1 ou -1, un affichage faux étant à notre sens bien plus grave qu'une absence de réponse, car induisant en erreur les utilisateurs les moins attentifs.

Ou encore l'interface de configuration de l'application Python qui bloque tout réglage de capacité heap supérieur à 16,384 Mio, et ce alors que la révision matérielle majeure HP Prime G2 de rentrée 2018 constitue maintenant la grande majorité des machines en service et a largement de quoi aller au-delà avec ses 256 Mio de RAM comme justement indiqué par la ligne juste en-dessous.

Ou encore les divers plantages plus ou moins aléatoires (freeze, reset, ou même écran bleu de crash) dans le contexte de l'application Python. Il est très fréquent d'avoir un reset lorsque l'on ouvre l'application, elle est clairement instable.

Et pour le coup ici, ces problèmes sont mondiaux.

Bref, des priorités de développement extrêmement discutables, et assez inquiétantes lorsque l'on voit les énormes efforts de mises à jour de la concurrence pour cette rentrée 2021. Nous avons classé la HP Prime 1ère lors de nos tests de rentrée QCC 2021, attention qu'à continuer comme cela à faire du sur place ou du quasi sur place maintenant plus de 6 mois après la mise à jour testée, la 1ère place ne durera pas éternellement... :#non#:

L'application Python enfin rajoutée l'année dernière avec des années de retard sur la concurrence, c'est très bien. Mais il ne faut pas s'arrêter là. Où sont les modules turtle ou encore matplotlib que même une Casio Graph 35+E II d'entrée de gamme monochrome est capable de faire tourner ?

Les commandes permettant de gérer des périphériques USB également c'est très bien. Mais ici encore il faut les mettre en pratique ; où est la bibliothèque de connectivité BBC micro:bit ?

14922Aujourd'hui, Moravia nous sort une nouvelle mise à jour HP Prime compilée le 25 novembre 2021, cette fois-ci en version 2.1.14597.

Tu peux déjà t'en douter, avec une incrémentation d'une unique unité du numéro de build, c'est probablement quelque chose d'extrêmement mineur.

Contrairement aux bonnes habitudes des développeurs HP :
  • ici le changelog accompagnant les téléchargements n'a pas été mis à jour, il est toujours daté du 28 avril 2021 et décrit donc les seules anciennes nouveautés de la version 2.1.14566 de l'année dernière.
  • et aucune annonce n'a été faite sur HP Museum non plus
Donc nous avons dû chercher par nous-mêmes, pendant plusieurs heures. Il y a sûrement quelque chose quelque part, mais nous n'avons trouvé strictement aucune amélioration.

Par contre, nous pouvons hélas te confirmer que tous les bugs décrits ci-dessus sont toujours présents, et tous les gros manques également. :mj:

Téléchargements :
Lien vers le sujet sur le forum: Mise à jour HP Prime 2.1.14597 par Moravia (Commentaires: 20)

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1094 utilisateurs:
>1066 invités
>22 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)