LOCODUINO

Parlons Arduino => JMRI et Arduino => Discussion démarrée par: marc_geo le mai 06, 2023, 03:59:43 pm

Titre: Projet modules-sorties jmri/canbus
Posté par: marc_geo le mai 06, 2023, 03:59:43 pm
https://wiki.rocrail.net/doku.php?id=ord3-cs-fr (https://wiki.rocrail.net/doku.php?id=ord3-cs-fr), duo qui fonctionne parfaitement. Pour la rétro-signalisation, j'ai un système basé sur Loconet(https://wiki.rocrail.net/doku.php?id=gca85-en (https://wiki.rocrail.net/doku.php?id=gca85-en)), système robuste qui a depuis longtemps fait ses preuves. Il me manque donc tout ce qui est commandes. J'aurais pu passer via les modules loconet mais je préfère découvrir et concevoir pour le hobby un système séparé et indépendant de la rétro, ce qui est souvent conseillé même si pas obligatoire.

Voici dans les grandes lignes la démarche que j'ai établie:


J'ai déjà pas mal progressé dans le projet.

(https://www.dropbox.com/s/90cyoerwi3lwu8n/essai1.jpg?dl=0)

https://www.dropbox.com/s/90cyoerwi3lwu8n/essai1.jpg?dl=0 (https://www.dropbox.com/s/90cyoerwi3lwu8n/essai1.jpg?dl=0)

Dans ce fouillis de cables on distingue un atmega8, module réception1, un uno, module réception 2 qui communiquent avec un mega qui sert d'interface avec JMRI pour piloter des leds qui simulent des feux de signalisation.

Voilà pour les premières bases de cette aventure ...  :)

Belle journée à vous tous[/list][/list][/list]
Titre: Re : Projet modules-sorties jmri/canbus
Posté par: Dominique le mai 08, 2023, 09:26:52 pm
Bonsoir Marc,

Merci pour votre choix du Can dans la relation avec JMRI.

Ce serait super de montrer la mise en ouvre de JMRI avec une centrale DCC inspirée par Locoduino et un réseau de retrosignalisation et de commandes via Can.

Je n’ai jamais voulu de pc sur mon réseau mais je suis prêt à installer JMRI sur un RPi. Donc votre projet m’intéresse et je peux partager mon expérience sur le Can.

Bon courage
Titre: Re : Projet modules-sorties jmri/canbus
Posté par: marc_geo le mai 09, 2023, 10:44:38 pm
Merci pour votre réponse  :)

Pour l'instant, je suis en attente de quelques composants qui vont arriver d'un jour à l'autre.
Dès réception, je ferai les premiers tests et je posterai le schéma de la carte.
Et bien-sûr, je ne demande pas mieux  d'avoir un coup de main, sachant que je découvre le bus can.

Belle soirée.

Marc
Titre: Re : Projet modules-sorties jmri/canbus
Posté par: marc_geo le mai 18, 2023, 11:12:58 pm
Bonsoir à tous.

Voici le résumé de mes avancées  :)

Petit rappel de mon carnet des charges.
Réalisation d'un réseau de commandes d'accessoires contrôlé par JMRI via le bus can, réseau actuellement indépendant de la détection.
Essayer au maximum de réduire le cablage divers ce qui assurera une certaine robustesse au système et simplifiera grandement la clarté de l'ensemble.
Pour arriver à ce but, relier entre eux les divers modules et les alimenter par du cablage rj45(8 fils) et en profiter pour diffuser un autre voltage pour alimenter les accessoires. J'utilise pour la source du courant, une alimentation de pc, en général très précise, qui peut fournir du 12V, 8A, et du 5V 20A,ce qui pourra largement supporter beaucoup d'accessoires.

J'ai donc réalisé le schéma électronique sur base des pièces que j'ai en stock( tous les fichiers sont joints et si vous trouvez des erreurs, ne pas hésiter à le dire, je ne suis qu'hobbyiste et non professionnel)des cartes module et fait imprimer les platines.
J'en ai monté une pour commencer les tests qui sont positifs. Cela reste un prototype de base comme un arduino sauf qu'ici j'ai utilisé un atmega8 que j'avais également en stock.

Il y a à l'entrée, un étage de régulation de courant avec le classique ams1117 bien connu des arduinistes ;)
En suite les 3 ic, atmega(au choix 8, 88, 328, ...), mcp2515 et le tja050 pour le bus can.
J'ai placé un connecteur pour programmer l'atmega directement sur la platine(j'utilise un programmeur classique USBasp) mais c'est optionnel.
Il y a aussi un connecteur qui permet l'utilisation de l'interrupt ou simplement la sortie. Actuellement, je ne 'utilise pas le système de l'interrupt pas toujours facile à maîtriser, même si indispensable en cas de très gros réseau.
Rien de révolutionnaire donc. A terme, cette petite structure sera utilisée pour des modules à usage précis avec une platine dédiée car un atmega ou arduino ne peut pas alimenter beaucoup de choses (même 15 leds alumées en même temps ...) mais simplement commander. Je pense à par exemple à une carte leds-signaux lumineux, une carte servo-moteurs, une carte son, .....

En ce qui concerne les sketch, j'ai utilisé la bibliothèque autowp-mcp2515 que je trouve vraiment ultra simple d'utilisation et très légèrehttps://github.com/autowp/arduino-mcp2515 (https://github.com/autowp/arduino-mcp2515) même si à terme et si j'en ai le courage, je coderai sans doute en C pour gagner de l'espace mémoire, mais encore une fois, vu la taille du sketch, cet aspect est purement optionnel.

Dans jmri_can_master,il y a un fichier global.h qui permet de définir le nombre de sorties que l'on veut piloter, en rapport avec le nombre de sorties dans JMRI, voir plus bas, et la définition des filtres:

/********************/
/* fichier global.h */
/********************/
#ifndef jmricom_h
#define jmricom_h

#define NBRESORTIESJMRI 69
#define NBRECONJMRI 69

int canFilter[2] = {0x010, 0x011};

#endif

Actuellement je fais des tests avec 69 sorties et deux modules, donc deux filtres.

Dans jmri_can_module,il y a un fichier global.h qui permet de définir le numéro du module à piloter, en rapport avec le nombre de sorties dans JMRI, voir plus bas, et la définition des filtres:
/********************/
/* fichier global.h */
/********************/



#define NUMMODULE 1

const int FILTRE[]={0x000, 0x010, 0x011};


Pour ce qui est de la communication avec JMRI, je passe par le script écrit en python par Geoff Bunza https://forum.mrhmag.com/post/sma29-jmri-turnout-channels-%E2%80%93-direct-jmri-to-arduino-communications-simple-support-for-lots-of-12210817 (https://forum.mrhmag.com/post/sma29-jmri-turnout-channels-%E2%80%93-direct-jmri-to-arduino-communications-simple-support-for-lots-of-12210817), un article sur locoduino ayant été écrit sur ce sujet(attention, le lien des fichiers dans l'article locoduino nous donne un fichier obsolète. Il faut prendre les fichiers originaux sur le site de Geoff !).

Voilà, cela avance donc et j'espère ne pas être trop brouillon dans mes explications, je suis conscient que c'est pas toujours facile d'être bien clair !

Bonne soirée et au chapitre suivant  :)

Marc
Titre: Re : Projet modules-sorties jmri/canbus
Posté par: marc_geo le mai 18, 2023, 11:31:51 pm
Suite des fichiers  :)