Stap 4: Arduino Software
De Arduino software bestaat uit het hoofdprogramma (mpc.ino) en de volgende bibliotheken:
- bt - stuurprogramma SW voor Bluetooth-module
- LDP8806 - stuurprogramma SW voor LED strips
- MemoryFree - functies te sporen beschikbaar vrij RAM geheugen
- mpcgif - afspelen van GIF-bestanden in het RAM-geheugen of Flash-geheugen
- foto's - interne GIF afbeeldingen opgeslagen in Flash
- trace - functies voor het debuggen van de SW
Periodieke output van de foto's om de LED strips gebeurt interrupt aangedreven. Er zijn twee knevel framebuffers. Elke framebuffer bevat één afbeelding met 40 x 151 pixels. Elke pixel wordt een kleurenpalet index van één byte. Terwijl één framebuffer uitgevoerd naar de LED strips via onderbreken en DMA wordt, wordt de andere framebuffer bereid door het hoofdprogramma (bv. door de functie decodering van de GIF-figuren). Schakelen van de framebuffers wordt gedaan door de frame interrupt routine.
Er is één frame interrupt per omwenteling teweeggebracht door de IR-sensor. De frame interrupt routine maatregelen (via een hardware-timer) de evolutie snelheid en programma's periodieke kolom interrupts (één per kolom, dat wil zeggen 150 interrupts per omwenteling) met een hardware-timer. De kolom interrupt routine uitgangen de huidige kolom de LED strips. Voor prestaties redenen uitvoer gebeurt via drie DMA-kanalen, die volledig in parallel werken.
De volledige broncode van de Arduino is beschikbaar op github.