Auteur Sujet: Réalisez vos propres barrettes d'éclairage avec dcodeur DCC-analogique intégré!  (Lu 10233 fois)

laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Bonjour


Les bases historiques:
Parce qu'il m'appartient de vous partager mon travail et mes retours d'expérience, je vais ci-après vous livrer TOUTES les clés pour réaliser ( ou faire réaliser par un industriel ou un amateur chevronné) vous même vos propres barrettes d éclairage incluant un décodeur de fonction DCC compatible analogique à destination de vos matériels remorques principalement pour le HO, le O ou même le I et leurs dérivés métriques et étroits mais pourquoi pas aussi du N sous certaines réserves des volumes disponibles.

Pour memo cela fait plus de 5 ans que je travaille sur ces concepts enrichis à l'occasion de mes lectures sur ce site et du monde Arduino pour le modélisme ferroviaire.
Je suis donc très heureux de vous en présenter la matérialité tant hardware que software. (schémas, PCB, BOM , code,...)

La rencontre du code de Geoff BUNZA, et la découverte de la bibliothèque DCC NMRA, les quelques conseils avisés de plusieurs d'entres vous dont Christian, Thierry et Dominique, que je tiens spécialement à remercier m'ont alors fait passer à une phase de réalisation qui m'a conduit dès TRAINMANIA 2017 à présenter sur le stand Locoduino mes premières réalisations de barrettes d éclairage à décodeur intégré (à l'époque munies d'un ATMEGA328P comme l'Arduino Uno) pour voiture CORAIL (ROCO). Denis et Dominique avaient entre autre alors reçu une barrette à assembler pour se familiariser avec les composants CMS de grande dimension alors utilisés sur ces réalisations.

Ce projet a continué de progresser jusqu'à ce que je le décline ensuite pour d'autres utilisations en 2018-2019...

La crise COVID de 2020 m'a permis de franchir un cap durant  le temps des confinements et de passer à l'utilisation d'outils de conception ( et non plus de dessin seul) tels EAGLE et KIKAD que je ne maitrisais alors pas.
Je vous recommande les très belles vidéos didactiques d'Eric PERRONNIN ou CYROB pour ne citer qu'eux.

Cette importante étape franchie via une meilleure maitrise des outillages m'a permis ensuite d'avancer plus avant dans des conceptions plus abouties.

La pénurie de semi conducteurs forçant au passage certains des choix techniques et des évolutions de concepts. (approche modulaire)
Le travail fourni est important car il a fallu développer, chercher, trouver, essayer, modifier, enrichir de nombreuses parties du Hardware…CPU, Powerpack, convertisseurs DC-DC... et tout autant sur le soft!


Ce travail mérite d être partagé et diffusé car il constitue une base qui peut aussi être enrichie des apports de chacun.

A vrai dire il me manque principalement la partie "soft" à un niveau supérieur au mien d'où l'intérêt de ce forum pour présenter et en enrichir mutuellement les connaissances et les réalisations mises au service du plus grand nombre.

Toutefois nul le sait de quoi l'avenir sera fait prochainement.

Dans mon prochain message, je vous présenterai les approches techniques, les besoins logiciels et matériels utiles et j'illustrerai mes propos en vous partageant mes fichiers et mon travail.

Bien à vous
Laurent


« Modifié: mai 06, 2022, 10:59:09 am par laurentr »

laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
les pré requis nécessaires:

Soft et Hard

Pour pouvoir être efficace dans le suivi de cette rubrique je vais à présent dresser la liste des éléments nécessaires.

Votre PC et  de quoi lire des fichiers PDF.
Pour la partie PCB vous disposerez des fichiers GERBER établis sous KIKAD.
Coté soft un passage sur le plugin PLATFORMIO de VS CODE comme IDE en lieu et place de l'IDE ARDUINO habituel sera de mise. Les librairies usuelles y seront ajoutées.
Une alternative peut être MICROCHIP STUDIO ( ex ATMEL STUDIO) mais dont l'usage est plus complexe.
Pour la programmation du hardware un petit investissement sera nécessaire via un boitier ATMEL-ICE.(env 160€) D'autres alternatives restent possibles. Il vous appartiendrait alors de les expérimenter.

