Arduino avec écran tactile et interface XpressNet

Des questions sur la digitalisation d'un modèle ou sur des centrales ?
Avatar de l’utilisateur
dirkh
Messages : 232
Inscription : 25 sept. 2014, 20:08
Type de centrale : Analogique et numérique
Localisation : Herentals

Arduino avec écran tactile et interface XpressNet

Message par dirkh » 09 avr. 2019, 20:49

Je m'excuse pour le mauvais français, mais je voulais faire connaître ce projet

Pourquoi ce projet?
Si je veux jamais conduire la piste, je dois soit configurer le PC et avec un câble d'extension USB qui se connecte à la piste, ou tout contrôler via le multimaus. J'ai toujours le problème de me souvenir des différents numéros de commutateurs ou je ne trouve pas le papier avec les chiffres, en bref, conduire avec seulement le multimaus n'est pas idéal non plus.

Maintenant, j'avais acheté un ordinateur portable 2 en 1 avec un écran tactile pour le modélisme ferroviaire, mais en attendant, ma charmante petite amie était impatient de l'utiliser comme tablette. Pour garder la paix, je ne fais aucune objection et je reste silencieux et je plaisante avec les multimaus et les journaux ou avec le PC de bureau.

C'est ainsi que j'ai eu l'idée de créer un petit panneau de commande pour faire fonctionner les commutateurs et les accessoires. En ces temps modernes, un panneau avec des commutateurs est en fait un peu dépassé. Nous recherchons donc une solution possible avec un écran tactile.
Après avoir cherché pendant un moment, j'avais déjà trouvé une bibliothèque arduino sur Internet pour créer une interface Xpressnet avec un arduino et une interface RS485.
J’ai trouvé la bibliothèque plutôt compliquée et trop vaste pour mon objectif; j’ai donc créé une bibliothèque sur la base de l’original. (A également effectué quelques ajustements mineurs pour le fonctionnement de mon projet).

• Je veux pouvoir me déplacer avec mon panneau, comme avec le multimaus, et le brancher à différents endroits sur les connexions XpressNet.
• Lors du démarrage, je dois avoir la possibilité de lire le statut des points ou de les initialiser à un état défini.
• Il doit être facile de s’ajuster pour ajouter de nouvelles fonctions sans trop de programmation.
• Il doit être possible de modifier facilement les tâches (charger une nouvelle configuration dans le périphérique). La charge se fait simplement en insérant une carte SD, allumez le système, attendez que la configuration soit chargée, éteignez-le et éteignez à nouveau la carte SD.
• Il doit être possible de diviser la disposition en différents écrans afin que l’affichage ne soit pas surchargé.
• L’affichage doit toujours indiquer l’état de la piste aussi précisément que possible, même si des commandes sont envoyées avec le multimaus ou le PC entre les deux.
• Lorsque le signal DCC est interrompu, aucune commande ne peut être envoyée à l'interface XpressNet à moins que la commande de mise sous tension ne soit utilisée pour empêcher l'affichage de l'état correct du Web.

Après quelques recherches, j’ai acheté un écran tactile Nextion de 3,5 pouces, car il permet de concevoir facilement les écrans sur le PC et une partie de la logique peut déjà être gérée par l’écran Nextion lui-même. Par exemple, l’Arduino peut être utilisé presque entièrement pour le traitement des commandes Xpressnet et n’intervient que dans une mesure limitée avec les commandes reçues de Nextion ou de l’interface XpressNet.

(Achetez un écran plus grand la prochaine fois, moins un 4,5 ”ou plus)

Il semblait plus facile d’utiliser un méga arduino car il dispose de 3 ports série.
J'utilise le port 0 pour le débogage et le téléchargement du programme Arduino.
Le port 1 est fourni pour l'interface Xpressnet
Le port 2 est fourni pour l'interface d'affichage Nextion.

