Anthias
mail

nextion

Afficheurs « intelligents » Nextion

Le pour et le contre

Nextion


Introduction
Bilan du Nextion
Quelques applications
Remplacer le Nextion ?

Autres pages Nextion

Maj : 18/05/20

Abstract :
I was using every types of new passive graphic LCD displays of the market, and in 2019, I discover a new type of « intelligent » displays with touch screen, the Nextion family.
Pros & cons of these devices
This page shows some of my applications.

Résumé :
J'utilisais tous les types de nouveaux écrans LCD graphiques passifs du marché et, en 2019, j'ai découvert un nouveau type d'afficheurs « intelligents » à écran tactile, la famille Nextion.
Avantages et invonvénients de ces dispositifs.
Cette page montre certaines de mes applications.

nextion  Introduction

Après avoir commencé la programmation sur des gros IBM à cartes perforées en Cobol (et oui, elles ont fini en 1975…), j'ai pratiqué sans discontinuer le langage machine depuis l'Apple 2 (1977), les premières calculatrices scientifiques Hewlett Packard (HP 28 en 1987), puis tous les microcontrôleurs du marché. Au fil des ans, mes boîtes sont pleines de prototypes utilisant tous les types de microcontrôleurs du marché (mais principalement sur famille 8051 et un peu de Pic). Tout avait été développé avec de nombreux langages assembleurs et compilateurs variés, ce qui rend impossible de ressortir une ancienne carte et l'associer à son bon environnement de l'époque pour reprendre le développement.
Je suis arrivé à des situations bloquantes pour lesquelles l'assembleur montrait ses limites. Il devenait extrêmement pénible de gérer les cartes SD, les disques durs, et surtout l'Ethernet, l'Internet, le Wi-Fi, le Bluetooth, le Xbee...
Pour sortir de cette impasse et changer de stratégie, il n'y avait d'autre solution que de tout jeter et de repartir sur de nouvelles bases.
Après de longues réflexions, et divers vagabondages, j'ai définitivement basculé sur Arduino, pour diverses raisons :

° L'environnement Arduino est totalement ouvert, toutes les sources et hardwares sont parfaitement bien documentés.
° Il existe une multitude de bibliothèques qui facilitent le développement d'innombrables périphériques.
° La communauté Arduino est très active, la diffusion est très grande.
° Il est possible de développer son code source capable de tourner à la fois sur une carte très puissante (DUE, AT Mega 2560, Pic32,...) et sur un très petit circuit 8 pattes (ATtiny). Il suffit de déclarer sa cible au compilateur et évidemment de n'utiliser que ce dont dispose le contrôleur choisi.
° Le langage principal est le très classique C (et C++), universel et rigoureusement indémodable, ce qui assurera la pérennité des développements.

Vous trouverez ici plus de détails : Choisir entre le C et l'assembleur casm

 Haut de page

nextion  Bilan du Nextion


Les afficheurs intelligents Nextion ont de grandes qualités, mais aussi d'énormes défauts !
Il faudra apprendre à jongler avec.
Il est normal au premier contact de se sentir dérouté par cette approche nouvelle quand l’habitude est prise de travailler avec des afficheurs passifs, mais il existe de bons tutoriaux pour découvrir les bases et se lancer.
Le site Nextion offre une documentation indispensable pour comprendre l’esprit du produit qui semble toutefois non finalisé et de conception étrange.

Points positifs :
1. Très bel affichage en 800*480 (5 et 7 pouces).
2. Ecran tactile sensible (bien que résistif).
3. Liaison à l’Arduino par 2 fils série seulement (plus alimentation), ce qui permet de déporter l’affichage très facilement.
4. Ecriture facile des programmes utilisateur par transfert via la microSD.

Points négatifs :
1. Absence catastrophique de la notion de fonctions permettant d’échanger des données, cela fait des codes très longs et illisibles car il faut répéter de gros blocs identiques de code (voir "aiguilles complexes" en page "Rolex Nextion").
Il n’y a même pas de macros…
2. Pas de nombres flottants, la trigonométrie est pénible.
3. Aucun accès à la RAM, impossible de créer des tableaux indexés.
4. La taille de l’EEPROM n’est que de 1024 pauvres bytes, et comme une écriture utilise 64 bits (4 bytes), il n’y a que 256 adresses utiles. Ceci n’est valable que pour les versions « enhanced », pour les « basic », c’est pire, pas d’EEPROM, aucune solution.
5. Il n’y a aucun moyen d’accéder à l’excellent et très puissant STM32 exploité au minimum pour faire tourner le Nextion, il est impossible d’ajouter des bibliothèques personnelles, le firmware est verrouillé, non abouti et confidentiel. Il manque énormément de fonctions utiles pour faire du graphisme.
6. Pas de sinus, cosinus…. Voir mes exemples pour contourner.
7. Pas de fonction de remplissage graphique pour des triangles ou des formes.
8. Syntaxe étrange, ce n’est pas du C normal : fins de lignes sans « ; », interdiction des espaces, obligation du « .val » pour chaque variable… Au premier abord on croit reconnaître du Visual C, mais Nextion n’en imite qu’une partie.
9. Documentation indigente ne montrant que les bases simples, tout ce qui est complexe renvoyant à des pages « SonOff » effacées.
10. Le firmware n’évolue pas malgré les doléances des utilisateurs. Le développement du produit semble abandonné depuis des années.
11. Prix beaucoup trop élevé
12. Consommation élevée due au rétro-éclairage, presque 500 mA en 5V.
13. Impossibilité d’exploiter la micro SD pour autre chose que charger le programme compilé.
* * * J’arrête ici, vous en avez assez pour vous faire une idée…

