π
<-
Chat plein-écran
[^]

Test Symbolibre, calculatrice libre avec CAS (giac) + Python

Test Symbolibre, calculatrice libre avec CAS (giac) + Python

Unread postby critor » 15 Jun 2019, 20:43

La première calculatrice graphique française fut la
LibreCalc
en 2014. Il s'agissait d'un projet de calculatrice graphique visant à avoir un matériel ouvert et un code source libre, développé par deux ingénieurs Rennais.

Le projet fut abandonné brutalement contre l'avis de la communauté début 2015, dès les premières rumeurs d'introduction du mode examen, évoquant un manque d'intérêt de la part des enseignants, ainsi qu'une soi-disante impossibilité de rester sur un projet ouvert dans le contexte du mode examen. Deux arguments que la
NumWorks
a largement infirmés depuis.

A notre avis ce qui plombait réellement fin 2014 encore toute chance de succès de la
LibreCalc
, c'est qu'au-delà de son matériel et de son système d'exploitation
Linux
, elle n'avait rien à offrir, n'apportant strictement rien à l'enseignement. Les vidéos de démo mettaient tristement en avant ce qui était présenté comme un , mais qui bizarrement reproduisait au pixel près l'interface très inférieure de la
TI-81
, son ainée de 14 ans... C'était bien la pleine de se donner le mal de passer sur du matériel ouvert et du code libre, pour reproduire en moins bien ce que faisait déjà
Texas Instruments
. Sans compter que dans le contexte d'une commercialisation, le constructeur historique n'aurait certainement jamais laissé passer ça.

Mais des échecs naissent parfois les grandes victoires.
Sébastien "Lephénixnoir" Michelland
, administrateur de , et
Nicolas Chappe
, ancien membre
Omnimaga
, tous deux très affectés à l'époque par cet abandon, ont décidé de lancer un projet similaire, le projet
Symbolibre
. Notons qu'il ne reprend pas le code de la
LibreCalc
, et que par rapport aux prix actuels chez la concurrence la
Symbolibre
vise le créneau du milieu de gamme
(~80€)
.

Symbolibre
est donc le projet d'étude de l'équipe de pas moins de 29 personnes qu'ils ont formée avec leurs camarades étudiants et pilotée, en première année de à l'.

1095410956Nous voici donc enfin à l'
ENS de Lyon
afin de découvrir la nouvelle calculatrice graphique française
Symbolibre
que nous t'avions déjà présentée.

Nous en profitons pour remercier l'équipe
Symbolibre
d'avoir bien voulu s'adapter à nos disponibilités en nous permettant de découvrir la calculatrice
Symbolibre
en avant-première, soit avant la présentation publique du projet.

10965Une fois dans le bâtiment de l'
ENS
, nous croisons une vitrine exposant une sélection d'innovations technologiques du XXè siècle, entre autres des calculatrices justement :
  • une calculatrice électronique
    Pocket Computer PC-1430
    de 1985 par le constructeur
    Sharp
    , plus précisément une calculatrice scientifique programmable en
    Basic
  • une calculatrice mécanique manuelle
    Curta
    par le constructeur liechtensteinois
    Continenta AG Mauren
    , plus précisément la
    Curta type II
    de 1954 puisque l'on y note la possibilité d'entrer des nombres ayant jusqu'à 11 chiffres significatifs au lieu de 8 sur la
    Curta type I
  • une calculatrice mécanique électrique
    C116/2
    de 1957 par le constructeur allemand
    Olympia Werke AG
10964109661097210973

De quoi nous mettre en bonne condition pour ce qui va suivre. ;)

10926Même jusque dans l'ascenseur nous trouvons de quoi nous mettre l'eau à la bouche. :D

Quelle émotion, mon coeur bat la chamade. Cela me rappelle quand j'enseignais encore en collège jusqu'en 2011, avec les petits Sixièmes qui après leurs recherches Internet racontaient que j'avais inventé une calculatrice. C'était mignon... Mais là pour le coup c'est une véritable invention, et nous sommes tout excités à l'idée d'assister pour la première fois à une telle naissance.

Et nous voici maintenant enfin arrivés auprès de la bête, nous allons donc pouvoir voir quels enseignements l'équipe a tirés de l'échec du projet
LibreCalc
, et ce qu'elle a à nous proposer avec
Symbolibre
.


Sommaire :
Go to top




1) Tour du propriétaire :

Go to top

109291102411025Commençons par le clavier. Le prototype accédé ici en avant-première n'était pas encore muni de ses 45 touches clavier, puisqu'elles venaient tout juste d'être reçues.

Mais il reste parfaitement fonctionnel, et en cas de besoin tu pourras revenir te référer aux images d'illustration ci-dessous :
10941

Notons juste que l'on commence très fort niveau adéquation à l'enseignement scolaire français, puisque le clavier dispose enfin de touches dédiées aux instructions de programmation les plus courantes. Plus besoin de s'embêter à aller les chercher dans des sous-menus ! :bj:

1093410929Le boîtier non définitif à ce jour est un petit peu encombrant par rapport aux calculatrices de poche auxquelles tu es habitué(e), et les larges bordures entourant l'écran qui apparaît alors tout petit ne sont pas du meilleur effet.
10930109311093210933

10938Le boîtier est aussi assez épais.

