Étape 4: Le Firmware
La norme TinyBASIC Plus croquis a dû être modifié afin de créer un système d’ordinateur autonome. La version non modifiée de TinyBASIC Plus utilise le port série de l’AVR pour permettre aux utilisateurs d’interagir avec le logiciel et créer des programmes. J’ai importé la bibliothèque TVout et remplacé tous les appels de sortie série (Serial.write() etc.) avec les appels TVout (TV.print() etc.). La bibliothèque de clavier PS/2 standard s’affronte avec TVout causant étrange sortie devant figurer sur le téléviseur et le clavier n’est ne pas lu correctement, mais après quelques recherches, je suis tombé sur une bibliothèque appelée PS2uartKeyboard qui utilise le XCK0 pin et la tige de RX0 d’un AVR pour se connecter au clavier afin de permettre un clavier PS/2 travailler avec la bibliothèque TVout. Cette bibliothèque peut être trouvée ici près du bas de la page :
https://code.google.com/p/Arduino-tvout/issues/detail?id=38
(Lien bibliothèque réelle ici)
J’ai testé la bibliothèque PS2uartKeyboard et la bibliothèque TVout ensemble et ils ont travaillé très bien alors j’ai ajouté la bibliothèque de PS2uartKeyboard à l’esquisse TinyBASIC Plus qui a abouti à la création d’un système informatique de travail autonome. Les appels de série qui se lisait une entrée série en TinyBASIC Plus ont été remplacés avec clavier invite à lire l’entrée au clavier. Comme la bibliothèque TVout, la bibliothèque PS2uartKeyboard et esquisse TinyBASIC Plus furent toutes exécutées sur le même AVR, l’ordinateur nécessite uniquement une seule puce (un AVR) afin d’exploiter. J’ai commencé TVout utilisant la ligne suivante :
TV.begin (PAL, 720, 480) ;
qui commence TVout à une résolution supérieure à la valeur par défaut pour certains de la sortie de texte de TinyBASIC Plus sur une seule ligne comme monter à la résolution par défaut, certains d'entre les enveloppes de texte à la ligne suivante. À noter, une résolution de 720 x 480 n’est pas générée ici car il est divisé en bas de la bibliothèque TVout à une résolution inférieure. Départ TVout comme ceci utilise environ 8 Ko de l’ATmega 1284Ps SRAM (pour le tampon vidéo). J’ai dû modifier la valeur RAMEND en TinyBASIC Plus afin de permettre suffisamment de mémoire tampon vidéo nécessaire par TVout et j’ai aussi changé la touche pause utilisée en TinyBASIC Plus (c’était la précédente CTRL + C) parce que les touches de contrôle ne sont pas supportés par cette bibliothèque de clavier PS2 (j’ai utilisé la touche Echap au lieu de cela).
J’ai dû utiliser l’original ATmega bootloader 1284P 16MHz afin d’arrêter toute glitches TVout qui se produisent lorsque vous utilisez le chargeur de démarrage d’optiboot (le bootloader d’origine ne cause pas ces pépins). Lorsque compling l’esquisse dans l’IDE de restes explosifs de guerre Arduino, la taille de l’esquisse est inférieure à 22 Ko et l’utilisation SRAM estimée de l’AVR est presque 9KO (laisser environ 8 Ko pour le tampon vidéo TVout). Vous trouverez l’esquisse TinyBASIC Plus annexé à cette page.
Le bootloader de P Arduino ATmega 1284 peut être trouvé ici :
https://github.com/fakufaku/Mighty-1284p
Le code TinyBASIC Plus original se trouve ici :
https://github.com/BleuLlama/TinyBasicPlus
La bibliothèque TVout peut être trouvée ici :
https://code.google.com/p/Arduino-tvout/
Veuillez noter que TinyBASIC Plus, logiciel Arduino (bootloaders, IDE etc.), la bibliothèque de PS2uartKeyboard et la bibliothèque TVout tous tenir leurs licences de logiciels qui doivent être suivies si vous utilisez du code créateurs.
Mise à jour (23/06/2014): J’ai joint le fichier hex pour le croquis TinyBASIC Plus (compilé à l’aide de l’IDE Arduino) donc l’IDE Arduino n’a pas à être utilisé pour programmer l’ATmega P. 1284 J’ai eu ce fichier à partir du répertoire temporaire créé par l’IDE Arduino pendant la phase de compilation de l’esquisse, donc je ne sais pas si il correcte (s’il vous plaît laissez-moi savoir si quelqu'un a des problèmes à l’utiliser).