Auteur Sujet: Train HO avec pilotage par ESP8266 à l'intérieur  (Lu 44881 fois)

Gboule

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #15 le: juillet 16, 2021, 03:38:37 pm »
Puisque mon projet a l'air d'intéresser du monde, je vais partager tout ce que je peux.

Pour cela, je vais partir d'un nouveau train dont je viens de faire l'acquisition pour 50€ sur le BonCoin et elle est en excellente état.
Il s'agit d'un TGV Est de chez Jouef : il ne s'agit pas d'un choix au hasard, car c'est un des rares modèles de TGC qui n'a qu'un seul boggie moteur, donc de la place pour y placer l'électronique.

En pièces jointes, les photos de la loco tracteur fermée puis ouverte.

Gboule

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #16 le: juillet 16, 2021, 04:55:23 pm »
Première chose : préparer le shield Motor Wemos.
On peut commander le shield ici : https://www.ebay.fr/itm/Shield-motor-I2C-for-Wemos-D1-Control-of-2-motors-1387Z-/163459069789 (j'avais commandé les miens sur Amzon, mais y'en a plus !!)

Sur les versions < 2.0, il faut mettre à jour le firmware, car celui d'origine est buggué.
Il faut suivre le tuto ici : https://medium.com/@shelladdicted/how-to-update-the-firmware-of-a-wemos-motor-shield-fadbb496fd01

Les étapes sont (voir photo):
1) Souder le plot STBY sur I2C
2) Souder le plot RST
3) Souder les pins sur les 2 cotés : RST, 3V3, 5V, GND, D1, D2 + (RX, D4, D8) pour le son
4) Souder provisoirement RTS au 3V3 pour permettre le flash du shield mais déssouder à l’issu






Gboule

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #17 le: juillet 16, 2021, 04:56:59 pm »
5) Brancher un convertisseur USB-RTS avec
a.   GND
b.   3V3
c.   TX en D2
d.   RX en D1
6) dans une fenêtre DOS, passer la commande "Stm32flash COMx" => vérification de la communication
7) Puis la commande : "Stm32flash COMx –k" => Unlock Read-Protected Flash
8) Puis la commande  : "stm32flash COMx -u" => Unlock Write-Protected Flash
9) Puis la commande : "stm32flash COMx -v -w motor_shield.bin"
10) DESSOUDER la liaison RTS au 3V3

Gboule

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #18 le: juillet 16, 2021, 05:03:28 pm »
Après avoir dessouder la liaison RTS-3V3, on peut souder l'ESP8266.
J'ai choisi des Wemos D1 mini car ils sont très petits (plus que les nodemecu 12), et plus complet en terme de pins que les ESP-01.
Wemos commandés ici : https://www.amazon.fr/gp/product/B0754W6Z2F/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1

Il faut les souder directement sur le broche male du shield sans passer par des pins femelles pour gagner en place. Par contre, il ne faut pas se louper dans le sens, bien faire coïncider les pins entre le Wemos et le Shield, sinon le dessoudage sera très compliquer.

Il faut souder au moins les mêmes pins que sur le Shield : RST, 3V3, 5V, GND, D1, D2 + (RX, D4, D8) pour le son.

Nota : habituellement, je soude dans l'autre sens, mais ça marche aussi dans ce sens.

Gboule

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #19 le: juillet 16, 2021, 05:43:00 pm »
Maintenant, l'alimentation est le Step-up.
J'ai commandé ces step-up : https://www.amazon.fr/gp/product/B071H9NRTW/ref=ppx_yo_dt_b_asin_title_o02_s01?ie=UTF8&psc=1

En même temps, j'y soude au plus près, le régulateur 5v pour alimenter l'ESP, le shield et éventuellement le MAX98357 pour le son.
Pour le régulateur, on peut utiliser des 7805 mais j'utilise plutôt des L4931CZ50-AP commandés ici https://fr.rs-online.com/web/p/regulateurs-de-tension/6869117p/?cm_mmc=FR-PPC-DS3A-_-google-_-3_FR_FR_R%C3%A9gulateurs+de+tension_STMicroelectronics_Exact-_-STMicroelectronics+-+R%C3%A9gulateurs+de+tension+-+6869117P-_-l4931cz50+ap&matchtype=e&kwd-422500369397&gclid=CjwKCAjw3MSHBhB3EiwAxcaEu8K0QN8UvrVzZWO0_4plRnzvv6AD1YanZovwK-8Gc1SpABC6iydCSRoCbfMQAvD_BwE&gclsrc=aw.ds. Astuce rentrer la référence dans RS particulier, commander le week-end, c'est moins cher !!


Gboule

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #20 le: juillet 16, 2021, 05:48:11 pm »
Avant de souder les fils d'alim entre le couple Wemos+Shield et le Step-up, il faut regarder comment agencer tout ça dans le train.
Ici dans le TGV, y'a de la place, mais il faut enlever le lest et son support en plastique en le coupant au cutter.

Puis on essaie de déterminer la meilleure place pour chacun des éléments, le Wemos+Shield, le Step-up, les 2 batteries, et l'interrupteur et la prise de recharge.

Pour les batteries, y'a un grand choix sur Amazon, mais attention aux mesures : faut que ça rentre !!! Des exemples :
https://www.amazon.fr/gp/product/B07M9T66WV/ref=ppx_yo_dt_b_asin_title_o06_s00?ie=UTF8&psc=1
https://www.amazon.fr/gp/product/B087LTZW61/ref=ppx_yo_dt_b_asin_title_o02_s01?ie=UTF8&psc=1
https://www.amazon.fr/Sirecal-Batterie-Connector-Charger-Quadcopter/dp/B08ZS4P5Z2/ref=sr_1_2_sspa?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&dchild=1&keywords=Hootracker+4PCS+3.7v+300mAh+25C+RC+Drone+Lipo&qid=1626450721&sr=8-2-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUExUTk3WVVJUFNFWFBTJmVuY3J5cHRlZElkPUEwNjYyNTc4MjRTRUxNTUVJTTc4RCZlbmNyeXB0ZWRBZElkPUEwMzgwODY5M0dDMTVYSlpCWVpRTCZ3aWRnZXROYW1lPXNwX2F0ZiZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU=

Je coupe le connecteur d'origine et j'y mets à la place les plus petits que j'ai trouvé pour le courant demandé : Micro JST 1.5mm ZH 2-Pin, male et femelle. Pas facile à trouver...

Pour l'interrupteur, il faut des modèles 2x3 positions DPDT comme ceci : https://www.amazon.fr/gp/product/B008DFYHV2/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1

« Modifié: juillet 19, 2021, 02:58:32 pm par Gboule »

Gboule

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #21 le: juillet 16, 2021, 06:04:25 pm »
Pour brancher tout ça, voici les diagrammes au format Fritzing : 1 avec le son sans DAC et l'autre avec DAC.

Quelques fils à souder, le plus compliqué étant de souder ceux de l'interrupteur et de la prise de recharge.

La suite un peu plus tard...
« Modifié: juillet 16, 2021, 08:15:50 pm par Gboule »

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1085
  • HO avec DCC++
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #22 le: juillet 17, 2021, 02:58:32 pm »
Bonjour à tous,

Je remercie une nouvelle fois Gboule pour le travail important qu’il a déjà réalisé et aussi pour m’avoir motivé à reprendre mes propres réflexions sur des recherches qui étaient finalement assez proches.

Je vous présente ici une approche qui est différente de ce que nous a présenté Gboule et qui n’a pas la prétention d’être ni mieux ni meilleure. Elle vise des objectifs différents et à ce titre elle est complémentaire et élargissant le champs des possibilités.



Ici, je n’utilise qu’une seule batterie 18650 (2500mAh) qui est glissée dans le corps d’une vielle 241P de Jouef. Il y a, comme le fait Gboule, un step-up réglé sur 12 volts.



Ce qui manque dans ce que je vous présente, c’est un BMS 1S (que je viens de commander) pour tout d’abord protéger la batterie des décharges et recharges excessives. Mais je souhaite aussi, au travers d’un pont de diodes et d’un régulateur, recharger la batterie sur le courant DCC du réseau par les rails. La batterie se comportant alors comme un gros Power-Pack ou keep-alive. Elle ne cherche pas à produire la totalité de l’énergie « absorbée » par la loco. Et les locos ainsi équipées pourront donc cohabiter avec des locos en DCC sur le même réseau.

Pour le reste, je suis sur une configuration très similaire à ce que Gboule a réalisé. Pour moi un ESP32 et une carte Pololu TB6612 parce que ce n’est ni plus ni moins que la carte que j’avais réalisée pour mon train Lego. Par la suite, je montrai aussi un Wemos. Le pilotage se fait également à partir d’une application web qui communique en WiFi avec l’ESP.



Pour le reste, je vais très largement m’inspirer de l’excellent travail réalisé par Gboule comme pour ce qui concerne le son.