Coté hardware l'ARDUINO NANO EVERY ( à base d ATMEGA4809) sera un candidat aux tests que vous désirerez réaliser. Notez que les Curiosity nano  à base ATMEGA4808-4809 ou AVR64DA ou DB peuvent convenir également. Comptez environ 20€ pièce pour ces modules.

Fabrication: PCB et Assemblage
Pour les PCB incontestablement les chinois sont plus que compétitifs/qualitatifs et malgré le contexte exiqtant vous pourrez être honoré de vos commandes actuellement sous un dizaine de jours
Citons les plus connus:
JLBPCB
PCBWAY
NEXTPCB
...

Assemblage:
Ce point est encore à traiter mais pourquoi pas INODESIGN à CROIX ou sont traités les PCB d ULTIMATE MODELS?!

D autres pistes seront à poursuivre… vous aurez peut être des suggestions à formuler?



« Modifié: mai 06, 2022, 11:00:22 am par laurentr »

laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
partie 1: les composantes du montages

nous allons ci dessous exposer les groupes fonctionnels du montage global.
1er groupe fonctionnel: DCC-DC-ACK-SIGN
Le premier groupe repose sur la combinaison de fonction suivante: passer de signal DCC vers un courant continu VIN via pont de diode.
A cette première fonction nous ajoutons la possibilité de sortir un signal DCC vers le CPU. (MOSFET et ou pont diviseur, ou optocoupleur par exemple)
Nous complétons ce premier groupe par le juxtaposition des éléments requis du ACK nécessaire à la lecture et la programmation des CV de votre décodeur. Pour memo celui-ci doit générer une hausse de la charge de 60mA sur une durée d'au moins 6ms. Ce que traitera le CPU et commandera l'électronique associée par exemple un MOSFET couplé a une résistance de 200r

2eme groupe fonctionnel: La régulation de tension VIN to DC
Il s'agit ici de convertir le tension d'entrée du montage VIN en une tension plus basse par exemple 5V
Une régulation de type DC-DC BUCK sera privilégiée pour éviter la production de chaleur. Un rendement proche de 85% peu être attendu Un simple régulateur LDO serait vite très (TROP) chaud, idem par la régulation diode zener et transistor ballaste sauf a pouvoir dissiper efficacement les watts ce qui dans les petites échelles est vite compromis.
Notez que la fréquence de ce convertisseur influe directement sur la taille des composants périphériques.
Plus la fréquence est élevée disons par exemple 1,2Mhz et plus les composant pourront être de faible dimensions. Inversement, des fréquences plus basses imposeront des composants plus généreux en taille. les fréquences de sortie influent peu à notre niveau bien que le bruit électronique généré puisse être source de légères perturbations.
Il nous faut alors trouver les compromis taille/volume/prix et disponibilité optimums.


3eme groupe fonctionnel: DC to SC et SC vers DC
la charge et la conversion de tension en entrée pour charger un super condensateur et produire ensuite la tension de sortie attendue du montage.
Un super condensateur à le même look qu'un simple condensateur mais il est plus à considérer comme une micro batterie en terme de stockage d'énergie dans un rapport d'au moins aller disons 1 à 1000. Bien sure cela a un cout mais c est aussi l'assurance de na pas avoir de clignotement indésirable, de reboot du CPU et pallier tous les défauts de captation d'énergie via le contact rail/roue.
Bien optimisé le montage peut tenir la charge de consommation plus de 10 secondes. C'est plus que suffisant!
Le principe est donc d accumuler de l'énergie au sein d une unité de stockage de grande capacité à faible tension et du plus faible encombrement possible puis de convertir cette énergie stockée en une tension d'usage plus élevée ( disons 5V). Plus communément on désigne cela sous l'appellation "POWERPACK".
Plusieurs solutions sont possibles car les tensions de ces super condensateurs ne dépassent pas unitairement plus de 3V (plage de 2.4V à 3V). On peut éventuellement en chainer  plusieurs 2 par exemple et simplifier l'approche. Néanmoins le "must" repose sur l'utilisation d'un convertisseur de type DC-DC BOOST pour passer des 2Vxx vers les 5V. Le rendement est optimal mais pas de 100%. disons 80% d efficacité au niveau BOOST et cela toujours sans échauffement.
Pour des questions d'encombrement optimisé on confira cette tache à des composants dédiés.

