Applications du BLUETOOTH au modélisme ferrovaire

Commande d'un train de jardin



1. Commande par smartphone ou tablette d'une locomotive analogique avec sonorisation pour train de jardin

Si vous possédez un smartphone ou une tablette Android avec la fonction Bluetooth, il est possible de l'utiliser pour piloter une loco. Je l'utilise pour piloter plusieurs locomotives LGB. Le coût des équipements qui sont installés dans un wagon derrière la machine, est très faible (moins de 30 Euros) et l'encombrement peut être limité.

Pour réaliser le système, il faut les composants suivants:
- un module ARDUINO
- un module BLUETOOTH
- un module de pilotage de moteur L298N

Remarque importante.
Certains smartphones ayant pourtant la fonction Bluetooth ne sont pas compatibles avec les modules Bluetooth pour Arduinos. Pour le savoir, essayer de connecter votre smartphone à un PC équipé de Bluetooth ou à un autre smartphone. Si vous obtenez le message: "relié mais pas connecté", votre smartphone n'est pas compatible.

1.1 ARDUINO

Le système peut utiliser trois types d'ARDUINO:
- un ARDUINO UNO qui est le plus connu mais les dimensions sont importantes (67 x 54 mm)
Le prix est de 19,20 Euros chez TipTopBoards

- un ARDUINO NANO dont les dimensions sont plus petites ( 45 x 18 mm)
Le prix est de 17,50 Euros chez TipTopBoards

- un ARDUINO PRO MINI dont les dimensions sont vraiment très petites ( 33 x 18 mm).
Ce module est à privilégier pour l'installation dans une locomotive. Le prix est de 7,80 Euros chez TipTopBoards avec le module CP2102 qui permet de connecter l'ARDUINO au PC pour le programmer. Une fois le programme téléchargé, on peut déconnecter le module CP2102. L'inconvénient est qu'il faut souder soi-même les connecteurs sur le module ARDUINO et que le régulateur de tension est très fragile. Il est recommandé d'alimenter l'ARDUINO Pro Mini en 5 V en utilisant un régulateur externe (7805).

1.2 Module BLUETOOTH

Ce module permet de relier le smartphone à l'ARDUINO.
J'ai utilisé le module HC-05 dont le prix est de 13 Euros chez TipTopBoards. La taille est de 39 x 15 mm.

1.3 Module de pilotage de moteur L298N

Ce module sert à amplifier le signal PWM fourni au moteur et aussi à amplifier le son. Le prix est de 8,30 Euros chez TipTopBoards. La taille est de 55 mm x 60 mm x 30 mm
Les sorties Out1 et Out2 sont à relier au moteur et les sorties Out3 et Out4 sont à relier à un haut-parleur (impédance 8 ou 16 Ohms, puissance supérieure ou égale à 1 Watt)

1.4 Connexions entre les composants

La figure ci-dessous montre à titre d'exemple le shéma à réaliser avec un ARDUINO PRO MINI pour une locomotive à vapeur qui possède des feux avant et arrière à ampoules classiques et qui possède aussi un fumigène.



Les connexions entre le module BLUETOOTH HC-05 et l'ARDUINO sont les suivantes:
La broche GND du module est à relier à une broche GND de l'ARDUINO
La broche Vcc du module est à relier au +5V de l'ARDUINO
La broche TxD du module est à relier à la broche RX de l'ARDUINO (broche 0)
La broche RxD du module est à relier à la broche TX de l'ARDUINO (broche 1)

Les connexions entre le module de pilotage de moteur L298N et l'ARDUINO sont les suivantes:
L'entrée IN1 du module est à relier à la sortie 5 de l'ARDUINO
L'entrée IN2 du module est à relier à la sortie 3 de l'ARDUINO
L'entrée IN3 du module est à relier à la sortie 11 de l'ARDUINO
L'entrée IN4 du module est à relier à la masse de l'ARDUINO
L'entrée Vcc du module est à relier à la sortie + de la batterie (9 à 15 Volts)
L'entrée GND du module est à relier à la sortie - de la batterie
La sortie +5V du module est à relier à la broche 5V de l'ARDUINO
Les sorties Out1 et Out2 du module sont à relier au moteur
Les sorties Out3 et Out4 du module sont à relier à un haut-parleur d'impédance 8 ou 16 Ohms et de puissance supérieure ou égale à 1 Watt

