Auteur Sujet: Le futur TCO de mon réseau  (Lu 4593 fois)

babskwal

  • Newbie
  • *
  • Messages: 23
    • Voir le profil
Le futur TCO de mon réseau
« le: juillet 17, 2016, 08:32:12 pm »
Bonjour à tous (et toutes),

Mon réseau est terminé en ce qui concerne la pose de la voie. Qq infos sur le forum du N : http://le-forum-du-n.forumotions.net/t17928p50-reseau-rhone-alpes.

J'hésite encore entre plusieurs systèmes de commande ; mais il y a un invariant : pas de digital, de l'analogique seulement. Si je m'engage sur une solution simple, cela pourrait être Arduino pour la commande de l'alimentation électrique des diverses zones coupées, et des aiguillages, voire des signaux quand il y en aura.

J'imagine utiliser un PC portable de récup' pour la commande sous forme d'un TCO que je programmerais, et que je ferais évoluer en fonction de mes connaissances.

Processing semble le plus adapté à Arduino, mais je pensais aussi à la solution du TCO dessiné en svg avec des éléments sur lesquels interagir, par exemple avec Javascript. Que pensez-vous de ces deux options... et la deuxième est-elle compatible avec Arduino ?

Merci de vos réactions, et aides !

Babskwal

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 647
    • Voir le profil
Re : Le futur TCO de mon réseau
« Réponse #1 le: juillet 18, 2016, 06:23:28 pm »
La question principale de ce type de projet, pour moi, c'est le moyen de communication entre l'ordinateur et l'Arduino. Il y a plusieurs solutions possibles depuis le cable ethernet, le Wifi jusqu'au blutooth en passant par une liaison série, un bus loconet ou CAN... C'est une fois le protocole établi que le choix du langage deviendra plus évident.

babskwal

  • Newbie
  • *
  • Messages: 23
    • Voir le profil
Re : Le futur TCO de mon réseau
« Réponse #2 le: juillet 18, 2016, 09:06:48 pm »
Le PC étant à proximité du(des) Arduino(s), pas besoin de sans-fil ; pas besoin de matériel "digital train" non plus (loconet ou autres CAN) --> je pensais simplement à une liaison série : USB.

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 647
    • Voir le profil
Re : Le futur TCO de mon réseau
« Réponse #3 le: juillet 19, 2016, 09:22:14 am »
Quand c'est possible, c'est effectivement le plus simple. Processing sait faire, et Javascript, autant que je sache (ce n'est pas un langage que j'ai pratiqué souvent) aussi.
La question suivante est celle du protocole de communication. A titre d'exemple, j'ai fortement transformé mon ancienne version de UniversalAccessoriesDecoder en la coupant en deux : d'un côté la partie 'Commanders' qui donne les ordres : ce sont des boutons, des potars, le décodeur Dcc ou les bus série, CAN et I2C. De l'autre, toute la partie accessoires avec leurs drivers : les aiguillages, les feux, les moteurs et leds en tout genre. Pour les faire communiquer, j'ai imaginé une petite structure C dotée d'un identifiant, d'un type d'ordre, et d'une valeur. Le tout peut être exprimé sous forme texte :

123456, M, 128

Un identifiant correspond (à peu près) à un accessoire à piloter. L'ordre est décrit par l'enum suivant :

enum COMMANDERS_EVENT_TYPE
{
   COMMANDERS_EVENT_NONE = 0,         // Should never appear
   COMMANDERS_EVENT_TOGGLE = 1,      // If a push button or similar is pressed, invert the state/position
   COMMANDERS_EVENT_MOVE = 2,         // If a push 'left' button or similar is pressed, data is a COMMANDERS_MOVE_TYPE
   COMMANDERS_EVENT_MOVEPOSITION = 3,   // If a potentiometer or similar is moved, data is the position to reach
   COMMANDERS_EVENT_CONFIG = 4      // Data is the configuration address and value
};

Les quatre ordres possibles sont donc 'T', 'M', 'P' (MovePosition) et 'C' . Le MovePosition utilise la valeur pour connaitre son but. Pour le Move fortement typé, la valeur est donnée par un autre enum:

enum COMMANDERS_MOVE_TYPE
{
   COMMANDERS_MOVE_MORE = +1,
   COMMANDERS_MOVE_LESS = -1,
   COMMANDERS_MOVE_STOP = 0,
   COMMANDERS_MOVE_LEFT = -2,
   COMMANDERS_MOVE_RIGHT = -3,
   COMMANDERS_MOVE_CENTER = -4,
   COMMANDERS_MOVE_TOP = -5,
   COMMANDERS_MOVE_BOTTOM = -6,
   COMMANDERS_MOVE_STRAIGHT = -7,
   COMMANDERS_MOVE_DIVERGE = -8,
   COMMANDERS_MOVE_ON = -9,
   COMMANDERS_MOVE_OFF = -10
};

