Arduino Esplora et écran TFT

Bonjour à toutes et à tous !

J’espère que vous allez bien en ces temps difficiles. Aujourd’hui, nous allons aborder un autre matériel de l’écosystème Arduino – officiel cette fois-ci. Il s’agit de l’Arduino Esplora et de l’écran Arduino LCD.

Alors, je vous préviens tout de suite, il s’agit, là encore, de matériel qui n’est plus produit par Arduino. Mais, comme pour l’AirBoard, les plans sont disponibles ouvertement et il nous est possible de faire fabriquer nous-mêmes ces cartes, en les adaptant à nos besoins le cas échéant. Le gros point noir de l’AirBoard, c’était sa dépendance – pour le BLE en tout cas – à un module qui embarquait un composant propriétaire et au code fermé, à savoir le Bluno Bee de DFRobot et son CC2540. Ici, nous n’avons heureusement pas ce problème.

Commençons donc sans plus attendre par la présentation de ces deux cartes.

Présentation de l’Arduino Esplora

L’Arduino Esplora est une carte conçue par le projet Arduino et se présente sous la forme d’une manette de jeu nue et bardée de capteurs et actionneurs de différentes sortes. Elle est pilotée par un ATmega32u4 et basée en partie sur le modèle de l’Arduino Leonardo, une carte Arduino qui a la particularité de gérer nativement l’USB, via l’ATmega32u4 justement, ce qui dispense d’un composant intermédiaire pour programmer la carte puisque le bootloader peut tout gérer tout seul.

Côté capteurs, nous avons droit à :

  • un accéléromètre 3 axes MMA7361LC de chez NXP situé au beau milieu de la carte ;
  • un capteur de température TMP36 de chez Analog Devices, en-dessous de l’accéléromètre ;
  • une photorésistance pour détecter la luminosité, en haut à droite ;
  • un microphone, en bas à gauche.

Modulo l’accéléromètre, tous ces composants sont assez génériques et encore trouvables dans n’importe quel magasin d’électronique.

Côté actionneurs, nous avons :

  • quatre boutons à droite disposés en diamant de manière assez classique ;
  • un joystick, à gauche, avec deux axes et un bouton ;
  • un potentiomètre linéaire horizontal, en bas ;
  • un buzzer piézoélectrique, en haut à gauche ;
  • une DEL RGB, à droite du potentiomètre ;
  • un bouton Reset, en haut à gauche.

Là encore, nous avons affaire à des composants assez génériques et trouvable facilement dans des boutiques d’électronique.

Pour ce qui est de la connectivité, la carte dispose d’un port micro-USB, de 2 entrées et 2 sorties sur le dessus pour relier des modules TinkerKit, un connecteur ICSP pour la programmation avec une sonde et, enfin, un bornier destiné à l’écran Arduino LCD.

Tous les composants intégrés à la carte sont utilisables via la bibliothèque Arduino Esplora, téléchargeable directement via l’IDE Arduino. Cette bibliothèque fournit également un bon nombre d’exemples intéressants pour la prise en main de la carte. Certains de ces exemples utilisent d’ailleurs l’écran TFT que nous allons voir tout de suite.

Présentation de l’Arduino LCD

Il s’agit d’un petit écran TFT 1.77″, d’une définition d’écran de 160 x 128 pixels, et piloté par un ST7735. Ce composant est un contrôleur d’écran très répandu dans les écrans TFT bas de gamme – avec le ILI9341 – et que j’ai eu plusieurs fois l’occasion d’utiliser dans des projets professionnels. Pour l’utiliser, il suffit d’utiliser la bibliothèque TFT d’Arduino, qui dépend des bibliothèques Adafruit GFX – pour les routines de dessin – et Adafruit ST7735 – qui est le pilote du contrôleur d’écran.

Le site d’Arduino fournit une image représentant le brochage de l’écran.

La première chose qui saute aux yeux, c’est que l’autre côté du bornier n’est relié à rien. S’il dispose de broches de ce côté-là, c’est uniquement pour soutenir l’écran. On peut voir l’absence de connexions de ce côté de l’écran sur l’image ci-dessous.