Il faut noter que l'ARDUINO PRO MINI ne peut pas être alimenté directement par la batterie car la tension maximale applicable est de 9V. Il est alimenté par la sortie 5V du module L298.

La photo ci-dessous montre le montage de test du système.



1.5 Programme ARDUINO

Les sons générés par l'ARDUINO pour une loco diesel sont les suivants
- mise en route et son du moteur au ralenti lorsque la vitesse est nulle
- son du moteur en marhe lorsque la vitesse n'est pas nulle
- le klaxon deux tons.

Les sons générés par l'ARDUINO pour une loco vapeur sont les suivants
- coups d'échappement avec une fréquence proportionnelle à la vitesse
- sifflet.

Vous pouvez télécharger ces deux programmes pour l'ARDUINO en cliquant ici.

1.6 Photos et vidéo du système

La photo ci-dessous montre les composants installés dans un wagon derrière le locotracteur LGB.



La vidéo ci-dessous montre le petit locotracteur LGB en action

Pour télécharger la vidéo, cliquer ici.

2. Commande par smartphone ou tablette d'une locomotive équipée en DCC pour le train de jardin

Si la locomotive est déjà équipée d'un décodeur DCC, alors le module ARDUINO recoit les commandes en Bluetooth et génère le signal DCC

Le schéma des composants à installer dans un wagon derrière la locomotive est donné ci-dessous.



Les composants utilisés sont les suivants:
- un régulateur 7805 qui délivre une tension de 5V à l'ARDUINO et au module Bluetooth
- un module ARDUINO Pro-Mini
- un module BLUETOOTH HC-05
- un module amplificateur LMD 18200 qui fournit le signal DCC


L'adresse DCC de la locomotive doit être 3.(C'est l'adresse MAC du module Bluetooth qui permet d'identifier la locomotive).

Les commandes disponibles sont les suivantes:
- vitesse avec 28 crans et sens de marche
- Fonctions F0 à F8

La photo ci-dessous montre le montage réalisé.



Vous pouvez télécharger ce programme pour l'ARDUINO (bluetooth_loco_dcc.zip) en cliquant ici.

3. Module de commande des accessoires

Ce module permet de commander en Bluetooth avec un smartphone ou une tablette les accessoires du réseau tels que les moteurs d'aiguilles, un passage à niveau, etc...

Pour la commande des moteurs d'aiguilles LGB, j'utilise un module L298 qui permet d'envoyer au moteur d'aiguille une impulsion positive ou négative d'amplitude 12V et de durée 500 ms. Un module L298 possède deux sorties et permet donc de commander deux aiguilles.

Le passage à niveau est commandé par 2 servos(un pour chaque barrière)

Le montage que j'ai réalisé permet de commander 4 aiguilles et un passage à niveau.

Le schéma réalisé est donné ci-dessous.



Il comprend:
- un module Bluetooth HC-05
- un module ARDUINO UNO
- deux modules L298 pour commander les moteurs d'aiguilles.
- un régulateur 6V 7806 pour alimenter les servos.

Les connexions entre les modules L298 et l'ARDUINO sont représentées sur le schéma.
Le signal de commande des servos est relié à la sortie 9 de l'ARDUINO.

Vous pouvez télécharger ce programme pour l'ARDUINO (commande_accessoires.zip) en cliquant ici.

4. Rétrosignalisation et commande automatique du réseau

On a vu ci-dessus qu'il est possible de commander en Bluetooth une loco équipée d'un ARDUINO et d'un module Bluetooth. Mais il est possible de faire beaucoup plus.

Avec un smartphone ou une tablette ANDROID, il est possible de commander en automatique plusieurs trains ainsi que les accessoires (aiguilles, passage à niveau, etc...). En effet, un smartphone peut communiquer simultanément avec 6 modules Bluetooth différents. Il est ainsi théoriquement possible de commander 5 trains et les accessoires. Les trains peuvent être équipés de décodeurs DCC, mais ce n'est pas nécessaire.

