Parlons Arduino > Vos projets

Train HO avec pilotage par ESP8266 à l'intérieur

(1/13) > >>

Gboule:
Bonjour à tous,

Je vous présente mon projet qui a bien avancé.
Comme j'étais petit garçon, j'adorai les trains en HO, et ayant une petite maison, mess circuits n'étaient pas fixés sur des planches en bois, et j'avais donc bcp de soucis de connexions électriques, avec des faux contacts et des roues qui noircissaient, faire attention aux aiguillages droit-gauche, etc.
J'ai un petit garçon de 5 ans et demi qui adore les trains. Après lui avoir acheté des trains en Lego qui marchent à piles, il a vu mes vieux trains et a voulu que je lui prête. Je lui ai expliqué que c'était compliqué et je ne voulais pas non plus qu'il joue tout seul avec un transfo de 220V/12V.
Donc l'idée mets venu d'essayer de rendre mes locos HO comme celles en Lego, c'est à dire à batterie et donc sans énergie venant des rails.
Etant ingénieur en informatique et fondu de IoT, j'avais les compétences pour ça.

Le but n'est pas de faire du modélisme ferroviaire pur et dur, mais juste de permettre à un enfant de jouer sans danger et facilement.

Je suis parti d'une vieille CC40101, récupérée dans une décharge au milieu des années 80. 2 avantages : elle est assez grande pour y placer l'électronique et les batteries nécessaire, et venant d'une décharge, elle était en mauvais état (plus de pantho, etc), donc c'était pas grave si je la sacrifiais pour rien.

Donc, l'idée de départ, était d'utiliser un ESP8266 alimenté par une ou plusieurs batteries, que l'on rechargerait en les débranchant du train pour les brancher sur un ordinateur ou sur un chargeur.
L'ESP contiendrait un serveur Web qui fournirait une interface simple pouvant être utilisé par un enfant de 5 ans.
Du train, on garde la motorisation. Par contre pour éviter des courts-circuits à travers les rails, on coupe les fils entre les essieux et le moteur, qui sera alimenté autrement.

L'idée de départ était d'utiliser une batterie de 3,7 V  Li-ion avec un step-up pour fournir les 12V au moteur. Mais comme l'alim de l'ESP8266 nécessite 5V, il fallait mettre 2 batteries de 3,7 en série. De plus, avec une seule batterie, le step-up et moteur l'aurait trop sollicité.

Pour l'ESP, au début je suis parti sur un NodeMCU 12, mais après réflexion, un Wemos D1 Mini était plus compact et compatible avec un shield motor Wemos.

Pour piloter le moteur, au départ, j'ai utilisé un shield à base de L293D, mais les pointes de courant de certains moteurs de train dépassaient le maximum accepté par ce pont en H (600ma).
Finalement, j'ai opté pour un shield Wemos Motor qui se place au dessus des Wemos à base de TB6612FNG qui supporte 1,2 A en moyenne et des pointes à 3,2 A.

Pour la recharge des batteries, j'avais prévu de débrancher les batteries, et donc j'ai utilisé prises au format Micro JST 1.5mm ZH 2-Pin, qui sont les plus petites dispo car certains intérieurs de trains sont très petits. Mais ouvrir chaque loco, et charger chaque batterie une par une, c'était pas très pratique. J'ai donc opté par un rechargement sans ouvrir et démonter les batteries. Pour cela, j'ai installé un interrupteur pour basculer du mode "marche" au mode "rechargement" et une prise ZH pour y brancher un contrôleur de charge Li-ion USB à base de TP4056.


Après tâtonnement, le schéma électronique se compose de 2 batteries de 3,7 V  Li-ion de 1200 mah, montées en série pour fournir entre 8,2 et 7,4 V, d'un module Step-up (hacheur) qui permet d'élever la tension de la batterie jusqu'à 12 V pour le moteur du train, d'un régulateur 5V pour alimenter l'ESP et consort, d'un ESP8266 au format Wemos D1 mini, d'un shield Motor Wemos qui vient se coller au dessus de l'ESP, d'un interrupteur 2x3 position (DPDT), et de prises au format Micro JST 1.5mm ZH 2-Pin, male et femelle.

Sur ce lien Youtube, le premier prototype :

Coté interface Web, l'idée de départ était que chaque train/ESP avait son interface de pilotage. Mais finalement, pour pouvoir contrôler plusieurs trains depuis une seule page Web, j'ai opté pour un modèle Restfull API, c'est à dire que dans chaque ESP, il y a une partie "cliente" (l'interface de pilotage) et une partie "serveur", le pilotage lui-même via des requêtes http GET, et POST.