Nous n'avons pas emporté notre balance, mais l'ensemble nous paraît relativement léger, donc il doit y avoir belle une marge d'amélioration possible. Il faudra juste doser le tout correctement afin de conserver aussi bas que possible le risque de casse dans le contexte scolaire hostile. Une autre possibilité serait aussi d'opter pour un écran plus grand.

Nous notons sur la tranche supérieure un interrupteur d'alimentation, ainsi qu'un port
micro-USB
.

109351093610937




2) Démarrage et Linux :

Go to top

10939Dès l'actionnement de l'interrupteur d'alimentation, la calculatrice commence à démarrer son système
Linux
embarqué. Cela lui demande un certain temps, une 40aine de secondes. C'est déjà un peu moins que ce qu'exigent les
TI-Nspire CX
. Notons l'écran de démarrage graphique de
Plymooth
qui, de façon fort bienvenue, nous fait patienter pendant le chargement en animant le symbole mathématique de l'infini. ;)

On peut aussi si tu préfères maintenir une touche pendant le démarrage pour réobtenir l'écran texte et voir un petit peu mieux ce qui se passe lors du démarrage de cette distribution
Linux Gentoo
choisie sous la direction de
Nicolas
:

109781100211001Ce n'est pas du tout son mode de fonctionnement normal, mais une fois la machine démarrée on peut utiliser la combinaison permettant de basculer sur le terminal texte
(à condition de trouver les bons équivalents des touches)
et faire joujou directement avec
Linux
. Comme tu peux le voir ci-contre, la commande free nous précise que la calculatrice ne manque pas de mémoire de travail, avec pas moins de
430,36 Mio
libres pour une capacité de
479,54 Mio
. ;)

Matériellement, on peut donc conjecturer
512 Mio
de capacité RAM
(mémoire vive)
.




3) Affichage et applications intégrées :

Go to top

10940Repassons en fonctionnement normal sur le terminal graphique. Nous voici donc à l'écran d'acccueil. Tu as peut-être eu l'impression en fin de démarrage sur la vidéo ci-dessus, plus précisément au lancement de l'environnement graphique
sway
, que la zone d'affichage se rétrécissait verticalement. Effectivement nous disposons d'un écran
320×240
pixels, mais l'écran d'accueil et les applications
Symbolibre
n'utilisent que
320×220
pixels. Les 20 premières lignes de l'écran sont en fait réservées pour l'affichage futur d'une barre d'état.

On apprécie la finesse du pixel. Niveau qualité de l'écran on regrettera par contre qu'il ne soit pas anti-reflets contrairement à certains excellents écrans de la concurrence.

L'écran d'accueil nous présente donc 5 applications que nous allons explorer ensemble :
  1. Calcul
  2. Graphique
  3. IDE
  4. Paramètres
  5. Éteindre

Un bon début, même si manqueront encore à ce jour pour la France quelques essentiels, comme statistiques, probabilités et suites numériques.




4) Application Calcul :

Go to top

1094310944Première application d'importance pour une calculatrice,
Calcul
est déjà très évoluée. Développée sous la supervision d'
Aymeric Walch
, elle interface
GIAC
, le moteur de calcul formel du logiciel libre
Xcas
par
Bernard Parisse
. Tu peux donc déjà faire du calcul exact, littéral et même formel comme tu le confirmeras ci-contre! :bj:

Mais cela ne veut pas dire pour autant qu'il n'y a pas eu du travail conséquent. Notons en effet que nous y disposons déjà d'un historique des calculs, que les expressions et leur simplification sont affichées en écriture naturelle ce qui n'est pas un problème simple, et même la saisie des expressions à évaluer s'effectue déjà en écriture naturelle ce qui est encore moins simple ! :o

Bref, une très belle interface pour
GIAC
! :bj:




5) Application Graphique :

Go to top

10959Autre application d'importance pour une calculatrice graphique,
Graphique
, là encore développée en
Qt
sous la supervision d'
Aymeric
, adopte une interface par onglets très intuitive comparable à la
NumWorks
. :)

On peut toutefois regretter que l'onglet actif ne soit pas toujours visuellement évident avec les couleurs choisies.

1096110960Les différents onglets nous permettent donc de définir jusqu'à 3 fonctions, de configurer la fenêtre graphique puis de l'afficher.

10962Ce dernier onglet affichant la fenêtre graphique est codé autour du
widget
Qt
QCustomPlot
, avec plusieurs qualités remarquables par rapport à la concurrence.

Par exemple nous avons des étiquettes numériques venant expliciter les graduations tout le long de chaque axe. :)

Notons aussi que les graduations restent affichées en bordure si jamais l'origine tombe hors fenêtre, ce qui évite à l'utilisateur de se retrouver perdu comme sur d'autres modèles. :)

Mais ce n'est pas tout, il ne faut pas croire que tout ce qu'il y a de bon a déjà été inventé pour les calculatrices graphiques. Tu te souviens de l'aberration d'autres modèles où lorsque tu as le curseur sur un graphe, tu dois taper
pour passer au graphe suivant, et ce même si le graphe suivant est au-dessus ? De façon ici beaucoup plus intuitive, les touches
et
te permettront de basculer le curseur non pas vers le graphe précédent ou suivant, mais vers le graphe qui se situe au-dessus ou en-dessous du graphe courant ! :bj:

