Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - bobyAndCo

Pages: [1] 2 3 ... 39
1
Bus DCC / Re : Re : EX-DCCInspector
« le: Aujourd'hui à 10:24:41 am »

Sur le serial monitor, juste après un reset, vous aurez l'adresse IP de connexion du sniffer à laquelle votre browser pourra se se connecter. Ajouter :80 (pour http)

style 192.168.1.23:80


Le moyen le plus simple pour se connecter à l'interface web est de copier dans la barre d'url du navigateur l'adresse : http://DccInspector.local

2
Bus DCC / Re : EX-DCCInspector
« le: septembre 29, 2023, 09:10:43 am »
Merci Michel pour toutes ces infos précieuses.

Tu confirmes que 6N137 peut-être alimenté en 3,3V ?

Christophe

3
Bus DCC / Re : EX-DCCInspector
« le: septembre 28, 2023, 11:28:53 am »
Pour la partie matérielle, je trouve que c’est nettement moins clair. Dans le README du GitHub, il est fourni le schéma suivant :



Avec cette mise ne garde :

Strictly, the 6N137 isn't rated for the 3.3V supply used on an ESP8266 or ESP32. I've had good results running with the circuit shown above with a 3.3V supply (replacing R3 with 330 ohm), but if you want to do things properly, the VCC terminal of the 6N137 should be connected to +5V, or the optocoupler should be replaced with a 3.3V tolerant optocoupler. In either case, R3 should be connected to +3.3V to avoid putting too high a voltage on the ESP's input pin.

Approximativement traduit en français : Strictement, le 6N137 n'est pas prévu pour l'alimentation 3.3V utilisée sur une ESP8266 ou ESP32. J'ai eu de bons résultats avec le circuit montré ci-dessus avec une alimentation de 3.3V (en remplaçant R3 par 330 ohms), mais si vous voulez faire les choses correctement, la borne VCC du 6N137 doit être connectée à +5V, ou l'optocoupleur doit être remplacé par un optocoupleur tolérant à 3.3V. Dans les deux cas, R3 doit être connecté à +3,3V pour éviter de mettre une tension trop élevée sur la broche d'entrée de l'ESP.

Mais dans le dossier hardware (toujours sur le GitHub) nous avons un autre schéma :



et aussi des représentations de la carte :





Je crois que certains ont réalisé ce circuit pour ESP32. Peuvent t’ils nous préciser comment ils ont procédé ?

Merci par avance

Christophe




4
Bus DCC / EX-DCCInspector
« le: septembre 28, 2023, 11:25:42 am »
Bonjour à tous,

Catplus et moi travaillons sur un projet qui nécessite de « sniffer » les trames DCC envoyées sur un réseau. En précisant que nous souhaitons utiliser l’ESP32 comme plateforme.

EX-DCCInspector semble faire l’unanimité pour le job. Il en est plusieurs fois question sur le forum mais rien pour en parler de manière un peu exhaustive. C’est l’ambition de ce fil.

Tout d’abord, la page traitant de EX-DCCInspector se trouve ici : https://dcc-ex.com/ex-dccinspector/index.html#gsc.tab=0

Il y a deux manières de se procurer le fichier, soit en téléchargeant un fichier .zip, soit sur le GitHub.

J’ai rencontré plusieurs problèmes :

1° - Le scketch ne compile pas avec une version de l’IDE Arduino inférieure à 2.0
2° - J’essaye alors avec PlatformIO et je rencontre aussi un problème à la compilation.

Avec l’IDE Arduino, la solution a été d’installer la dernière version, pour moi la 2.2.2 (au 28 sept 2023)

Avec PlatformIO, les fonctions doivent être déclarées avant leur première utilisation. Or plusieurs fonctions utilisées dans le loop() sont définie après dans le code.

J’ai donc ajouté le prototype des fonctions juste avant le setup() et ça fonctionne.

void clearHashList();
bool processCommands();
void UpdateLED();
void DecodePacket(Print &, int, bool);
bool processDCC(Print &);