Même si les contraintes d’encombrement en HO ne sont pas et de loin résolues, je pense que nous allons réussir à trouver des solutions tout de même suffisamment miniaturisées pour être acceptables et s’affranchir ainsi :

1° du vrai problème que représente l’alimentation par (seulement) les rails,
2° des décodeurs sans peut-être obtenir les mêmes fonctionnalités, et encore !
3° du DCC qui il faut bien le reconnaître est assez capricieux, n'est ce pas Messieurs les développeurs de la Box !





« Modifié: juillet 18, 2021, 08:01:05 am par bobyAndCo »

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3045
  • 100% Arduino et N
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #23 le: juillet 17, 2021, 04:07:16 pm »
En attendant LaBox permet de jouer avec du N   ;D :o

Mais je reconnais que c’est très intéressant à explorer.
Cordialement,
Dominique

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1085
  • HO avec DCC++
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #24 le: juillet 18, 2021, 10:56:50 am »
Bonjour à tous,

Assurément, en nous proposant ce sujet, Gboule a en quelque sorte ouvert une boîte de Pandore. Catplus (Marcel pour les intimes) m’a fait passer un lien sur un article de MRH numéro de juin 2021 qui apporte des éclairages intéressants au sujet que nous abordons.

Le principe qui y est décrit est encore différent de tous ce dont nous avons pu parler mais soulève des problématiques que nous rencontrons nous-mêmes dont, par exemple, les questions d’encombrement.

Il s’agit ici de commander les locomotives en DCC mais avec la technologie radio.



Ce que je trouve intrigant, c’est que l’on ne cherche pas à s’affranchir de l’alimentation par les rails en DCC qui sert notamment à recharger la batterie (comme je souhaite le faire), et que l’on ne cherche pas non plus à s’affranchir du DCC comme Gboule et moi-même souhaitons le faire.

En fouillant, vous verrez qu’il est abordé un système à base de micro-receivers en 2,4 GHz qui mérite que l’on s’y intéresse. Voici le lien sur le site du fabricant : http://www.deltang.co.uk/index.htm

Par ailleurs, il y a les questions de stockage d’énergie, de step-converter et de BMS (Battery Management System) qui nous intéressent et qui sont abordées dans l’article et aussi dans le forum.

Pour ma part, j’ai particulièrement retenu la question du « wagon suiveur ». Certains pensent comme moi que c’est la solution pour « transporter » une partie du matériel qu’il sera difficile d’embarquer autrement.



Pourtant, il y a dans le forum, cette présentation que je trouve extraordinaire.

Toute l’électronique et la batterie sont glissées dans le toit de ce petit locotracteur qui est donné pour 55 minutes d’autonomie et 15 de charge ! Il y a clairement ici des sources d’inspiration pour nos réflexions.





Article à lire donc pour tous ceux qui s’intéressent à ces questions : https://online.fliphtml5.com/buups/cjfs/index.html#p=9

Le forum ici : https://model-railroad-hobbyist.com/magazine/mrh2021-06/publishers-musings?page=1

« Modifié: juillet 18, 2021, 11:01:07 am par bobyAndCo »

Gboule

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #25 le: juillet 19, 2021, 10:33:57 pm »
La suite...

Une fois tout monté dans la loco, on peut envoyer le "firmware" : le premier download nécessite de brancher l'ESP par port USB, mais si vous faites des modifs du softs, les autres téléchargement peuvent se faire par OTA (over the air), c'est à dire sans être obliger de brancher l'ESP par USB et donc pas besoin de démonter le train.

Le code est fourni est en pièce jointe, mais il faut l'adapter avec votre SSID Wifi et le mot de passe associè. Il faut aussi mettre une adresse statique par DHCP via votre box et la mettre dans le tableau "tabTrain" du code.
Vous pouvez mettre aussi une photo du train (au format 100x40 à peu près) et éventuellement un fichier son, mais c'est 2 fichiers ne doivent pas être trop gros pour ne pas remplir la mémoire de l'ESP. Le son en mono et en 22 khz suffit. Ces 2 fichiers doivent se trouver dans un dossier Data du projet Arduino et doivent être uploader grâce au plug-in "upload SPIFFS".
Comme avec l'interface, vous pouvez gérer plusieurs trains, il faut ces éléments pour chacun des trains dans le tableau "tabTrain". Il faut aussi définir le nombre de trains avec le #define NB_TRAIN