Et puisque nous y sommes, le curseur de graphe nous permet de constater la formidable puissance de la machine, le défilement de la fenêtre graphique étant parfaitement fluide, sans le moindre indice visible de retraçage des graphes lorsque le curseur sort de la fenêtre ! :bj:

De même, la fenêtre graphique peut être défilée horizontalement ou verticalement et même zoomée en toute fluidité ! :bj:

Une application
Graphique
qui arrive encore à innover après plus de 30 ans de calculatrices graphiques, bravo ! :bj:




6) Application IDE :

Go to top

109481094710946Voici donc maintenant
IDE
, l'application de programmation, thème transversal au lycée français, conçue par le groupe de
Maxime Darrin
.

Créons un nouveau fichier, l'application nous propose alors d'en choisir le type :
  1. Texte
  2. Python
  3. OCaml
  4. TI Basic
  5. Casio Basic
Pas moins de 4 langages sont donc gérés par cette application, dont les langages interprétés
TI / Casio
historiques pour faciliter la transition des élèves vers le
Python
! :bj:

10949Le
Python
va fait l'objet d'un point séparé. A part cela, notons que l'éditeur dispose bien évidemment de tout ce qu'il faut, numérotation des lignes, coloration syntaxique et aide à la saisie des instructions ! :bj:




7) Application Paramètres :

Go to top

1095810957Et enfin nous avons l'habituelle application
Paramètres
, permettant de choisir la langue, régler la luminosité de l'écran, le délai d'extinction, ainsi que de configurer le comportement du moteur de calcul
(résultats exacts ou décimal, notation scientifique, écriture naturelle...)
.




8) Python :

Go to top

10979Pour tester plus en profondeur le
Python 3.6.6
de
Symbolibre
, nous allons repasser sur la console
Linux
.

Selon la commande help("modules"), nous avons droit à un
Python
exhaustif. Avec pléthore de modules ici illustrés seulement jusqu'à la la lettre G, il distance toute la concurrence avec au mieux sa petite 10aine de modules ! :bj:
10977109801098110982

On pourra par contre regretter de ne trouver aucun module graphique, ce qui aurait été bien utile pour le nouveau programme de Physique-Chimie Seconde rentrée 2019.

  1. 147+
    modules : Symbolibre
  2. 13
    modules : module externe
    TI-Python pour TI-83 Premium CE
  3. 8
    modules :
    TI-83 Premium CE Edition Python
    +
    NumWorks
    +
    Casio Graph 35+E II / 35+E/USB / 75/85/95 / fx-9750GII / fx-9860G/GII
    +
    TI-Nspire
    + module externe
    TI-Python pour TI-83 Premium CE
  4. 3
    modules :
    Casio Graph 35+E II / 90+E / fx-CG50




10996Nous notons entre autres la présence essentielle du module
cmath
apportant les fonctions complexes, et donc la gestion des nombres complexes pour les actuelles Terminales S / STI2D / STL (SPCL) d'une part, futures option Maths expertes en série générale et spécialité Physique-Chimie-Maths en série STI2D.

  1. Symbolibre
    +
    NumWorks
    +
    Casio Graph 35+E II / 35+E/USB / 75/85/95 / fx-9750GII / fx-9860G/GII
    +
    TI-Nspire
    + module externe TI-Python pour TI-83 Premium CE avec nombres et fonctions complexes
  2. Casio Graph 35+E II / 90+E / fx-CG50
    avec nombres complexes
  3. TI-83 Premium CE Edition Python
    + module externe
    TI-Python pour TI-83 Premium CE




Regardons maintenant plus précisément le contenu de ces différents modules, à l'aide du script suivant :
Code: Select all
def sstr(obj):
  try:
    s=obj.__name__
  except:
    s=str(obj)
    a=s.find("'")
    b=s.rfind("'")
    if a>=0 and b!=a:
      s=s[a+1:b]
  return s

def isExplorable(obj):
  s=str(obj)
  return s.startswith("<module '") or s.startswith("<class '")

def explmod(pitm,pitmsl=[],reset=True):
  global curline
  if(reset):
    curline=0
    pitmsl=[sstr(pitm)]
  hd="."*(len(pitmsl)-1)
  spath=".".join(pitmsl)
  c=0
  for itms in sorted(dir(pitm)):
    c=c+1
    try:
      itm=eval(spath+"."+itms)
      print(hd+itms+"="+str(itm))
      if isExplorable(itm):
        pitmsl2=pitmsl.copy()
        pitmsl2.append(itms)
        c=c+explmod(itm,pitmsl2,False)
    except:
      print(hd+itms)
  if c>0:
    print(hd+"Total: "+str(c)+" item(s)")
  return c


10990Si l'on explore par exemple le module
math
avec explmod(math), on obtient pas moins de
55
élements, soit nettement plus que les au mieux
41
de la concurrence ! :bj:
109871098810989

  1. 55
    éléments :
    Symbolibre
  2. 41
    éléments :
    NumWorks
    +
    Casio Graph 35+E II / 35+E/USB / 75/85/95 / fx-9750GII / fx-9860G/GII
    +
    TI-Nspire
    + module externe
    TI-Python pour TI-83 Premium CE
  3. 28
    éléments :
    TI-83 Premium CE Edition Python
    + module externe
    TI-Python pour TI-83 Premium CE
  4. 25
    éléments :
    Casio Graph 35+E II / 90+E / fx-CG50




