Point sur le projet...

Voici l’EM-10 en l’état d’avancement. Le projet a fait un sacré chemin depuis ses débuts! Cela commence à avoir vraiment de la gueule...
IMG_4081
IMG_4085
Le boitier abritant la carte MKS a été repensé en positionnant les composants face à l’intérieur de la monture. Cela m’a permit de placer tous les connecteurs en bas mais aussi par la suite de dégager de l’espace pour le passage de l’encodeur de l’axe R.A...
new-mks-box
D28B6685
La tension d’alimentation est maintenant régulée par un Pololu S18V20F12 12V Step-Up/Step-Down (récupération de mon tout premier proto) mis en boiter avec interrupteur...
power-box
IMG_4089
Et pour finir j’ai revu le boitier du PI Zero du proto de viseur polaire en l’inclinant de 90° pour un accès plus pratique aux ports par le dessous...
IMG_4093
Restera à voir le connecteur du câble du moteur de mise au point du CN-212 qui dans l’immédiat est encore câblé directement en interne sur la carte. Je pense partir sur du RJ-9 histoire d’avoir quelque chose de compact.

Avancée de l'interface de JARVIS

Le développement de la raquette de commande avance...
https://www.youtube.com/watch?v=YOFlksQ5o74
Le format paysage me contraint à revoir complètement l'interface de navigation que j'avais imaginé pour l'écran de l'ancien prototype mais cela devrait être d'autant plus confortable à l'usage.

Le retour de ScreenView:
Ceux qui suivent le projet depuis un moment, auront sans doute noté que l’interface rappelle la librairie ScreenView que je vous avais présenté mi 2017. Et pour cause puisque c’est elle que j’utilise. Je l’ai adaptée pour supporter l’écran 4,3’’ sur Arduino Due. Et avant qu’on me pose la question: oui je pense la partager lorsqu’elle sera assez avancée et stabilisée. ;)

Articles connexes:
- Aperçu bibliothèque C++ ScreenView
- Aperçu bibliothèque C++ ScreenView (2)

Nom de code: EM-10 JARVIS

Les développements avancent du côté de ma raquette de commande. Pour l’instant le bilan de cet écran 4,3’’ piloté avec contrôleur RA8875 est positif mais malheureusement il y a un mais! Et pas des moindres: il m’est impossible de faire cohabiter en même temps l’affichage graphique, la carte SD et le tactile!!!

Pour faire court, on a deux options au niveau librairies:
- Adafruit_RA8875
- sumotoy/RA8875

J’ai tout d’abord testé la première mais impossible à l’usage de charger de nouvelles polices de caractère. C’est d’autant plus dommageable que la police par défaut est trop grande. On doit aussi constamment jongler manuellement entre mode texte et mode graphique ce qui est pénible.

J’ai donc opté pour celle de sumotoy. Tout allait pour le mieux jusqu’au moment où j’ai inséré ma carte micro SD pour m’attaquer à l’affichage de l’image de démarrage du projet. Et là catastrophe! Les performances s’écroulent et le tactile ne fonctionne plus. :/

Après moult lectures et notamment les discussions animées par sumotoy il semblerait bien que cet écran souffre du « MISO bug » découvert par Paul Stoffegen:
«There's another **hardware issue on MISO** that's a problem only if you are planning to use any other SPI devices together with RA8875 (example, the SD card holder!), Paul Stoffregen discover the MISO bug that it's not tristate»
https://github.com/sumotoy/RA8875/wiki/RA8875-chip-BUGS!

Bref! Il faut encore que j’investigue mais c’est moyen cool! Dans l’immédiat, j’ai décidé d’avancer malgré tout en intégrant mon image de boot en mémoire flash. Cela fonctionne, c’est relativement rapide côté affichage mais cela monopolise beaucoup de mémoire.

Alors bienvenue à JARVIS, le cerveau de mon projet...

em-10-jarvis
Just A Rather Very Intelligent System... 🤪
Tony Stark: "Jarvis, where's my flight power?!"
Jarvis: "Working on It, sir. This is a prototype."

Amélioration de la librairie adafruit RA8875

Pour ceux que cet écran RA8875 intéresse, j'ai publié sur mon github une version améliorée du code d'adafruit...
https://github.com/MarScaper/Adafruit_RA8875

Le tactile a été revu avec une fifo circulaire afin de réaliser une moyenne glissante pour limiter le bruit...
https://www.youtube.com/watch?v=gKrekKUhyoY

Enjoy folks! :)

L'écran tactile de mes rêves...

S’il est bien un point galère avec la plateforme Arduino c’est de s’y retrouver dans la pléthore d’écrans tactiles Chinois du commerce. Je pense avoir enfin trouvé la solution ultime (ou pas) avec cet excellent TFT 4,3’’ de 480x272 pixels et son interface pour Arduino...

TFT-4-3-RA8875
https://www.ebay.com/itm/Serial-SPI-4-3-inch-TFT-LCD-Touch-Shield-for-Arduino-Due-MEGA-2560-Uno-w-Library-/291873847671

Sur la base de cette écran, mon idée est de réaliser une raquette de commande qui ressemble un peu à une console de jeux portable en format paysage. L’écran est piloté par un Arduino Due 32 bits ARM afin d’offrir plus de liberté qu’une carte Arduino MEGA. Avec 84Mhz et 96Ko de SRAM le Due est l’Arduino le plus puissant du moment. Je vais pouvoir faire des folies!

Après la Nintendo Switch voici la naissance de l’Astro Switch... ;)

45133532_1920219131424506_2419444443221327872_o

45208529_1920220201424399_3865777012316569600_o

45097334_1920220318091054_5666634800706879488_o

La puce GPS de l’ancien prototype va être réimplantée dans la raquette...

46091030_1937438619702557_8868177893583224832_n

Un aperçu de l’adaptation de l’abaque numérique de l’EM-10 calé sur les données de la puce GPS (lumière bleue à l’intérieur du boitier)...

45901935_1937438953035857_1342845091579953152_n

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.