Auteur Sujet: DCC++ : Différents contrôleurs en Ethernet, Wifi ou On Line  (Lu 2513 fois)

fcot2002

  • Jr. Member
  • **
  • Messages: 61
    • Voir le profil
DCC++ : Différents contrôleurs en Ethernet, Wifi ou On Line
« le: novembre 11, 2018, 02:53:52 pm »
Hello  8)

Hier de passage à Orléans avec des amis qui découvrent Arduino et donc Locoduino. Beaucoup d'intérêts...

Un ami vient d'acheter un Z21 (personne n'est parfait  ;) ) car il ne se voyait absolument pas mettre les mains dedans, et pour cause il a de très gros problème de visions.

En rentrant hier, nous sommes passés at home faire une démo de l'excellent DCC++ et du Controller de BobyAndCo.

http://176.154.165.92/locoduino/controller_dccpp/controller.php

Bluffé par la vision sur écran pc et aussi tablette, il me pose la question suivante que je vous soumets :

"La partie "controller.php" est-elle adaptable pour fonctionner sur avec une Z21" ?

Certes on sort un peu de l'Arduino mais tout n'est pas perdu il reste la partie accessoires à faire sur son tout petit réseau au commencement de sa vie ;-)

Je ne connais absolument le fonctionnement d'une Z21 Blanche mais il doit bien y avoir une adresse IP etc. Après je ne suis pas assez calé en digital pour connaitre les protocoles DCC.

Au plaisir de vous lire
« Modifié: novembre 19, 2018, 10:10:54 am par Dominique »

bobyAndCo

  • Global Moderator
  • Sr. Member
  • *****
  • Messages: 362
  • HO avec DCC++
    • Voir le profil
DCC++ : Différents contrôleurs en Ethernet, Wifi ou On Line
« Réponse #1 le: novembre 13, 2018, 08:22:45 am »
Bonjour à tous,

A Orléans, vous avez été nombreux à manifester de l’intérêt pour (l’excellent) DCC++ écrit par Gregg E. Berman qui fait aujourd’hui autorité dans le monde du modélisme ferroviaire en DIY à base d’Arduino pour piloter les locomotives en DCC.

Pour fonctionner, DCC++ nécessite deux composants essentiels : DCC++ BaseStation d’une part et un contrôleur d’autre part.

Voir la page officielle du github de DCC++ : https://github.com/DccPlusPlus

BaseStation, c’est l’application qui est chargée sur la carte Arduino. Le contrôleur, c’est l’interface qui vous permet de commander l’application BaseStation.

Les deux pouvant être combinés de différentes manières. Thierry par exemple n’a pas hésité à décliner BaseStation sous forme de bibliothèque (1) alors que de mon côté, je me suis intéressé à décliner différentes interfaces graphiques à partir d’outils « Web » (HTML, JavaScripts, CSS…) permettant de piloter DCC++ BaseStation avec un ordinateur, une tablette ou encore un smartphone. (2)(3)

(1) - http://www.locoduino.org/spip.php?article228
(2) - http://www.locoduino.org/spip.php?article230
(3) - http://www.locoduino.org/spip.php?article185


Au cours des deux dernières années, j’ai cherché et développé des choses un peu dans toutes les directions pour voir ce qu’il était possible de faire. J’ai ouvert quelques fils sur le sujet et déposé un certain nombre de versions différentes ici ou là.

Ce fil a donc pour objectif de faire le point sur ce qui existe, ce qui est opérationnel, ce qui l’est moins ou plus du tout et sur ce que je projette de réaliser pour réponde au mieux aux attentes.

1 – La version la plus complète en termes de fonctionnalités est à ce jour la 4.2 Ethernet dont la partie BaseStation est composée d’un Arduino MEGA, d’un un shield Ethernet et d’une carte Pololu MC33926. (4)



Cette configuration nécessite un serveur Node.js qui fait office de serveur d’application et qui assure la liaison avec BaseStation.