10986Si par contre on explore maintenant le module
builtins
avec explmod(builtins), on ne trouve bizarrement que
152
éléments, soit nettement moins que la concurrence. Nous avons toutefois omis de prendre note de ce qui pouvait bien manquer.

  1. 218
    éléments :
    TI-Nspire
  2. 204
    éléments :
    Casio Graph 35+E II / 35+E/USB / 75/85/95 / fx-9750GII / fx-9860G/GII
    +
    TI-Nspire
  3. 192
    éléments :
    TI-83 Premium CE Edition Python
  4. 191
    éléments : module externe
    TI-Python pour TI-83 Premium CE
  5. 190
    éléments : module externe
    TI-Python pour TI-83 Premium CE
  6. 188
    éléments :
    NumWorks
  7. 175
    éléments :
    Casio Graph 35+E II / 90+E / fx-CG50
  8. 152
    éléments :
    Symbolibre




10995Pour en apprendre davantage sur l'implémentation, explorons le module
sys
avec explmod(sys). Malheureusement la commande finit par partir en récursion infinie.
1099010991109921099310994

10985En allégeant un petit peu le script, on arrive à estimer
85
éléments, ce qui est déjà bien plus que ce qu'offre la concurrence. :bj:

  1. 85
    éléments :
    Symbolibre
  2. 15
    éléments :
    TI-83 Premium CE Edition Python
    +
    TI-Nspire
    + module externe
    TI-Python pour TI-83 Premium CE
  3. 12
    éléments :
    Casio Graph 35+E II / 35+E/USB / 75/85/95 / fx-9750GII / fx-9860G/GII
    +
    TI-Nspire
  4. 0
    élément :
    NumWorks
    +
    Casio Graph 35+E II / 90+E / fx-CG50




10997Tant que nous avons le module
sys
sous la main, remarquons que sys.maxsize==2**31-1, les nombres entiers sont donc codés nativement sur 32 bits
(1 bit de signe)
. Et que comme sys.maxsize+1 ne retourne pas d'erreur, le support des entiers longs est donc actif.



Intéressons-nous maintenant à la mémoire de travail à l'aide du script suivant :
Code: Select all
def sizeenv():
  s=0
  import __main__
  for o in dir(__main__):
    try:s+=size(eval(o))
    except:pass
  return s
def size(o):
  s,t=0,type(o)
  if t==str:s=49+len(o)
  if str(t)=="<class 'function'>":s=136
  if t==int:
    s=24
    while o:
      s+=4
      o>>=30
  if t==list:
    s+=64
    for so in o:s+=8+size(so)
  return s
def mem(v=1,r=1):
  try:
    l=[]
    try:
      l+=[r and 793+sizeenv()]
      if v*r:print(" ",l[0])
      l+=[0]
      l+=[""]
      l[2]+="x"
      while 1:
        try:l[2]+=l[2][l[1]:]
        except:
          if l[1]<len(l[2])-1:l[1]=len(l[2])-1
          else:raise(Exception)
    except:
      if v:print("+",size(l))
      try:l[0]+=size(l)
      except:pass
      try:l[0]+=mem(v,0)
      except:pass
      return l[0]
  except:return 0


Malheureusement, le processus
Python
se voit assassiné à peine terminée l'allocation de son premier bloc mémoire. Cela nous permet toutefois une estimation, nous disposons donc au moins de
268,435 Mo
pour l'exécution de nos scripts, quantité astronomique par rapport à la concurrence ! :bj:

  1. 268,435+ Mo
    :
    Symbolibre
  2. 2,049 Mo
    :
    TI-Nspire
  3. 1,033 Mo
    :
    Casio Graph 90+E / fx-CG50
  4. 257,63 Ko
    :
    Casio Graph 35+E / 35+USB/75/95 SH4 / fx-9750/9860GII SH4
  5. 100,554 Ko
    :
    Casio Graph 35+E II
  6. 31,893 Ko
    :
    Casio Graph 35+E II / 35+USB/75/85/95 SH3 / fx-9750GII SH3 / fx-9860G/GII SH3
  7. 22,914 Ko
    : module externe
    TI-Python pour TI-83 Premium CE
  8. 19,918 Ko
    : module externe
    TI-Python pour TI-83 Premium CE
  9. 19,550 Ko
    :
    TI-83 Premium CE Edition Python
  10. 16,233 Ko
    : calculatrice
    NumWorks




Enfin, terminons en voyant les performances. Commençons dans le cadre des nombres entiers avec le script suivant :
Code: Select all
try:
  from time import *
except:
  pass

def hastime():
  try:
    monotonic()
    return True
  except:
    return False

def genseed(ndigits):
  nmax,s,k=5*10**(ndigits-1),0,1
  while s<nmax:
    s+=k
    k*=2
  return s

def genarr(ndigits):
  sd,arr=genseed(ndigits),[]
  for k in range(1,ndigits):
    for j in range(ndigits):
      t=sd%10**k
      arr.extend([t,-t,10**k-t,t-10**k])
      sd=sd//10+(sd%10)*10**(ndigits-1)
  arr.extend([sd,-sd])
  return arr

