LibreCalc: Uma Calculadora com hardware e software livre

Iniciado por Nosferatu Arucard, 14 de Março de 2015, 13:28

tópico anterior - próximo tópico

Nosferatu Arucard

Embora os smartphones e tablets Android e/ou iOS já atiraram as calculadoras dedicadas para a extinção, ou resguardadas para usos muito restritos (a curto prazo) devidos às regras de uso em exames, isto não impediu que dois professores franceses arriscassem a projectar e lançar o protótipo de uma calculadora gráfica usando estritamente software livre.  ;D

http://www.librecalc.com/

Na realidade não foi a primeira tentativa, mas muitas delas nem passaram de uma ideia infrutífera. O que destinge neste caso é que conseguiram criar um protótipo funcional e algum software testável  ::)

Internamente, o LibreCalc é um mini-tablet com ecrã LCD de 3" a cores, com um teclado customizado, duas portas mini-USB, controlado por um processador com potência similar aos primeiros smartphones Android (2008 ;D).
A CPU escolhida foi o i-MX233 com um clock de 454 MHz com suportes a interfaces LCD, RAM e Flash ROM.
O total de RAM é de 128 Mb (2 chips de 64 cada um), e cerca de 256 Mb de Flash ROM (Os protótipos usam um SD card para o software).

Quanto ao software a escolha foi o sistema operativo Linux  :D, embora utilizando nos primeiros estágios a distro Debian Wheezy. O bootloader escolhido foi o U-Boot configurado de forma a dispensar o uso do initramfs.
Futuramente, poderão usar um Linux From Scratch para minimizar o espaço ocupado pelo sistema operativo na memória interna da calculadora. (O uso do Linux era mais que justificado, por já operar com o hardware sem precisar de modificar nada, excepto três patches para o LCD, teclado e chipset embutidos no kernel.)
De qualquer forma, o GNU C compiler e o Python estarão presentes na distro minimalista do LibreCalc, como se verifica nos vídeos publicados no site do projecto.  ;)
Uma das decisões dos autores do projecto foi a dispensa do X11 Window Server na calculadora, por considerar um exagero uma máquina embebida de baixa capacidade computacional arcar com um sistema gráfico típico de um computador pessoal. Além disso o seu uso final não recomendava o uso do XFCE ou do Unity numa máquina tão fraca.
Portanto, usaram o DirectFB por ser minimalista e simples (um simples driver de frame-buffer gráfico!) e ser suportado pela biblioteca SDL, por este dispensar o uso do X11 e ter um front-end para o DirectFB.

Resumindo, todo o software do Librecalc que utilize gráficos utilizará o SDL, o que acabará por compensar em muitos aspectos, embora a ausência de toolkits e frameworks (dependentes do X11, Mir, Wayland, etc) seja atenuada com o facto das dimensões reduzidas do ecrã, pois todos os programas irão correr em ecrã-cheio. O Python para programas gráficos também pode usar exclusivamente o SDL, eliminando as dependências do X11.
O software de cálculo simbólico escolhido como base foi o venerável Maxima (Escrito em LISP  :o), e as poucas e reais dependências com gráficos podem ser satisfeitas com o  SDL, e é aí que os dois autores do LibreCalc estão a trabalhar neste quesito. (Pelo menos alguma coisa realmente nova, e não um patchset de algo existente).
Por decisão própria dos professores, também criaram como teste, o seu primeiro programa verdadeiramente autónomo que funciona dentro da mini-distro Linux do LibreCalc, que é um simulador da TI-83.
Na verdade é uma implementação vis-a-vis do funcionamento do software da calculadora TI-83 de alto nível, pois limitaram a imitar superficialmente os menus e operações da verdadeira calculadora, mas não suporta Aplicações e Programas escritos em Z80 Assembly, tão-pouco certas opções avançadas não estão presentes. A vantagem é que lê e escreve os ficheiros 83p contendo os programas escritos em TI-Basic, desde que não contenha comandos não-suportados.
Também suporta algumas funções de ploting gráfico e o uso como calculadora científica normal.
Este programa pode ser compilado e testado num computador, bastando ter o pacote libsdl1.2-dev (usa apenas o SDL), se bem que o layout do teclado possa dar problemas (foi já pensado no teclado LibreCalc e isto está hard-coded) como uso sério.
Escusado será dizer que a Linha de Comandos está sempre disponível, e contêm ainda alguns comandos básicos. Provavelmente, a prazo, restringirão as versões básicas contidas na busybox, por estas serem mais que suficientes para inicializar o sistema operativo, carregar o shell em SDL e gerir os scripts de arranque, para abrir o menu de utilizador e usufruir do sistema.

Em geral, com estas escolhas, mesmo com uma CPU igual a um Pentium II low-end  ;D, o sistema operativo Linux arranca em apenas dois segundos, e demora mais dois para abrir o menu principal (3 a 4 segundos), o que já é bem satisfatório, comparado com os 45 segundos que uma Ti-Nspire demora a fazer um full-boot ou 3 segundos que uma Casio ClassPad demora a fazer.

Nosferatu Arucard

Os autores deste projecto optaram por encerrar o seu desenvolvimento, mas publicaram todas as especificações e guias de software para a plataforma. O motivo principal é que a maioria dos países desenvolvidos não aceitariam uma máquina com Linux a correr nos exames do liceu e faculdade, especialmente por causa da obrigatoriedade de ter um modo de segurança no modo exame  >:(.
Isto significa que basta ter um pouco de imaginação e alguns recursos para criar a sua calculadora de sonho...  ;D
(Se bem que um Rapsberry Pi seria talvez o mais adequado para uma geringonça dessas.)

No entanto não deve faltar muito para que os tablets acabem por ter uso nos exames, e as calculadoras acabem por ser uma peça de museu a curto prazo.  :)