Ne reste à la partie accessoires qu'à interpréter chaque ordre en demandant à l'accessoire correspondant de faire ce qu'on lui demande !
Pour tout dire, il me semble que ce partage correspond bien à un TCO : la partie Commanders dans un Arduino Mega côté TCO avec des boutons, des poussoirs et des potars, qui envoie ses ordres via une liaison série à la partie accessoires avec un ou plusieurs Arduino sous le réseau. Mais c'est une vision sans PC...

babskwal

  • Newbie
  • *
  • Messages: 23
    • Voir le profil
Re : Le futur TCO de mon réseau
« Réponse #4 le: juillet 19, 2016, 02:07:55 pm »
Merci de tes réponses !

Je m'oriente plutôt sur un TCO avec un PC pour deux raisons : éviter de bricoler (j'ai donné avec la structure du réseau) et surtout, j'ai envie "d'apprendre en marchant", c'est-à-dire que je compte faire de l'évolutif, avec des fonctions de commande de plus en plus complexes. Au départ, je ne compte commander que les zones d'arrêt en ON/OFF et la position des aiguillages (niveau de sécurité de circulation des trains très faible !), puis commander des itinéraires sans enclenchements, puis... Cela me paraît plus facilement possible en faisant évoluer le programme (et le câblage du réseau aux Arduinos !).

Je commence à me faire la main sur Arduino, j'essaye un peu processing, je vais essayer un ou deux trucs avec mon réseau... Je vais essayer de voir ce qu'on peu faire avec Javascript : si ça marche, ça éviter de programmer le dessin du réseau sous processing : autant faire un dessin svg que je pourrais afficher dans une fenêtre chrome ou autre navigateur, non ?

DDEFF

  • Hero Member
  • *****
  • Messages: 611
    • Voir le profil
Re : Le futur TCO de mon réseau
« Réponse #5 le: août 03, 2016, 09:58:04 pm »
Bonjour babskwal,

Si tu attends un peu, je vais faire un article sur un TCO sans fils.
Un PCduino (aux alentours de 60 à 80 €), un écran 27 pouces (ou autre) et Processing.
J'en ai un qui marche, mais je n'ai pas eu le temps de faire l'article (je suis en plein emménagement) et je dois le peaufiner.
Disons que, fin août, ça devrait aller mieux.

A bientôt.

babskwal

  • Newbie
  • *
  • Messages: 23
    • Voir le profil
Re : Le futur TCO de mon réseau
« Réponse #6 le: août 30, 2016, 01:58:23 pm »
Bonjour,

Intéressant, ça ! J'ai bricolé un peu depuis, et Processing me tente pas mal... J'attends ta réponse, et je vais voir si ça rejoint en partie mes orientations...
A bientôt !

babskwal

  • Newbie
  • *
  • Messages: 23
    • Voir le profil
Re : Le futur TCO de mon réseau
« Réponse #7 le: janvier 04, 2021, 02:55:13 pm »
Bonjour,
Je reviens... Je n'ai pas totalement disparu, mais j'ai dû arrêter mon projet pour cause de déménagement. Ancien réseau démonté, j'en ai lancé un nouveau, assez différent, que je présente sur le forum du N sur https://le-forum-du-n.1fr1.net/t33873-terminus-montagne.
Pour ce qui est de la commande du réseau, je compte conserver un grand principe : analogique, pas de digital (trop grand nombre d'engins à équiper ce qui serait coûteux, dont des anciens pas prévus pour, et en N ça peut être compliqué).
J'ai commencé la construction de la structure et de la voie, autour d'un principe de réseau démontable. J'imagine délocaliser sous chaque module (il y en aura 8) un maximum de choses, autour d'Arduinos, et utiliser mon smartphone comme "télécommande" sans fil.
Il me semble qu'il y a plusieurs options :
  • téléphone juste pour communiquer (télécommande seulement), et "logiciel" sur le réseau dans un Arduino maître et les autres, locaux, en esclaves
  • téléphone juste pour communiquer (télécommande seulement), "logiciel" sur mon NAS sous node.js, communiquant en wifi avec l'Arduino maître
  • téléphone contenant le "logiciel", communiquant directement avec l'Arduino maître
  • d'autres solutions ?
J'aimerais vos avis ?

babskwal

  • Newbie
  • *
  • Messages: 23
    • Voir le profil
Re : Le futur TCO de mon réseau
« Réponse #8 le: janvier 05, 2021, 09:56:25 pm »
Bon, j'arrive à faire communiquer dans les 2 sens smartphone sous Android (via appli made by App Inventor) et Arduino, via bluetooth et un module hc06 connecté sur l'Aurduino. Je me rassure sur la faisabilité  :)
Mais ne m'aide pas à choisir une option !?

