Auteur Sujet: Mes petits réseaux hybrides à base d'Arduino  (Lu 1926 fois)

loulout

  • Newbie
  • *
  • Messages: 48
    • Voir le profil
Mes petits réseaux hybrides à base d'Arduino
« le: mars 16, 2025, 07:21:31 pm »
Bonjour,

J'avais fait il y a environ 2 ans un embryon de présentation de mon projet lors de ma présentation en temps que membre (https://forum.locoduino.org/index.php?topic=1511.msg16347#msg16347) puis, après des débuts un peu difficiles en raison de mon ignorance totale d'Arduino et de dialogues parfois compliqués, j'ai pu valider les principaux choix techniques quelques mois plus tard. La réalisation complète se faisant ensuite progressivement et étant loin d'être achevée à ce jour. Car dans un réseau, il faut penser au décor (là aussi je me suis orienté vers une solution peu classique), à l'ambiance, ... Et faire des pauses de temps en temps ou se tourner momentanément vers un autre mini projet moins chronophage mais lié au train miniature. Mais le "cahier des charges" général n'a absolument pas changé en 2 ans.

Comme je suis à nouveau en train d'explorer des solutions plus détaillées dans le domaine d'Arduino que j'avais un peu laissé de côté (je fréquentais davantage le forum LR pour d'autres sujets), j'ai pensé qu'il était bon que je présente ici l'état actuel des solutions que j'ai choisies. D'autant qu'on pourrait me reprocher de n'utiliser ce forum que pour recevoir de l'aide et ne rien présenter.

Mes petits réseaux indépendants (le tout tenant sur environ 2m75 x 1m50) :