Afin de ne pas surcharger l'alimentation de l'interface Xpressnet (je ne sais pas quelle quantité d'énergie elle peut fournir, je dois encore vérifier), j'ai décidé de fournir des connexions séparées pour le panneau avec sa propre alimentation 5V pour les écrans Arduino et Nextion. (Plus tard éventuellement via un convertisseur continu-continu à partir de l’alimentation de l’interface XpressNet.
Pour l’interface RS485, j’utilise un PCB standard d’Ali. À part quelques fils pour l'interface Xpressnet et certaines connexions, tout peut être monté avec les fils standard de Dupon. Après des tests, il s’est avéré qu’un léger ajustement du module standard RS485 devait être effectué depuis le passage en écriture au début de l’écriture, ce qui a créé des problèmes sur l’interface XpressNet et le module est même mort dans certains cas.

A gauche du module d'origine, à droite de la version modifiée, la résistance R3 (10k) détachée et décalée vers le bas, puis le côté lâche connecté au GND à C1 via un morceau de fil de laque. Cela fera passer le module en mode lecture par défaut.
Image
Pour le contrôle de l’affichage Nextion, j’ai décidé de créer moi-même quelques petites fonctions car j’ai trouvé la bibliothèque Nextion arduino un peu exagérée. Je dois juste pouvoir envoyer une commande à Nextion et recevoir des messages prédéfinis de Nextion.
J'ai mis en place un peu d'un protocole:
Commandes à recevoir de l’affichage Nextion:
N = lecture en configuration à partir de l'affichage nextion
I = initialiser tous les points et accessoires avec les valeurs définies et régler l'affichage aux valeurs par défaut.
R = lit l'état de tous les commutateurs et accessoires à partir du maître Xpressnet et configure l'affichage avec les positions de lecture.
Wnnn-x = placez le commutateur / accessoire avec n ° dcc "nnn" sur la position "x" (x = 1 droit, x = 0 déviant)
PON = définit la tension de voie
POFF = éteint la tension de voie
Lors de la conception de l'écran, je respecte les règles suivantes:
J'utilise presque toujours des boutons d'état doubles qui ont chacun 2 images pour montrer l'état.
Les commutateurs / accessoires ont toujours le nom Wnnn, nnn étant l’adresse DCC.
Avec un relâchement tactile, le statut est toujours transmis à l'arduino via un "get" Wnnn-x "".
Sur chaque écran, un bouton d'alimentation situé en bas indique l'état de la tension de la voie et peut être utilisé comme arrêt d'urgence. Lorsque l’arrêt d’urgence est activé, tous les autres boutons de l’écran sont désactivés et aucune commutation n’est possible jusqu’à ce que l’arrêt d’urgence soit relâché afin d’empêcher à l’écran d’afficher le bon état de la piste.
Tous les commutateurs / accessoires sont décrits dans l’arduino avec une adresse, une position, une position par défaut et un nom de page DCC de l’écran Nextion sur lequel se trouvent le commutateur / accessoire correspondant.
Lors du démarrage, le choix est toujours fait d’initialiser ou de lire dans les positions. De cette façon, je suis sûr que la position de l'affichage correspond à celle du travail.
Si le signal Xpressnet est perdu, l'affichage bascule sur l'écran de démarrage. (A mettre en œuvre)
Il est possible de redémarrer l'affichage via l'écran. Démarrer renvoie les options de démarrage "Init" ou "Lire".
L'écran a des boutons pour afficher les différentes parties (pages) du cours.
Une photo de la configuration complète du test:
Image
Donc c'était un peu comme ça. Quelques films de plus, mais pas de la meilleure qualité car ceux-ci ont été réalisés à la main alors que je devais encore utiliser l'écran et le multimaus.

https://youtu.be/O4KnQ3amLHo

]https://youtu.be/gcDnl50PRm

Je travaille actuellement sur la fabrication d'un logement en impression 3D
Castor
Messages : 1032
Inscription : 14 oct. 2013, 15:21
Type de centrale : Analogique et numérique
Localisation : Nivelles

Re: Arduino avec écran tactile et interface XpressNet

Message par Castor » 14 avr. 2019, 16:37

C'est un beau projet. Mais, je suis loin d'avoir tes connaissances en électronique.
Avatar de l’utilisateur
JEPE
Messages : 2481
Inscription : 20 août 2013, 18:41
Type de centrale : Numérique
Localisation : Corroy-le-Grand

Re: Arduino avec écran tactile et interface XpressNet

Message par JEPE » 26 avr. 2019, 08:13

:shock: ... lorsque j'étais plus jeune, voici le nouveau transfo hyper moderne !
Transfo Jouef.jpg
:roll:
Répondre