Les locomotives sont identifiées par l'adresse MAC du module Bluetooth qui est différent pour chaque machine.

Ainsi, il est possible d'enregistrer un trajet en utilisant l'EEPROM de l'ARDUINO et de reproduire ensuite automatiquement ce trajet.Lors de l'enregistrement, lorsque l'octet de commande est envoyé à l'ARDUINO, cet octet est stocké dans l'EEPROM ainsi que la durée entre la commande reçue et la commande précédente. Pour chaque commande reçue, 2 octets sont enregistrés dans l'EEPROM (l'EEPROM peut contenir 1000 octets). Ensuite, en lisant les octets enregistrés dans l'EEPROM, il est possible de reproduire le trajet.

Le trajet doit évidemment être synchronisé pour que par exemple, les arrêts s'effectuent toujours au même endroit. C'est le rôle de la rétrosignalisation qui est réalisée en utilisant un ILS plaçé sous le wagon derrière la loco et des aimants plaçés entre les rails. L'ILS est relié à l'entrée A0 de l'ARDUINO comme montré sur le schéma ci-dessous:



En mode enregistrement, la fermeture de l'ILS est enregistrée (octet 200) dans l'EEPROM de l'ARDUINO ainsi que la durée entre la fermeture de l'ILS et la commande suivante.
C'est la tablette qui transmet en Bluetooth les ordres d'enregistrement (octet 124) et de lecture (octet 126) dans l'EEPROM de l'ARDUINO.
En mode enregistrement, les commandes d'accessoires sont transmises par la tablette en Bluetooth au module de commande d'accessoires et aussi à la loco qui les enregistre dans l'EEPROM de l'ARDUINO.
En mode automatique, les commandes d'accessoires sont lues dans l'EEPROM de l'ARDUINO et transmises à la tablette qui les retransmet au module de commande d'accessoires.

Le système est constituée des éléments suivants:
- un smartphone ou une tablette ANDROID dont l'application Bluetrain communique en Bluetooth avec les trains et avec le module de commande des accessoires
- des trains équipés chacun d'un module Bluetooth HC-05 et d'un module ARDUINO
- un module de commande des accessoires
- de plusieurs aimants fixés entre les rails.

Vous pouvez télécharger les programmes pour l'ARDUINO (arduino_bluetooth_retro.zip) en cliquant ici.

5. Synchronisation des trajets.

Si plusieurs locos doivent circuler sur une même portion de voie (ce qui est le cas sur mon réseau de jardin), alors il est indispensable de synchroniser les trajets entre eux pour éviter des collisions.
Le trajet 1 effectué par la loco 1 est considéré comme le trajet maître. C'est la loco 1 qui donne l'ordre aux autres locos de démarrer.
Pour celà 3 octets sont utilisés:
202: ordre envoyé par le trajet 1 du départ du trajet 2
203: ordre envoyé par le trajet 1 du départ du trajet 3
204: ordre envoyé par le trajet 1 du départ du trajet 4
Lorsque l'octet 202 est lu par l'ARDUINO de la loco 1, celui ci envoie l'octet 202 à la tablette qui envoie l'octet 210 à la loco 2
Les autres trajets (2, 3 et 4) sont considérés comme esclave et utilisent l'octet 205 pour la synchronisation. Lorsque cet octet est lu par l'ARDUINO, l'ARDUINO attend la réception de l'octet 210 pour faire redémarrer la loco.

6. Application ANDROID BLUETRAIN

Cette application appelée Bluetrain se connecte en Bluetooth à une locomotive et au module de commande des accessoires.

Cette application permet de commander les fonctions suivantes d'une locomotive:
marche avant, marche arrière
controle de la vitesse avec 20 crans
fonctions F0 à F8 (les fonctions F0 à F4 peuvent être personnalisées)

L'application permet aussi de commander les accessoires.

En outre, il est possible d'enregistrer des trajets et de les reproduire automatiquement.

Vous pouvez télécharger cette application en cliquant ici.

J'ai réalisé cette application à l'aide du logiciel en ligne intitulé MIT App Inventor 2 que l'on peut trouver à l'adresse suivante:
http://ai2.appinventor.mit.edu/

Ce logiciel est très facile à utiliser et permet de créer une application ANDROID très rapidement sans connaître le language Java.

Vous pouvez voir ci-dessous une copie d'écran de la tablette.



Le dossier intitulé bluetrain comprend 2 fichiers:
- le fichier bluetrainv23.apk qui est l'application ANDROID à télécharger sur la tablette
- le fichier bluetrainv23.aia qui est le code source à ouvrir avec le logiciel MIT App Inventor 2 pour effectuer des modifications

6.1 Enregistrement d'un train

Mettre le module de commande du train à enregistrer sous tension. Le module Bluetooth HC-05 doit être allumé.
Après avoir allumé la tablette, il faut aller dans les paramètres de la tablette activer le bluetooth et se connecter au module HC-05 qui doit être sous tension. Le code à entrer est: 1234

Notez l'adresse MAC du module Bluetooth. L'adresse MAC est constituée d'une suite de 6 nombres séparés par des : (par exemple 20:15:07:06:49:01)

Puis lancer l'application Bluetrain et appuyez sur le bouton marqué Initialisation.
L'écran suivant apparait.


Entrer le nom de la loco à enregistrer
Puis appuyer sur le bouton marqué Adresse MAC.
Une liste d'adresses apparait. Appuyer sur l'adresse MAC que vous avez notée précédemment.
Ensuite vous pouvez entrer si vous le souhaitez des noms pour les fonctions F0 à F4 (par exemple Phares pour F0, Son pour F1, klaxon pour F2, etc...)
Puis appuyer sur le bouton valider. C'est terminé, la loco est enregistrée.

6.2 Enregistrement du module de commande des accessoires

Mettre le module de commande des accessoires sous tension. Le module Bluetooth HC-05 doit être allumé.
Après avoir allumé la tablette, il faut aller dans les paramètres de la tablette activer le bluetooth et se connecter au module HC-05 qui doit être sous tension. Le code à entrer est: 1234

Notez l'adresse MAC du module Bluetooth. L'adresse MAC est constituée d'une suite de 6 nombres séparés par des : (par exemple 20:15:07:06:49:01)

Puis lancer l'application Bluetrain et appuyez sur le bouton marqué Initialisation.
L'écran suivant apparait.


Appuyer sur le bouton marqué Adresse MAC à droite du label intitulé accessoires
Une liste d'adresses apparait. Appuyer sur l'adresse MAC que vous avez notée précédemment.
Puis appuyer sur le bouton valider. C'est terminé, le module de commande d'accessoires est enregistré.

6.3 Commande d'un train

Mettre le module de commande du train à commander sous tension. Le module Bluetooth HC-05 doit être allumé.
Allumez la tablette et lancez l'application Bluetrain.
L'écran ci-dessous doit s'afficher.



Appuyer sur le bouton marqué Choix de la loco. La liste des locos enregistrées s'affiche. Appuyer sur la loco qui est sous tension puis appuyer sur le bouton marqué Valider. La couleur du bouton Valider doit passer au vert, ce qui indique que la tablette est connectée au train en Bluetooth.
Vous pouvez alors piloter la loco en utilisant les boutons et le slider pour régler la vitesse.
Si vous souhaitez commander en même temps des accessoires (aiguilles, passage à niveau), il faut mettre sous tension le module de commande des accessoires, puis appuyer sur le bouton intitulé Accessoires. La couleur de ce bouton passe au vert lorsque la tablette est connectée au module de commande des accessoires.
Vous pouvez alors commander un accessoire en appuyant sur le bouton correspondant à cet accessoire.
Lorsque vous avez terminé la commande du train, appuyer sur le bouton intitulé Déconnexion, ce qui ferme l'application, puis mettre la loco hors tension ainsi que le module de commande des accessoires.

6.4 Enregistrement du trajet et commande automatique

Il est possible d'enregistrer le trajet effectué par un train et de le reproduire ensuite automatiquement.
Si le train est équipé d'ILS pour la rétrosignalisation, l'application Bluetrain enregistrera les passages sur les aimants, ce qui permettra de synchroniser le trajet.
Pour enregistrer un trajet, il suffit d'appuyer sur le bouton intitulé ENR après avoir connecté la tablette au train. Le bouton ENR devient jaune. Lorsque le trajet est terminé, appuyer de nouveau sur le bouton ENR qui doit devenir blanc. L'enregistrement est terminé.
Pour effectuer le trajet en automatique, il suffit d'appuyer sur le bouton intitulé PLAY. Le bouton passe au jaune et le trajet démarre.

7. Régulateur Bluetooth

Ce petit boitier permet de piloter un train en Bluetooth. Il remplace alors le smartphone ou la tablette. Le principal intérêt est de pouvoir l'utiliser en plein soleil quand l'écran d'un smartphone est difficile à lire. De plus, il démarre plus vite qu'un smartphone.

Ce boitier, alimenté par une pile 9V, utilise un ARDUINO NANO et un module Bluetooth HC-05 configuré en mode maître (alors que les modules HC-05 installés dans les trains sont en mode esclave).
Ce régulateur simplifié permet de régler la vitesse en marche avant ou arrière avec un potentiomètre. De plus, il permet de commander 4 fonctions ( F0 à F4).
Le schéma de principe est donné sur la figure ci-dessous.



I1 est l'interrupteur de mise sous tension.
I2 est un interrupteur qui commande le sens de marche
P1 à P4 sont des boutons poussoirs qui commandent les fonctions F0 à F3.
Le potentiomètre qui commande la vitesse a pour valeur 10 KOhms.
Les résistances R1 à R4 ont pour valeur 10 KOhms.

Vous pouvez voir ci-dessous une photo du boitier régulateur.



Le programme ARDUINO ne présente aucune difficulté particulière.
Vous pouvez le télécharger en cliquant ici.

La mise en route est très simple. Il faut mettre sous tension le train à piloter, puis mettre sous tension le régulateur qui se connecte alors automatiquent en Bluetooth au train sous tension.

La principale difficulté est de configurer le module HC_05 en mode maître.

Voici la procédure à suivre.
Tout d'abord, il faut connecter le module HC-05 à l'ARDUINO. La broche RX du module doit être connectée à la broche 11 de l'ARDUINO et la broche TX du module HC-05 doit être connectée à la broche 10 de l'ARDUINO.
Puis charger sur l'ARDUINO le programme hc05_maitre qui permet d'envoyer les commandes AT pour configurer le module HC-05 en mode maître. Vous pouvez télécharger ce programme en cliquant ici.

Débrancher le module HC-05, appuyer sur le bouton situé sur le module, rebrancher le module et relacher le bouton.
La diode du module HC-05 doit clignoter lentement, ce qui indique que le module est prêt à recevoir les commandes AT
Taper dans la console AT puis envoyer. Le module doit répondre OK
Taper AT+ROLE=1 ceci passe le module en maître
Taper AT+CMODE=1 ceci permet au module de se connecter automatiquement à un autre module Bluetooth.
Débrancher le module et le rebrancher. C'est terminé.
Vous pouvez alors télécharger dans l'ARDUINO le programme qui communique avec l'autre module HC-05 en mode 'esclave.

8. Vidéo

Cette petite vidéo tournée en juin 2017 montre 2 locos vapeur (030T Corpet et Mallet) ainsi qu'un autorail De Dion en circulation automatique sur le réseau avec pilotage en Bluetooth par le système Bluetrain.
Chaque machine est équipée d'un décodeur sonore DCC Loksound XL et les équipements plaçés dans un wagon attelé à la machine sont les suivants:
- 2 batteries Li-On de 7,6 V
- un module ARDUINO Pro-Mini
- un module Bluetooth HC-05
- un module LMD 18200



Retour page d'accueil