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 Hors ligne Administrateur Points: 24510 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 Hors ligne Administrateur Points: 24510 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 (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Captainluigi Hors ligne Membre Points: 816 Défis: 1 Message

Citer : Posté le 26/07/2019 20:51 | #


Lephenixnoir a écrit :
On pourra peut-être la faire tester à une classe de lycéens ! Ce qui serait génial.


Je peux participer ? (je vois jure , je la testerais nuit et jour ?

Ajouté le 26/07/2019 à 20:52 :

Et je ferais des vidéos du projet ...
Les bons artistes copient, les grands artistes volent. Picasso

Passé ici il y a peu. ಥ‿ಥ

Chaîne youtube
Cliquez pour recouvrir

Vieux projets et jeux sur Casio
Cliquez pour recouvrir
Lephenixnoir Hors ligne Administrateur Points: 24510 Défis: 170 Message

Citer : Posté le 26/07/2019 20:55 | #


Rien n'est encore posé ! Je ne sais pas comment ni avec qui ça se passerait.

Cela étant dit, si tu veux la tester, tu es le bienvenu ! Le temps qu'on fasse un prototype qui tienne matériellement debout, tu pourras en construire une. Sinon, si tu passes à Lyon, utiliser la nôtre.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Captainluigi Hors ligne Membre Points: 816 Défis: 1 Message

Citer : Posté le 26/07/2019 21:12 | #


Je suis à Paris malheureusement , donc j'attendrai le prototype

Ajouté le 26/07/2019 à 21:13 :
Bon courage à vous
Les bons artistes copient, les grands artistes volent. Picasso

Passé ici il y a peu. ಥ‿ಥ

Chaîne youtube
Cliquez pour recouvrir

Vieux projets et jeux sur Casio
Cliquez pour recouvrir
Lephenixnoir Hors ligne Administrateur Points: 24510 Défis: 170 Message

Citer : Posté le 26/07/2019 21:20 | #


Merci ! Je viens à Paris de temps en temps, si une occasion se présente je te dirai.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Captainluigi Hors ligne Membre Points: 816 Défis: 1 Message

Citer : Posté le 26/07/2019 21:32 | #


Lephenixnoir a écrit :
Merci ! Je viens à Paris de temps en temps, si une occasion se présente je te dirai.


Ok !
Les bons artistes copient, les grands artistes volent. Picasso

Passé ici il y a peu. ಥ‿ಥ

Chaîne youtube
Cliquez pour recouvrir

Vieux projets et jeux sur Casio
Cliquez pour recouvrir
Rader Hors ligne Membre Points: 234 Défis: 0 Message

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


Woa Lyon c'est a genre 700 - 800 km de chez moi...
Yatis Hors ligne Membre Points: 581 Défis: 0 Message

Citer : Posté le 11/12/2019 10:57 | #


Salut
Est-ce que Symbolibre est toujours en développement où c'est trop tendu avec les études à côté ?
Qu'en est-il des objectifs pour cette année ?
Lephenixnoir Hors ligne Administrateur Points: 24510 Défis: 170 Message

Citer : Posté le 11/12/2019 13:27 | #


Salut ! Merci de poser la question. C'est toujours en développement, c'est juste qu'avec le M2 c'est pas rapide, surtout en période d'examens.

Sur cette année, on veut travailler sur des choses comme :
• Purifier la base de code existante et la publier (ça fait longtemps qu'on en parle mais l'administration ça traaaaîne)
• Avoir un modèle solide et détaillé pour la gestion du calcul mathématique, qui est à la fois du code existant (Giac) et du code nouveau (interaction entre les applications), qui expose à la fois des aspects simples (lycée) et des aspects complexes pas intuitifs (calcul formel), et dont l'architecture est bien moins subtile que ça en a l'air.
• Construire un prototype plus sérieux autour d'un PCB qui nécessite moins d'assemblage.

L'année prochaine, je serai en césure notamment pour travailler là-dessus donc il y aura bien plus d'activité.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Critor Hors ligne Administrateur Points: 2668 Défis: 18 Message

Citer : Posté le 11/12/2019 14:42 | #


... et rajouter un mode examen avec diode clignotante.
Lephenixnoir Hors ligne Administrateur Points: 24510 Défis: 170 Message

Citer : Posté le 11/12/2019 14:58 | #


Critor a écrit :
... et rajouter un mode examen avec diode clignotante.

Eh oui... on n'y coupe plus désormais !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Captainluigi Hors ligne Membre Points: 816 Défis: 1 Message

Citer : Posté le 12/12/2019 20:31 | #


Petite question : Il est codé en quoi son OS ( en Python , en C ) ?
Les bons artistes copient, les grands artistes volent. Picasso

Passé ici il y a peu. ಥ‿ಥ

Chaîne youtube
Cliquez pour recouvrir

Vieux projets et jeux sur Casio
Cliquez pour recouvrir
Lephenixnoir Hors ligne Administrateur Points: 24510 Défis: 170 Message

Citer : Posté le 12/12/2019 20:32 | #


L'OS est Linux, donc ça on l'a pas codé. Les applications sont codées en C++ avec Qt.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 12/12/2019 20:39 | #


De même, j'ai quelques questions :
1) serait il possible d'intégrer un IDE pour programmer en C/C++ directement sur la calculatrice ? (pour créer des applications pour la Symbolibre, ou des add-ins pour d'autres modèles).

