Pour construire les premiers prototypes, l’objectif était de sélectionner du matériel facile à trouver et techniquement accessible. N’étant pas des experts électroniciens, il nous fallait obtenir une machine fonctionnelle rapidement pour développer les aspects logiciels.
Le coeur de la machine a rapidement été décidé en faveur du Raspberry Pi Zero. À 5 € la pièce, cet ordinateur facile à trouver offre un excellent rapport prix/performance puisque ses spécifications rivalisent avec celles de la toute-puissante HP Prime G2 :
- Processeur ARM à 1 GHz
- 512 Mio de RAM (!)
- Stockage sur carte SD, au bas mot 8 Go pour l’OS et les données personnelles
- Interface DPI pour la rapide gestion de l’écran
- L’indispensable port USB pour les communications à l’ordinateur.
Notre Raspberry Pi Zero, connecté à son écran SPI.
Notez que c’est également le seul Raspberry Pi éligible pour ce projet puisque le mode examen en France (ici le bulletin officiel introductif de 2015) interdit aux calculatrices de posséder des capacités de communication sans-fil. Cela étant dit, même un port Ethernet en façade ne ferait pas très sérieux !
Bien sûr, contrairement aux modèles qui utilisent des OS spécialisés (Casio Graph, TI-8*, Numworks), le choix de Linux va ajouter une surcharge sur les performances de notre calculatrice. L’objectif de l’équipe d’Administration Système est donc en même temps de garder le système léger pour limiter cet impact. Il faut veiller au temps de démarrage, au bon fonctionnement de la pile graphique, à la réactivité des applications…
Paradoxalement nous n’allons pas utiliser l’interface DPI dans le premier prototype, ce qui serait un choix naturel pour garantir une bonne fluidité sur le rendu. Le DPI consiste à envoyer plus de données en parallèle à l’écran pour accélérer le transfert des données graphiques. À la place, nous allons commencer avec une interface SPI (série), qui envoie tout dans un ordre séquentiel.
La raison derrière ce choix est la répartition des GPIOs du Raspberry Pi Zero. Ces GPIOs (General-Purpose Input/Output) sont les broches logiques sur lesquelles on peut voir branchés des fils sur la photo plus haut. Elles permettent de connecter du matériel, et nous en avons besoin pour l’écran et le clavier. Cela représente un certain nombre de connexions selon le type d’écran et de clavier choisi :
- 6 GPIOs pour brancher l’écran en SPI 4-fils (voire 5 en tirant un peu) ;
- Au moins 18 GPIOs pour brancher l’écran en DPI ;
- Un GPIO par ligne et par colonne du clavier, soit probablement entre 14 et 16, pour un clavier simple ;
- 4 ou 5 GPIOs pour brancher le clavier sur une connexion série, si un contrôleur est présent pour gérer la communication.
Le Raspberry Pi Zero, comme la plupart des ordinateurs de la gamme, n’a que 28 GPIOs en tout. La combinaison réalisable la plus accessible pour nous est de garder un clavier simple et de brancher l’écran en SPI. Cela aura un impact léger sur la performance de l’affichage graphique ; à terme nous pourrons passer au DPI en ajoutant un contrôleur au clavier.
Côté écran, notre attention s’est tournée vers un écran 320×240 d’EastRising muni d’un ILI9341. Il supporte un très grand nombre d’interfaces, notamment SPI et DPI. L’interface choisie est sélectionnée lors de la commande, puis quelques soudures sont réalisées sur des jumpers. Lorsque l’écran est livré, une seule interface est disponible : pour nous, l’interface SPI 4-fils.
Connexion temporaire de l’écran SPI sur une breadboard.
Pour l’alimentation, nous envisagions initialement d’utiliser un battery pack naïf branché sur le port mini-USB du Raspberry Pi, mais c’était pousser la simplicité trop loin. Ces battery packs sont trop volumineux à utiliser et ont parfois des interfaces d’acquisition du niveau de batterie assez compliquées.
Nous avons donc rapidement revu nos plans en faveur d’une batterie Li-ion de 2200 mAh similaire à celle utilisée par Numworks, avec une interface PowerBoost d’Adafruit pour remonter la tension et assurer le rechargement. Cette interface est chère et, on l’espère, non définitive. Mais elle nous mettra sur les rails en termes d’alimentation rapidement.
Batterie et interface Power Boost en action.
Il reste à ajouter à cette liste la coque, que l’on pourra imprimer en 3D à partir d’un modèle sur mesure. Ce n’est pas la partie la plus technique de l’assemblage, uniquement la dernière. Une fois tous les éléments à portée de main, on s’intéressera plus précisément au volume nécessaire pour les agencer proprement.
Le seul point encore mystérieux est le clavier, pour lequel il nous faudra concevoir un PCB à la main. Ce sera traité dans un autre article !
Soumettre un commentaire
Les commentaires sont relus avant d'être publiés, pour éviter le spam.