Avant de découvrir le Nextion, j’ai testé de nombreux autres afficheurs, mais sans donner de suite car il manquait toujours un écran tactile !

Cet ancien modèle CTE50 UTFT, aussi en 800x480, avait pourtant un mode qui manque beaucoup au Nextion : il disposait de huit pages de mémoires, que l’on pouvait composer en tâche de fond et afficher instantanément, ce qui est extrêmement pratique.

A contrario, il avait aussi le même défaut que les autres, l’accès parallèle bloquait 14 pins et il bouchait l’accès à l’Arduino sur lequel il était enfiché.
ancien

Haut de page

nextion  Quelques applications

Malgré tous les défauts cités, j’apprécie et j’utilise les 7 ou 5 pouces enhanced, c’est mon côté masochiste…
Avant cela j’exploitais des 3.5 pouces parallèles en 480x320, je les ai abandonnés pour disposer d’une plus grande résolution et du très bon tactile, et oublier les anciennes liaisons pénibles par 14 fils sans tactile et les encodeurs KY040 à l'Arduino.

Une partie de ma collection d’afficheurs classiques et de Nextion sur Arduino.

bureau

 

Gros plan sur l'application Nextion d’acquisition de données et domotique sur Nextion.

 

 

Gros plan

 

Mes versions avant le Nextion, utilisant des afficheurs ili9481 en 480x320

Principes des enregistrements et traitement des données.

Domotique Arduinonextion

ili

Application domotique gérant divers capteurs, et présentée avec un simulateur de données permettant de faire une première simulation sans brancher un Arduino.

 

Domotique Nextion arduino

baro

Cette application est une démonstration d’affichage complexe sans Arduino, tous les calculs étant faits par le Nextion, montrant comment contourner les limites du système et réaliser des calculs basés sur des sinus cosinus qui n’existent pas dans le Nextion.
Le principe est d’afficher un fond d’écran (c’est extrêmement rapide) sur lequel se superposent les couches d’aiguilles calculées.
Un éclaté permet de comprendre la construction des aiguilles dans les onglets détaillés.

exemple page : rolexA arduino

SinCos

En utilisant les techniques précédentes sinus cosinus, réalisation d’une horloge comportant des aiguilles complexes, copie la plus exacte possible des vraies.
Tout est calculé dans le Nextion, sans brancher un Arduino.

exemple page : rolexN arduino

Rolex
La même Rolex, mais cette fois entièrement calculée par l’Arduino (c’est beaucoup plus facile), le Nextion ne faisant qu’un affichage passif. 
En contrepartie, cet exemple montre la limite de vitesse qu’impose la liaison 115 kb, produisant un léger scintillement inévitable.

exemple page : rolexA arduino

par arduino

Cet exemple n’est qu’une variante de la Rolex, en utilisant la table 0 .. 360° déduite de la même table sinus 0 .. 90°, pour simplement servir à montrer comment fabriquer des aiguilles élaborées, alors que tous les exemples qui traînent ne montrent que de simples segments (ou des aiguilles fixes sous Photoshop).
Il s’adapte immédiatement en fonction du choix d’un joli fond d’écran avec graduation, pour des angles quelconques.

exemple : page cadrans clock

cadran

Haut de page

nextion  Remplacer le Nextion ?

Après de multiples développements sur Nextion et la découverte des défauts et avantages, une question se pose :
Faut-il persister sur Nextion ou chercher une alternative ?
° Pour : Nous avons vu les avantages, le principal est que cela existe clefs en main !
°Contre : Beaucoup de problèmes déjà cités, manque de souplesse, prix, suivi…

Le STM32 qui équipe le Nextion est extrêmement sous-employé. Malheureusement le firmware n’est pas open source ni téléchargeable, et il n’y a aucun moyen d’améliorer la situation en l’état.

L’idée est donc de se faire son « Nextion maison », en prenant les avantages du modèle et en gommant les défauts.
Pour réaliser cela, choisir un bon afficheur tactile disposant de bonnes bibliothèques (ce n'est pas gagné...).
Le coupler en parallèle avec un ESP32 dédié uniquement à l’affichage et au tactile.
Le plus gros morceau est de développer son firmware personnel, mais cela peut se faire petit à petit.

Cet assemblage permet de dialoguer avec les autres applications Arduino, en deux fils série comme sur le Nextion et en plus Wi-Fi et Bluetooth.
Il est ainsi possible de gommer tous les défauts du Nextion qui visiblement n’est pas fini et dont le développement semble abandonné…

Cela fera l’objet de futures pages.

Remarque : Une nouvelle série « Intelligent » est sortie, améliorant un peu la série « Enhanced », mais sans corriger aucun des gros problèmes.

J’ai maintenant changé de paradigme !
Après avoir exploité au maximum les limites du Nextion en lui faisant faire tout ce qui est possible, il ne fait plus rien dans mes nouvelles applications…
Je charge seulement images et fonts et toutes les commandes passent par l’Arduino, c’est beaucoup plus souple.

Tous les détails et logiciels sont dans cette page à jour au : 220511

eclate

Haut de page

© Christian Couderc 1999-2024     Toute reproduction interdite sans mon autorisation


* Page vue   21367   fois       IP : 18.97.9.172

 Haut de page         Dernière retouche le 25 Mai 2024 à 07 h         Retour page précédente

   Collector