Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Symbolibre : une calculatrice graphique formelle et libre
Lephenixnoir Hors ligne Administrateur Points: 18201 Défis: 142 Message

Symbolibre : une calculatrice graphique formelle et libre

Posté le 31/03/2019 21:55

Ceux d'entre vous qui connaissent feu le projet LibreCalc connaîtront aussi le principe. Force est de reconnaître que les calculatrices graphiques d'aujourd'hui se ressemblent d'année en année, et le matériel a du retard technologique sur, par exemple, les smartphones. En plus les logiciels ne sont pas libres (vous savez qu'on aime le libre sur Planète Casio). Alors peut-on faire mieux ? La réponse est oui !

Dans le cadre d'un projet de master à l'ENS de Lyon, un ancien utilisateur d'Omnimaga et moi avons lancé l'idée de construire une calculatrice graphique formelle libre. C'est ainsi que notre projet Symbolibre a fait travailler 25 élèves de Master pendant un an. L'année touche à sa fin mais le projet continue en-dehors des cours pour mener la conception à terme. Voyons ensemble ce qu'on a réussi à accomplir en un an !


À quelques broutilles près ça donne ça.


Matériel

À une ère moderne sied du matériel moderne ! Oublions les 512k de RAM que l'on a l'habitude d'utiliser pour les add-ins, notre ordinateur de bord est un Raspberry Pi Zero avec un processeur ARM à 1 GHz et 512M de RAM. Autant dire qu'il y a de la puissance de calcul sous le capot ! Ce Raspberry Pi n'a pas de fonctionnalités réseau, ce que le rend utilisable même en mode examen.

À cela nous joignons un écran couleur 320×240 connecté en SPI (pour économiser les pins pour le clavier), un clavier personnalisé imprimé sur un PCB agencé de façon hiérarchique à la Numworks, une batterie de 2000 mAh pour environ 20 heures d'autonomie écran allumé, et une coque imprimée en 3D. Les boutons sont aussi imprimés en 3D


Écran, Raspberry Pi Zero, batterie, et l'on aperçoit l'interface d'alimentation.


Système d'exploitation

Pas question d'en réécrire un de zéro, on tourne donc sous un bon vieux GNU/Linux, Gentoo pour être précis. On l'accompagne de Wayland avec pour l'instant Sway comme compositeur, même si ce n'est pas définitif ; et les applications sont développées avec Qt. Tout cela s'installe aisément sur une carte SD de 8 Go tout en laissant la majorité de l'espace disponible pour d'autres données. Beaucoup d'autres données.

L'idée est que l'environnement doit être le plus léger possible pour que la calculatrice soit très réactive. Linux nous aide beaucoup à monter le logiciel (notamment avec les drivers de l'écran et du clavier), mais il y a tout une suite qui vient avec et qu'il faut contrôler. Actuellement la calculatrice met 25 secondes environ à démarrer, un poil plus que les toutes nouvelles TI-Nspire II CX et CX CAS. Le système se lance sur un écran Plymouth suivi d'une connexion automatique à l'environnement graphique et l'affichage du menu principal.

Applications

Les applications sont donc développées en C++ avec Qt, et embarquent Giac comme moteur de calcul formel (le même que sur la HP Prime !). Les programmes servent surtout d'interfaces graphiques pour accéder aux fonctionnalités mathématiques, que l'on ne recode pas. Giac le fait déjà et très bien ! On peut voir ça dans cette capture de la feuille de calcul prise sur un PC.


Feuille de calcul avec clavier simulé ; jusque-là, pas d'erreur de maths.

On a également une application de tracé de fonctions (un indispensable du lycée), qui exploite allègrement l'écran couleur et les performances du Raspberry Pi Zero. Elle affiche sans pression plusieurs courbes en résolution complète et en couleur, de façon parfaitement fluide !


Tracé de trois fonctions sur la calculatrice.

Enfin, et pas des moindres, il y a un IDE supportant Python 3 et tous ses modules, ainsi que des restrictions du Basic Casio et TI-Basic ! L'interface minimale cache une coloration syntaxique, insertion automatique de snippets et exécution dans un terminal. Tout est fait pour programmer aisément.

Alors où est-ce qu'on va ?

Le prototype que je vous ai montré au début de cet article n'est que le début du projet. Comme vous pouvez le voir, la calculatrice n'est pas encore complète. Les défis ont cependant été relevés, et après un an, nous espérons bien concrétiser ce projet et diffuser la calculatrice !

Comme le veut la tradition des projets d'informatique à l'ENS de Lyon, la calculatrice sera présentée lors de la deuxième partie des présentations de projets à l'ENS de Lyon, le Jeudi 4 Avril de 9 heures à 10 heures (il y a deux groupes, nous passons sur la deuxième moitié). Divers professeurs, chercheurs de l'ENS, étudiants ou lycéens seront présents ; si vous vous embêtez un Jeudi matin n'hésitez pas à passer nous voir !

Vous retrouverez tous les détails (et plus, comme notre sondage posé à des lycéens !) sur notre site web symbolibre.org. Stay tuned!


Précédente 1, 2, 3, 4, 5, 6, 7 Suivante
Ne0tux Hors ligne Membre d'honneur Points: 3403 Défis: 265 Message

Citer : Posté le 25/04/2019 19:36 | #


Merci pour ces précisions, je commence à monter une "wishlist" sur mon site de fournitures électroniques favoris !

Rien ne presse, je vais attendre que vous aillez tranquillement fini vos examens et eu le temps de boucler le premier proto.

Je reviendrai aux nouvelles d'ici là, ce projet est tellement prometteur ! En attendant bon courage pour les exams' !
Mes principaux jeux : Ice Slider - CloneLab - Arkenstone

La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Mastermokemo Hors ligne Membre Points: 603 Défis: 5 Message

Citer : Posté le 25/04/2019 22:00 | #


C'est dingue, même si je n'ai presque rien compris à la description de la calculatrice, elle me donne très envie.

J'ai vraiment hâte qu'elle sorte pour de vrai. A vrai dire je ne connais pas le python mais j'aimerais tellement mais je n'ai pas de raison valable à ça donc si ce projet abouti, je serais le plus heureux des hommes

PS : Ce qui me ravi le plus c'est que la calculatrice couleur à l'air assez puissante pour la programmation donc plus de problème avec la fx cp400. Plus de gros jeu en couleurs pourront sortir
Bon, dernier programme (je suppose) est en développement mais je ne vous en dis pas plus ... ... Sinon ... ça va bien vous ?
Lephenixnoir Hors ligne Administrateur Points: 18201 Défis: 142 Message

Citer : Posté le 26/04/2019 10:14 | #


Merci ! Ça fait plaisir d'entendre toute cette motivation.

Python c'est universel et quasi-indispensable si tu codes un jour dans ta vie professionnelle. Il n'y a pas de bonne raison de ne pas l'apprendre !

PS : Ce qui me ravi le plus c'est que la calculatrice couleur à l'air assez puissante pour la programmation donc plus de problème avec la fx cp400. Plus de gros jeu en couleurs pourront sortir

Tu ne crois pas si bien dire, la fx-CP 400 est super bridée. (Mais vu ta signature tu le sais déjà !)

Par contre, la Symbolibre fait tout pour faciliter la programmation. On pourrait faire tourner un émulateur GameBoy sans trop de problèmes dessus, je dis ça je dis rien...
Kikoodx Hors ligne Membre Points: 2150 Défis: 11 Message

Citer : Posté le 26/04/2019 15:25 | #


Des essais que j'avais fait sur mon propre RPi (2, plus puissant que le Zero mais ça donne une idée) gngb tourne très bien, les différents émulateurs NES testés sont à 3-4 FPS, et Chocolate DOOM est incroyable.
En vue de la sortie future de cette calculatrice je travaille activement mon Python avec le module curses, je suis impatient
2+2=5
Perdu
Mastermokemo Hors ligne Membre Points: 603 Défis: 5 Message

Citer : Posté le 26/04/2019 19:55 | #


Juste une petite question : tu dis que la mémoire RAM de la calculatrice est de 512MB. Je voudrais avoir une comparaison avec la fx cp 400 mais sur le site officiel c'est pas clair
Du genre ça :
Mémoire RAM / Flash ROM: 500kB/5,5 MB + 24MB
Le problème étant que je n'ai pas fait des étude poussées en informatique et donc je ne sais pas ce que ça signifie
Si quelqu'un aurait la gentillesse de me traduire ceci, ça pourrait me faire une petite idée de la puissance de la bête
Bon, dernier programme (je suppose) est en développement mais je ne vous en dis pas plus ... ... Sinon ... ça va bien vous ?
Lephenixnoir Hors ligne Administrateur Points: 18201 Défis: 142 Message

Citer : Posté le 26/04/2019 21:22 | #


Mémoire RAM / Flash ROM: 500kB/5,5 MB + 24MB

Littéralement, ça veut dire qu'il y a 0.5 M de RAM et 5.5+24 M de mémoire morte (soit probablement 32 M au total), donc 5.5 M sont utilisables pour le stockage utilisateur.

C'est comme pour la Graph 35+E, qui possède 4M de ROM mais dont seul 1.5M est utilisable par l'utilisateur. Ou la Graph 35+E II, qui a 8M de ROM au total et donc 3M sont utilisables par l'utilisateur.

Les chiffres que je connais sont un peu différentes. À ma connaissance, la Classpad 400 a :
- 2M de RAM, mais dont seulement un quart est accessible à l'utilisateur
- 64M de RAM, dont 5.5M sont accessibles à l'utilisateur

La calculatrice Symbolibre a 512M de RAM dont probablement 450M disponibles (le reste est utilisé par Linux et le bureau), et actuellement 8G de ROM... ça dépend de la taille de la carte SD que tu mets dedans.
Mastermokemo Hors ligne Membre Points: 603 Défis: 5 Message

Citer : Posté le 27/04/2019 10:16 | #


Merci beaucoup, elle est donc surpuissante (la symbolibre)!
Je ne savais pas que l'on pouvait mettre une carte sd dedans mais c'est bon à savoir

J'ai vraiment vraiment hâte qu'elle sorte, une puissance pareille c'est effrayant
Bon, dernier programme (je suppose) est en développement mais je ne vous en dis pas plus ... ... Sinon ... ça va bien vous ?
Lephenixnoir Hors ligne Administrateur Points: 18201 Défis: 142 Message

Citer : Posté le 27/04/2019 10:49 | #


Mastermokemo a écrit :
Je ne savais pas que l'on pouvait mettre une carte sd dedans mais c'est bon à savoir

En fait tu es obligé parce que le système d'exploitation (Linux) est dessus !
Mastermokemo Hors ligne Membre Points: 603 Défis: 5 Message

Citer : Posté le 28/04/2019 09:36 | #


ah ok merci
Bon, dernier programme (je suppose) est en développement mais je ne vous en dis pas plus ... ... Sinon ... ça va bien vous ?
Ityt Hors ligne Membre Points: 216 Défis: 0 Message

Citer : Posté le 28/04/2019 11:51 | #


Bravo
salut je m'appelle sacha et je viens du bourg-palette et voici mon meilleur ami pikachu
Mactul Hors ligne Membre Points: 699 Défis: 0 Message

Citer : Posté le 10/05/2019 19:01 | #


@Mastermokemo

Moi aussi j'ai vraiment hate !
Mes programmes
Cliquer pour enrouler

Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ

Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Lephenixnoir Hors ligne Administrateur Points: 18201 Défis: 142 Message

Citer : Posté le 10/05/2019 19:03 | #


Merci ! J'ai modifié la première photo pour vous donner une meilleure idée de la bête avec les boutons
Mactul Hors ligne Membre Points: 699 Défis: 0 Message

Citer : Posté le 10/05/2019 19:04 | #


super cool !
Mes programmes
Cliquer pour enrouler

Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ

Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Kikoodx Hors ligne Membre Points: 2150 Défis: 11 Message

Citer : Posté le 10/05/2019 19:15 | #


C'est joli ! Est-ce que tu pourrais nous faire une image avec l'écran allumé ou ce n'est pas possible pour le moment ?
2+2=5
Perdu
Redeyes Hors ligne Membre Points: 561 Défis: 7 Message

Citer : Posté le 10/05/2019 19:35 | #


Quel merveilleux projet! Dommage que je n'ai pas pu assister à la présentation, j'ai dû passer à côté d'un grand quelque chose. En tout cas je suis impatient de le voir se concrétiser!
~Raisonnance...
Manolo Hors ligne Membre Points: 910 Défis: 13 Message

Citer : Posté le 11/05/2019 11:14 | #


waouuuuuh !!!
Hackcell Hors ligne Membre Points: 1344 Défis: 11 Message

Citer : Posté le 13/06/2019 12:53 | #


Pour celles et ceux qui ne suivent pas le flux RSS de symbolibre, ni le topic sur TI-P, le raport final qui parle de long en large de la symbolibre est sortie
https://symbolibre.org/2019/06/02/rapport-de-la-premiere-annee-de-symbolibre/
Disperseur Hors ligne Membre Points: 1784 Défis: 1 Message

Citer : Posté le 13/06/2019 13:24 | #


Très impressionnant ! Je ne pensais pas que le projet avait autant d'ampleur. J'espère profondément que le projet aboutira. En tout cas bravo !
Mes meilleurs jeux
N'hésitez pas, notez !

Jeux BasicCasio / CBasicCasio:
-World Tank War II
-Apollo 11
-GeoGraph ! Élu Jeu du Mois de Mars 2019 !
Jeux C:
-Planétarium 2 ! Chef d'Oeuvre !


√(2+2-2+2-2+2+2-2-2-2) = 0
Lephenixnoir Hors ligne Administrateur Points: 18201 Défis: 142 Message

Citer : Posté le 13/06/2019 13:27 | #


Oui, ça c'est le rapport qu'on a rendu à notre superviseur de projet. Ça représente une de nos UEs à valider pour le master, donc faut pas déconner avec non plus

Ajouté le 15/06/2019 à 22:57 :
Critor a publié son test de notre calculatrice après être venu à Lyon début Avril. Jetez-y un oeil si vous voulez avoir une meilleure idée des performances réelles de l'objet

Test Symbolibre, la calculatrice libre avec CAS et Python ! (tiplanet.org)
Tituya Hors ligne Rédacteur Points: 982 Défis: 16 Message

Citer : Posté le 16/06/2019 00:53 | #


J'ai lu tout l'article de Critor, et vu comment la calculatrice est présentée, ça ne peut qu'être admiré comme projet ! De très bonnes performances ainsi que beaucoup de languages la rendent vraiment intéressante
Bravo
Bretagne > Reste du globe
(Et de toute façon, vous pouvez pas dire l'inverse grâce à Bzh)



Lephenixnoir Hors ligne Administrateur Points: 18201 Défis: 142 Message

Citer : Posté le 16/06/2019 01:02 | #


Merci ! Le support des langages de programmation est un des points clés de Linux. Tous les programmes qui ne nécessitent pas d'interface graphique peuvent être installés facilement.

Ça veut dire que les interactions avec le Python des ordinateurs sont par exemple bien plus solides. Tous les modules de base de l'implémentation mainline de Python sont disponibles, donc les scripts sont bien plus souvent compatibles. Pour le dessin, je pense qu'on pourrait installer pygame...
Précédente 1, 2, 3, 4, 5, 6, 7 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
Pour coloriser votre code, cliquez ici.
Sinon cliquez sur le bouton ci-dessous.
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2020 | Il y a 29 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd