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

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 551
  • HO avec DCC++
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #30 le: août 04, 2021, 10:59:12 am »
Bonjour à tous,

Je viens de recevoir mes BMS 1S qui me permettent d’utiliser la batterie 18650 en toute sécurité. Ils sont indispensables car ils contrôlent la charge et la décharge (en particulier) sans quoi la batterie serait rapidement HS.



J’ai refait le test avec ma carte (ESP32 + TB6612) prévue pour le train Lego et les choses fonctionnent parfaitement. Je rappelle que la batterie 18650 délivre environ 2500mAh.



Du coup, j’ai dessiné un PCB adapté à cette configuration HO. Le courant pour recharger en permanence la batterie est pris sur les rails en DCC. Il est redressé dans un pont de diodes (à gauche), passé dans un convertisseur de ± 18v à 5 volts, tension acceptée par le BMS qui charge la batterie. La sortie du courant de la batterie est elle aussi contrôlée par le BMS et se situe dans une plage de 4,2 – 3,7 selon le niveau de charge. Le steper est réglé pour élever la tension à 12V.



Le courant 12V est envoyé sur le PCB, passe par un convertisseur 3,3V pour l’alimentation de l’ESP et envoyé directement sous 12V à la carte moteur TB6612 en passant par un condensateur de 470µF (très important car sinon, il y a de grands risques de griller la carte lors des pics de courant).

L’ESP32 est une version à empâtement étroit de 2,3cm (merci Michel !) qui me permet de glisser le PCB (27 mm) dans un « wagon suiveur ». Les WEMOS eux sont moins longs mais plus larges.

J’ai prévu plusieurs pads sur des sorties de l’ESP pour pouvoir relier ultérieurement des accessoires, feux de la loco, sons etc…

Je devrais recevoir les PCB sous quelques jours, je vous ferai un retour quand j’aurai testé.

Tout ceci est bien passionnant, n'est-il pas ?
« Modifié: août 04, 2021, 11:02:10 am par bobyAndCo »

JPM06

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #31 le: août 04, 2021, 11:27:46 am »
Citer
...wagons suiveurs...
J'envisage aussi la solution à wagon suiveur pour mes petites locos, parce que loger la moindre électronique dans une 020T en HOe est vraiment acrobatique. À suivre.
Citer
...UDP ne permet pas de savoir si les trames envoyées ont bien été reçues...
Je pense que le DCC est conçu pour transmettre ses messages sur un média hautement parasité: la voie, avec ce que ça implique de faux contacts, etc. Mais une liaison WiFi devrait être plus fiable. D'ailleurs la liaison smartphone - centrale ne pose pas de problème, que je sache (?). Par ailleurs, il s'agit d'une commande manuelle: si on voit que la loco ne répond pas à une commande, on la répète.
Note que j'utilise TCP depuis longtemps pour commander mon réseau à partir de Pocket-PC (petits smartphones des années 2000), mais seulement parce que leur IDE ne donne pas accès à UDP. J'ai du écrire l'appli moi-même, ce que j'ai voulu éviter avec les 8266.
Citer
...astuce quand on utilise des cartes moteur comme (DRV8833)...
C'est exactement ce que j'ai voulu faire, sauf que je me suis planté en reliant les deux cartes entre elles!
La tension de 10V me suffit pour le HOe, mais je vais commander quelques TB6612 pour essai.
Merci du tuyau!



JPM06

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #32 le: août 06, 2021, 10:47:44 am »
Ci-joint une version provisoire de mon programme.
Commentaires bienvenus.
Renonçant à bricoler mes batteries, j'en attend une nouvelle livraison, sans connecteur intégré.

JPM06

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #33 le: août 08, 2021, 03:46:28 pm »
Dans un ancien message, Gboule écrit:
Citer
... 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.
J'ai aussi essayé RFID sans aboutir à un résultat satisfaisant, aussi j'ai maintenant en tête un système "inverse" pour localiser et identifier les locos. En bref, le réseau serait équipé de petites balises infra-rouges autonomes (c'est à dire non connectées à un réseau, seulement alimentées à partir d'un feeder 5V, ou à partir de la voie sur un réseau numérique). Les locos, équipées de ESP8266, détecteraient le signal en passant dessus, et transmettraient en WiFi un message indiquant le numéro de la loco et le numéro de la balise. Avec ces informations il serait facile de gérer le système, c'est à dire reconstituer un bloc-système ("à pédales", comme on dit), de rendre le fonctionnement automatique tout en gardant la commande manuelle, bref, un peu ce qu'on veut.
Je n'aurai pas le temps d'essayer ça avant 2022, mais j'aimerais avoir des opinions sur le sujet...

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2396
  • 100% Arduino et N
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #34 le: août 08, 2021, 06:20:39 pm »
Bonjour à tous,

J'utilise le RFID (NFC) pour localiser mes trains selon la description faite dans cet article https://www.locoduino.org/spip.php?article271.

Cela marche très bien en N, avec la seule restriction que l'étiquette soit collée sous un wagon car le moteur de la loco la perturberait.

J'avais aussi utilisé d'autres lecteurs qui marchaient très bien (mais très chers à l'époque) : voir https://www.locoduino.org/spip.php?article41. Mais ces derniers ne peuvent pas être installés partout et se perturbent mutuellement.

Donc les premiers sont parfaits, avec interface I2C ou SPI, selon ses besoins.

En tout cas le déplacement de l'étiquette par rapport au lecteur ne pose pas de problème.

Citer
le réseau serait équipé de petites balises infra-rouges autonomes (c'est à dire non connectées à un réseau, seulement alimentées à partir d'un feeder 5V, ou à partir de la voie sur un réseau numérique). Les locos, équipées de ESP8266, détecteraient le signal en passant dessus, et transmettraient en WiFi un message indiquant le numéro de la loco et le numéro de la balise.
Ce principe des balises émetteur infrarouge selon un code correspondant au canton, ressemble à ce qui est dans le Car System de (..je ne sais plus).
C'est une bonne idée et la présence de ESPxxx dans la loco permet avec cela, de réaliser l'équivalent du Railcom.

Bravo les bonnes idées ! ;) :D ;D

« Modifié: août 08, 2021, 06:24:46 pm par Dominique »
Cordialement,
Dominique

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 551
  • HO avec DCC++
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #35 le: août 09, 2021, 08:52:43 am »
J'ai aussi essayé RFID sans aboutir à un résultat satisfaisant, aussi j'ai maintenant en tête un système "inverse" pour localiser et identifier les locos. En bref, le réseau serait équipé de petites balises infra-rouges autonomes (c'est à dire non connectées à un réseau, seulement alimentées à partir d'un feeder 5V, ou à partir de la voie sur un réseau numérique). Les locos, équipées de ESP8266, détecteraient le signal en passant dessus, et transmettraient en WiFi un message indiquant le numéro de la loco et le numéro de la balise.

Je ne vois pas comment ce système pourrait de connaitre la position d'un train donné à un endroit particulier du réseau. S'il est en effet possible d'identifier précisément une locomotive avec un ESP (8266 ou 32), je vois pas comment une balise infra rouge pourrait délivrer un identifiant (par nature unique) qui permettrait de dire : 1 train précis (avec un identifiant unique) est à un endroit précis du réseau identifié lui-même comme tel.

Sinon, tout système qui permettrait la détection (identifiée) d'un train sur des portions particulière du réseau (cantons) m'intéresse au plus haut point ce pourquoi la réponse m'intéresse bigrement !
« Modifié: août 09, 2021, 02:40:39 pm par bobyAndCo »

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 551
  • HO avec DCC++
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #36 le: août 09, 2021, 09:11:10 am »
Et justement, à propos d’identification de train sur des sections précises du réseau, il faut s’intéressé au post de Marcel (Catplus) qui traite du même sujet.