void setup() {

Pour utilisation avec un ESP32, il vous faut renseigner le réseau WiFi utilisé ainsi que son mot de passe dans le fichier Config.h

#define WIFI_SSID "myssid"
#define WIFI_PASSWORD "mypassword"

Nous commentons la ligne //#define USE_OLED car nos n(utiliserons pas d’écran OLED.

En contrepartie, l’ESP32 autorise l’affichage des données dans un navigateur web à l’adresse http://DccInspector.local/



Voilà quelques précisions pour pouvoir utiliser EX-DCCInspector sur un ESP32 avec visualisation des données dans une page web.

5
Voila un réseau fort sympathique ! Nul doute que tu trouveras sur Locoduino tout ce dont tu as besoin pour l'automatisation, les signaux et la traction. Avec en plus les compétences des uns et des autres.

Bienvenue

Christophe

6
Vie du forum / Re : Retour en ligne
« le: août 03, 2023, 05:43:31 pm »
Merci Jan-Luc pour le travail réalisé. Beaucoup comme moi vont se réjouir de retrouver Locoduino !

7
J'utilise assez souvent chatGPT pour avoir un retour sur du code que j'ai pu écrire et je dois avouer que souvent, je trouve des suggestions intéressantes. Mais alors ce matin, je lui ai soumis un vieux code (2012) qui n'incorporait pas des évolutions intéressantes de C++ 11 comme les listes d'initialisation par exemple. Voici le texte de nos échanges (sans le code que je pourrais poster si cela vous semble intéressant). C'est assez éloquent :

Moi
Bonjour Chat

ChatGPT
Bonjour! Comment puis-je vous aider aujourd'hui?

User
Dis moi comment tu écrirais ceci en C++ moderne ?

ChatGPT
Voici le code en C++ moderne pour la classe TrackController que vous avez fournie :

Ce code utilise les fonctionnalités du langage C++ moderne, telles que l'initialisation de membres dans la liste d'initialisation du constructeur (mHash(hash), mDebug(debug), etc.), ainsi que l'inclusion de la bibliothèque Arduino (<Arduino.h>) pour utiliser Serial.println(F(...)) avec la macro F() pour économiser de la mémoire.

User
Je suis d'accord avec toi qu'il faut utiliser des listes d'initialisation mais tu ne le fais pas !

ChatGPT
Je m'excuse pour l'omission dans ma réponse précédente. Vous avez raison, il est préférable d'utiliser des listes d'initialisation pour initialiser les membres de la classe. Voici le code mis à jour en utilisant des listes d'initialisation :

Dans ce code mis à jour, les membres mHash, mDebug, mLoopback et mGbxBoot sont initialisés dans les listes d'initialisation des constructeurs correspondants, plutôt que d'être assignés dans le corps du constructeur init(). Cela améliore l'efficacité et la lisibilité du code.

User
tu dois être fatigué aujourd'hui car la fonction init n'est plus nécessaire :  void init(word hash, boolean debug, boolean loopback, boolean gbxBoot) {
        mHash = hash;
        mDebug = debug;
        mLoopback = loopback;
        mGbxBoot = gbxBoot;
    }

ChatGPT
Je m'excuse pour la confusion précédente. Vous avez tout à fait raison, la fonction init() n'est plus nécessaire puisque nous pouvons initialiser directement les membres dans les listes d'initialisation des constructeurs. Voici le code mis à jour sans la fonction init() :

Je m'excuse à nouveau pour l'erreur précédente et je vous remercie de votre patience. Le code ci-dessus initialise maintenant directement les membres dans les listes d'initialisation des constructeurs, sans avoir besoin de la fonction init().

User
Je me demande si je peux te faire confiance

ChatGPT
Je comprends que mes erreurs précédentes ont semé le doute. En tant qu'IA, je m'efforce de fournir des réponses précises et fiables, mais il peut arriver que des erreurs se produisent. Je suis constamment en apprentissage et j'essaie d'améliorer mes performances.

Je vous recommande de toujours vérifier les réponses que je vous donne et d'utiliser votre propre jugement et connaissance pour prendre des décisions. N'hésitez pas à poser des questions de suivi ou à demander des éclaircissements si quelque chose ne semble pas correct.

Mon objectif est de vous aider du mieux possible, et je ferai de mon mieux pour répondre à vos demandes.

8
Trucs & astuces / Re : Indicer des noms de variables
« le: mai 27, 2023, 08:20:16 pm »
Voir ici : https://www.locoduino.org/spip.php?article227

Il faut prendre un peu sur soi pour au moins utiliser la fonction recherche du site ! Et mieux prendre du temps pour le parcourir.

Bien amicalement.

Christophe


9
Mais ce que j'ai essayé de vous dire, c'est que l'ancienne génération c'est votre uno et sa carte wifi / bluetooth.

Vous avez la même chose sur un ESP32 (wifi / bluetooth), le CAN en plus (en ajoutant cependant un transceiver MCP 2552), 240Mhz, double cœur, une mémoire de masse de 4 ou 8 Mo et pour une dizaine d'euros et un encombrement réduit.

Pour moi, c'est ça la modernité !

Ah pour le fun, voici ma propre station DCC sur ESP32 :


10
Bonjour à tous,

Tout d’abord, je crois que c’est monté un peu vite dans les tours sans raisons véritables.

S’il n’y a pas eu (beaucoup) de réponses au sujet de cette configuration matérielle et en particulier la carte wifi, c’est probablement parce que nous avons des solutions en communication wifi sur des centrales DCC qui fonctionnent. Personne n’a sans doute envie de remettre ceci en cause, il y a tellement d’autres chantiers sur lesquels nous sommes affairés!

Excusez-nous s’il y a eu des frictions mais comme le dit Dominique et pour les raisons que je cite plus haut, nous ne voyons pas l’intérêt de cette configuration (que nous ne connaissons pas).

J’ai cru comprendre que vous lui trouviez des qualités, pouvez-vous détailler un peu, il y a peut-être de bonnes idées qui nous intéressent.

Bon, néanmoins, sauf à ce que cette appli soit vraiment géniale, vous vous seriez sans doute moins cassé les dents sur des bases matérielles de type ESP32 largement éprouvées, plus puissantes et disposant du wifi natif.

Bienvenue sur Locoduino et prenons plaisir à échanger et à jouer au train.



11
Vos projets / Re : projet centrale "LaBox" wifi DCC++ Can
« le: mai 21, 2023, 04:09:09 pm »
Bonjour Dominique,

Je ne serais pas aussi affirmatif que toi concernant la génération du cutout dans DCC-Ex. Il en est question depuis longtemps et puis finalement c'est toujours reporté. Pour le cutout, il ne suffit pas du hard, 18200 comme tu cites pas exemple, mais c'est aussi logiciel : Il faut que le soft arrête l'envoi de tout courant sur la voie (avec l'entrée break du LMD18200) pendant une durée de 454 à 488 µSec

