Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Symbolibre : une calculatrice graphique formelle et libre
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 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
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 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...
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 16/06/2019 10:20 | #


Le support de curses pour les interfaces devrait dépasser PyGame assez facilement, et pour le dessin il y a PyOpenGL.
Pygame est surtout lent.
ouais ouais
Breizh_craft Hors ligne Modérateur Points: 1157 Défis: 7 Message

Citer : Posté le 16/06/2019 10:42 | #


Au niveau des permission, ça se passe comment ? L'utilisateur « normal » est root ou un utilisateur standard ? Et dans ce second cas, pourra-t-il passer root (je suppose que oui ou qu'il y aura un truc du genre, pour pouvoir installer des softs, mais comment ça se passe ?) ?
Breizh.pm – Un adminsys qui aime les galettes.
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 16/06/2019 14:24 | #


Kikoodx a écrit :
Le support de curses pour les interfaces devrait dépasser PyGame assez facilement, et pour le dessin il y a PyOpenGL.
Pygame est surtout lent.

Je ne connaissais pas, merci pour la référence !

Breizh_craft a écrit :
Au niveau des permission, ça se passe comment ? L'utilisateur « normal » est root ou un utilisateur standard ? Et dans ce second cas, pourra-t-il passer root (je suppose que oui ou qu'il y aura un truc du genre, pour pouvoir installer des softs, mais comment ça se passe ?) ?

L'utilisateur normal n'est pas root, et a priori il ne peut pas le devenir on-calc. Il faut se brancher à un PC et chroot ou modifier la config à la main. Le problème c'est que la sécurité du mode examen est complètement inatteignable si on est root sur la machine. Pour installer des applications à la add-ins, on les transfère dans l'équivalent de ~/.local. Pour installer des paquets, on a des mises à jour de l'OS ; un exécutable SUID qui copie les archives dans un dossier système lors du transfert ; elles sont dépaquetées au démarrage.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Critor En ligne Administrateur Points: 2571 Défis: 18 Message

Citer : Posté le 16/06/2019 16:10 | #


Pour le mode examen, la sécurité ne vaut déjà pas grand chose sur certains modèles déjà existants.

Donc pas la peine de vous casser inutilement la tête là-dessus.
Mettez juste un clignotant activable/désactivable logiciellement et qui vide ou change le /home/ ou encore l'utilisateur, et ça suffira largement.
Mactul Hors ligne Membre Points: 699 Défis: 0 Message

Citer : Posté le 21/06/2019 20:56 | #


j'ai une petite question qui me viens comme ça,
dans l'article il est écrit que la calto à un temps de boot de 25 secondes (peu pour un PC, mais énorme pour une calto)
Est-ce que ce temps va augmenter ou plutôt diminuer ?
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...
Breizh_craft Hors ligne Modérateur Points: 1157 Défis: 7 Message

Citer : Posté le 21/06/2019 21:00 | #


Mactul a écrit :
j'ai une petite question qui me viens comme ça,
dans l'article il est écrit que la calto à un temps de boot de 25 secondes (peu pour un PC, mais énorme pour une calto)
Est-ce que ce temps va augmenter ou plutôt diminuer ?


J'ai cru comprendre que toutes les caltos équivalentes étaient aussi lentes, ou presque. Y'a que les vieilles caltos qui s'allument instantanément.
Breizh.pm – Un adminsys qui aime les galettes.
Mactul Hors ligne Membre Points: 699 Défis: 0 Message

Citer : Posté le 21/06/2019 21:07 | #


une g35 g35+E c'est une vieille calto
je suis décu
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...
Critor En ligne Administrateur Points: 2571 Défis: 18 Message

Citer : Posté le 21/06/2019 21:58 | #


Non Breizh, y'a que les TI-Nspire qui sont lentes à démarrer, dans une mesure comparable à la Symbolibre.

Le reste de la moitié haute de la gamme n'a pas ce problème : HP Prime, Casio fx-CP400, Casio Graph 90+E, NumWorks.
Breizh_craft Hors ligne Modérateur Points: 1157 Défis: 7 Message

Citer : Posté le 21/06/2019 22:09 | #


Mactul a écrit :
une g35 c'est une vieille calto
je suis décu


La G35, oui, carrément. La 35+E moins déjà

Critor a écrit :
Non Breizh, y'a que les TI-Nspire qui sont lentes à démarrer, dans une mesure comparable à la Symbolibre.

