Page 1 of 1

PythonExtra v0.4.0 Bêta

Unread postPosted: 20 Apr 2025, 09:07
by SlyVTT
Hello,

juste un petit mot pour signaler la sortie de PythonExtra v0.4.0 Bêta.

Pour ceux qui ne sauraient pas ce qu'est PythonExtra, il s'agit d'une implémentation de MicroPython fonctionnant au dessus de gint, un unikernel permettant de coder des addins fonctionnant sur les machines Casio (avec écrans monochromes - série fx9860G et avec écrans couleurs - série fx-CG).

PythonExtra embarque la version 1.25.0 preview de MicroPython ainsi que divers modules qui ne sont pas proposés par la concurrence:
- une compatibilité avec le fx-CP400 / fx-CP400+E ou fx-CG500 (ClassPad) si jailbreaké avec HollyHock 2. Ouvrant enfin la voie au Python sur ces superbes machines, vu que Casio ne fait pas officiellement l'effort pour elles.
- un module gint qui permet d'avoir accès à des routines optimisées de rendu graphique et une gestion fine des événements claviers, et nouvellement des fontes de caractères et la gestion du TouchScreen du ClassPad.
- un module de compatibilité Numworks et Upsilon pour les fx-CG10 / 20 / 50 et Math+ (pas sur monochrome et ClassPad à ce stade)
- un module permettant l'accès au système de fichier (open(), write(), read() et compagnie)
- un moteur de gris pour les machines monochromes permettant d'utiliser 4 tons (blanc, gris clair, gris foncé, noir) au lieu de seulement 2 (noir, blanc) sur l'écran.

La version 0.4.0 est disponible pour téléchargement ici : PythonExtra-pe-0.4.0-beta.zip

Démo de Magical Meltdown tournant sur Math+ :



Images de PythonExtra tournant sur fx-CP400+E jailbreaké :

Image
Image
Image

Re: PythonExtra v0.4.0 Bêta

Unread postPosted: 23 Apr 2025, 12:56
by Adriweb
Merci pour l'info - c'est clairement du bon boulot qui a été fait ! :)

Re: PythonExtra v0.4.0 Bêta

Unread postPosted: 23 Apr 2025, 19:09
by SlyVTT
Merci Adrien :D

Re: PythonExtra v0.4.0 Bêta

Unread postPosted: 29 Apr 2025, 03:39
by batzaier
Français :
Bonjour, je rencontre des difficultés pour exécuter le code suivant en Python :
Code: Select all
from math import sqrt
from kandinsky import set_pixel

Color = (100, 150, 100)

Velocidad = int(input("Velocidad en x (m/s): "))
Altura = int(input("Altura sobre el suelo (m): "))

g = 9.8  # gravité

Tiempo = sqrt(2 * Altura / g)
i = 0
dt = Tiempo / 25  # incréments de temps

while i <= Tiempo:
    x = int(Velocidad * i)
    y = int(Altura - 0.5 * g * i * i)
    # Comme sur l’écran l’axe Y augmente vers le bas
    pantalla_y = 220 - y  # en supposant que l’écran fait 240 px de haut
   
    set_pixel(x, pantalla_y, Color)
   
    i += dt

Le programme me demande correctement les données initiales, mais il ne passe pas ensuite à l'affichage graphique. Je vous serais reconnaissant de m’aider à comprendre l’erreur commise ou de me proposer une solution possible pour que le code fonctionne comme prévu.
P.S. : J’admire votre travail.

English:
Hello, I’m having trouble running the following Python code:
Code: Select all
from math import sqrt
from kandinsky import set_pixel

Color = (100, 150, 100)

Velocidad = int(input("Velocidad en x (m/s): "))
Altura = int(input("Altura sobre el suelo (m): "))

g = 9.8  # gravity

Tiempo = sqrt(2 * Altura / g)
i = 0
dt = Tiempo / 25  # time steps

while i <= Tiempo:
    x = int(Velocidad * i)
    y = int(Altura - 0.5 * g * i * i)
   
    # Since on screen the Y-axis increases downward
    pantalla_y = 220 - y  # assuming the screen height is 240 px
   
    set_pixel(x, pantalla_y, Color)
   
    i += dt

The program correctly asks for the initial data, but then it doesn’t proceed to the graphical display. I would appreciate your help in understanding the error or finding a possible solution so that the code works as expected.
P.S.: I admire your work.

Re: PythonExtra v0.4.0 Bêta

Unread postPosted: 29 Apr 2025, 07:41
by SlyVTT
I haven't checked the content of the program by itself, but it is clear that if something is plot, it will not show (or at least will not remain on the screen) cause it is returning directly to the console (SHELL).

You need to stop the program at the end with a loop asking for a press to EXE for example :

while not keydown(KEY_EXE) : 1

so it becomes (also don't forget to add ion in imports)

Code: Select all
from math import sqrt
from kandinsky import set_pixel
from ion import keydown

Color = (100, 150, 100)

Velocidad = int(input("Velocidad en x (m/s): "))
Altura = int(input("Altura sobre el suelo (m): "))

g = 9.8  # gravity

Tiempo = sqrt(2 * Altura / g)
i = 0
dt = Tiempo / 25  # time steps

while i <= Tiempo:
    x = int(Velocidad * i)
    y = int(Altura - 0.5 * g * i * i)
   
    # Since on screen the Y-axis increases downward
    pantalla_y = 220 - y  # assuming the screen height is 240 px
   
    set_pixel(x, pantalla_y, Color)
   
    i += dt

while not keydown(KEY_EXE) : 1

Re: PythonExtra v0.4.0 Bêta

Unread postPosted: 03 May 2025, 11:54
by SlyVTT
Pour info, la Python Jam #2 de Planète Casio vient tout juste de se terminer.

Pour ceux que cela pourrait intéresser, nous avons eu 6 participations profitant de la plateforme PythonExtra (5 pour Graph 90+E ou Math+ et 1 pour ClassPad II).

Je vous invite à jeter un œil sur les participations (et à les tester), les résultats sont ici : https://www.planet-casio.com/Fr/forums/ ... emple.html

C'est impressionnant ce que l'on peut faire désormais avec du Python sur une calculatrice ...