Node.js nécessite d’être installé sur un ordinateur, souvent le même que celui de l’utilisateur (principal).

La mise en place de cette configuration nécessite des connaissances dans quelques domaines comme la communication réseau, les serveurs ou l’usage des lignes de commande... Rien d’insurmontable cependant. En fait, la vraie question est de savoir si vous avez besoin de toutes les fonctionnalités qu’elle apporte.

Cette version permet en effet de lire les CV’s de vos locomotives et de les programmer sur la voie principale et sur la voie de programmation. Elle autorise également de se connecteur avec au moins quatre ou cinq terminaux simultanément. Il est tout à fait possible d’utiliser des terminaux reliés en WiFi au serveur Node.js, ordinateurs, tablettes ou smartphones. Pour ces derniers, j’ai d’ailleurs développé une version simplifiée du contrôleur.

Je recommande une liaison Ethernet entre le serveur Node.js et le MEGA mais il est aussi possible d’utiliser le port série avec peut-être quelques restrictions pour les fonctions de lecture et de programmation de CV’s. Je n’ai pas encore suffisamment testé.

L’une de évolutions majeur que je projette est de porter le serveur Node.js sur RASPBERRY ce qui permettra de disposer d’un serveur performant tout en restant abordable en évitant aussi de monopoliser un ordinateur pour cette tâche.

(4) La carte moteur Pololu un peu onéreuse offre en contre-partie plusieurs avantages : c’est un shield, facile à installer en limitant le câblage. La voie de programmation et la voie principale sont disponibles sur la même carte et la protection contre les court-circuits et les sur tensions est intégrée à la carte. Mais il est tout à fait possible d’utiliser des cartes moteur différentes comme je l’explique dans cet article : http://www.locoduino.org/spip.php?article187

2 - La seconde version en termes de simplicité est la v5.0 Wifi. Une nouvelle fois, je précise que c’est votre besoin que vous devez prendre en compte pour savoir si cette version vous correspond ou pas. Le fait qu’elle porte un numéro de version supérieur à la précédente ne signifie pas qu’elle soit plus aboutie.




Elle porte le nom WiFi, car l’application est « stockée » sur un ESP8266. Son principal avantage est de pouvoir se dispenser de Node.js. Elle est simple à mettre en place.

Elle s’adresse plutôt à ceux qui privilégient l’expérience de jeu car elle bien adaptée pour les tablettes et les smartphones (mais n’est pas encore compatible pour ces derniers).

Cette configuration était présentée à Orléans avec un MEGA, un shield WiFi, un LMD18200 et un MAX471 ce qui en fait un ensemble à la fois puissant (3A), simple et peu onéreux. De l’ordre de 20 à 30 € selon que vous utilisiez un Arduino officiel (recommandé) ou pas.

Il est possible d’utiliser un Arduino UNO à la place du MEGA mais cela nécessite quelques « bidouilles ».

Les évolutions : La version smartphones bien sûr mais aussi un travail sur l’interface graphique pour me rapprocher d’une manette de jeu où l’on trouvera par exemple un cadran pour la vitesse et où chaque terminal (tablette ou smartphone) est plutôt destiné au pilotage d’un petit nombre de locomotives (1 à 4 maxi) et où l’on peut envisager de jouer à plusieurs terminaux.


3 - La troisième possibilité : Une version On Line.

J’avais déjà testé avec succès cette possibilité avec la version 3 du Controller Ethernet. Ce n’est donc pas une version ßeta. Mais une telle configuration nécessite des conditions particulières pour son déploiement.

De quoi s’agit t’il tout d’abord : Assez simplement d’applications totalement On Line, c’est à dire que l’on peut y accéder par internet et que l’on n’a donc besoin d’aucune installation particulière (hors le hard), aucun téléchargement ni installation de serveur comme Node.js, ni même de serveur sur un ESP.

Les applications disponibles ne sont pas différentes et offrent les mêmes possibilités que la versions Ethernet ci-dessus. Mais comme on parle maintenant de serveurs en ligne, je dois en plus « blinder » d’autres problématiques comme celles liés à la sécurité par exemple.

Il faut noter que ce n’est pas un service lié au site Locoduino qui ne doit pas pouvoir être mis en cause. Plus des questions juridiques et techniques donc et le déploiement ne pourra se faire que très progressivement avec en premier lieu la version correspondante à la version Ethernet ci-dessus.

Les configurations « hard » sont celles qui sont présentées plus haut, MEGA + Pololu reliés en Ethernet à votre box ou MEGA + ESP8266 reliés en WiFi à votre box.

Les avantages sont bien sûr la simplicité et l’assurance de disposer des versions à jour.


Concernant les deux premières versions opérationnelles à ce jour (Ethernet et WiFi) et donc déployables sur vos réseaux, je pense pouvoir rédiger sous un mois environ les procédures d’installation et d’utilisation. Mais pour ceux qui ont déjà installé ces versions ou qui souhaitent le faire rapidement, il est possible de communiquer au travers de ce fil, ce qui me permettra en plus de connaître vos difficultés et d’apporter des réponses aux autres utilisateurs.

Merci encore à tous pour l’intérêt que vous avez témoigné et des appréciations très positives qui ont souvent été les vôtres à l’égard de Locoduino.

Christophe


 


« Modifié: novembre 13, 2018, 08:43:21 am par bobyAndCo »

fcot2002

  • Jr. Member
  • **
  • Messages: 61
    • Voir le profil
Re : DCC++ : Différents contrôleurs en Ethernet, Wifi ou On Line
« Réponse #2 le: novembre 13, 2018, 10:35:12 pm »
Bonsoir @ tous !

Bravo Christophe pour ce fil qui résume les magnifiques travaux que vous faites.  8)

La pommade passée on va attaquer le vif du sujet,  étant utilisateur de la version Ethernet +node+controler. Et reluquant du côté du wifi  ;)

Je vais dans les jours qui viennent écrire un résumé de mes pérégrinations et réussites Locoduinoesque.  :P :o :P :o

@ très bientôt
« Modifié: novembre 19, 2018, 01:19:49 pm par Dominique »

msport

  • Hero Member
  • *****
  • Messages: 658
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : DCC++ : Différents contrôleurs en Ethernet, Wifi ou On Line
« Réponse #3 le: novembre 13, 2018, 11:33:31 pm »
Bonjour,
sauf erreur, la Z21 est noire. la blanche est la z21.
Celle-ci ne fonctionne en réseau qu'avec un routeur ROCO (ou un code dito)
Outre le reverse engineering il faudra craquer le code.
Délicat ...
« Modifié: novembre 19, 2018, 01:20:14 pm par Dominique »
Cordialement

bobyAndCo

  • Global Moderator
  • Sr. Member
  • *****
  • Messages: 362
  • HO avec DCC++
    • Voir le profil
Re : DCC++ : Différents contrôleurs en Ethernet, Wifi ou On Line
« Réponse #4 le: novembre 14, 2018, 08:45:41 am »
Un ami vient d'acheter un Z21 (personne n'est parfait  ;) ) car il ne se voyait absolument pas mettre les mains dedans, et pour cause il a de très gros problème de visions.

Bonjour fcot2002,

Merci pour ce que tu dis au sujet de la qualité du controller. J'en déduis que je suis dans la bonne voie et cela m'encourage à poursuivre.

Je comprends bien le raisonnement de ton ami et je suis sincèrement navré mais il aurait fallu qu'il sache qu'il n'est pas plus compliqué de mettre DCC++ BaseStation sur son réseau qu'une z(Z)21 !

Rappelons que : "LOCODUINO a pour objectif de montrer tout ce que l’on peut faire en DIY avec un Arduino en modélisme ferroviaire." (cf) page d'accueil du site en bas.