- un réseau HO DCC (à automatiser partiellement : klaxon à un certain endroit essentiellement pour l'instant) avec juste 1 loco pour le moment

- 1 réseau HOm à automatiser entièrement, analogique mais avec un décodeur en amont des rails, 3 tramways de montagne

- 2 réseaux analogiques indépendants manuels à base de matériels Jouef et Mehano

Je ne détaillerai pas ces 2 réseaux analogiques purs qui n'ont pas d'intérêt dans ce forum.

Solutions choisies :

Architecture générale "hybride"

En raison de la taille volontairement réduite de ces réseaux et de ma volonté à limiter au maximum les composants et les câblages ainsi que tous les coûts, j'ai choisi de créer une application Android C++ qui communique en Bluetooth (BLE) avec un carte Arduino v4 qui elle-même communique avec une carte Uno v3 qui envoie les signaux DCC via un motor shield. Ceci parce qu'on ne trouve (ou trouvait) pas de code dédié au DCC pour les cartes Uno v4. J'aurais pu prendre un petit module Bluetooth avec la carte Uno v3 mais il m'a semblé préférable d'utiliser une carte v4. Cela permet aussi de séparer différentes tâches, certaines sur la v3, d'autres sur la v4.

L'intérêt d'avoir une application Android est qu'on peut adopter une interface utilisateur très conviviale et faciliter le développement car rien n'est fermé. En pratique, cette application est installée sur une tablette (et accessoirement un smartphone) et peut être associée par Bluetooth à un clavier physique comportant 6 touches (il en existe avec davantage de touches), de couleurs différentes le cas échéant, et un bouton rotatif.

Ainsi, le code Arduino qui est installé sur les cartes Arduino est quasiment figé, seul le code C++ de l'appli évolue au gré des développements. C'est, je trouve, très confortable de n'avoir qu'une seule application à modifier, totalement ouverte, sans limites réelles, dans un environnement de programmation très performant (Android Studio).

La carte Uno v4 reçoit les instructions (une chaine alphanumérique) de la tablette via BLE et les transmet à la carte Uno v3 via I2C. La carte Uno v3 reçoit la chaine alphanumérique de la carte Uno v4, l'interprète, crée et envoie la trame DCC. Le code Arduino n'évoluant donc pas, ces cartes deviennent petit à petit des "boites noires"... Aucune connexion depuis un ordinateur n'est nécessaire.

Voici un aperçu de l'interface utilisateur de l'application (un seul écran) ainsi qu'une photo du clavier :


Après une 1ere tentative avec une carte Uno Wifi Rev2 qui s'est avérée peu adéquate car trop exotique (très rarement utilisée dans le milieu Arduino) et surtout pas fiable (plusieurs utilisateurs ont rencontré le même problème), je me suis donc tourné vers cette architecture :


Réseau HOm "hybride"

C'est principalement le réseau HOm qui m'intéresse actuellement. Car je viens de enfin finir d'assembler les 3 rames. Il me reste quand même à créer quelques decalcs... Ce réseau est donc dans une configuration analogique avec un décodeur basique placé en amont des rails. Ceci parce qu'il m'était assez difficile d'installer des décodeurs, les bogies moteurs Halling utilisés étant déjà relativement encombrants. Et parce que je voulais limiter les coûts. Toutefois il existe depuis quelque temps des bogies Halling plus compacts pouvant recevoir facilement des décodeurs. C'est une solution qui pourrait être retenue plus tard.

Grâce à 3 aiguillages Peco electrofrog, il est possible de couper l'alimentation des rails dans une ou plusieurs parties du réseau. Ainsi, un scénario de va-et-vient peut s'établir avec 3 rames. Il faut "juste" détecter l'arrivée d'une rame à certains endroits précis (capteurs à effet Hall ou lecteur RFID), commander les aiguillages, la vitesse et le sens de marche avec la tablette et les cartes Uno v4 et v3.


L'alimentation au moyen d'un décodeur en amont des rails m'est venue naturellement à l'esprit en tentant d'explorer diverses méthodes et j'ai vu ensuite que cette solution était parfois utilisée dans des mini ou micro réseaux. Son principal avantage, en dehors du fait qu'on peut piloter le réseau depuis une tablette, est d'autoriser des vitesses de déplacement très faibles et sans bruit parasite comme cela peut arriver avec une solution PWM.

Autres fonctions :
J'ai également utilisé 2 décodeurs basiques pour allumer des ampoules avec le même principe que le réseau HOm.

La suite :
Aujourd'hui, après des tests fructueux il y a 1 an avec un capteur à effet Hall relié à la carte Uno v4 qui renvoyait l'info à la tablette, ce qui validait le procédé, je fais des investigations sur l'utilisation de cartes Nano BLE reliées aux capteurs ou aux lecteurs RFID et envoyant directement l'info à la tablette. Question câblage, il me faudra "juste" alimenter ces cartes Nano ainsi que les éventuels lecteurs RFID. J'ai pensé à prendre le courant sur les voies (mais ça ne peut marcher en analogique, le courant pouvant être nul) ou au moyen de piles. Mais cette dernière solution ne peut être retenue car il faudrait couper l'alimentation de chaque élément manuellement, à l'aide d'un interrupteur, en fin d'utilisation. Reste donc une alimentation via un ou plusieurs transfos.

Ensuite il me faudra commander les 3 aiguillages du réseau HOm avec des signaux DCC ou plus probablement par relais au moyen de la tablette et des cartes Uno v4 et v3 ou des cartes Nano qui seront à proximité des aiguillages, ce qui limiterait encore plus les câblages.

Résumé :
L'architecture est aujourd'hui la suivante :
- la carte Uno v4 reçoit les instructions de la tablette via BLE et les transmet à la carte Uno v3 via I2C
- la carte Uno v3 reçoit les instructions de la carte Uno v4, les interprète, crée et envoie la trame DCC

Cette architecture devrait donc évoluer avec l'ajout des cartes Nano BLE :
- les cartes Nano transmettent les infos d'occupation à la tablette via BLE
- les cartes Nano reçoivent les instructions de la tablette via BLE et commandent les aiguillages



Louis
« Modifié: mars 17, 2025, 01:16:31 pm par loulout »

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1158
  • HO avec DCC++
    • Voir le profil
Re : Mes petits réseaux hybrides à base d'Arduino
« Réponse #1 le: mars 17, 2025, 08:38:40 pm »
Bravo, est une belle réalisation.

Le bluetooth est une technique de transmission qui a été très peu mise en avant jusqu'ici sur Locoduino. Est-ce que tu accepterais de faire une petite synthèse avec avantages et inconvénients maintenant que tu as pas mal de recul.

Personnellement, je reste dans mes zones de confort (CAN et TCP (WiFi mais principalement Ethernet). Il faudra bien qu'un jour pour bousculer un peu mes neurones, je teste le BT. J'essayerai sans doute pour commencer des petits périphériques comme des capteurs éloignés.

Félicitation encore, voilà un projet ferroviaire concret et bien avancé. Tiens nous informés de la progression.

Christophe

loulout

  • Newbie
  • *
  • Messages: 48
    • Voir le profil
Re : Re : Mes petits réseaux hybrides à base d'Arduino
« Réponse #2 le: mars 17, 2025, 11:09:00 pm »
Bravo, est une belle réalisation.

Le bluetooth est une technique de transmission qui a été très peu mise en avant jusqu'ici sur Locoduino. Est-ce que tu accepterais de faire une petite synthèse avec avantages et inconvénients maintenant que tu as pas mal de recul.

Personnellement, je reste dans mes zones de confort (CAN et TCP (WiFi mais principalement Ethernet). Il faudra bien qu'un jour pour bousculer un peu mes neurones, je teste le BT. J'essayerai sans doute pour commencer des petits périphériques comme des capteurs éloignés.

Félicitation encore, voilà un projet ferroviaire concret et bien avancé. Tiens nous informés de la progression.

Christophe
Merci pour les félicitations ! Toutefois je dois dire que la gestion du Bluetooth est relativement simple à programmer, sans doute beaucoup plus que le wifi, et qu'il existe pas mal d'exemples de code sur lesquels je me suis appuyé, aussi bien en C++ (notamment sur le site stackoverflow) qu'en langage Arduino (sketch "LED" fourni dans les exemples). C'est sans doute un premier avantage.

Côté inconvénients, je n'ai pas à l'esprit avoir remarqué des défauts ou des ennuis si on respecte bien l'initialisation du service Bluetooth que l'on doit inclure dans les codes de l'appli et des sketchs. J'avoue cependant ne pas utiliser intensément et très souvent l'application. Mais à chaque fois que je l'utilise, je ne rencontre pas de problème. Le démarrage du service est plutôt rapide, quelques secondes.

Autre avantage, les temps de réponse sont excellents. Une action sur la tablette (qui est assez basique et pas très récente), vitesse, feux, klaxon, ..., est exécutée immédiatement sur le réseau. Idem dans le sens inverse lorsque j'ai testé un capteur à effet Hall et où l'info est remontée dans l'appli. Ou bien encore, un changement de CV, par exemple pour changer la sonnerie de la loco puis l'actionner, est instantané.

Toutefois, il faut avoir à l'esprit que l'utilisation du Bluetooth découle uniquement du désir d'utiliser une appli "maison" à la place d'un logiciel du commerce ou simplement d'une centrale DCC. Mais si on est, comme moi, un peu exigeant en matière d'appli, simple, conviviale, personnalisable, il n'y a pas vraiment d'autre solution "wireless", du moins il me semble.

Je ne sais pas si j'ai répondu à ta demande de synthèse mais je peux développer certains points si besoin.

Louis

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3137
  • 100% Arduino et N
    • Voir le profil
Re : Mes petits réseaux hybrides à base d'Arduino
« Réponse #3 le: mars 19, 2025, 07:56:59 pm »
Bravo Louis,

J'encourage toujours ceux qui essayent de se passer des logiciels PC/Mac de gestion de réseau et construisent leur solution personnelle.

Cela enrichit la créativité globale dont tout le monde peut profiter.
Cordialement,
Dominique

loulout

  • Newbie
  • *
  • Messages: 48
    • Voir le profil
Re : Re : Mes petits réseaux hybrides à base d'Arduino
« Réponse #4 le: mars 19, 2025, 08:18:39 pm »
Bravo Louis,

J'encourage toujours ceux qui essayent de se passer des logiciels PC/Mac de gestion de réseau et construisent leur solution personnelle.

Cela enrichit la créativité globale dont tout le monde peut profiter.
Merci Dominique ! Pour moi, la créativité c'est essentiel. Aujourd'hui comme hier dans ma profession. Je ne me serais jamais remis au modélisme ferroviaire si j'avais dû rester dans l'univers traditionnel du train miniature. Je pense que beaucoup de personnes sont dans le même cas. Il faut effectivement encourager ce genre de démarche. C'est d'ailleurs un peu, beaucoup, la vocation de ce site !

« Modifié: mars 19, 2025, 08:22:00 pm par loulout »

simontpellier

  • Full Member
  • ***
  • Messages: 120
    • Voir le profil
Re : Mes petits réseaux hybrides à base d'Arduino
« Réponse #5 le: mars 28, 2025, 10:00:55 pm »
Bonsoir,
puisqu'on parle Bluetooth (tiens, risque de neige ?)... sans avoir vérifié je le reconnais sur d'autres éventuels fils je signale à toutes fins utiles une excellente application Google qui permet de créer son appli perso sur Android ou iPhone et ce sans une seule ligne de code (alors qu'on en fait mais sans forcément s'en apercevoir !) : App Inventor
Voir par exemple cette vidéo au titre alléchant : Créer une application android avec appinventor et contrôler un arduino en bluetooth


Ayant pratiqué, je témoigne que c'est un jeu... d'enfant (bonne occasion de rajeunir !)