L’idée de Marcel est d’utiliser un Attiny pour sa petite taille qui saurait envoyer un identifiant et selon l’endroit du réseau où serait capté cet identifiant, cela permettrait d’en déduire la position d’un train. https://forum.locoduino.org/index.php?topic=256.msg13415#msg13415

L’idée de Marcel était de transmettre cet identifiant sur le bus DCC (comme le fait Railcom) et à partir du moment où cet identifiant est lu sur une portion particulière donc identifiable du réseau, il était alors possible d’en déduire la position d’un train particulier.

Sauf que, et sans entrer dans les détails (Dominique l’a un peu fait en répondant à Marcel), cela est compliqué sur le bus DCC entendu au sens matériel, donc les rails. Compliqué mais peut-être pas infaisable ! Ce sujet mérite que l’on y réfléchisse.

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 551
  • HO avec DCC++
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #37 le: août 09, 2021, 07:56:07 pm »
Bonsoir à tous,

J’ai reçu aujourd’hui les PCB que j’ai fait fabriquer ad hoc pour entrer dans le wagon suiveur.

La batterie, le BMS et le steper-up prennent place dans le corps de chauffe comme je l’ai montré précédemment.





Sur le PCB du wagons suiveur, l'ESP32 est un Node 32S qui a l'avantage d'être l'un des plus étroit du marché. Plus long mais moins large encore qu'un WEMOS et c'est ce qui m'intéressait.

La batterie 18650 est alimentée au besoin par les rails soit en DCC soit en analogique (DC). Un pont de diodes se charge de redresser le courant en DC.

Sur la photo, on voit l’empreinte des quatre diodes qui ne sont pas encore soudées. La tension de ce courant DC est abaissée de 18v à 5v au travers d'un convertisseur pour être supporté par le BMS 1S qui charge la batterie en continu. A la sortie de la batterie 18650 nous avons un Step-up qui remonte le courant à une tension de 12v pour alimenter le moteur au travers de la carte Pololu TB6612.



L'ESP32 est alimenté à partir de ce courant 12v au travers d'un convertisseur 3,3v

Et voilà le résultat :



Je vous joint le code pour l’ESP32 (récepteur). Le code pour le pilotage est écrit en C++ mais sur mon ordinateur. Je vais rapidement faire une version pour ESP32 (émetteur), pour un pilotage très simple : Potentiomètre rotatif sur une entrée analogique et un simple bouton pour l’inversion de sens.