Il est possible d'utiliser un ESP8266 non embarqué dans un train qui servirait à piloter tous les autres.
Pour accéder à l'interface, il suffit d'un browser (PC, Tablette, smartphone) et d'ouvrir l'URL via http://adresse_IP_du_train.
L'écran est divisé en autant de section qu'il y a des trains configurés dans le tableau tabTrain. Pour chaque section, un voyant rouge-vert indique si le train est joignable, une échelle de 10% à 100% permet de choisir la puissance moteur, et un bouton permet de choisir le sens de marche. Les boutons "marche" et "arrêt' sont évidents, et le bouton sonnerie activera le son si vous avez équipez le train d'un moyen de reproduction sonore.

Une partie du code est commenté et devait servir à gérer les cantons par RFID, mais comme la détection RFID n'était pas fiable à 100%, le code n'a pas pu être débbugué..

Le code n'est pas 100% propre, car je n'ai pas encore y le temps de le "nettoyer", mais il est fonctionnel.


JPM06

  • Newbie
  • *
  • Messages: 49
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #26 le: août 02, 2021, 12:08:39 pm »
Bonjour,
Je découvre ce fil alors que je suis sur une réalisation du même genre depuis quelques semaines.
Mon objectif est de faire fonctionner une petite automotrice Egger-Bahn HOe sur batterie, pour s'affranchir de la mauvaise prise de courant et pouvoir rouler sur des voies "pittoresquement délabrées".
Je me suis inspiré d'une réalisation pour Car-System Faller:
http://letraindejc.free.fr/pages/index.php?v=ESP00[/i]]http://letraindejc.free.fr/pages/index.php?v=ESP00
J'ai fait pour l'ESP12s un petit circuit imprimé qui se loge dans le plafond de la motrice. Le convertisseur "step-up" est logé, lui, sous le plancher.
Tout ça fonctionne bien, mais l'automotrice étant articulée j'ai utilisé du fil un peu trop raide pour la connexion à la cabine. J'attends livraison de fil plus fin pour re-câbler.
Coté logiciel, je ne fonctionne pas en HTTP comme JC, mais en UDP avec l'appli Z21 de Roco.
Si vous souhaitez discuter de ça plus avant, je suis à votre disposition.
Cordialement,
JPM06

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1085
  • HO avec DCC++
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #27 le: août 02, 2021, 06:16:56 pm »
 Oui bien sûr que nous aimerions en savoir plus, moi en tous les cas. Photos et code en particulier. C’est intéressant d’avoir des approches relativement différentes qui permettent d’enrichir la réflexion.

En HOe, c’est encore plus une prouesse qu’en HO.

Est-ce que tu charges la batterie « hors-rails » ou as-tu une prise de courant de recharge par les rails ?

Le lien que tu donnes ne fonctionne pas mais celui-ci, oui :
http://letraindejc.free.fr/pages/index.php?f=ESP12-Car

Concernant le protocole, je pense effectivement qu’il est préférable d’utiliser l’UDP que le HTTP.  J’ai discuté de ce point en MP avec Gboule et il m’a précisé que c’est surtout parce qu’il connaît mieux le HTTP et ce mode de transaction.

Pour ma part, j’utilise le TCP et les websockets mais dans le cas d’une Z21, c’est vrai que le protocole de Roco est l’UDP.

Je viens juste de recevoir mes cartes BMS 1S pour la gestion de la batterie 18650, je vais donc pouvoir m’y remettre et je publierai des choses quand j’aurai avancé.

Alors, oui, photos et code et toutes explications sur ta réalisation sont les bien-venues.

JPM06

  • Newbie
  • *
  • Messages: 49
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #28 le: août 03, 2021, 05:48:41 pm »
Bonjour,
Voici le schéma final:



Je n'utilise qu'une partie du GPIO. G13 doit servir à connecter un avertisseur sonore si j'en trouve un assez petit.
Je ne suis pas sûr que toutes les résistances pull-up et pull-down soient indispensables, mais je n'ai pas voulu prendre
de risque, et en CMS ça ne prend pas trop de place.
Les LEDs sont connectées directement à la batterie pour soulager le régulateur.
La batterie sera rechargée en connectant simplement un chargeur externe. Je ne vise pas une autonomie très importante, et
de toutes façons il n'y aurait pas la place pour loger un système de recharge par les rails.

Voici le circuit imprimé:



Comme il se loge sous le toit, il y a un plafonnier (LEDs blanches) de chaque coté. Les résistances sont sur l'autre face.
Le circuit de droite est le pont en H qui commande le moteur.
Quelques remarques:
1: j'ai dessiné le circuit à l'origine pour un régulateur HT7333, mais j'ai eu des problèmes avec ce composant: l'ESP12s
génère des pics de consommation très forts que le HT7333 n'arrivait pas à amortir, et ça se traduisait par des
redémarrages intempestifs. Avec un TC1262, rien de tel, mais malheureusement l'empreinte du composant est différente.
2: lorsque j'ai pris cette photo, le pont en H DRV8833 était mal connecté. Voir le schéma. Et ce n'était pas une bonne
idée non plus que de coller les deux CIs à l'araldite.
3: il y a six points de connexion (à gauche de l'ESP) qui permettent de charger le programme au départ, et de le recharger
en cas de problème avec l'OTA.

La batterie est une 380mAh longue avec connecteur PH 2.0 incorporé. Malheureusement les dimensions indiquées ne tenaient
pas compte de ce connecteur, que j'ai du oter. Si c'était à refaire je prendrais un modèle plus puissant, et avec fils.

Le convertisseur "step-up" est un MT3608 raccourci monté sous le châssis:



Une fois peint en noir, il pourra passer pour un réservoir ou autre comme on en voit sous les châssis.
On voit aussi sur cette photo la prise de recharge et l'interrupteur (oui, si j'avais mis les deux du même coté, ça aurait été droit!):


Le logiciel: au démarrage l'ESP essaie de se connecter à ma box en mode station. S'il n'y arrive pas, c'est que je l'ai
emmené ailleurs, alors il démarre en mode point d'accès. L'OTA ne fonctionne qu'en mode station.

J'aime bien UDP qui est un protocole hyper simple, rapide, et bien adapté à ce genre d'application... mais qui nécessite
une appli dans le smartphone. Je n'utilise en fait qu'une toute petite partie de l'appli Z21, correspondante à mes
besoins. Je publierai le programme quand je l'aurai un peu nettoyé.

Pour commander simultanément plusieurs véhicules, j'envisageais de faire ce que suggère Gboule: un autre processeur (chez
moi, le PC qui gère le réseau) qui relaye les messages du smartphone vers les locos, chacune avec son IP. Mais le temps de
réponse serait-il au rendez-vous?

J'en reste là pour aujourd'hui. Il me reste à re-câbler l'engin avec du fil plus fin, faire des tests d'autonomie, et
surtout vérifier qu'il n'y a pas de parasite intempestif qui remettrait la solution en question.
« Modifié: août 03, 2021, 06:19:09 pm par bobyAndCo »

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1085
  • HO avec DCC++
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #29 le: août 03, 2021, 07:03:41 pm »
Tout ce que tu présentes est fort intéressant et démontre bien que tout ceci n’est pas une utopie.

Ton PCB permet une certaine miniaturisation. Nous aurons bien sûr du mal à rivaliser avec les tailles atteintes sur des décodeurs mêmes avec des composants CMS mais tu montres bien que cela tient pour toi. Une photo d’ensemble serait intéressante d’ailleurs.

Dans ma démarche, je mise sur un ou peut-être plusieurs wagons suiveurs car la batterie est plus conséquente (2500 mAh), que je cherche à assurer une recharge par les rails (comme s’il s’agissait d’un gros Power Pack) pour que ces locomotives fonctionnant en fait en analogiques puissent circuler sur mon réseau qui est en DCC par un pont de diodes dans la loco qui redresse le courant alternatif DCC en courant continu.

L’UDP est effectivement plus rapide que le HTTP car il n’y a pas le processus de validation. Mais il ne permet pas de savoir si les trames envoyées ont bien été reçues. Il faut donc répéter les commandes envoyées comme le fait d’ailleurs le DCC. En TCP et websocket, il y a un processus de contrôle de (bonne) réception, la répétition de l’envoi est automatique si erreur.

Une astuce quand on utilise des cartes moteur comme ici (DRV8833) prévues pour piloter 2 moteurs. Relier les entrées entre elles (DIR et PVM) et relier les sorties entre elles ce qui permet de doubler la capacité de sortie. En HO, certains vieux et gros moteurs peuvent demander beaucoup de puissance par exemple au démarrage.

Mais je suis un peu réservé quant à l’utilisation ici d’une DRV8833 qui est donnée pour une tension max de 10,8 V alors que la TB6612 est donnée pour 13,5 V ce qui me semble plus adapté au HO (https://www.pololu.com/product/713). Les performances de ces deux cartes sont par ailleurs comparables.

Il est vraiment bien que plusieurs projets avec des approches différentes soient menés en parallèle ce qui permettra de chercher à synthétiser le meilleur de chaque.

Avis à tous les amateurs qui voudraient se lancer.