Nous te parlons régulièrement d'
Omega, le
firmware tiers ultime pour ta calculatrice
NumWorks, développé et testé par
Quentin Guidee et ses non moins illustres collaborateurs :
Omega permet en effet d'améliorer grandement les possibilités de ta
NumWorks et ce même en mode examen. Citons entre autres :
- la réactivation du moteur de calcul littéral que NumWorks avait introduit dans sa version 1.2 pour le supprimer dans sa version 11, et son extension avec désormais la dérivation symbolique
- une bibliothèque de constantes physiques
- plusieurs applications intégrées supplémentaires :
- tableau périodique des éléments
- calculatrice RPN
- la gestion d'applications additionnelles que tu installes et supprimes quand tu veux, à ce jour :
Parmi les applications externes disponibles à ce jour, citons notamment :
- Nofrendo, émulateur de console de jeux Nintendo NES
- Peanut-GB, émulateur de console de jeux Nintendo Game Boy
- HexEdit, éditeur hexadécimal
- KhiCAS par Bernard Parisse, enseignant-chercheur à l'Université de Grenoble.
Basée sur Xcas, son logiciel intégré de mathématiques, cette application étend les capacités mathématiques de ta NumWorks au niveau d'une HP Prime, bénéficiant du moteur de calcul formel GIAC avec notamment la possibilité de construire automatiquement des tableaux d'étude de fonction avec indications d'éléments de démarche !
Elle est de plus programmable sous deux syntaxes au choix, Xcas ou Python. Son implémentation Python inclut des bibliothèques graphiques compatibles avec celles de NumWorks (kandinsky), TI-Nspire CX II et Casio Graph 90/35+E II, ainsi que des commandes de tracé à la Scratch/Logo pour réinvestir les acquis de collège !
En prime KhiCAS intègre même un tableur, application faisant jusqu'à présent cruellement défaut dans le firmware officiel de la NumWorks.
Nombre de fonctionnalités parfaitement légitimes puisque disponibles en mode examen pour les candidats ayant choisi des modèles concurrents, un nivellement par le haut de l'égalité des chances entre candidats !
Aujourd'hui l'équipe
Omega nous sort sa version
1.22, construite sur la version
15.3.1 du
firmware officiel
Epsilon.
Les mises à jour sont comme à l'habitude disponibles pour l'ensemble des différentes plateformes gérées, bien évidemment calculatrice
NumWorks mais également navigateur
web,
smartphone Android et console de jeux
Nintendo 2DS/3DS.
Découvrons ensemble les dernières améliorations apportées par
Omega 1.22.
Commençons par l'écran d'accueil.
Les icônes d'applications additionnelles si installées pouvaient jusqu'à présent être mal affichées. C'est désormais corrigé dans
Omega.
Par rapport à ses concurrentes, la calculatrice
NumWorks est embêtante dans le sens où il n'y a pas de moyen rapide de lancer une application précise. Pas de raccourci indiqué, et l'écran n'étant pas tactile tu dois sélectionner toi-même l'application ciblée avec les touches fléchées, en tenant en prime compte de la sélection qui reste par défaut sur l'application courante, et de l'ordre des applications qui varie de plus en fonction de la langue.
Omega 1.22 t'introduit de nouveaux raccourcis dans le genre de ceux de l'application
KhiCAS. Pour lancer rapidement une application depuis cet écran, il te suffira de taper la touche
shift
puis une touche du pavé numérique.
Question d'habitude, la position de chaque touche du pavé numérique est la même que la position de l'application correspondante dans le menu :
7
8
9
4
5
6
1
2
3
0
.
Par exemple, pour lancer rapidement la 1
ère application, ici
Calculs, c'est le raccourci
shift
7
.
Passons maintenant aux fonctionnalités transversales, c'est-à-dire concernant l'ensemble des applications
NumWorks officielles à l'exception du
Python et des
Paramètres.
Il t'est maintenant possible d'utiliser la notation de Lagrange plus usuelle au lycée, lorsque tu demandes des dérivées, ta saisie une fois validée étant transformée en un appel à la fonction
diff(). Par exemple, une saisie
f(x)'
deviendra
diff(f(x),x,x)
dans l'historique de calculs.
Mais attention dans ce cas à bien parenthéser correctement, ainsi qu'au fait que la dérivation est dans ce cas systématiquement effectuée par rapport à la variable
x.
Normalement sur la
NumWorks, commencer une saisie par un opérateur infixé ou postfixé t'insérait automatiquement un
ans, plaçant donc automatiquement le dernier résultat en tant qu'opérande de gauche, permettant ainsi à la fois de saisir plus rapidement et d'éviter certaines erreurs de syntaxe. C'est par exemple le cas de la touche de multiplication
×
entre autres.
Mais pour une raison que nous ignorons, cette logique n'était toutefois pas uniformément respectée par
NumWorks. La touche similaire
×10^x
de multiplication par une puissance de 10 n'adoptait pas ce comportement. Logique donc très différente entre ces deux touches de multiplication, susceptible d'induire des erreurs et de nuire à la bonne compréhension et donc prise en main de la machine.
C'est dorénavant corrigé dans
Omega.
La
NumWorks ne proposait jusqu'à présent que deux façons de créer une matrice :
- la fonction identity(n) pour une matrice identité donc diagonale et forcément carrée
- pour tous les autres cas la saisie intégrale des éléments de la matrice, certes en écriture naturelle, mais quand même bien pénible au-delà des dimensions usuelles de 2×2 ou 3×3 au lycée.
Omega 1.22 vient avantageusement te compléter cela avec une nouvelle fonction
kmat(lignes,colonnes,valeur)
, te permettant cette fois de remplir rapidement une matrice créée avec les dimensions de ton choix !
Le module de tracé par pixels
kandinsky présente une fonction d'affichage de texte
draw_string() qui n'est que très partiellement documentée dans la boîte à outils.
En réalité 2 paramètres optionnels de couleur sont autorisés selon la spécification complète suivante :
draw_string("text",x,y,couleur_text,couleur_fond)
Dans l'application
Paramètres,
NumWorks te permettait de choisir une taille de police de caractères pour l'application
Python. Tu avais le choix entre la police historique renommée
Grande et une police
Petite.
Mais ce paramètre n'était effectif que sur l'éditeur de script et sur la console. Les affichages de texte via
draw_string() continuaient eux à utiliser la grande police.
Omega 1.22 t'intègre une
solution initialement codée et soumise par
redgl0w, te rajoutant un nouveau paramètre optionnel à la fonction
draw_string(), te permettant enfin de choisir la taille de police.
Voici donc la nouvelle spécification :
draw_string("text",x,y,couleur_text,couleur_fond,taille_police)
Testons rapidement les valeurs attendues par ce dernier paramètre à l'aide d'un script :
- Code: Select all
from kandinsky import *
for k in range(3):
draw_string("size " + str(k), 0, 19*k, (255,0,0), (0,255,255), k)
Donc finalement 2 valeurs au choix :
- 0 par défaut pour la grande police pouvant utiliser jusqu'à 18 pixels de hauteur
- 1 ou toute autre valeur non nulle pour la petite police pouvant utiliser jusqu'à 14 pixels de hauteur
Concernant maintenant le module
ion, la boîte à outils te présente une liste de constantes associées aux différentes touches clavier, permettant entre autres de tester leur appui avec la fonction
keydown().
Mais franchement, quand tu ne te souvenais pas du nom exact de la constante ciblée ou n'avais tout simplement pas envie de t'en taper la fastidieuse saisie au clavier en respectant les majuscules ainsi que le tiret bas, qu'est-ce que c'était lourd d'avoir à chercher le bon choix parmi une liste de 46 touches, qui plus est nommées en anglais et triées selon ce nommage...
Dès
juillet 2020,
redgl0w ici encore avait codé et soumis une solution à ce problème, hélas non intégrée par l'équipe
NumWorks.
Omega 1.22 lui fait pour sa part honneur en intégrant sa superbe solution, te supprimant donc la liste de touches du module
ion pour la remplacer par quelque chose d'intuitif, le
Key selector.
Une fois validé, tu as juste à taper la touche souhaitée et cela te saisira automatiquement la constante associée !
kandinsky a hélas l'inconvénient d'être de loin l'une des solutions
Python graphiques les plus pauvres sur calculatrices.
Juste de quoi allumer ou interroger des pixels, remplir des rectangles et écrire du texte.
Tout autre primitive dont tu avais besoin devait donc être codée dans ton script, ce qui avec une mémoire de tas
(heap) de seulement
32 Kio bride d'autant tes possibilités et libertés pour le reste de ton script.
On peut de plus déplorer l'absence de primitives tout sauf triviales à coder de façon optimale, comme par exemple pour le tracé d'un segment.
Dès
avril 2020,
redgl0w encore une fois, avait codé une fonction
draw_line() à rajouter au module
kandinsky, solution hélas jamais intégrée ni imitée par l'équipe
NumWorks.
Lauryy06 vient tout juste de la compléter avec ajout dans la boîte à outils, et cette solution améliorée est dès maintenant intégrée par l'équipe
Omega.
En voici la spécification et de suite un exemple d'utilisation :
draw_line(x1,y1,x2,y2,color)
- Code: Select all
from kandinsky import *
screen_w, screen_h = 320, 222
for d in range(0, 60, 2):
y = 102 + 2*d
draw_line(0, d, screen_w - 1, y, (255, 0, 255))
draw_line(screen_w - 1, d, 0, y, (0, 0, 255))
L'application intégrée de tableau périodique des éléments
Atomic bénéficie pour sa part d'une refonte intégrale.
Au menu un passage au
flat design pour l'affichage, ainsi que de nouvelles couleurs pour les familles d'éléments chimiques.
L'affichage est également plus léger, n'indiquant plus que les propriétés essentielles : nombre de protons, nombre de nucléons, masse molaire.
Grosse nouveauté en contrepartie, une liste bien plus étendue de propriétés est maintenant accessible en validant l'élément choisi avec
OK
comme indiqué en légende en bas d'écran !
Si malgré tout tu n'aimais pas cette nouvelle application intégrée
Atomic, l'équipe
Omega te laisse le choix d'installer l'application additionnelle
Periodic. Elle t'apporte elle aussi le tableau périodique des éléments, mais en conservant pour sa part l'ancien affichage. Elle l'améliore même avec ici le gros avantage de pouvoir exporter les données de l'élément sélectionné dans le presse papier via la touche
OK
, et donc les réutiliser facilement et rapidement dans n'importe quelle autre application !