Étape 2: Bibliothèques et exemple de croquis (mis à jour le 04/02/15)
Vous aurez besoin des bibliothèques dans le fichier zip joint et la bibliothèque SdFat (inclus pour plus de commodité). La bibliothèque de SD standard peut être utilisée, mais cela nécessite des modifications mineures à l’esquisse et ralentit.
Les principaux changements apportés à la bibliothèque de ILI9341 sont d’améliorer la vitesse et ajouter la fonction de pushColors(), un à manipuler des tableaux d’entiers (pour BMP dessin) et un pour les tableaux d’octets (images brutes).
Dans le zip fichier vous trouverez un dossier contenant des images, mettez-les sur une matière grasse formaté la carte SD pour l’Arduino à lire (pas dans un annuaire!). Vous pouvez modifier les exemples de bibliothèque SD pour ajouter les broches ci-dessus pour vérifier un croquis peut accéder aux fichiers, et le câblage est bon. Dans le cas d’ennuis poster un appel à l’aide... J’ai peut avoir fait une erreur, ou peut être en mesure de vous aider à obtenir votre programme d’installation va, garder à l’esprit qu’il est difficile de déboguer les problèmes majeurs en échangeant des messages quelques...
La plupart de l’image, les fichiers sont au format BMP, alors il est parti comme un exercice pour les convertir en format raw, modifier l’esquisse et voir l’amélioration de la vitesse dessin.
L’esquisse de "ILI9341_draw_bitmap" (dans le dossier Adafruit_ILI9341_AS) exemple utilise 90 % de UNO FLASH et 54 % de RAM pour le stockage dynamique lorsqu’il est compilé sous IDE 1.6.1.
Activer uniquement les 2 polices (ou autres fichiers petite police) ou le UNO va manquer de mémoire FLASH !
J’utilise le compilateur-O2 option comme dans mon Instructable ici. Le standard -Os, option fera plus petite code images mais il s’exécute plus lentement (lorsqu’il est IDE 1.6.1 utilisé). IDE 1.0.6 compilé croquis peuvent ne pas correspondre à un UNO que l’ancienne version du compilateur GCC produit des fichiers exécutables rapides mais assez grands.
Dans les copies des bibliothèques dans les fichiers zip F_AS_T est désactivé et seulement la fonte 2 est activée, soyez conscients de cela, si vous essayez d’autres exemples de croquis !
La fonction de dessin de l’image fait partie de l’esquisse pas la bibliothèque, c’est délibéré car il est trop facile de créer une mémoire de poids lourd bibliothèque riche de fonctionnalité affamés qui met une pression sur l’AVR selon capacité de Arduino ! Eh bien c’est mon excuse;-) Certaines gens résoudre ce problème en faisant une bibliothèque de wrapper simple qui contient ces fonctions et appels bas niveau bibliothèques, donc il s’agit d’une option pour l’avenir. Vous pouvez découper la fonction drawBMP() et il suffit d’utiliser drawRAW() pour économiser de l’espace.
Le principal tirage function prototypes sont :
void drawBMP (char * filename, int16_t XY, int16_t, flip booléenne)
Le fichier nom doit être au format 8.3, documentation Voir le DD de la bibliothèque. x ety sont les coords où le pixel supérieur gauche de l’image est tirés au sort. Voir la dernière étape de ce Instructable pour la fonction du drapeau flip . La largeur et la hauteur de l’image sont extraites du fichier BMP.
L’équivalent pour les bitmaps brute est :
void drawRAW (char * filename, int16_t int16_t rawHeight, int16_t rawWidth, int16_t y, x)
Qu’il y a juste les données de pixels dans ce fichier que la largeur et la hauteur de l’image doivent être fournies à la fonction.
La bibliothèque et le croquis est ciblé à processeurs AVR (UNO, Mega etc.). Je n’ai pas d’a DUE, alors ne prévoyez pas pour l’instant pour le rendre compatible avec les processeurs ARM. Si quelqu'un ne reçoit pas l’esquisse en cours d’exécution sur un DUE que je serais intéressé d’ici comment il effectue, si l’IPS peut être exécuté à 48MHz, puis une mise à jour de la totalité de l’écran pourrait probablement être effectuée en moins de 100ms... Pour exécuter le SPI à cette fréquence, que vous auriez probablement besoin d’une logique numérique niveau convertisseurs.
Remarque : Le 04/02/15 l’esquisse de la bibliothèque a été actualisé afin d’améliorer les performances.
04/03/15 : correction d’un bug mineure