4eme groupe fonctionnel: le MCU
Coeur du système ou plutôt véritable cerveau de commande via traitement des signaux reçus plusieurs choix restent possibles selon le volume disponible et le nombre de sorties à piloter ou les bus à adresser.
Cette partie comporte les plots de programmation et de mise à jour du code contenu dans le MCU.

5eme et dernier groupe: la platine support
Celle ci reçoit les modules précédemment exposés et héberge dans une forme adaptée à chaque famille de matériel ferroviaire à équiper les leds judicieusement positionnées et les différents connecteurs ou plot de connexion vers la voie ou les feux rouges de fin de convoi, un dételeur de type KROIS, ou même d éventuels servo-moteurs…

Nous illustrerons ces éléments très rapidement.

Bien à vous
Laurent


laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Poursuivons l'illustration des éléments exposés ci dessus via des vues sur les schématiques correspondantes.

Ci jointe une vue sur:

le CPU/MCU et ses mappings
les mappings des leds pour la famille des voitures UIC toute marque confondue, tous diagrammes couverts (hors véhicules spéciaux) A9 et ex A9, A7D, A4B5, A4c4B5c5, D5D, B9c9, B10
le module DCC DC ACK SIGN global
le module DCC DC ACK SIGN en détail de ce qui le compose.

Je publierai tous les fichiers correspondant le moment venu une fois votre intérêt confirmé à la poursuite de ce passionnant sujet...

Poursuivons...

Bien à vous Laurent.

laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Poursuivons donc.

Ici la vue du routage du module DCC DC ACK SIGN sur lequel figure les dimensions globales

On peut toujours compacter davantage... mais on perd en facilite d'assemblage et le recours machine devient alors obligatoire.

Quelques remarque d ordre général au passage.
On remarque ici que la largeur du module est mise à 12mm.
Cette dimension offre plusieurs avantages
C'est une mesure métrique simple à contrôler.
Cette largeur peut être commune aux différents modules et seul leur longueur évolue alors selon la place nécessaire aux placements des composants ou des pads de préhension des machines.

L espacement interpad ainsi que leur dimensionnement est la aussi en mesure métrique et suffisamment adapté pour une intervention manuelle si nécessaire.

en revanche chercher une miniaturisation proche des 8mm de large parait vraiment trop ambitieux et condamne une installation via cette approche modulaire sur des engins aux échelles les plus petites et ou les volumes sont les plus contraints.

On retrouve une approche similaire sur le module CPU qui est le composant le plus "massif" à positionner

Poursuivons...

Ltr

laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Marquons une petite pause de la partie hardware pour aller sur la partie software.

Le programmateur et son interface d'utilisation.

Comme indique précédemment je vous recommande l'acquisition d'un programmateur ATMEL ICE.
Véritable couteau suisse des programmateurs il vous aidera dans vos travaux.

Que faire ensuite avec?

Personnellement je ne "pisse pas les lignes de code" comme d'autres respirent. Aussi mon approche se veut avant tout pragmatique. Nul doute que de plus sachant ne manqueront pas d amender mes propos pour vous rendre plus abordable encore certaines subtilités qui m'échappent encore...

Souvenez vous, pour initialiser un microprocesseur il peut y avoir quelques éléments de configuration à actualiser dans sa mémoire afin que celui ci connaissent des paramètres de contexte.

Sur l'ATEMGA328 vous avez déjà entendu parler outre du BOOTLOADER des fusibles ou e-fuses.

Ce sont ces derniers qui vont indiquer par exemple les attribution du rôle de certaines PIN, de la fréquence de fonctionnement, de la tension minimale avant arrêt, ...

Pour l ATMEGA328P on peut par exemple utiliser le logiciel AVRDUDESS qui est une IHM ( interface homme machine donc un interface en mode fenêtre) entre le composant à paramétrer ou programmer et le PC via un programmateur.
On est la dans une situation plus confortable qu'en pure ligne de commande.

Toutefois aussi au point que puisse être cet outils tous les modèles de MCU/CPU n'y figurent pas ou ne sont pas pris en charge notamment les nouvelles séries de processeur des séries 0, 1 et 2 de ATMEL MICROCHIP ( la marque de nos CPU 8bits type ARDUINO)

Aussi une autre approche était elle rendue nécessaire en restant simple d'utilisation pour les plus novices et moins expérimentés et naturellement la plus gratuite possible.