Mais suis très sincère et sérieux en disant cela, il est très simple d'installer DCC++ BaseStation sur son réseau. Cela l'est peut-être moins pour le contrôleur bien que je m'efforce petit à petit d'en simplifier la mise en place et l'utilisation.

Donc pour répondre à la question, non, aucune des versions de DCC++ controller ne peut permettre de piloter une z(Z)21 ou autres centrales. Les controllers n'ont été conçus que pour "promouvoir" DCC++ (solution DIY) en en simplifiant l'utilisation.

En rentrant hier, nous sommes passés at home faire une démo de l'excellent DCC++ et du Controller de BobyAndCo.

http://176.154.165.92/locoduino/controller_dccpp/controller.php

Comme je le disais précédemment dans ce fil, j'ai effectivement mise en ligne et de façon (croyais-je) très confidentielle une version de DCC++ Controller. Elle est estampillée : v 3.0 R1 BETA (on-line). Elle est donc opérationnelle, mais peut comporter des bugs. Par ailleurs, il y a eu de nombreuses et importantes améliorations apportées entre la v3.0 et la v4.2 actuelle. Enfin, le serveur n'est pas "taillé" pour pour une utilisation hors tests. Le chargement est long et potentiellement, il y a des risques de sécurité (échanges en json avec JavaScript pas encore fiabilisés et site non sécurisé).

Je vais essayer de proposer une version "on line" vraiment opérationnelle sous moins de 3 mois j'espère.

Merci pour cette contribution qui enrichi l'échange d'information autour du sujet des "Controllers".

Christophe
« Modifié: novembre 19, 2018, 01:20:35 pm par Dominique »

fcot2002

  • Jr. Member
  • **
  • Messages: 61
    • Voir le profil
Re : DCC++ : Différents contrôleurs en Ethernet, Wifi ou On Line
« Réponse #5 le: novembre 14, 2018, 08:32:25 pm »
Hello

Merci pour vos réponses.

Je vais répercuter l'info. Peut-être me fera-t-il confiance pour lui installer une DCC++ et plus  ;)  Sinon la zZ21 a une apps Android donc cela devrait suffire.

BobyandCo j'ai mis "http://176.154.165.92/locoduino/controller_dccpp/controller.php" pour le texte, moi j'utilise celle de mon serveur Node  8) 8)

Voili voila bonne soirée
« Modifié: novembre 19, 2018, 01:20:59 pm par Dominique »

bobyAndCo

  • Global Moderator
  • Sr. Member
  • *****
  • Messages: 362
  • HO avec DCC++
    • Voir le profil
DCC++ : Différents contrôleurs en Ethernet, Wifi ou On Line
« Réponse #6 le: novembre 18, 2018, 11:08:33 pm »
Comme je l'ai précisé plus en avant sur ce fil, c'est bien la version 4.2 du controller (Ethernet) qui dispose du maximum de fonctionnalités et la seule permettant à l'heure actuelle de se connecter avec plusieurs tablettes ou smartphones simultanément. Ces options sont possibles grâce à l'utilisation de Node.js.

Jusqu'ici, je n'avais communiqué que sur l'utilisation de Node installé sur un PC ou MAC mais avec plnew nous avions en janvier 2017 commencé sur un Raspberry.

Retour aux origines donc, je viens de faire les tests avec un Raspberry à nouveau (PI 3 B+) et ça marche vraiment bien. Le Raspberry évite bien évidement de mobiliser un ordinateur et est accessible en WiFi. Pour un cout modique et le Raspberry ne sert pas qu'à cela sur le réseau.

Seule ombre au tableau, comme certains récemment, je n'arrive plus à installer le module serialport qui aurait permis d'utiliser BaseStation en liaison série avec le Raspberry, mais que nenni ! Il ne s'agit pas d'un bug mais de configurations d'installation bien particulières et délicates. Dommage. Si certains d'entre vous ont un réponse, elle est la bienvenue.