def sortarr(arr,sdiff):
  segs=[0,len(arr)-1]
  while len(segs):
    iref=segs[0]
    for k in range(segs[0],segs[1]+1):
      if sdiff*(arr[k]-arr[iref])>0:
        t=arr[iref]
        arr[iref]=arr[k]
        arr[k]=arr[iref+1]
        arr[iref+1]=t
        iref+=1
    if iref>=segs[0]+2:
      segs.extend([segs[0],iref-1])
    if iref<=segs[1]-2:
      segs.extend([iref+1,segs[1]])
    segs.pop(0)
    segs.pop(0)
  return arr

def test(l,n):
  timed=hastime()
  start,stop,sdiff,arr=0 or timed and monotonic(),1,-1,[]
  arr.extend(genarr(l))
  for k in range(n):
    arr.extend(sortarr(arr,sdiff))
    sdiff=-sdiff
  stop=timed and monotonic() or 1
  return stop-start,len(arr),arr[0],arr[len(arr)//2-1],arr[len(arr)//2],arr[len(arr)-1]


10998De façon absolument extraordinaire, la commande test(9,2) se termine en
2,04s
et explose presque toute concurrence ! :bj:

  1. 1,41s
    :
    TI-Nspire
    (32 bits : ARM9/ARMv5 @
    120MHz
    )
  2. 1,56s
    :
    TI-Nspire CM / CX révisions A-V
    (32 bits : ARM9/ARMv5 @
    132MHz
    )
  3. 2,04s
    :
    Symbolibre
    (?)
  4. 2,40s
    :
    TI-Nspire CX révisions W+/CR4+
    (32 bits : ARM9/ARMv5 @
    156MHz
    )
  5. 3,74s
    :
    NumWorks
    (32 bits : Cortex/ARMv7 @
    100MHz
    )
  6. 4,75s
    :
    Casio Graph 90+E / fx-CG50
    (32 bits : SH4 @
    118MHz
    )
  7. 8,81s
    :
    HP Prime G2
    (32 bits : Cortex/ARMv7 @
    528MHz
    )
  8. 9,56s
    :
    Casio Graph 35+E/75+E / 35+USB/75/95 SH4 / fx-9750/9860GII SH4
    (32 bits : SH4 @
    29,5MHz
    )
  9. 10,19s
    :
    Casio Graph 35+E II
    (32 bits : SH4 @
    59MHz
    )
  10. 12,99s
    :
    Casio Graph 35+USB/75/85/95 SH3 / fx-9750GII SH3 / fx-9860G/GII SH3
    (32 bits : SH3 @
    29,5MHz
    )
  11. 14,93s
    :
    Casio Graph 35+E II
    (32 bits : SH4 @
    59MHz
    )
  12. 20,73s
    :
    HP Prime G1
    (32 bits : ARM9/ARMv5 @
    400MHz
    )
  13. 23,20s
    : module externe
    TI-Python pour TI-83 Premium CE
    (32 bits : Cortex/ARMv7 @
    48MHz
    )
  14. 26,60s
    :
    TI-83 Premium CE Edition Python
    (?)
  15. 33,48s
    : module externe
    TI-Python pour TI-83 Premium CE
    (32 bits : Cortex/ARMv7 @
    48MHz
    )
  16. 60,71s
    : application KhiCAS sur
    Casio Graph 90+E / fx-CG50
    (32 bits : SH4 @
    118MHz
    )
  17. 116,93s
    : application KhiCAS sur
    Casio fx-CG10/20
    (32 bits : SH4 @
    59MHz
    )




Passons maintenant aux nombres flottants avec le script suivant :
Code: Select all
try:
  from time import *
except:
  pass

def hastime():
  try:
    monotonic()
    return True
  except:
    return False

def seuil(d):
  timed=hastime()
  start,stop,n,u,l,d=0 or timed and monotonic(),1,0,2.,1,d**2
  while (u-l)**2>=d: u,n=1+(1/((1-u)*(n+1))),n+1
  stop=timed and monotonic() or 1
  return [stop-start,n,u]


10999La ligne d'appel seuil(0.005) se termine en seulement
0,815s
, atomisant cette fois-ci toute concurrence ! :bj:

D'où le classement suivant dans le contexte des calculs en virgule flottante :
  1. 0,815s
    :
    Symbolibre
    (?)
  2. 0,962s
    :
    HP Prime G2
    (32 bits : Cortex/ARMv7 @
    528MHz
    )
  3. 1,08s
    :
    TI-Nspire CM / CX CR3-
    (32 bits : ARM9/ARMv5 @
    132MHz
    )
  4. 1,29s
    :
    TI-Nspire
    (32 bits : ARM9/ARMv5 @
    120MHz
    )
  5. 1,61s
    :
    TI-Nspire CX CR4+
    (32 bits : ARM9/ARMv5 @
    156MHz
    )
  6. 2,036s
    :
    NumWorks
    (32 bits : Cortex/ARMv7 @
    100MHz
    )
  7. 3,068s
    :
    HP Prime G1
    (32 bits : ARM9/ARMv5 @
    400MHz
    )
  8. 8,94s
    :
    Casio Graph 90+E / fx-CG50
    (32 bits : SH4 @
    118MHz
    )
  9. 9,68s
    : module externe
    TI-Python pour TI-83 Premium CE
    (32 bits : Cortex/ARMv7 @
    48MHz
    )
  10. 10,38s
    :
    TI-83 Premium CE Edition Python
    (?)
  11. 10,68s
    :
    Casio Graph 35+E II
    (32 bits : SH4 @
    59MHz
    )
  12. 11,26s
    :
    Casio 35+E/75+E / 35+USB/75/95 SH4 / fx-9750/9860GII SH4
    (32 bits : SH4 @
    29,5MHz
    )
  13. 11,46s
    : module externe
    TI-Python pour TI-83 Premium CE
    (32 bits : Cortex/ARMv7 @
    48MHz
    )
  14. 13,87s
    :
    Casio Graph 35+USB/75/85/95 SH3 / fx-9750GII SH3 / fx-9860G/GII SH3
    (32 bits : SH3 @
    29,5MHz
    )
  15. 19,98s
    : application KhiCAS sur
    Casio Graph 90+E / fx-CG50
    (32 bits : SH4 @
    118MHz
    )
  16. 25,19s
    :
    Casio Graph 35+E II
    (32 bits : SH4 @
    59MHz
    )
  17. 35,55s
    : application KhiCAS sur
    Casio fx-CG10/20
    (32 bits : SH4 @
    59MHz
    )




L'équipe prévoit de rajouter le module
giacpy
afin de pouvoir faire également du calcul exact / littéral / formel en
Python
. Mais les conséquences vont bien au-delà de ça. En effet sur la concurrence actuelle, l'application
Python
est toujours cloisonnée dans son coin, incapable d'échanger la moindre information avec le reste des applications, et ne pouvant donc pas jouer pleinement sont rôle dans la résolution d'un problème. Cet ajout permettra donc au
Python
de sortir de sa bulle, faisant ainsi appel au moteur de calcul de l'application
Calcul
directement depuis l'application
IDE
! :bj:




9) Application Éteindre :

