Ma nouvelle manette DCC avec ESP32 (1)

Evolution de la manette déjà publiée

. Par : msport. URL : https://www.locoduino.org/spip.php?article342

Vous avez réalisé Une manette simple et autonome pour LaBox ou vous vous y êtes intéressé. Vous maitrisez les concepts, la démarche et vous avez les moyens pour sa réalisation.
Depuis la parution de cet article, la technique a avancé et un nouveau microcontrôleur, l’ESP32, a été intégré dans l’écosystème Arduino.
Une manette simple et autonome pour LaBox fonctionne bien, mais elle est basée sur un Arduino Pro Mini dont les performances sont correctes, alors que l’ESP32 rend cette manette très réactive.

Cette fois ci, on ne fera pas de montage sur table comme pour Ma première manette DCC (1) et c’est le circuit imprimé qui supporte tous les composants.
Cette manette basique utilisera Ma première centrale DCC ou Une station DCC complète, polyvalente et économique avec JMRI. en autonomie, éventuellement sans ordinateur ou Raspberry. Ou encore LaBox. (article à venir)
Le sans fil (radio) assure le lien avec la centrale via une paire de HC12, tout en permettant la connexion de plusieurs manettes simultanément. Ici, on n’exploite pas le WiFi de l’ESP32. Cette manette est destinée aux centrales DCC++ et DCCpp. Cette manette se connecte sur le port série d’une centrale via une liaison radio tout simplement, donc toute centrale configurée de cette sorte. Une liaison filaire est également possible pour une manette unique.

Le schéma

Schéma

Le circuit imprimé définitif

Circuit imprimé

Ci-dessous les photos du circuit. Il comporte coté cuivre trois résistances CMS R2, R3 et R4. Ce sont des 10 K 1206 pour permettre l’affichage de la tension de la batterie à la mise sous tension. R4 est réservée à un usage ultérieur qui pourrait être le réglage de la luminosité de l’écran à partir d’une LDR.
La visserie hexagonale est en nylon afin de ne pas créer de court-circuit.
Vous vérifierez que votre interrupteur ferme les positions des broches correspondant aux pistes. (les deux en bas à droite, vue de dessous).

La manette au complet
La manette au complet
Circuit imprimé coté composants
Circuit imprimé coté composants
Circuit imprimé coté cuivre
Circuit imprimé coté cuivre
Les composants
Les composants
Step up 3,7V vers 5V
Step up 3,7V vers 5V

Ce petit module doit être soudé avec des queues de résistance.

Vous noterez que sur la photo, les boutons ne sont pas soudés. Leurs pattes faisant ressort, le contact est assuré et le montage fonctionne bien pour les tests. Ces boutons seront remplacés par des modèles à queue longue pour la mise en boite afin que les capuchons dépassent de la surface du boitier. Ces modèles à queue longue sont fragiles et cela évite les casser pendant les tests.

Le matériel

Les composants sont ceux de Une manette simple et autonome pour LaBox sauf :

  • Arduino Pro Mini remplacé par un ESP32 (header femelle 15 broches à prévoir)
  • régulateur 3.3V
  • condensateur 100 nF CMS
  • 10 câbles DuPont femelle/femelle (pour programmation de l’Arduino via FTDI)
La liste des composants

La batterie

La batterie 1000mAh embarque de l’électronique empêchant sa décharge profonde et sa destruction. Elle est doublement protégée par le chargeur qui comporte aussi cette fonction.
L’autonomie est supérieure à une heure. L’autonomie peut être augmentée en adoptant une batterie de plus grande capacité.

Attention en manipulant les batteries, même les petites capacités peuvent faire des dégâts en cas de court-circuit

Les bibliothèques

La liste :

  • SPI.h
  • TFT_eSPI.h
  • Adafruit_GFX.h
  • Adafruit_ST7735.h
  • ESP32Encoder.h
  • Keypad.h

Vous devez avoir installé les bibliothèques :