Le reste de la moitié haute de la gamme n'a pas ce problème : HP Prime, Casio fx-CP400, Casio Graph 90+E, NumWorks.



Ah bon. Bah. Faudrait voir si y'a moyen de mettre la Symbolibre en hibernation, voire veille ou veille hybride (veille puis hibernation au bout d'un certain temps).
Breizh.pm – Un adminsys qui aime les galettes.
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 22/06/2019 00:00 | #


Il ne va pas probablement pas augmenter car la stack logicielle est déjà bien montée. On aimerait le faire diminuer, mais c'est difficile de donner des garanties.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Captainluigi Hors ligne Membre Points: 815 Défis: 1 Message

Citer : Posté le 22/06/2019 08:58 | #


Lephenixnoir a écrit :
Il ne va pas probablement pas augmenter car la stack logicielle est déjà bien montée. On aimerait le faire diminuer, mais c'est difficile de donner des garanties.

Et que Les gens n'oublient pas que ça tourne sous linux et que linux est fait d'abbord pour les PC
Les bons artistes copient, les grands artistes volent. Picasso
Synthwave/Musique électro 80s sur ma chaine Youtube

Jouez à Mario sans arrêt sur votre Casio !
Cliquez pour découvrir
Cliquez pour recouvrir
Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

Citer : Posté le 22/06/2019 09:07 | #


Et que le RPi zéro EST un PC
Mactul Hors ligne Membre Points: 699 Défis: 0 Message

Citer : Posté le 22/06/2019 10:06 | #


c'est bien pour ça que j'ai écrit:
peu pour un PC

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 En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 22/06/2019 16:35 | #


Captainluigi a écrit :
Et que Les gens n'oublient pas que ça tourne sous linux et que linux est fait d'abbord pour les PC

Ah, c'est pas vrai ça. Plutôt carrément pas même. Linux supporte un très, très grand nombre de systèmes embarqués et est conçu pour ça également.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 28/06/2019 12:04 | #


Bonjour, j'ai une question un peu bête mais j'ai quand même envie de la poser
Pensez-vous que Dwarf Fortress sera jouable sur cette calculatrice (avec une carte minuscule sans histoire avec tous les paramètres au minimum) ? Merci d'avance (et encore désolé).
A défaut de Dwarf Fortress, qu'en est-il de NetHack ?

Edit : le site de Symbolibre n'a pas l'air en forme.
ouais ouais
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 28/06/2019 15:04 | #


Il faudrait tester les perfs, mais je pense qu'il y a de quoi les faire tourner, ouais. Ça n'engage qu'une estimation à la louche des specs du jeu mais ça devrait aller

Effectivement, le site est down. Je vais voir ça...

Ajouté le 28/06/2019 à 17:14 :
Bon donc pour le site c'est la climatisation dans la salle où est le serveur qui a lâché... ça finira par revenir.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Rader Hors ligne Membre Points: 234 Défis: 0 Message

Citer : Posté le 26/07/2019 18:40 | #


Le clavier sera-t-il reconnu par les logiciels comme un clavier 'classique' (genre comme un clavier AZERTY, QWERTY)?
Est-ce que le Java sera supporté?
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 26/07/2019 18:58 | #


Le clavier est un clavier "classique", mais la keymap ne peut pas être azerty... tout simplement car les touches ne sont pas disposées de façon appropriée !

Par contre, côté applications, il y a des touches pour les lettres, un Shift... et appuyer sur Alpha+A produit le même effet qu'appuyer sur la touche A du clavier d'un PC.

Pour Java ce n'est malheureusement pas la peine d'y penser, la puissance nécessaire est beaucoup trop importante.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Captainluigi Hors ligne Membre Points: 815 Défis: 1 Message

Citer : Posté le 26/07/2019 19:22 | #


Vous avez planifié des tests ( vous savez , genre bêta testeurs ) ?
Les bons artistes copient, les grands artistes volent. Picasso
Synthwave/Musique électro 80s sur ma chaine Youtube

Jouez à Mario sans arrêt sur votre Casio !
Cliquez pour découvrir
Cliquez pour recouvrir
Lephenixnoir En ligne Administrateur Points: 24146 Défis: 170 Message

Citer : Posté le 26/07/2019 19:46 | #


On pourra peut-être la faire tester à une classe de lycéens ! Ce qui serait génial.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
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
: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 v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 116 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