NMRA page 6 : https://www.nmra.org/sites/default/files/standards/sandrp/pdf/s-9.3.2_bi-directional_communication.pdf

12
Vos projets / Re : Re : projet centrale "LaBox" wifi DCC++ Can
« le: mai 20, 2023, 09:58:05 pm »
Apparemment c'est compliqué voire impossible de communiquer en Wifi à partir de HTML.

Que nenni mon cher Thierry, bien au contraire si tu es sur un ESP32.

Ma centrale dcc railcom qui est commandée par mon contrôleur que vous connaissez en HTML fonctionne comme cela.



Je ne peux pas mettre l'ensemble du projet en PJ car cela fait au total 16Mo mais tu peux le télécharger ici : https://alkans.fr/locoduino/DCC_controller_ESP32.zip

N'hésite pas si tu veux en parler.

Christophe

13
Bus CAN / Re : ACAN ESP32
« le: avril 13, 2023, 10:28:10 pm »
J'ai eu ce problème et ai échangé avec Pierre à ce sujet, voir ici : https://github.com/pierremolinaro/acan-esp32/issues/6

Sinon, effectivement il faut rester en 1.0.6. Ceci est d'autant plus facile si on utilise PlateformIO : lib_deps = pierremolinaro/ACAN_ESP32@=1.0.6

14
Bonjour Coucou,

La grande force de DCC++ c’est de s’être imposé au point de devenir un standard et donc compatible avec de nombreux contrôleurs dont JMRI et Rocrail. Comme cela chacun est libre de choisir ce qu’il préfère comme vous le faites.

Le sujet de la rétro-signalisation que vous abordez par ailleurs est lui beaucoup plus délicat. Il nécessite une vraie réflexion de départ car quand vous aurez commencé à investir et à déployer, il sera compliqué de changer ensuite. Les solutions techniques qui peuvent sembler les plus simples de prime abord peuvent se révéler compliquées au fur et à mesure du déploiement.

Il y a plusieurs écoles dont toutes vous dirons que ce qu’elles défendent est largement supérieur à toutes autres solution. Ne vous laissez pas influencer sans prendre de recul.

-   La rétrosignalisation avec le bus DCC : Il s’agit de faire circuler l’information sur le même bus DCC, c’est à dire en grande partie les rails. Personnellement celle que je déconseille le plus.
-   La rétrosignalisation avec un bus I2C comme vous l’évoquez : Le bus I2C est très sensible à l’environnement extérieur (cas de nos réseaux), ne supporte pas (de base) les bus de grande ou moyenne longueur. Sa fiabilité n'est pas totale et la mise au point souvent compliquée
-   Modbus est un bus performant que certains sur Locoduino utilisent avec succès principalement avec JMRI mais je connais des modélistes qui l’ont développé avec Rocrail et je pourrais vous mettre en relation si vous le souhaitez.
-   Enfin, le bus CAN dont vous vous rendrez vite compte que c’est LA SOLUTION préconisée sur Locoduino (et par moi). Apparemment plus complexe, le CAN rebute au premier abord. Mais à de nombreux points de vue, c’est la bonne solution dans la durée; fiable, robuste, performant et économique !

Il ne s’agit pas ici d’entrer dans les détails, mais nous pourrons vous apporter des réponses à vos questions éventuelles.

Bon courage et bonne réussite.

15
Présentez vous ! / Re : nouveau arrivant
« le: mars 25, 2023, 11:05:48 am »
Bonjour al pacon et bienvenue sur Locoduino. Merci pour les appréciations que vous portez au sujet de Locoduino, groupe de passionnés qui ont le plaisir de partager leurs connaissances et expériences.

Alors, au sujet de vos tableaux d’objets, c’est en générale plutôt un moyen efficace de programmation.

J’ai écrit un article au sujet des tableaux (et des boucles for), qui n’est pas spécifique aux objets mais il n’y a aucune différence de traitement à ce niveau entre un type simple (int) et un type complexe qu’est la classe : https://www.locoduino.org/spip.php?article227

Mais au-delà des principes généraux, chaque cas peut être traité différemment. Aussi faut-il que vous mettiez en téléchargement votre code et nous pourrons vous donner des avis et des conseils.

Et vive les petits trains !

Pages: [1] 2 3 ... 39