Si vous commencez à utiliser la bibliothèque TFT_eSPI, il vous est dit : Assurez-vous que toutes les connexions du pilote d’affichage et des broches sont correctes en éditant le fichier User_Setup.h dans le dossier de la bibliothèque TFT_eSPI.
Ici, ces User_Setup.h ont été configurés pour un écran ST7735, vous remplacerez donc le User_Setup.h de votre bibliothèque TFT_eSPI par un de ceux-ci.

User_Setup.h pour ST7735
User_Setup.h V2 pour ST7735

Attention, il existe des variantes de cet écran 1,44" ST7735 dont les déclinaisons figurent dans le fichier User_Setup.h. Vous trouverez au dos V1.1 ou V2.1 (par exemple)
Vous serez peut-être obligé de tester plusieurs User_Setup.h avant de trouver celui qui correspond à votre modèle. Deux versions vous sont proposées ici.
Par ailleurs, j’ai récemment reçu des exemplaires (deux sur trois) de V1.1 dont l’affichage était très vif à la mise sous tension et qui devenaient rapidement bleutés avec un échauffement important au niveau de la nappe de connexion (probablement la LED de rétro éclairage). Je pense qu’ils sont utilisables en rajoutant une résistance en série avec la broche LED - ce qui nécessite une intervention sur le circuit imprimé. (ou bien en remplaçant la 5,6 ohms CMS que l’écran comporte) Si vous rencontrez ce problème, ouvrez un sujet sur le forum pour que l’on vous apporte de l’aide

Deux versions de l'écran 1,44"
Deux versions de l’écran 1,44"
  • Adafruit_GFX.h driver de l’écran
  • Adafruit_ST7735.h idem
ESP32Encoder.h
Keypad.h
  • ESP32Encoder.h gestion de l’encodeur rotatif et son bouton
  • Keypad.h gestion du clavier 4x4 boutons

Le programme

Il est sur la même base que celui d’ Une manette simple et autonome pour LaBox. On trouvera dans l’article de cette manette des explications détaillées.

programme esp32_throttle_st_13.ino

Le mode d’emploi

On se reportera à celui d’ Une manette simple et autonome pour LaBox.
Sans changement pour les locomotives : Vitesse, sens, adresse, numéro.
Il a été amélioré pour les fonctions. En 4 groupes choisies avec la touche D.
Chaque groupe de fonctions est affiché sur une ligne de gauche à droite.
(1 : fonction enclenchée, 0 : fonction déclenchée).
Chaque fonction du groupe est commandée par le pavé numérique depuis 1 jusqu’à 4 ou 8.
Toutes les pressions de touche sont décodées mais seul l’appui dans un groupe (G0, G1, G2, G3) commande la fonction et l’affiche.
L’affichage des fonctions se présente sur quatre lignes :
G0 de F0 à F8
G1 de F9 à F12
G2 de F13 à F20
G3 de F21 à F28
F0 appartient au groupe 0 et est commandé par la touche 0.
Cette disposition correspond à la norme NMRA.

Le fichier à envoyer au fournisseur de circuit imprimé

les fichiers de fabrication.

Gerber

Où acheter ?

Où acheter ?, une liste de fournisseurs.
On se reportera à l’article Une manette simple et autonome pour LaBox dont le matériel est en grande partie identique.
Voir la liste des composants.
https://www.ebay.fr/itm/173596166343 ESP32 8€
https://jlcpcb.com circuit imprimé 5 € les 5
https://www.ebay.fr/itm/173474533492 l’écran TFT 1.44" 8,25€
https://fr.aliexpress.com/item/3294... écran TFT 1.44" 8,25€
https://www.ebay.fr/itm/354967542108 step up 3,7V 5V 1,28€
https://www.ebay.fr/itm/274596559950 module chargeur 3,7V 2,8 €
Ici, c’est un écran ST7735, étiquette verte.
si un lien ne fonctionne pas, une recherche avec le nom du produit donnera des résultats actualisés.