Stap 8: De Code
Misschien wel de langste en meest intensieve deel van de hele bouw. De 3D print kan hebben genomen me 3 maanden om te ontwerpen, maar de code is een work in progress voor 6 maanden. Meestal omdat ik een noob, maar ook ben omdat ik gebruiken een bos van "trucs moest" om de Trinket te animeren van het oog.
Zie, Arduinos zijn niet echt geschikt voor animaties, vooral de animaties die zo groot als dit zijn. Zeker een kleine bitmap kan werken, maar het meest waarschijnlijk eet veel van het systeemgeheugen in beslag en uw schets wordt in wezen een één-truc-pony. Dus ik moest raadplegen krijgen een heleboel bronnen om niet alleen de Trinket te animeren, maar passen ook de schets op de microcontroller met extra ruimte voor andere functionaliteit. Ik heb echter met een heleboel hulp. Hieronder vindt u sites/blogs die ik raadpleegde en ontleend, die ik in de sketch gebruikte zijn gecrediteerd binnen de code:
- https://Learn.adafruit.com/adafruit-GFX-graphics-l...
- https://github.com/adafruit/Adafruit_ILI9340/blob/...
- http://andybrown.me.uk/2012/06/04/Nokia-QVGA-TFT-l...
- https://github.com/adafruit/Adafruit_ILI9340/blob/...
- https://Learn.adafruit.com/1-8-TFT-display/Displa...
- https://github.com/adafruit/Adafruit_ILI9340/blob/...
- https://Learn.adafruit.com/2-2-TFT-display/graphi...
- https://github.com/adafruit/Adafruit_ILI9340/blob/...
- http://matthewcmcmillan.blogspot.com/2014/01/ardu...
- https://github.com/adafruit/Adafruit_ILI9340/blob/...
- http://www.stm32duino.com/viewtopic.php?t=410
- https://github.com/adafruit/Adafruit_ILI9340/blob/...
- https://github.com/adafruit/Adafruit_ILI9340/blob/...
- https://github.com/stravant/CMPUT296_Assignment3/...
- https://github.com/adafruit/Adafruit_ILI9340/blob/...
- https://hackaday.io/project/6038-pdqgfx-optimzed-...
- https://github.com/adafruit/Adafruit_ILI9340/blob/...
- https://github.com/XarkLabs/PDQ_GFX_Libs
- https://github.com/adafruit/Adafruit_ILI9340/blob/...
- https://Learn.adafruit.com/2-8-TFT-touch-Shield/c...
- https://github.com/adafruit/Adafruit_ILI9340/blob/...
- https://forum.pjrc.com/threads/26305-highly-optim...
Um, ja, dus ik bezig was.
Dus is wat je hier ziet een evolutie van begrip terwijl staande op de schouders van vele mensen die daadwerkelijk weten wat ze doen. Vandaar kan mijn code een beetje ongepolijste en volumineus, maar het werkt. U kunt het openen via mijn github link:
https://github.com/zymurgeneticist/Eye_of_Agamotto
Uploaden van de code in het Ino bestand in de bovenstaande link naar uw Trinket 5V Pro (andere microcontroller zal moeten worden gecompenseerd voor het in de code). Zorg om te lezen over het gebruik van de Trinket bootloader eerst. U zal niet zitten kundig voor uitvoeren van de schets en de animaties zien totdat je alles in de volgende stap monteren.
De truc was om de meeste van de "animatie" met een kleine eigenschap die voorziet in de controller van de ILI9340 op het display. Wanneer het oog heen en weer langs de x-as (echt de y-as kijkt, omdat het display is bedoeld als verticale) is niet het beeld echt wordt geanimeerd, het wordt eigenlijk scrollen, zoals u zou doen met tekst. Hierdoor kan de microcontroller en de display te doen het zware en tijdrovende laden van de bitmap eenmalig (gedaan met de achtergrondverlichting uit zodat u het niet kunt zien), alle andere animatie in deze weergave wordt bereikt door "scrollen" op en neer (of links en rechts in ons geval).