Go to top

10945Voici bientôt l'heure de notre train. Il est donc grand temps de voir ce que la calculatrice
Symbolibre
a dans le ventre. Mais en attendant petit interlude, commençons donc par l'éteindre complètement, ce qui prend une 15aine de secondes :




10) Matériel :

Go to top

1100411003Nous voici donc maintenant parés pour la grande dissection et donc la découverte de l'oeuvre du groupe de
Némo Fournier
! :bj:

Plusieurs éléments nous apparaissent :
  • une carte
    Raspberry
  • une carte clavier
  • une carte écran
  • une carte
    Adafruit
  • une batterie



11005Au coeur de la
Symbolibre
, nous avons donc la carte du nano-ordinateur
Raspberry Pi Zero
. Un choix fort bien calculé dans notre contexte, puisque c'est l'un des rares modèles
Raspberry Pi
à ne pas intégrer de capacités sans-fil interdites aux examens ! :bj:

Nous disposons donc :
  • d'un processeur
    ARM1176JZF-S
    cadencé à
    1 GHz
    , un
    32-bits
    de la famille
    ARM11/ARMv6
    , soit de génération supérieure aux
    ARM9/ARMv5
    équipant encore de nos jours les
    TI-Nspire CX II
    ! :bj:
  • d'une mémoire RAM très confortable de
    512 Mio
    , ce qui valide notre conjecture faite plus haut ! :bj:
  • d'un lecteur de carte mémoire
    microSD
    , permettant ici d'amorcer sur la carte de
    8 Gio
    contenant le système d'exploitation
    Symbolibre
  • de deux ports au format
    micro-USB
    , l'un des deux étant dédié à l'alimentation et l'autre étant un port
    OTG
  • d'un port
    mini-HDMI



1102611027Les ports
GPIO
de l'ordinateur
Raspberry Pi Zero
permettent d'une part de le relier à la carte clavier, ici conçue sur mesures.


11007Ils permettent d'autre part de connecter la carte de l'écran, un
320×240
pixels comme déjà dit, plus précisément un
2,4
pouces de chez
EastRising
.
1103211033




110101100911008Le port
micro-USB
d'alimentation est quant à lui relié non pas à la batterie mais à une autre carte, une
Adafruit PowerBoost 500C
, carte qui expose alors son propre connecteur
micro-USB
sur la tranche supérieure de la calculatrice.
110281103011031


Cette carte est elle-même reliée à une batterie
AdaFruit 3,7 Volts
de
2000 mAh
de capacité.
1102211023


Le rôle de cette carte interface
Adafruit PowerBoost 500C
est en fait de gérer la recharge de la batterie.




11) Connectivité et périphériques :

Go to top

1101511018Les calculatrices graphiques contemporaires ont perdu la quasi totalité de la riche connectivité dont disposaient leurs ancêtres des années 80, les
"ordinateurs de poche"
. On ne peut y connecter qu'un nombre très restreint de périphériques, une rareté qui se paye cher. :mj:

Mais comme nous venons de le voir, la
Symbolibre
dispose d'un port
micro-USB OTG
standard. De quoi par exemple connecter un clavier USB une fois sorti le bon adaptateur.

Le clavier ainsi rajouté permet parfaitement de naviguer à travers les différentes interfaces de la calculatrice
Symbolibre
.

Il permet également de contrôler la console
Linux
ainsi que l'éditeur de l'application
IDE
tout en profitant de toutes les touches supplémentaires qu'il apporte, notamment la possibilité de sélectionner du texte ! :bj:

Un superbe confort de saisie ! :bj:

1101611017Mais ce n'est pas tout puisque la
Symbolibre
dispose également d'un port
mini-HDMI
. De façon encore plus exceptionnelle, avec utilisation de l'adaptateur adéquat, on peut donc connecter la calculatrice
Symbolibre
à un écran ou un vidéoprojecteur ! :bj:
110191102011021


De quoi vidéoprojeter facilement la calculatrice en classe ! :bj:
Même si avant ça, il faudra toutefois commencer par régler le problème de la résolution qui comme tu peux voir ne s'adapte pas au périphérique de sortie vidéo.


Toutefois, précisons que ces deux possibilités extraordinaires ne sont pas encore d'actualité. En effet, pour le moment, les connecteurs
micro-USB OTG
et
mini-HDMI
sont internes, et donc inaccessibles sans démonter la calculatrice.

Pour pouvoir les exploiter il faudra :
  • soit revoir l'ensemble de la conception et déplacer la carte
    Raspberry Pi
    pour acoller ces connecteurs à l'une des tranches du boîtier
  • soit exporter ces connecteurs vers les tranches du boîtier à l'aide de câbles prolongateurs, ce qui aura un coût




Conclusion :

Go to top

Même si divers points restent à améliorer, la calculatrice
Symbolibre
est un formidable projet très prometteur avec des points forts monumentaux :
  • un système d'exploitation non seulement libre mais aussi répandu
    (
    Linux
    )
    :bj:
  • de remarquables innovations niveau intuitivité et facilité de lecture, particulièrement dans le cadre des graphes de fonctions :bj:
  • une application
    Calcul
    qui n'a absolument rien à envier à la concurrence, bien au contraire :bj:
  • et qui en prime donne accès des fonctionnalités que la concurrence réserve habituellement au haut de gamme
    (calcul formel)
    :bj:

Niveau connectivité, les constructeurs historiques nous ont habitués à des périphériques propriétaires, conçus ou sélectionnés par le constructeur en partenariat avec d'autres entreprises, sans véritable concurrence qui puisse donc jouer dans l'intérêt de l'utilisateur, et donc forcément à des périphériques en pratique très rares et très chers. :mj:

La connectivité standard de la
Symbolibre
pourrait enfin permettre d'utiliser librement les périphériques de son choix peu importe leur marque, au moins déjà pour tout ce qui standard ! :bj:

Niveau capacités matérielles maintenant, mis à part pour le haut de gamme, la concurrence nous a régulièrement fourni jusqu'à présent le strict minimum nécessaire. Avec comme conséquence des modèles d'entrée et de milieu de gamme qui, à chaque changement significatif des textes réglementaires
(mode examen à diode depuis la rentrée 2015, Python depuis la rentrée 2017, ...)
, doivent être remplacés et sont donc bons pour la poubelle. Quel gaspillage tous les deux ans pour les enseignants ou fratries ! :mj:

Mais avec la
Symbolibre
, nous obtenons au prix du milieu de gamme du matériel aux capacités haut de gamme, qui devrait bien être capable à la différence de survivre à bien des révolutions scolaires pendant nombre d'années ! :bj:

Toutes nos félicitations à l'équipe
Symbolibre
, en espérant que le projet pourra continuer maintenant qu'il n'est plus contraint par l'
ENS
. Nous souhaitons à l'équipe force et courage pour maintenant corriger divers détails évoqués et viser les phases de production et commercialisation. A très bientôt donc, on espère... ;)


Merci à tous ceux qui ont aidé à notre déplacement pour cette naissance ! :D

Une pensée envers, entre autres :

Référence
:
https://symbolibre.org/
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98%
 
Posts: 33681
Images: 8776
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Test Symbolibre, la calculatrice libre avec CAS et Pytho

Unread postby Lionel Debroux » 15 Jun 2019, 20:53

Merci pour ce nouveau gros travail de test et d'écriture :)

Et bravo, une nouvelle fois, à l'équipe d'étudiants d'avoir monté ce projet et produit ces résultats.

La puissance brute de la machine permet de hacher menu presque toute la concurrence, sauf en temps de boot / extinction parce que contrairement aux autres modèles, la Symbolibre utilise un OS d'usage général que l'équipe n'a pas encore eu le temps d'optimiser significativement, je suppose, dans les limites de ce que le taux de transfert du stockage de la machine permet... Seule la Prime G2 n'a pas un matériel ridiculement limité par rapport à celui de la Symbolibre pourtant beaucoup moins chère, et qui serait encore moins chère en production de volume.

C'est amusant que sway soit utilisé sur une calculatrice... avant de passer au logiciel libre pour ordinateur, son auteur principal, s'est d'abord fait connaître plus jeune dans la communauté calculatrices, en l'occurrence TI, à la fois pour une compétence technique certaine et pour des problèmes relationnels. Mais à ma connaissance du moins, contrairement à ce qui a pu se passer historiquement avec diverses personnes de la communauté, les problèmes relationnels se sont estompés, pendant que les compétences techniques continuaient bien sûr à se développer.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxModo.G
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 5.2%
 
Posts: 6389
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

Online

Re: Test Symbolibre, la calculatrice libre avec CAS et Pytho

Unread postby Lephe » 15 Jun 2019, 23:49

Merci ! Oui, on a des délais liés à la généricité du système utilisé. Pour le démarrage, ça doit pouvoir se travailler. Notez qu'il y a un bug de détection du clavier au lancement de l'environnement graphique, ce qui cause un long délai avant l'ouverture du menu principal, qui ne devrait prendre que quelques secondes au lieu de 23 sur la vidéo ! ^^

Il y a aussi des petits délais au lancement des exécutables à cause de l'initialisation des bibliothèques, c'est quelque chose que j'aimerais regarder. La fluidité est le maître mot, je suppose... :)

Que Drew DeVault soit le facteur commun n'était pas volontaire mais c'est une jolie coincidence. sway est mon environnement de bureau principal, on a considéré que c'était un bon point de départ en termes de légèreté et de facilité de configuration.
User avatar
LephePartner
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 21.9%
 
Posts: 231
Joined: 15 Jun 2018, 19:53
Gender: Male

Re: Test Symbolibre, la calculatrice libre avec CAS et Pytho

Unread postby parisse » 16 Jun 2019, 07:38

Ce serait bien de rajouter du support pour le langage de giac dans l'IDE, ce qui permettrait de pouvoir programmer dans l'ecran de calculs, comme dans KhiCAS. Ca ne doit pas etre trop de travail en syntaxe Python, vu que l'UI existe deja pour Python, il faut juste recuperer les erreurs de parse pour placer le curseur au bon endroit dans le source, et avoir un acces au catalogue de commandes giac (et a l'aide en ligne), et si possible donner acces au debugger. J'ai fait tout ca dans KhiCAS sur les Casio, mais ici on aurait enfin acces a tout.

C'est different de giacpy, car avec des modules Python, j'imagine qu'on resterait confine dans l'environnement de programmation, sans interaction possible avec Calculs, alors qu'un mode giac de l'IDE veut dire qu'on pourrait utiliser des fonctions utilisateurs du langage de programmation dans Calculs, voir ailleurs, dans Graphiques si c'est giac qui evalue les expressions a tracer, dans Suites une fois que l'application existera, etc.

Par ailleurs, cela pourrait fournir un chemin simple pour avoir du graphique en programmation, giac ayant des instructions pour le trace par pixels, mais aussi tout ce qu'il faut pour faire des graphiques dans des reperes (graphes de fonction, graphes parametriques, courbes de niveau, etc. et geometrie analytique), et donc plus de necessite de porter matplotlib ou equivalent.
User avatar
parisseVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 79.2%
 
Posts: 1793
Joined: 13 Dec 2013, 16:35
Gender: Not specified

Online

Re: Test Symbolibre, calculatrice libre avec CAS (giac) + Py

Unread postby Lephe » 16 Jun 2019, 22:06

Bonjour Parisse ! Tu pointes un problème intéressant et qui nous a été suggéré par l'IFÉ, la communication entre les applications. Pouvoir exporter un graphe construit en Python dans l'application de graphes, typiquement, c'est un objectif. :)

Cela étant dit, même si on utilise Giac pour tout le travail mathématique, l'application de calcul expose un langage différent que l'on traduit vers Giac, essentiellement. Ça permet de découpler les APIs et les fonctionnalités. Pour l'instant on ne sait pas tout à fait où la limite va se trouver, mais il est probable que les fonctions de dessin et de graphe utilisent nos applications. Quitte à caricaturer, notre modèle consiste à utiliser la partie de Giac qui calcule et à faire nous-même toutes les I/O.

On souhaite bien sûr que toutes les fonctions de Giac soient accessibles à au moins un endroit, par exemple avec giacpy ou un script giac, mais il faut les intégrer. Par exemple binder notre graphe sur les fonctions de tracés... quelque chose du genre. Je ne sais pas encore si c'est réalisable et avec quel effort, mais on aura définitivement besoin de toi pour appréhender la structure :)

Pour revenir à tes remarques, la question d'utiliser dans l'IDE des fonctions de l'utilisateur dans différentes applications, c'est un sujet dont a discuté récemment. Notre langage effectue le partage du stockage avant la traduction à Giac, donc le système de la Symbolibre donne accès aux données à toutes les applications, y compris les applications tierces. Je pense que les interactions que tu décris, de façon générale, on a envie de les programmer à un niveau plus élevé.

Je commencer à cerner un peu mieux la différence entre giac/giacpy/xcas, et on va continuer à y réfléchir... c'est des grands sujets de discussion en ce moment. ^^
User avatar
LephePartner
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 21.9%
 
Posts: 231
Joined: 15 Jun 2018, 19:53
Gender: Male


Return to News Symbolibre / Librecalc

Who is online

Users browsing this forum: No registered users and 0 guests

-
Search
-
Featured topics
Concours TI-Planet-Casio de rentrée 2019. 3 défis pour plus d'une 15aine de calculatrices graphiques et nombre de goodies sortant de l'ordinaire ! :D
Comparaisons des meilleurs prix pour acheter sa calculatrice !
12
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

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 
-
Stats.
562 utilisateurs:
>543 invités
>14 membres
>5 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)