L’écran dispose également d’un port pour carte micro SD, utilisable depuis l’Esplora via la bibliothèque Arduino SD. Pour communiquer avec l’écran et la carte SD, on utilise le protocole SPI – qu’on peut ici reconnaître aux broches MOSI et MISO pour les données, SCK (Serial Clock) pour la broche d’horloge et CS (Chip Select) pour sélectionner le périphérique avec lequel on souhaite communiquer – ici nous trouvons une broche CS par périphérique.

Usages

Le but affiché de l’Arduino Esplora est de fournir une carte de développement prête à l’emploi pour les personnes qui n’ont pas la patience ni l’envie d’apprendre l’électronique. Contrairement aux cartes Arduino plus classiques, celle-ci intègre déjà différents composants électroniques pour lesquels l’utilisateur n’aura qu’à se soucier de voir comment communiquer avec eux au niveau logiciel. Je vous avoue que cette explication est assez floue, car elle n’explique rien sur le choix des composants intégrés à la carte ni sur la forme de la carte.

Ce qui est sûr, c’est que nous avons affaire à une carte qui adopte la forme d’une manette de jeu, ne serait-ce que par la présence d’un joystick à gauche et de quatre boutons à droite. Sur certaines manettes, on peut également trouver un accéléromètre, un microphone voire un haut-parleur – comme celui de la Wiimote. Le reste des composants peut également servir à tester différents types de contrôle – par la lumière, la température, un potentiomètre – qui ne sont pas présents sur une manette mais l’utilisation possible de l’Esplora en tant que souris suggère que l’on peut l’utiliser pour contrôler autre chose que des jeux.

Mais ce qui frappe le plus c’est vraiment l’aspect contrôleur de jeu. Je dirais même console portable, une fois que l’on ajoute l’écran LCD, car la carte permet entre autres d’initier au développement de petits jeux vidéos – je dirais bien du type jeu électronique Tiger, mais ce serait être mauvaise langue étant donné que l’Esplora est très probablement bien plus puissante. Un des exemples fournis permet d’ailleurs de jouer à un jeu Pong très, très sommaire.

L’écran est également utilisable avec une carte autre qu’Esplora. Il suffit de relier les broches à une carte Arduino quelconque et d’utiliser la bibliothèque TFT pour l’affichage ou SD pour la gestion de la carte SD. Il est même possible de sortir de l’écosystème Arduino et utiliser la carte directement en SPI depuis n’importe quel microcontrôleur, mais cela oblige à utiliser une autre bibliothèque voire à développer ses propres bibliothèques et pilotes.

Comme je l’ai déjà précisé, cette carte écran n’est plus produite aujourd’hui, mais il est tout à fait possible de trouver des alternatives utilisant le même contrôleur d’écran – le ST7735 – ou un autre contrôleur en adaptant le pilote Adafruit_ST7735. Je ne saurais trop vous conseiller de regarder le code source de ce pilote pour vous familiariser avec l’architecture d’un contrôleur d’écran générique et comprendre comment il s’interface avec une bibliothèque graphique comme Adafruit_GFX. À plusieurs reprises, j’ai dû m’inspirer de ce genre de pilotes pour écrire un pilote maison adapté à d’autres cartes mais utilisant le même genre de contrôleur d’écran. Et heureusement, car ces composants ont la fâcheuse tendance à n’être pas très clairement documentés.

Conclusion

Je n’ai pas beaucoup explicité l’usage de ce matériel de manière concrète parce que les exemples fournis par les bibliothèques Esplora, SD et TFT sont déjà largement suffisants pour apprendre pas mal de choses. D’autant qu’il s’agit de cartes qui ne sont plus du tout produites, donc il y a peu de chances que vous soyez amenés à les découvrir aujourd’hui.

Une autre raison est que la carte dispose de beaucoup de capteurs et qu’il est difficile de trouver un projet facile à développer qui exploiterait toutes les capacités de la carte. Si je trouve une idée exploitable, je ferai un autre article pour la présenter. ;-)

Promis, la prochaine fois j’essaierai de parler d’une carte encore produite – probablement de STMicroelectronics.

Sur ce, je vous laisse et je vous dis à bientôt.

Nicolas SAN AGUSTIN

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *