samedi 25 avril 2020

Aficher sur un écran ST7735 les fichiers d'une carte SD (STM32)

Mon petit écran couleur ST7735 128*160 pixels est muni d'un lecteur pour carte SD, que je ne m'étais jamais donné la peine d'utiliser jusqu'à tout récemment.

Dans ce tuto, je branche l'écran ST7735 et son lecteur de carte SD à un module STM32F103C8T6 "Blue Pill" et, en le programmant avec l'IDE Arduino, j'affiche à l'écran du texte et des images qui avaient préalablement été enregistrés sur une carte SD.



Tout ceci pourrait être fait sans problème avec une carte Arduino Uno, mais ça m'a semblé intéressant d'utiliser la Blue Pill, puisqu'elle est plutôt rapide et son niveau logique de 3,3 V est parfaitement adapté à l'écran et au lecteur de cartes.

Connexions de l'écran au module Blue Pill

Le lecteur de cartes SD et l'écran communiquent tous les deux en SPI et, pour cette raison, ils partagent la même broche SCLK (A5) et la même broche MOSI (A7) (le lecteur de cartes est le seul des deux périphériques à utiliser la broche MISO).

Si votre écran ST7735 ne comporte pas de lecteur de carte SD intégré, vous pouvez obtenir les mêmes résultats avec un lecteur de carte SD distinct.
  • Broche 1 GND de l'écran - Broche G de la Blue Pill
  • Broche 2 VCC de l'écran - 5 V de la Blue Pill
  • Broches 3, 4, et 5 NC de l'écran - pas branchées
  • Broche 6 RESET de l'écran - Broche A3 de la Blue Pill
  • Broche 7 AO de l'écran - Broche A2 de la Blue Pill
  • Broche 8 SDA de l'écran - Broche A7 de la Blue Pill
  • Broche 9 SCL de l'écran - Broche A5 de la Blue Pill
  • Broche 10 CS de l'écran - Broche A8 de la Blue Pill
  • Broche 11 SCK de l'écran (SD) - Broche A5 de la Blue Pill
  • Broche 12 MISO de l'écran (SD) - Broche A6 de la Blue Pill
  • Broche 13 MOSI de l'écran (SD) - Broche A7 de la Blue Pill
  • Broche 14 SD_CS de l'écran (SD) - Broche A4 de la Blue Pill
  • Broche 15 LED+ de l'écran - Broche 3.3 de la Blue Pill
  • Broche 16 LED- de l'écran - Broche G de la Blue Pill


Préparation de l'IDE Arduino pour la programmation d'un STM32

Puisque nous allons programmer la Blue Pill avec l'IDE Arduino, c'est important que le logiciel ait été configuré pour la programmation des cartes STM32. Tout est expliqué dans cet article.

Installation des bibliothèques GFX et ST7735 d'Adafruit

La bibliothèque SD est déjà disponible, par défaut, dans l'IDE Arduino, mais nous avons également besoin de la bibliothèque GFX et de la bibliothèque ST7735, toutes deux mises au point par Adafruit. Elles peuvent toutes les deux s'installer par l'entremise du gestionnaire de bibliothèque.

Sketch #1: affichage de texte stocké sur la carte SD

Dans ce premier exemple, l'écran affiche successivement toutes les lignes d'un texte enregistré sous forme de fichier sur la carte SD.

Le fichier s'intitule "mots.txt" et doit avoir préalablement été enregistré sur la carte SD. Pour cette démonstration, j'ai écrit dans ce fichier quelques proverbes. La raison pour laquelle vous pouvez voir plusieurs espaces entre certains mots, c'est que l'écran affichera 13 caractères par ligne. Si le 13e caractère se trouve au milieu d'un mot, le mot sera séparé en deux parties lors de l'affichage à l'écran, ce qui ne fait pas très joli.


Lors de l'exécution du programme, l'écran affiche successivement chaque ligne du fichier txt pendant 5 secondes. Notre Blue Pill s'est transformée en philosophe un peu casse-pieds!


-
-


Sketch #2: Affichage à l'écran d'images .bmp stockées sur la carte SD

Dans ce deuxième exemple, des images se trouvant sur la carte SD sous la forme de fichiers .bmp sont affichées à l'écran, l'une après l'autre.  Dans ce cas, j'ai utilisé, avec assez peu de modifications, un sketch mis au point par Adafruit.


Les images doivent être enregistrées sur la carte SD sous la forme de fichiers bitmap (.bmp) ayant la même résolution que l'écran (donc 160 pixels de large par 128 pixels de haut, dans mon cas).

L'image ne sera pas redimensionnée: si elle est plus grande que l'écran, seule une portion de l'image sera affichée, en taille réelle!

-

-

À lire aussi

Yves Pelletier (TwitterFacebook)

Aucun commentaire:

Enregistrer un commentaire