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.


Sujets - marc_geo

Pages: [1]
1
JMRI et Arduino / Projet modules-sorties jmri/canbus
« le: mai 06, 2023, 03:59:43 pm »
        Bonjour à vous tous,


        Pour toutes les personnes que cela pourrait intéresser, j'aimerais vous présenter le petit projet dans lequel je me suis lancé, à savoir la conception et le montage de petits modules de commandes(aiguillages, éclairages et autres) qui tournent sous le protocole canbus et pilotés par JMRI.

        Sans être trop long, voici un petit historique du matériel que j'utilise pour mon ancien-futur réseau:

        J'ai été très longtemps fidèle et coopérateur à l'équipe Rocrail depuis quasi sa naissance ... Ces derniers temps, j'avoue, j'ai un peu lâché le projet car la ligne directrice actuelle s'écarte un  peu de ma philosophie, notamment par rapport au code source qui n'est plus si accessible qu'auparavant et l'abandon de certains protocoles de communication (ddl, ddx, ...). J'insiste que cela reste mon avis et sentiment et que ce n'est nullement une critique négative vis à vis de Rocrail qui est un programme formidable.
        La conséquence de tout ceci est qu'actuellement je découvre JMRI beaucoup plus en profondeur et que j'essaye de le faire tourner avec du matériel issu de la lignée Rocrail. J'ai donc une centrale dcc++ avec un arduino uno couplé à un booster(ORD3-
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), 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 pas mal de pièces électroniques en stock, donc essayer de les utiliser au maximum. Par exemple, j'ai une série de pic Atmega8 que je vais réutiliser. Comment ? C'est simple: au lieu d'acheter x nbre d'arduino, je vais simplement y charger un bootloader arduino ce qui va m'engendrer une série de petits arduino. Les atmega8 et 328 sont tout à fait équivalents dans leur structure. En consultant le datasheet, ce qui diffère, c'est l'espace mémoire. Comme le sketch que je vais télécharger est vraiment tout petit, ce ne sera pas un souci. Cette procédure n'est pas trop compliquée. On trouve de nombreux exemples sur internet, mais je peux l'expliquer si une personne me le demande, ce sera avec plaisir.
  • Trouver un système de cablage simple, comme cela s'est déjà fait, via du rj45. Cela réduira le nombre de cables et permettra d'amener partout sur le réseau des sources de 12V et 5V pour les différents besoins(électronique, décors, animations, ...
  • Créer le module sur une platine en y intégrant l'atmega8-arduino et le mcp2515 pour la connexion canbus
  • Piloter le tout via JMRI

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



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]

2
Débuter / C++ - hiérarchie des fichiers
« le: août 04, 2020, 11:05:04 pm »
Bonsoir à tous,

Je me suis lancé dans l'étude de l'utilisation des classes et objets pour programmer certaines choses. Les articles sur locoduino étant vraiment bien faits et ayant fait quelques petits exercices, j'ai bien intégré les principes de base.
Il y a juste une chose que je n'arrive pas à à réaliser, malgré les dizaines de tutos que j'ai suivis .... après deux jours je fatigue et je fais appel à l'équipe. Je m'explique:

J'ai un souci en terme de hiérarchie de fichiers. Les exemples, tutos et articles que l'on trouve conçoivent en général des exemples basés sur un fichier principal, main(), ou encore le fichier .iso pour l'arduino et son IDE. Quand on a une routine qui fonctionne, tous mes essais fonctionnent bien, pas de souci.

Pour l'arduino j'ai par habitude plus utiliser un système modulaire avec des fonctions pour chaque modules, découpé en plusieurs fichiers .cpp et fichiers entêtes .h et un dernier fichier .config.h contenant certaines variables globales comme par exemple les définitions des pin #define pin A0 par exemple.
Ce que je voudrais réaliser, c'est définir x sorties digitales pour allumer des lampes de décors, maison, routes ou autres, et qui seraient allumées en partie ou dans son ensemble selon des événements (nuits, mouvements aléatoires dans une maison, magasin, ...)

Pour ce faire j'ai crée pour l'essai une class avec un constructeur très simple, c'est un simple on ou off avec l'argument dune pin à introduire LampeMaison LampeMaison(pinLampeMaison).
Encore une fois, dans une routine principale, cela fonctionne sans problème.
Par contre, si je veux faire appel classe à cette via une fonction autre que la routine principale, par exemple un module nuit, nuit.cpp et nuit.h avec par exemple une fonction AllumageNuit(), là cela coince.
Comment parvient-on à rendre une classe utilisable dans une hiérachie de fichiers autres que le fichier principal en l'exportant, un peu comme une variable.

Est-ce possible ?, même si je crois que j'ai encore du mal à concevoir un programme dans son ensemble sous la forme d'objets,étant trop habitué au morcelage en système de modules et fonctions que l'on insère petit à petit un peu "selon la nécessité" du moment et de l'idée.

Merci d'avance et belle soirée.

Marc




3
Bus CAN / biblio acan
« le: juillet 18, 2020, 12:10:28 am »
Bonsoir à tous,