Par la force de choses j'ai retenu une approche via MICROCHIP STUDIO ( ex ATMEL STUDIO).

Plus précisément via cet outil l'utilisation du menu TOOLS.
PROGRAMMING DEVICE donne accès au menu qui permettent de lire, écrire, vérifier et charger tant les e-fuse que vos firmwares à destination de vos CPU/MCU.
C'est aussi un moyen de contrôler voir extraire dans certaines conditions ce qui est présent.

Selon votre processeur les interfaces de programmation sont différentes (brochages différents) mais via un adaptateur vous pourrez relier votre processeur à ce programmateur.
Sur l ARDUINO UNO on passe par une interface a 6 broches de type ICSP.
Sur les processeurs plus récents comme celui de l'Arduino Nano Every équipe d un ATMEGA4809 de la série AVR 0 l'interface se fait via un connectique UDPI à 3 broches.

Remarque importante:
Notez que l ATMEL ICE ne fournit pas la tension d alimentation de votre CPU aussi il conviendra d'alimenter celui ci pour le lire ou le programmer.
La LED verte du programmateur indiquera la présence de la tension.

Ci dessous les captures vous permettant de naviguer dans les menus adaptés.

Comme vous le constatez tout est très bien indiqué, une aide contextuelle via un petit ? peut vous aider.
Il convient toutefois de se reporter à la documentation de vos processeur pour savoir sur quel paramètre agir et pour quelles conséquences.
Soyez donc vigilant, prudent et avisé lors de vos actions.

Il vous est possible en une opération de configurer vos e-fuse, charger un firmware et contrôler que ces opérations se sont correctement déroulées en cochant dans la vue programmation les cases correspondante avant de cliquer sur PROGRAMM ou VERIFY

Il vous est aussi possible de traiter séparément ces opérations.

La suite arrive :)

Je vous sens déjà impatients!! Merci de votre soutient et de vos nombreux encouragements!

Laurent

PS Si une fumée vient à se dégager, c'est que vous avez très problèmes louper quelques chose... :)




laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Pour illustrer, ci dessous un PCB de véhicule qui reçoit les modules évoqués plus haut.

« Modifié: mai 05, 2022, 11:23:49 pm par laurentr »

laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Pour être totalement libre de pouvoir vous partager dans des conditions optimales mon travail un autre support vous sera prochainement indiqué.
Le contenu de ce sujet a donc été repris et édulcoré.

Ceux qui désireront en savoir plus auront toujours la liberté de me contacter directement.

Pour l'heure les indications données plus haut restent parfaitement valables (outils, soft, ...) et vous seront utiles pour mener vos premières expériences étendues au delà de l'ARDUINO UNO et de l IDE ARDUINO.

Le cap peut paraitre dure à franchir dans un premier temps mais il permet de passer ensuite à des réalisations plus complexes et mieux maitrisables/maitrisées.

Idéalement je m exerce toujours avec BLINK. C est un basique mais une fois que l'ont a compris comment porter d un monde vers l'autre alors le reste suit assez naturellement.

Nous en reparlerons très prochainement pour vos donner les clés du savoir qui est la démarche même de ce site.

Bien à vous
Laurent
« Modifié: mai 06, 2022, 11:05:09 am par laurentr »

Souris verte

  • Newbie
  • *
  • Messages: 40
  • HO, DCC, Arduino...
    • Voir le profil
Bonjour et bravo pour ce travail remarquable.
Il ne faut pas négliger sa famille… c’est dans ces moments que leur soutien est le plus important.
Bon courage pour la suite de la mésaventure
Yannick

laurentr

  • Hero Member
  • *****
  • Messages: 648
    • Voir le profil
Bonjour

Apres une période ou je n'ai pas pu avancer comme je le désirais sur mes différents sujets, je profite de 2023 pour reprendre mes travaux .. et avancer "bon train".

Vive 2023 donc :)

Je suis encore en "délicatesse" avec certaines partie de code mais de TRES nets progrès ont été réalisés et plusieurs étapes majeures franchies.

La portabilité entre différents CPU = OK (bien engagée)
La modularité OK (bien engagée elle aussi tant hard que soft!)

Mais j'ai encore pas mal de travail pour finaliser le tout! Néanmoins ce la progresse. sur la bonne voie.

Laurent