Conchito

  • Newbie
  • *
  • Messages: 6
    • Voir le profil
Re : Le futur TCO de mon réseau
« Réponse #9 le: janvier 06, 2021, 12:35:37 am »
Bonsoir,

Si c'est la solution de l'Arduino piloté par un smartphone en Bluetooth qui est retenue, l'architecture pourrait être un TCO fait en processing tournant sur le smartphone, pilotant l'Arduino via le lien BT06.

Pour le TCO , Pierre (Pierre59) a développé un système à base de Processing, voir l'article https://www.locoduino.org/spip.php?article222 et suivant.

Pour l'implantation de Processing sur un smartphone Androïd et de la communication en Bluetooth voir la fin de l'article https://www.locoduino.org/spip.php?article259.

Je ne connais pas assez bien App Inventor pour savoir s'il est facile de développer un TCO, mais les graphiques du TCO en Processing par Pierre sont top. L'envoi de commandes et la réception de données via Bluetooth me semble facile.
Une fois la taille de l'écran du smartphone déterminée, la mise au point des graphiques et du programme se fait facilement sur un PC (y compris la communication série). Après, il suffit de transférer le tout sur le smartphone.

Si la taille du réseau est importante, un smartphone peut ne pas suffire et il faut penser à utiliser une tablette.

Ce n'est que mon humble avis, mais c'est la solution que je développerais.

Bonne Année à tous. Que 2021 soit bien meilleure que 2020 tant pour notre santé que pour nos petits trains et nos clubs.
« Modifié: janvier 06, 2021, 12:44:25 am par Conchito »

babskwal

  • Newbie
  • *
  • Messages: 23
    • Voir le profil
Re : Le futur TCO de mon réseau
« Réponse #10 le: janvier 09, 2021, 08:13:12 pm »
Bonsoir,
@Conchito : merci de tes conseils, je vais regarder cela de près ! Pour mon précédent réseau, j'utilisais Processing sur PC, il y a donc moyen de faire de jolies choses sur le téléphone. La taille ne devrait pas être trop perturbante, au pire je jouerai avec des zooms ou pages annexes de manière contextuelle...
J'ai avancé un peu sur les essais et proto : j'arrive avec App Inventor à faire une petite appli Android qui me permet d'envoyer un "ON / OFF" à l'Arduino, et donc par exemple d'allumer / éteindre la LED 13, et donc avec une carte que j'avais faite pour mon précédent réseau, j'arrive à démarrer / arrêter un train. Pour l'instant à vitesse constante, mais avec la PWM, je vais régler ça...

babskwal

  • Newbie
  • *
  • Messages: 23
    • Voir le profil
Re : Le futur TCO de mon réseau
« Réponse #11 le: janvier 10, 2021, 05:09:53 pm »
Nouvelle étape franchie : réglage de la vitesse depuis l'appli, sur une PIN PWM.
Etape suivante : modifier la fréquence de la PWM pour sortir de la gamme audible (grésillement de la loco pas franchement agréable !).

babskwal

  • Newbie
  • *
  • Messages: 23
    • Voir le profil
Re : Le futur TCO de mon réseau
« Réponse #12 le: janvier 10, 2021, 06:13:54 pm »
Ca, c'est réglé aussi avec la bibliothèque PWMFreq !
Bon, même si je le savais, j'ai maintenant confirmation que les valeurs mini et maxi dépendent de chaque loco. Il faudra donc que je crée une "bibliothèque" de loco, avec les valeurs mini et maxi de chacune.

babskwal

  • Newbie
  • *
  • Messages: 23
    • Voir le profil
Re : Le futur TCO de mon réseau
« Réponse #13 le: janvier 17, 2021, 06:31:00 pm »
Bonjour,
Antant, jusque là, ça fonctionnait comme je voulais, autant maintenant je galère, sans trouver d'explication  :(
Je cherche maintenant, outre l'ordre de vitesse, donné par un slider sur mon app Android, à passer un ordre type sens/arrêt (en fait les 4 combinaisons de commande sur un L298).
Dans ma tentative, j'envoie depuis mon app un ordre sous forme de chaine, concaténée à partir d'une lettre (sens) et d'une valeur numérique.
Quand je ne passais qu'un ordre de vitesse, c'était fluide (immédiat) entre l'utilisation du slider et la vitesse effective de la loco.
Avec le nouveau système, l'Arduino ne reçoit qu'une valeur quand on touche le slider, et il y a un délai de l'ordre d'une seconde entre le "touché" sur le slider sur le smartphone et le résultat au niveau de l'Arduino.
Problème de protocole via le bluetooth ?
J'avoue que j'atteins la limite de mes compétences !