Cette solution constitue une vraie alternative pour piloter DCC++ BaseStation en WiFi.
« Modifié: novembre 19, 2018, 08:02:15 am par bobyAndCo »

bobyAndCo

  • Global Moderator
  • Sr. Member
  • *****
  • Messages: 362
  • HO avec DCC++
    • Voir le profil
DCC++ : Différents contrôleurs en Ethernet, Wifi ou On Line
« Réponse #7 le: novembre 19, 2018, 12:39:04 am »
Bon, après moultes tentatives, j'ai enfin réussi à installer serialport !!!

J'ai été obligé d'installer les distributions binaires NodeSource Node.js. Les anciennes versions installent Node.js avec une version et un nom binaires incorrects.

J'ai installé : $ curl -sL https://deb.nodesource.com/setup_7.x | bash -
apt-get install -y nodejs

J'ai ensuite tenté l'installation :

pi@raspberrypi:~/node_modules $ npm install serialport
(node:2402) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
> serialport@4.0.7 install /home/pi/node_modules/serialport

J'ai eu un message d'alerte : DeprecationWarning mais ce n'est qu'un warning qui ne bloque pas l'installation. Et oh miracle, ça a fonctionné :

pi@raspberrypi:~/Documents $ node dccpp_node.js

Server NodeJs at : 192.168.1.95:8080
Connected to Arduino DCC++ serial at : /dev/ttyACM0
Arduino response :  <iDCC++ BASE STATION FOR ARDUINO MEGA / POLOLU MC33926 MOTOR SHIELD: V-1.2.1+ / Nov 19 2018 00:14:04><N
Arduino response :  0: SERIAL>
Connection socket : Ok

Pour plus de détails, voir la page de Node SerialPort : https://serialport.io/docs/en/guide-installation#raspberry-pi-linux
« Modifié: novembre 19, 2018, 08:00:14 am par bobyAndCo »

Didier44

  • Newbie
  • *
  • Messages: 40
    • Voir le profil
Re : DCC++ : Différents contrôleurs en Ethernet, Wifi ou On Line
« Réponse #8 le: novembre 21, 2018, 05:01:29 pm »
Bonjour à tous,

Christophe, me voila de retour après une longue absence loin d'Arduino mais avec un réseau pas encore électrifier.
Au vu de tes nouveautés avec node.js, j'ai fait une mise à jour de node.js et de tes développements  (v 4.2). J'ai tout repris méthodiquement, tous les zip contenant tes programmes ainsi que la procédure ab initio.
Sans oublier les différents npm ... et l'adresse IP du serveur. Mais cette fois ci je n'arrive pas à aller jusqu'au bout.

Le serveur localhost focntionne bien (startnode.js, power1, etc).
Quand je lance dccpp_node.js, le serveur se connecte

Server NodeJs at : 192.168.1.93:8080
Connected to Arduino Mega DCC++ at : 192.168.1.200:2560
Connection socket : Ok

J'appuie sur le bouton 'power' et les leds de mon shield d'alimentation s'allume (j'ai juste changer dans locos.json les valeurs des CV, avec ta version c'était pareil):

<p1>
(node:2056) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
<t 4 6 -1 1>
<t 5 7 -1 1>
Arduino response :  <T1 0 1>
<t 6 8 -1 1>
<t 7 9 -1 1>
<t 8 10 -1 1>
Arduino response :  <T2 0 1>
<t 9 241 -1 1>
<t 10 13 -1 1>
<t 11 14 -1 1>
<t 12 6400 -1 1>
<t 13 15 -1 1>
Arduino response :  <T3 0 1>
Arduino response :  <T4 0 1>
Arduino response :  <T5 0 1>
Arduino response :  <T6 0 1>
Arduino response :  <T7 0 1>
Arduino response :  <T8 0 1>
Arduino response :  <T9 0 1>
Arduino response :  <T10 0 1>
Arduino response :  <T11 0 1>
Arduino response :  <T12 0 1>