2) Quels ports mettrez vous sur la calculatrice ? Un jack 2.6 comme sur Casio ?
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Lephenixnoir Hors ligne Administrateur Points: 24510 Défis: 170 Message

Citer : Posté le 12/12/2019 20:49 | #


Pour programmer en C/C++, oui c'est possible, mais ça va pas compiler très vite.

Pour l'instant on n'a que du port mini USB pour relier à un PC (et à l'alim). Si on veut mettre des ports en plus, il faudra souder les composants sur le PCB.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 12/12/2019 20:54 | #


Je vois ! Du coup l'ajout de périphériques est assez libre ! Je verrais bien un port usb normal, ca serait pratique pour plein de choses ! (ou alors laisser l'utilisateur faire le choix de rajouter des ports, ce qui serait plus l'esprit, je suppose )
Sinon, est-ce que le système linux est utilisable directement ? Genre est ce qu'on peut ouvrir une console ?
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Lephenixnoir Hors ligne Administrateur Points: 24510 Défis: 170 Message

Citer : Posté le 12/12/2019 20:56 | #


En vrai, pour l'ajout de ports, le plus compliqué c'est de tout relier sur le PCB. Mais si on le fait avec les bons plans, après c'est facile.

Oui Linux est utilisable directement, tu as vraiment un bureau classique sauf que c'est un Raspberry Pi derrière.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Breizh_craft Hors ligne Modérateur Points: 1171 Défis: 7 Message

Citer : Posté le 12/12/2019 20:58 | #


Suffit de faire de l'USB OTG et hop
Breizh.pm – Un adminsys qui aime les galettes.
Lephenixnoir Hors ligne Administrateur Points: 24510 Défis: 170 Message

Citer : Posté le 12/12/2019 20:59 | #


Oui on a un USB OTG. Mais ça te donne pas un jack facilement, enfin je crois pas...
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Breizh_craft Hors ligne Modérateur Points: 1171 Défis: 7 Message

Citer : Posté le 12/12/2019 21:02 | #


Pourquoi faire un jack quand t'as un USB OTG ? Tu peux brancher n'importe quel appareil USB, ou n'importe quel adaptateur.
Breizh.pm – Un adminsys qui aime les galettes.
Lephenixnoir Hors ligne Administrateur Points: 24510 Défis: 170 Message

Citer : Posté le 12/12/2019 21:03 | #


Pour mettre un casque ou des écouteurs. Il y a certes des adaptateurs mais je suis pas sûr que tout le monde en ait. D'où le "facilement" dans mon message précédente si tu veux.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (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 152 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