Voir le fichier joint pour l'interface.



Gboule:
Ce premier proto fonctionnait pas trop mal, mais j'avais des plantages de l'ESP8266 par moment sans que je comprenne d'où ça venait...

J'ai réussi à remettre la cabine et ça donnait ça :

Je me suis attaqué à miniaturiser le système, car je voulais le mettre dans une machine à vapeur de type 140C180. C'est une des rares machines à vapeur Jouef dont le moteur ne se trouvait pas dans le tender. Donc j'avais de "la place" mais bcp moins que dans la CC40101.

Donc j'ai réduit l'encombrement de mes fils, et surtout j'ai mis 2 batteries très compactes de 600 mah mais 3C, capable de fournir de gros courant.

Le prototype est visible là :

Et le tender fermait ça donnait ça :

Sur cette machine, plus de plantage de l'ESP8266,  le mystère s'épaississait...

Après, je suis passé à une Lima BB15006. Voir les photos en pièce jointe.
Et là, encore des plantages de l'ESP, mais encore plus fréquent.

Grace à mon oscilloscope, j'ai pu voir que certains moteurs pouvaient présenter à leurs bornes des gros pics de tension provoqué par le passage des charbons sur les connecteurs de bobines, compris entre 50 et 100V. Et ces pointes de tension, arrivaient à passer jusqu'aux bornes de l'ESP et le faisait planter.

J'ai essayé plusieurs méthodes pour filtrer ces tensions : le kit RouleNet (diode+capa), diode TVS, etc Rien ne fonctionnait. Finalement, en mettant de choke Coil ou bobine d'arrêt, sur chaque borne du moteur, plus de plantage, et l'oscillo confirme un écrêtage fort de pic de tension.

La machine à vapeur était épargnée car d'une part le moteur fait moins de parasite, et d'autre part le moteur est éloigné du tender et donc de l'ESP.

Gboule:
Pour continuer, j'ai fini avec la dernière machine qui me restait : un BB67407. Pas de difficulté particulière, montrant que tout marchait comme prévu.
J'en ai profité pour rajouter des LED rouges et blanches qui s'allument suivant le sens de marche.

En achetant un lot de rails sur le BonCoin pour compléter les miens, j'ai eu droit à une nouvelle machine : une BB9201. Le problème avec cette machine, c'est qu'elle a un moteur qui alimente les 2 boggies grâce à 2 axes qui prennent toute la place à l'intérieur de la machine.
Je suis donc parti sur le même principe que la machine à vapeur : j'ai pris un petit wagon de marchandise, dans lequel j'ai mis toute l'électronique. Voir les photos.

Et pour finir, je me suis fait un petit plaisir en achetant une BigBoy, la plus grosse machine à vapeur du Monde, équipé d'un gros tender, ou il y a de la place pour y stocker l'électronique.


Du coup, j'ai rajouté du son grâce à l'ESP qui est capable de produire un mp3 avec un petit transistor et un petit haut parleur :



Le plus compliqué maintenant, est de trouver ou placer l'interrupteur et la prise de recharge et de faire les trous associés sans dénaturer les locos...

Gboule:
Pour finir, j'ai essayé de gérer les cantons. J'ai utilisé des puces RFID et des lecteurs cachés dans des bâtiments pour détecter le passage des trains, mais la lecture des puces RFID est essentiellement faite pour fonctionner avec un mouvement perpendiculaire au plan du lecteur et pas par un mouvement de translation devant le plan du lecteur. Par conséquence, la lecture de la puce RFID ne se fait pas à chaque fois, compromettant la gestion des cantons.

Je me suis rabattu sur un arrêt automatique en gare :

Dominique:
Bonjour Gboule,

Bienvenue sur Locoduino (bon, depuis Février..) et j’applaudis franchement pour le partage de cette réalisation qui va intéresser de nombreux modélistes ayant des enfants à protéger comme vous.

Votre expérience est agréablement décrite pas à pas et vos recherches vous ont menées jusqu’à la réussite.

Je suis certain que vous trouverez de l’aide pour aboutir à une solution fiable et bien reproductible.

Par exemple, pour la charge de la batterie, on pourrait regarder du côté des chargeurs par induction, sans contact.
Comme il n’y a pas de DCC, il serait possible d’ajouter des courbes s’accélération et de ralentissement des locos.
Pour les commandes des aiguilles, une transmission radio serait aussi très sympathique.
Et pour la RFID il y a des possibilités à explorer.

Nous pouvons vous aider aussi à présenter un bel article complet sur le site éditorial si cela vous plait.

Cordialement
Dominique

Navigation

[0] Index des messages

[#] Page suivante

Utiliser la version classique