Et ensuite quelle que soit l'action, j'ai un message de ce type:

Error opening port
<t 3 5 7 1>

J'ai fait plusieurs essais, éteindre le PC, revérifier les paramètres  :'( :'(
Ma carte ethernet fonctionne correctement (vérifier avec ta v3).
Any idea ?

Bonne journée
Didier

bobyAndCo

  • Global Moderator
  • Sr. Member
  • *****
  • Messages: 362
  • HO avec DCC++
    • Voir le profil
Re : DCC++ : Différents contrôleurs en Ethernet, Wifi ou On Line
« Réponse #9 le: novembre 21, 2018, 05:55:38 pm »
Salut Didier,

Très heureux de te retrouver. J'ai eu un problème similaire au démarrage de node.

Essaye comme je fais de stopper Node, puis de le relancer tout simplement et de recharger la page du controller, moi je le fais en faisant une actualisation forcée pour mettre toutes les chances de mon côté.

C'est toujours reparti après une ou deux tentatives.

Sinon, toi qui est curieux, il faut que tu essaye cette configuration avec Raspberry !

Bien amicalement,

Christophe

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1709
  • 100% Arduino et N
    • Voir le profil
Re : Re : DCC++ : Différents contrôleurs en Ethernet, Wifi ou On Line
« Réponse #10 le: novembre 21, 2018, 05:59:29 pm »
Essaye comme je fais de stopper Node, puis de le relancer tout simplement et de recharger la page du controller, moi je le fais en faisant une actualisation forcée pour mettre toutes les chances de mon côté.

C'est toujours reparti après une ou deux tentatives.

Ca fait un peu peur !

bobyAndCo

  • Global Moderator
  • Sr. Member
  • *****
  • Messages: 362
  • HO avec DCC++
    • Voir le profil
Re : DCC++ : Différents contrôleurs en Ethernet, Wifi ou On Line
« Réponse #11 le: novembre 21, 2018, 06:11:25 pm »
Oui et non, c'est souvent dû à des mise à jour sur Chrome en particulier. Il faut que je prenne le temps un jour de décortiquer les messages console. C'est aussi pour cela que je parle de Raspberry car là je n'ai pas eu de problème !

Didier44

  • Newbie
  • *
  • Messages: 40
    • Voir le profil
Re : DCC++ : Différents contrôleurs en Ethernet, Wifi ou On Line
« Réponse #12 le: novembre 21, 2018, 06:21:44 pm »
Pour Raspberry j'ai cela en tête depuis longtemps mais j'ai d'autres projets avec arduino pur l'instant dont je parlerais prochainement.
Pour le navigateur Chrome (et Vivaldi), Firefox ou Edge, même erreurs. Je n'ai pas encore essayer cette méthode qui fait peur à Dominique 8)

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1709
  • 100% Arduino et N
    • Voir le profil
Re : DCC++ : Différents contrôleurs en Ethernet, Wifi ou On Line
« Réponse #13 le: novembre 21, 2018, 07:27:02 pm »
Ce n'est pas moi qui ai peur mais surement les lecteurs de Locoduino se trouvant face à ces incertitudes auxquelles l'Arduino pur et dur ne nous a pas habitué  ??? ::)

Mais c'est surement un sujet à explorer  ;D

fcot2002

  • Jr. Member
  • **
  • Messages: 61
    • Voir le profil
Re : Re : DCC++ : Différents contrôleurs en Ethernet, Wifi ou On Line
« Réponse #14 le: novembre 21, 2018, 10:11:53 pm »
Bonsoir,


Essaye comme je fais de stopper Node, puis de le relancer tout simplement et de recharger la page du controller, moi je le fais en faisant une actualisation forcée pour mettre toutes les chances de mon côté.

C'est toujours reparti après une ou deux tentatives.
 

Cela m'est arrivé et cette méthode fonctionne.

Je ne pense pas que cela soit lié à l'Arduino mais plutôt à Node.js

Amicalement