Amélioration de l'écran tactile TFT 400x240

J’ai profité du démontage du prototype pour apporter une légère amélioration à l’écran. On peut voir sur cette photo que l’écran couvre toutes les pins latérales du Arduino Mega mais sans toutefois les exploiter…

tft-dx-volumerate

Un coup de Dremel plus tard, on récupère l’accès aux entrées/sorties A6 à A15 et 14 à 21…

IMG_1934

IMG_1930

Côté PCB, pas de problème pour la découpe puisque aucune piste ne passe par là. Il faut juste faire attention à ne pas toucher l’écran avec la mini scie circulaire du Dremel.

L’amélioration est très intéressante car on récupère l’accès à 18 entrées/sorties! Dans mon cas, l’accès aux liaisons séries 1, 2 et 3 va être tout particulièrement utile. Je vais ainsi pouvoir connecter la puce GPS et la puce Bluetooth en hardware. :)

arduinomega2560_r2_front

Et pour finir un aperçu du prototype actuel démonté et placé sur un support bricolé et décoré avec ma fille (on ne voit pas bien sur la photo mais il y a des planètes et des étoiles dessinées)…

IMG_1940

Pour rappel, le lien vers l’écran TFT 240x400 (7,31€):
http://www.volumerate.com/product/open-smart-touch-screen-expansion-shield-w-touch-pen-for-arduino-450238

Test d'un écran tactile TFT 400x240

Ce weekend, je teste un nouveau modèle d’écran TFT trouvé sur VolumeRate. L’offre est alléchante car pour à peine 20€, on a en plus un Arduino Mega et une carte micro SD de 256Mo…
http://www.volumerate.com/product/450236

kuman-vs-dx

Par rapport au Kuman K60 2.8’’, j’aime:
- Ecran plus grand.
- Résolution de 400x240 contre 320x240 pour le Kuman.
- Meilleur contraste et meilleur angle de vue que le Kuman. On l’aperçoit sur la photo, le Kuman vire vite au bleuté dans les noirs dès qu’on est pas dans l’axe.
- Affichage plus rapide (environ 2x) que ce soit en dessin vectoriel ou lors du chargement de bitmaps depuis une carte micro SD.
- L’écran chauffe moins que le Kuman.
- On dispose d’une sonde de température LM75 intégrée.
- Malgré le gain en taille, ce modèle n’occulte pas les ports supérieurs du Mega...

tft-dx-volumerate


Maj du 25/06 : le nouvel écran permet aussi l’accès au buffer d’affichage contrairement au Kuman. Il m’est ainsi possible de faire des captures d’écran en bmp sur la carte micro SD… :)

screenshot-arduino-red screenshot-arduino-white
Ebauche de viseur polaire (mode nuit à gauche et mode jour à droite).

Ecran déporté de débogage via Bluetooth

Je l’avais évoqué précédemment lors du test de cet écran TFT Kuman et voilà qui est fait: un écran nomade pour afficher les logs lors de la phase de débogage du projet. Il est monté sur un Arduino chinois défectueux (mauvaise gestion des Timers matériel) sur lequel j’ai connecté un module Bluetooth. Dès que l’écran est à proximité de la raquette de commande, il s’appaire automatiquement. Cela va me permettre de remonter des informations utiles pour la phase de mise au point sans forcément avoir besoin d’un PC connecté.

ecran-debogage-bluetooth

Et voici le résultat en vidéo…

https://www.youtube.com/watch?v=Eh7B9osfDkk

Note pour plus tard: plus j’y pense et plus je me dis qu’à terme cela pourrait être assez classe d’avoir un petit écran d’abaque numérique pour le viseur polaire. On allume l’écran. On l’approche de la monture. Il se connecte en Bluetooth et à partir des informations GPS nous affiche automatiquement l’emplacement de la polaire dans le réticule.

Amélioration des performances de l'écran TFT

Pour le fun je me suis amusé à améliorer les performances d’affichage de l’écran TFT. Le résultat en vidéo...

https://www.youtube.com/watch?v=Tjh4EQe2xGI

Optimisation:

  • Librairie SD de base remplacée par SDFat qui offre de meilleurs performances.
  • Modification de la méthode pushColor() de la classe Adafruit_TFT afin de permettre l’usage d’un buffer de pixels supérieur à 256. On peut ainsi allouer toute la largeur d’une image plein écran de 320 pixels.
  • Les fichiers bitmap 24 bits sont remplacés par de vrais fichiers bmp 16 Bits. On évite ainsi tout besoin de conversion pour l’écran 16 bits.
  • Les fichiers bmp sont aussi préalablement retournés haut/bas du fait de l’origine inversée entre le format bmp et l’écran. Ainsi on peut se déplacer linéairement lors de la lecture (pas besoin de seek).

Au final les performances sont améliorées d’un facteur 3x pour de l’affichage bitmap. :)

Ecran TFT or not écran TFT?

Je continue à faire des folies de mon corps ou plutôt de mon Arduino avec le test d’un Kuman K60 2.8 pouces à 14€.

Kuman K60
https://www.amazon.fr/gp/product/B01C3RDFN6/ref=oh_aui_detailpage_o02_s00?ie=UTF8&psc=1

L’écran offre une résolution de 320x240 en 16bits (65535 couleurs). Au dos on trouve un lecteur de carte micro SD. Et pour le tactile c’est du résistif on ne peut plus commun. Alors autant le dire tout de suite, pour 14€ ce shield est une plagia pur et simple du produit proposé par Adafruit…
2.8" TFT TOUCH SHIELD FOR ARDUINO WITH RESISTIVE TOUCH SCREEN
D’ailleurs, Kuman fournit le code source du driver sur demande uniquement par mail. Et pour cause, c’est une version à peine modifiée du code proposé par Adafruit. Sacrés chinois!!!

roger-rabbit-tft

Les plus:

  • Shield plug & play.
  • Pas cher.
  • Lecteur de carte SD intégré.
  • Qualité d’écran très correcte notamment en mode portrait.

Les moins:
  • Performance d’affichage assez limitées.
  • Utilise quasiment toutes les connections d’un Arduino Uno.
  • Angle de vue optimisé pour un affichage portrait ce qui devient désagréable visuellement si on préfère un usage en mode paysage.
  • L’usage en simultané des librairies pour l’affichage, le tactile et la carte SD consomme quasi entièrement les 32Ko de stockage. L’usage d’un Arduino Mega n’est donc pas du luxe.

Astuce: le remplacement de la librairie SD par la librairie SDFat permet un gain substantiel: l’usage de la mémoire Flash est plus réduit (environ 9% sur un Uno) ainsi que l’usage de la SRAM et les performances sont sensiblement améliorées.

Dans l’immédiat, je ne pense pas utiliser cet écran TFT pour la raquette de commande mais il pourrait être pratique pour concevoir une console de débogage déportée avec une connexion Bluetooth.