Ce code est assez complet et inclus la possibilité de mise à jour en OTA. Il est en même temps assez simple puisqu'il s'agit de communication en TCP. La connexion n'est jamais fermée entre l'émetteur et le récepteur pour la rapidité des transactions (j'ai même été obligé de ralentir un peu le programme !). Si la connexion est coupée, la locomotive se met immédiatement en eStop.

Dans le fichier Config.h, il y a moyen de régler l'accélération et la décélération de façon indépendante comme sur un décodeur et aussi limiter la vitesse maxi. Il y a également moyen de régler la fréquence de la PWM du moteur que j’ai mise à 30000Hz mais je pense être un peu optimiste.

Je vais aussi adapter une version HTML (tablettes, smartphones) avec des websockets.

Pour la syntaxe des messages, j’ai copié celle de DCC++ adaptée à ce projet spécifique afin de rester dans un univers connu. Ainsi, une commande de traction s’écrit elle <t 100 1> pour commander une traction (t) à la vitesse de 100 en marche avant (1). Il n’y a bien sûr pas de référence à l’adresse du décodeur.

Pour les fonctions, idem <f 128> par exemple.

J’ai fait des tests de sons comme l’a fait Gboule avec des fichiers directement copiés dans la mémoire SPIFFS de l’ESP. Ca fonctionne bien mais comme je n’avais qu’un malheureux transistor 2N2222 en sortie, le volume n’était pas convainquant. J’ai commandé le même ampli que Gboule MAX98357 que je devrais recevoir mercredi. Merci à lui pour le tuyau.

Voilà pour le moment mais je reste très motivé pour avancer sur ce sujet dont je remercie une nouvelle fois Gboule de l’avoir apporté.
« Modifié: août 10, 2021, 10:13:51 pm par bobyAndCo »

JPM06

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #38 le: août 14, 2021, 11:55:57 pm »
Citer
Je ne vois pas comment ce système pourrait de connaitre la position d'un train donné à un endroit particulier du réseau. S'il est en effet possible d'identifier précisément une locomotive avec un ESP (8266 ou 32), je vois pas comment une balise infra rouge pourrait délivrer un identifiant (par nature unique) qui permettrait de dire : 1 train précis (avec un identifiant unique) est à un endroit précis du réseau identifié lui-même comme tel
L'idée est que les balises émettent en permanence leur identité, comme font les balises de bonne famille, et l'ESP embarqué, en passant dessus, lit cette identité, y ajoute la sienne (c.a.d. celle du train) et transmette le tout à un ordinateur central pour traitement et action.
Les balises en question pourraient être effectivement constituées d'un AtTiny ou autre petit µC bas de gamme, d'une diode IR et d'une résistance.

JPM06

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #39 le: septembre 03, 2021, 03:36:50 pm »
J'ai reçu mes batteries et j'ai pu terminer mon projet. La batterie utilisée est une 500mAH sans connecteur.
Voici à quoi ressemble l'intérieur de l'automotrice avant fermeture:

J'ai ajouté un petit aménagement intérieur:

J'ai renoncé à mettre un sifflet parce que je n'en ai pas trouvé d'assez petit.
Au final, tout fonctionne bien. Cf: http://amfn.nice.free.fr/perso/jpm/EB1010.mp4
Désolé pour la mauvaise qualité de la vidéo, pas facile de filmer et commander l'engin en même temps.
(Nb: la vidéo ne rend pas les éclairages comme dans la réalité).

Maintenant que ça roule, je vais pouvoir peaufiner les réglages: du PWM moteur, de l'éclairage, des accélérations/freinage, etc.

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 551
  • HO avec DCC++
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #40 le: septembre 12, 2021, 10:09:04 pm »
Bravo !

Voila qui démontre que c'est faisable.

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2396
  • 100% Arduino et N
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #41 le: septembre 14, 2021, 11:05:32 am »
Dans le dernier numéro de MRH, il y a un nouveau projet de Geoff Bunza qui s’intéresse aux connexions inter-wagons avec des aimants comme connecteurs:
https://model-railroad-hobbyist.com/node/43382#comment-485518

Ça semble applicable au HO uniquement pour le moment mais je vois aussi des applications dans les décors.
Cordialement,
Dominique

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 551
  • HO avec DCC++
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #42 le: septembre 14, 2021, 05:43:12 pm »
Ah oui, c'est intéressant. Pas totalement innovant puisque je pense que les attelages REE font sans doute la même chose.

Par contre, il y a vraiment une bonne idée ici en embarquant un accus 18650 dans un wagon. J'attire vraiment l'attention sur ce principe car il a un vrai potentiel comme par exemple réaliser des super power pack comme je l'ai montré avant dans la loco 241P.





Et comme je l'ai déjà dit, le courant de charge peut être pris sur les rails en DC ou DCC (pont de diodes) et un step up (12V par exemple) mais ce n'est pas le cas ici. L'accus se charge vraisemblablement par la prise USB et le micro switch permet d'économiser l'énergie quand on n'en a pas besoin. 

2500mAh dans un accus c'est considérable pour le HO.

jeanmi67

  • Newbie
  • *
  • Messages: 21
    • Voir le profil
Re : Train HO avec pilotage par ESP8266 à l'intérieur
« Réponse #43 le: septembre 14, 2021, 06:32:35 pm »
 
Bonjour,

Pour Dominique, si cela existe en N, avec 2 pôles et avec 4 pôles

Jean-Michel  :)
jeaNmi