π
<-

question sdk graph 90+e/ portage CAS

Programmation et implémentation d'algorithmes.

Re: question sdk graph 90+e/ portage CAS

Unread postby parisse » 19 Jun 2018, 14:19

Nouvelle mise a jour, https://www-fourier.ujf-grenoble.fr/~parisse/casio/test.g3a.
Les variables sont dorenavant automatiquement sauvegardees quand on quitte la session, pour les restaurer il suffit de faire shift-Menu, Load script et charger le script lastvar.py.
La syntaxe Python devrait fonctionner. Je n'ai teste qu'un script tout simple, j'espere que ca marche. Il n'y a sans doute pas d'editeur Python pour la calc, mais on peut editer un script sur PC et l'envoyer a la calc, puis charger le script (shift-Menu Load script).
Si quelqu'un m'indique comment on allume un pixel sur la Casio et comment on peut lire sa valeur, je pourrais aussi activer set_pixel et get_pixel.
[Edit] ca semble etre GetVRAMAddress()

P.S: le repertoire https://www-fourier.ujf-grenoble.fr/~parisse/casio/ contient des archives de la toolchain (gcc 7.3 compile pour debian 9, ustl, tommath, libfxcg avec plusieurs bugs en moins et une ou deux fonctions manquantes en plus), ainsi que le source modifie de giac khicas.tgz.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 88.1%
 
Posts: 3699
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: question sdk graph 90+e/ portage CAS

Unread postby parisse » 19 Jun 2018, 19:28

Voila, get_pixel/set_pixel et draw_string sont disponibles. Par exemple, le mandelbrot en syntaxe Python :
Code: Select all
def fra1(X,Y,Nmax):
  w=2.7/X
  h=-1.87/Y
  Y=Y-1
  for y in range(ceiling(Y/2)+1):
    c = -2.1+i*(h*y+0.935)
    for x in range(X):
      z = 0
      for j in range(Nmax):
        if abs(z=z**2+c)>2:
          break
      set_pixel(x,y,5100*j+512)
      set_pixel(x,Y-y,5100*j+512)
      c = c+w;

Puis fra1(200,200,10) donne ca:
Image
Image
C'est tres lent sur l'emulateur. Je serais curieux de savoir combien de temps ca prend sur la calculatrice (il sera prudent de commencer par essayer fra1(50,50,10)).
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 88.1%
 
Posts: 3699
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: question sdk graph 90+e/ portage CAS

Unread postby Nemhardy » 19 Jun 2018, 19:55

J'ai testé la version donnée dans le post avant les images de fractales, en tout cas c'est propre et ça m'a l'air plutôt stable (par rapport aux quelques tests, certes pas très intenses encore, que j'ai pu faire jusque là… ). C'est du super boulot ! Merci pour ça ! :D

Au niveau de quelques "bugs" repérés pour l'instant, qui sont plutôt quelques soucis d'interface (et donc ne relevant peut être pas directement de ce que vous avez fait), et assez peu génants dans l'ensemble :

- Le "vidage de l'écran" fonctionne, mais le curseur semble partir un peu n'importe où : parfois au milieu de l'écran un peu dans le vide, parfois hors de la zone visible et on ne voit alors pas ce que l'on tape (mais presser [Exe] lors de la saisie en cours remet les choses en ordre).

- Quelques affichages un peu étonnant des messages d'erreur : Image
Hélas ça ne semble pas déterministiquement reproductible, et encore une fois, ce n'est pas vraiment très problématique. ^^

Pour la suite, et grapiller un peu d'espace encore, il devrait être possible de passer le catalogue en fichier "auxiliaire" contenant du texte, et de le charger en RAM en le lisant depuis la flash lorsque nécessaire par exemple. Je ne suis pas sûr que le gain soit particulièrement important, mais bon.

(Je vais essayer le script que tu proposes dans le post précédent, et chronométrer pour voir ce que ça donne… !)
Le support de la syntaxe Python avec de quoi faire des graphismes est prometteur également ! Ça va faire «monter la machine en gamme» tout ça ! ^^
Last edited by Nemhardy on 19 Jun 2018, 20:06, edited 1 time in total.
Je maintiens le portage d'Eigenmath pour les Casio monochromes, n'hésitez pas à y jeter un œil si ça vous intéresse ! :p
User avatar
NemhardyPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 48%
 
Posts: 45
Joined: 28 Dec 2014, 22:06
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: question sdk graph 90+e/ portage CAS

Unread postby parisse » 19 Jun 2018, 20:04

Oui, il y a des bugs dans le traitement des chaines de caracteres, ustl::string n'est pas completement compatible avec string, et la concatenation de caracteres/chaines C avec des ustl::string ne fonctionne pas correctement. Je me demande si le plus simple ne serait pas de reecrire une classe string.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 88.1%
 
Posts: 3699
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: question sdk graph 90+e/ portage CAS

Unread postby Nemhardy » 19 Jun 2018, 20:21

Alors quelques tests de vitesse d'affichage de la fractale :
fra1(50,50,10) prend ~ 6s
fra1(100,100,10) prend ~ 22s
fra1(200,200,10) prend ~ 1min28s

Quand on se rappelle que la cp400 met je ne sais pas combien de fois plus de temps pour juste faire tourner un algorithme de seuil de suite, ça reste raisonnable, même si loin du "temps réel"… ^^

Ceci dit, j'ai aussi remarqué la chose suivant : lorsque l'on quitte l'addin pour aller dans une autre application après avoir lancé le script Python pour afficher la fractale de Mandelbrot, à cause de la sauvegarde des variables, il se passe un certain temps (~15s) où la calculatrice mouline, sûrement pour écrire le fichier : ça n'est pas excessif, mais ça peut peut-être être gênant dans certains cas (examens, etc) : ça vaudrait peut être le coup de désactiver la sauvegarde par défaut des variables, en laissant la possibilité de l'activer lorsqu'on en a besoin. Enfin, les variables induites par le script sont peut être bien plus "grosses" que ce qu'une session "normale" d'utilisation engendre, donc à voir… ^^
Je maintiens le portage d'Eigenmath pour les Casio monochromes, n'hésitez pas à y jeter un œil si ça vous intéresse ! :p
User avatar
NemhardyPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 48%
 
Posts: 45
Joined: 28 Dec 2014, 22:06
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: question sdk graph 90+e/ portage CAS

Unread postby critor » 19 Jun 2018, 20:30

Très impressionnant, bravo ! :bj:
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 50.2%
 
Posts: 42137
Images: 16453
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: question sdk graph 90+e/ portage CAS

Unread postby parisse » 19 Jun 2018, 20:33

La sauvegarde des variables occupe peu de place, mais je soupconne que le bug des strings cree ce laps de temps. On va essayer de corriger ca...
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 88.1%
 
Posts: 3699
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: question sdk graph 90+e/ portage CAS

Unread postby Lephe » 19 Jun 2018, 21:08

J'arrive peut-être un peu tard, mais je n'ai pas tout suivi sur les fonctions de dessin. Est-ce une extension du module Python de la Graph 90+E (pourtant pas encore publiquement disponible) ou un port de Python complètement indépendant ?

En tous cas c'est très fort, bien joué. ^^
User avatar
LephePartenaire
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 16.8%
 
Posts: 387
Images: 42
Joined: 15 Jun 2018, 19:53
Gender: Male
Calculator(s):
MyCalcs profile

Re: question sdk graph 90+e/ portage CAS

Unread postby parisse » 19 Jun 2018, 21:39

Ni l'un ni l'autre :-) C'est la compatibilite de syntaxe Python dans Xcas, ou plutot dans KhiCAS ici. J'ai adopte les memes noms de commande que Numworks, si on a du Python compatible a plusieurs endroits, autant qu'il soit compatible aussi pour les graphiques. Je rajouterai peut-etre des fonctions de trace (draw_line par exemple).
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 88.1%
 
Posts: 3699
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: question sdk graph 90+e/ portage CAS

Unread postby Lephe » 19 Jun 2018, 21:49

Et donc on peut écrire des programmes dans une syntaxe compatible Python avec des fonctions formelles à disposition ? :~o
User avatar
LephePartenaire
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 16.8%
 
Posts: 387
Images: 42
Joined: 15 Jun 2018, 19:53
Gender: Male
Calculator(s):
MyCalcs profile

PreviousNext

Return to Programmation

Who is online

Users browsing this forum: ClaudeBot [spider] and 5 guests

-
Search
-
Social TI-Planet
-
Featured topics
Grand Concours 2024-2025 - Programmation Python
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
909 utilisateurs:
>896 invités
>6 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)