Comme le bus can est une nouveauté pour moi, et que cela me passionne ..., j'ai bien étudié les deux articles traitant de la bibliothèque acan.
J'ai essayé de faire un petit exercice à l'aide des exemples donnés par l'auteur de l'article mais pour une utilisation de lecture d'états des entrée digitales, comme pour simuler par exemple une occupation de canton. J'ai donc mis en relation un uno, sorte de centrale qui reçoit les infos, et un mega pour les entrées digitales.
Le sketch fonctionne bien, je parviens à faire passer les infos du mega vers l'uno sous une forme de tableau de quatre éléments ( c'est le nombre d'entrées que j'ai choisi aléatoirement pour l'exercice).
J'ai commencé à toucher au système de filtre également, et cela fonctionne aussi.

Je bloque maintenant sur un point: je cherche à faire passer un numéro d'identifiant vers la centrale. Exemple: satellite 1 envoi un changement d'état entrée digitale 5. J'imagine qu'avec le système de filtre cela doit être possible, mais je bute un peu ... Y-aurait-il un article qui développerait cela ?

Merci et belle soirée

Marc

Édit: je viens de découvrir l'autre article, j'y trouverai sans doute une réponse :)

4
Bus CAN / Alimentation bus can
« le: juillet 11, 2020, 04:38:11 pm »
Bonjour à vous tous.

J'ai un petit conseil à vous demander concernant le bus can et l'alimentation des noeuds.

J'ai lu les articles sur le bus can, super découverte pour moi, et je vais tenter de concevoir un système qui sera adapté à mon petit réseau.
Je ne vais pas suivre la conception du satellite telle quelle, sachant que j'aimerais avoir des noeuds plus ciblés par genre ( entre autres des modules de rétro qui ne font que cela). La deuxième raison est que je possède une série d'ic non employés, allant de l'atmega 8, 88 et 328p. Je vais donc les utiliser en chargeant les bootloaders spécifiques pour pouvoir simplement les programmer comme des arduino ( ou arduini ...).

Pour ce faire, j'aimerais centraliser l'alimentation de tous les ic et non pas dispatcher chaque fois un régulateur différent sur chaque carte noeud. En posant le constat qu'un atmega plus les deux mcp 2515 et 2551 ne consomment pas grand chose, une alimentation centrale de type pc suffirait largement.
En conséquence, je m'arrangerais dans la connexion de faire circuler un seul fil avec quatre connecteurs, deux pour le bus can, et deux pour l'alimentation.

Pensez-vous que c'est une approche envisageable ou alors contient-elle quelques pièges qui m'auraient échappé ?

Merci d'avance de vos conseils et belle journée  :)

Marc

5
Présentez vous ! / Bonjour à vous
« le: juillet 03, 2020, 05:40:29 pm »
Bonjour à vous tous.

Mon nom est Marc Geonet, 60 balais, deux enfants, un grand et un petit, et j'habite à Wavre en Belgique. C'est pas loin de Bruxelles.
J'ai la passion du train et train miniature depuis que je suis petit. Je ne suis sans doute pas très original en disant que je m'y suis remis seulement depuis quelques années, quand mon premier gamin était encore petit. J'avais revendu mon train N, arnold rapido principalement, pour investir dans du HO plus adapté aux petites mains.

Bidouillant en informatique, sous linux depuis maintenant plus de 20 ans, j'ai découvert à l'époque le monde du digital pour le train miniature. J'ai très vite découvert l'environnement Rocrail, je suis dans les premiers inscrits, de mémoire n°81, mais cela a peu d'importance. J'adore le côté technique du hobby. Je remonte actuellement un tout petit réseau car la place n'est pas énorme.

Je m'amuse avec mes petits moyens de connaissance en programmation, à programmer des arduino et raspberry. Je me suis monté deux robots pour un autre domaine, pilotage aquarium. Le premier basé sur un mega avec touchscreen, base de données et graphiques, le second basé sur un raspberry communiquant en i2c avec un mega et un petit site de gestion créé avec Django. Je me suis amusé aussi à monter un petit module sonore d'annonces en gare pour le train basé sur des mini sd card. Chaque projet m'a pris du temps car je suis complètement amateur et au final on doit apprendre beaucoup de domaines différents pour arriver à un résultat d'ensemble.

Je découvre tout votre projet qui me passionne, non seulement pour les aspects pratiques et bien concrets avec des articles vraiment bien clairs pour un débutant comme moi, mais aussi pour me semble-t'il la philosophie qui y règne. Je viens à cela car du côté Rocrail, j'insiste, selon mon point de vue, le côté communauté se perd de plus en plus, tout comme la notion du libre. Cela devient une "grosse machine" avec certains protocoles qui sont abandonnés pour d'autres sans raison je trouve, mais le choix final de décision ne se fait que sur la volonté d'une personne, le responsable du projet. Il faut savoir que je ne critique pas les choix, je dis simplement que je m'y retrouve de moins en moins. D'où mon intérêt pour votre projet.

Voilà, j'espère avoir résumer au mieux.

Belle soirée à vous tous  :)

Marc

Pages: [1]