Fabriquer un mini ordinateur programmable à base d’Atmega328

J’ai toujours souhaité construire moi même mon propre ordinateur et écrire mon propre système d’exploitation à faire tourner dessus. Je suis aujourd’hui en passe de réaliser ce rêve en utilisant un microcontrôleur (et non microprocesseur ) de carte arduino pour fabriquer une sorte de super calculatrice programmable.

AVERTISSEMENT : Ce projet n’est pas terminé, je ne peux donc pas poster les instructions complètes mais je vais néanmoins déjà décrire l’architecture générale de mon premier prototype pour donner des idées à ceux qui souhaiterai se lancer.

Le cœur de mon “ordinateur” est le microcontrôleur Atmega328p-pu, cela permet de “tricher un peu pour commencer en utilisant les librairies arduino”. J’utilise la librairie Ps2Keyboard pour gerer les entrées claviers, la librairie TVout pour afficher ma “user’s friendly console” sur un mini écran RCA pour regarder des films en voiture, librairie Tone pour générer du son et la librairie SD pour gérer la carte SD. Je n’utilise aucun shield ce qui signifie que j’utilise quelques résistances pour adapter les niveau de tension de la carte SD et du microcontrôleur (3,3v contre 5v), quelques résistances pour le signal TV et un potentiomètre pour le speaker.

Le montage est plutôt simple et avec un peu de bonne volonté on s’en sort très bien. Du coté programmation, il suffit de tirer trois fils de votre carte arduino à votre breadboard pour la programmation (TxT, RxT, -).

Pour l’instant, mon programme m’affiche un beau menu en noir et blanc avec une chouette image de GNU bricoleur. Je peux, au choix, jouer du piano sur mon clavier, taper du texte et le stocker dans la carte SD, écouter des musiques pré-enregistrées, jouer à un jeu du style moon-buggy (sous linux) et et et …. utiliser un interpréteur de commande maison!!! Cocorico!!!

Au final, j’espère être capable d’écrire des vrai programmes interprétés dans mon langage propre mais je rencontre des difficultés au niveau de la mémoire programme de l’Atmega qui est insuffisante (32Ko). Je pense que je vais devoir implémenter mon interpréteur plus bas niveau et enregistrer les différentes fonctionnalité citée plus haut dans le langage interprété sur la carte SD  afin de libérer de la mémoire programme.

Voili voilou, dès que j’ai terminé, j’essaierai de poster ici un tutoriel détaillé comme pour l’imprimante 3D et comme je devrai le faire pour mon astuce permettant de diriger la souris grâce aux mouvements des mains capté par une cameras.