Étape 4: Arduino Software
Le logiciel Arduino comprend le programme principal (mpc.ino) et les bibliothèques suivantes :
- bt - SW pilote pour Bluetooth module
- LDP8806 - Driver SW pour bandes de LED
- MemoryFree - fonctions pour détecter une mémoire RAM libre disponible
- mpcgif - fichiers de lecture de GIF situés dans la RAM ou mémoire Flash
- photos - images GIF interne stockés en Flash
- trace - fonctions pour le débogage SW
Sortie périodique des images pour les bandes de LED est fait interruption conduite. Il y a deux framebuffers de bascule. Chaque tampon de trame tient une photo avec 40 x 151 pixels. Chaque pixel est un indice de palette de couleur d’un octet. Un tampon de trame est sortie dans les bandes de LED via interruptions et DMA, l’autre framebuffer est disposé par le programme principal (par exemple la fonction de décodage des images GIF). Activation/désactivation des framebuffers se fait par la routine d’interruption du cadre.
Il y a une interruption de trame par révolution déclenchée par le récepteur IR. La routine d’interruption cadre mesures (via une horloge matérielle) l’évolution vitesse et programmes périodiques de colonne interruptions (un par colonne, c'est-à-dire 150 interruptions par révolution) avec une horloge matérielle. La routine d’interruption de colonne affiche la colonne actuelle pour les bandes de LED. Pour des performances sortie raisons se fait via trois canaux DMA qui exploitent pleinement en parallèle.
Obtenir le code source complet Arduino est disponible sur github.