Auteur Sujet: Projet box stand-alone DCC / CAN / Satellites & co...  (Lu 32410 fois)

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3046
  • 100% Arduino et N
    • Voir le profil
Re : Projet box stand-alone DCC / CAN / Satellites & co...
« Réponse #15 le: mars 09, 2021, 09:27:40 am »
Toutes mes condoléances pour ton décodeur. Je vois que Murphy n’est jamais loin quand on fait un truc important.
J’ai cramé une loco en testant un proto de centrale DCC+PWM, c’est rageant.

Bon courage pour rebondir (on dit qu’après un crash en aeromodelisme il faut réparer immédiatement et là c’est pareil).

Amicalement
Dominique
Cordialement,
Dominique

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Projet box stand-alone DCC / CAN / Satellites & co...
« Réponse #16 le: mars 09, 2021, 10:05:28 am »
Ce n'est pas une consolation mais une invitation à recommencer ...
Cordialement

AmadeusHF

  • Full Member
  • ***
  • Messages: 205
    • Voir le profil
Re : Projet box stand-alone DCC / CAN / Satellites & co...
« Réponse #17 le: mars 09, 2021, 12:15:24 pm »
Y avait longtemps que j'avais pas vu une devise shadok ! ;)

Ce qui me fait le plus rager c'est la perte du CE décodeur. Un décodeur en soit on peut le changer, meme si le prix n'est pas rien...mais celui-là était programmé avec la banque de sons qu'il me fallait...et pas facile à trouver l'équivalent.

Mais bon...j'en ai commandé 2 sur ebay à 15 balles pour faire mes tests....au moins ceux-là j'aurais pas la haine si je les grille. Et puis y a pas de son donc j'aurais pas l'envie de les bouger comme j'ai fait. Et quand j'aurais un peu de cash je me débrouillerait pour me racheter un loksound et y charger une quand son "approchant". Pour de l'électrique c'est pas vraiment un souci de trouver un modèle qui sonne proche...
Sébastien.
La perfection est un chemin, non un but...

AmadeusHF

  • Full Member
  • ***
  • Messages: 205
    • Voir le profil
Re : Projet box stand-alone DCC / CAN / Satellites & co...
« Réponse #18 le: mars 13, 2021, 08:43:50 pm »
Ca progresse bien niveau codage !

Petit apperçu du résultat d'une console avec mon code lancé sur un décodeur à 15 balle (LaisDCC) :

Une seule erreur de lecture sur toute la séquence, c'est le mieux que j'ai obtenu.
Ce code tourne avec un ACS712 placé en mesure sur la ligne d'alimentation de la voie de programmation pour la mesure du courant.

CV 1 = 3
CV 2 = 0
CV 3 = 1
CV 4 = 1
CV 5 = 0
CV 6 = 0
CV 7 = 4
CV 8 = 134
CV 9 = 0
CV 10 = 88
CV 11 = 0
CV 12 = 0
CV 13 = 255
CV 14 = 255
CV 15 = 0
CV 16 = 1
CV 17 = 0
CV 18 = 0
CV 19 = 0
CV 20 = 0
CV 21 = 0
CV 22 = 0
CV 23 = 0
CV 24 = 0
CV 25 = 0
CV 26 = 0
CV 27 = 0
CV 28 = 0
CV 29 = 6
CV 30 = 0
CV 31 = 0
CV 32 = 0
CV 33 = 1
CV 34 = 2
CV 35 = 4
CV 36 = 8
CV 37 = 0
CV 38 = 0
CV 39 = 16
CV 40 = 32
CV 41 = 0
CV 42 = 0
CV 43 = 0
CV 44 = 0
CV 45 = 0
CV 46 = 0
CV 47 = 0
CV 48 = 0
CV 49 = 0
CV 50 = 16
CV 51 = 32
CV 52 = 32
CV 53 = 32
CV 54 = 32
CV 55 = 0
CV 56 = 3
CV 57 = 10
CV 58 = 0
CV 59 = 0
CV 60 = 1
CV 61 = 1
CV 62 = 0
CV 63 = 63
CV 64 = 6
CV 65 = 0
CV 66 = 0
CV 67 = 8
CV 68 = 16
CV 69 = 24
CV 70 = 160 : Failed to read !
CV 71 = 40
CV 72 = 48
CV 73 = 56
CV 74 = 64
CV 75 = 72
CV 76 = 80
CV 77 = 88
CV 78 = 96
CV 79 = 104
CV 80 = 114
CV 81 = 124
CV 82 = 134
CV 83 = 144
CV 84 = 154
CV 85 = 164
CV 86 = 174
CV 87 = 184
CV 88 = 194
CV 89 = 204
CV 90 = 214
CV 91 = 224
CV 92 = 234
CV 93 = 244
CV 94 = 255
CV 95 = 0
CV 96 = 0
CV 97 = 0
CV 98 = 0
CV 99 = 0
CV 100 = 0
CV 101 = 0
CV 102 = 0
CV 103 = 0
CV 104 = 0
CV 105 = 0
CV 106 = 0
CV 107 = 0
CV 108 = 0
CV 109 = 0
CV 110 = 0
CV 111 = 0
CV 112 = 1
CV 113 = 9
CV 114 = 1
CV 115 = 6
CV 116 = 22
CV 117 = 3
CV 118 = 1
CV 119 = 5
CV 120 = 1
CV 121 = 15
CV 122 = 25
CV 123 = 32
CV 124 = 8
CV 125 = 0
CV 126 = 0
CV 127 = 0
CV 128 = 0
CV 129 = 0
CV 130 = 0
CV 131 = 0
CV 132 = 0
CV 133 = 0
CV 134 = 2
CV 135 = 16
CV 136 = 2
CV 137 = 20
CV 138 = 17
CV 139 = 2
CV 140 = 15
Sébastien.
La perfection est un chemin, non un but...

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3046
  • 100% Arduino et N
    • Voir le profil
Re : Projet box stand-alone DCC / CAN / Satellites & co...
« Réponse #19 le: mars 14, 2021, 09:01:28 am »
Stp Sébastien,

Avec quel montage et quel code tu as pu obtenir ce résultat ?
C’est pour le partage !
Cordialement,
Dominique

AmadeusHF

  • Full Member
  • ***
  • Messages: 205
    • Voir le profil
Re : Projet box stand-alone DCC / CAN / Satellites & co...
« Réponse #20 le: mars 14, 2021, 09:50:56 am »
Bien entendu ça va etre partagé Dominique, je veux d'abord finaliser / packager un poil le truc.

Le montage est le suivant (désolé, pas de schéma, mais c'est tout ce qu'il y a de plus classique) :
  • Arduino MEGA tout ce qu'il y a de plus habituel
  • Carte moteur L 9110
  • Alimentation 12v de labo
  • Convertisseur réglable DC/DC pour descendre le 12v à  5v pour alimenter l'arduino
  • Circuit ACS712 monté en coupure sur l'une des deux lignes allant à la voie

Rien de bien spécial donc.

Le branchement : j'utilise bien entendu un PWM de l'Arduino pour piloter le signal, peu importe lequel : 1, 3, 4 ou 5 sur le méga, pourvu que ce soit un 16 bits. Pas essayé avec un 8 bits mais le code est prévu pour (ça viendra).

Comme pour toutes les centrales DCC : sortie OUTPUT COMPARE B du timer reliée à la broche DIRECTION du shield moteur. Broche PWM du shield moteur reliée à VCC ou pilotée par une broche DIGITAL OUTPUT de l'arduino pour faire le ON/OFF de la voie de programmation.

La broche OUTPUT de l'ACS712 reliée sur A0.

Donc encore une fois, très classique.

Le code est constitué d'une ré-écriture intégrale de DCC++ inspirée à la  fois de l'original, des travaux de Thierry, mais aussi repris de zéro à partir de la version actuelle de la norme du NMRA.

Voici ce que donne le sketch principal de test : il s'agit de lire en boucle les CV du décodeur (test d'endurance).
Le truc à tourné toute la nuit sans broncher avec une de mes locos équipée d'un décodeur LaisDCC de base.

#include "DuinoBaseStation.h"

#include "SystemToolkit/SystemToolkit.h"
#include "DccToolkit/DccToolkit.h"

// Create a current sensor reading on A0 with VCC = 5.0 volts
ACS712CurrentSensor currentSensor(A0, 5000);

// Create a signal generator using timer 1, allowed to issue service mode commands
SignalGenerator generator(1, true);

// Create a track driver using previous generator & current sensor
TrackDriver driver(&generator, &currentSensor);

void readCV(byte cv)
{
Serial.print("CV ");
Serial.print(cv);
Serial.print(" = ");

byte value;
if (driver.readCV(cv, &value))
{
Serial.println(value);
}
else
{
Serial.print(value);
Serial.println(" : Failed to read !");
}
}

void setup()
{
Serial.begin(115200);
Serial.println("Initializing !");

pinMode(11, OUTPUT); // PWM compare A output enabled : Connect to PWM on motor
pinMode(12, OUTPUT); // PWM compare B output enabled  : Connect to DIR on motor

digitalWrite(11, HIGH); // Turn on power

driver.start();

Serial.println("Initialization done !");
}

int x = 1;
bool up = true;
void loop()
{
delay(2000);

        if (up)
readCV(x++);
else
readCV(x--);

if (x <= 1)
up = true;
if (x >= 140)
up = false;
}

Les deux libs SystemToolkit et DccToolkit seront bientot mises en ligne librement sous forme de package compatible avec l'IDE arduino. Bien entendu libres d'usage pour ceux qui le voudront et sous licence GPL 2 ou 3.

Je précise que la lib DccToolkit mentionne en Acknowledgement à la fois Gregg E Berman et Thierry et comporte les liens vers les projets respectifs DCC++ et lib DCCpp, sur Locoduino.

S'il y en a qui ont la possibilité (et surtout l'envie !) de participer à la mise au point en réalisant des campagnes de test sur d'autres décodeurs (donc qui ont la possibilité de réaliser sans aide le montage indiqué et si besoin de chercher un peu pour ajuster....), ils sont les bienvenus.

Quant à savoir pourquoi j'ai choisi de repartir d'une feuille blanche, je vous en parlerais quand je mettrais la lib en ligne, ce qui ne saurait tarder...

@Dominique : je pense qu'il est temps d'ouvrir un sujet dédié dans la bonne section pour la suite...je vais m'en occuper en fin de journée ce dimanche.

;)

Seb
Sébastien.
La perfection est un chemin, non un but...

AmadeusHF

  • Full Member
  • ***
  • Messages: 205
    • Voir le profil
Re : Projet box stand-alone DCC / CAN / Satellites & co...
« Réponse #21 le: mars 14, 2021, 09:54:09 am »
Ah oui : le décodeur de test que j'ai liste 140 CV dans sa doc, d'ou le IF en fin de code qui inverse la séquence...à adapter sur d'autres décodeurs
Sébastien.
La perfection est un chemin, non un but...

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Re : Projet box stand-alone DCC / CAN / Satellites & co...
« Réponse #22 le: mars 14, 2021, 10:55:16 am »
test sur d'autres décodeurs ...

Dans le tiroir ou dans les locos : LaisDCC, LENZ, ZIMO, ESU, donc prêt à tester !
Cordialement

AmadeusHF

  • Full Member
  • ***
  • Messages: 205
    • Voir le profil
Re : Projet box stand-alone DCC / CAN / Satellites & co...
« Réponse #23 le: mars 14, 2021, 11:08:06 am »
Je vous prépare un pack sources / une enfilade dans la section "librairies" pour avancer sur le sujet les amis !
Sébastien.
La perfection est un chemin, non un but...

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Projet box stand-al
« Réponse #24 le: mars 15, 2021, 01:16:43 pm »
Bon, pas grand succès dans mes tests
photo : Mega + LMD18200 sur main + MAX471 (testé) (impulsions vues sur A0)
Les locos frémissent mais ...

⸮⸮⸮⸮Initializing !
Initialization done !
CV 1 = 0 : Failed to read ! [b]A vide[/b]
CV 2 = 0 : Failed to read !
CV 3 = 0 : Failed to read !
CV 4 = 0 : Failed to read !
CV 5 = 0 : Failed to read !
CV 6 = 0 : Failed to read !
Initializing !
Initialization done !
CV 1 = 1 : Failed to read !
CV 2 = 0 : Failed to read !
CV 3 = 0 : Failed to read !
CV 4 = 0 : Failed to read !
CV 5 = 0 : Failed to read !
CV 6 = 0 : Failed to read !
CV 7 = 0 : Failed to read !
CV 8 = 0 : Failed to read !
CV 9 = 0 : Failed to read !
CV 10 = 0 : Failed to read !
CV 11 = 0 : Failed to read !
CV 12 = 255
CV 13 = 255 : Failed to read ![b] Lenz (zimo)[/b]
CV 14 = 4 : Failed to read !
CV 15 = 0 : Failed to read !
CV 16 = 128 : Failed to read !
CV 17 = 203
CV 18 = 112 : Failed to read !
CV 19 = 0 : Failed to read !
CV 20 = 0 : Failed to read !
CV 21 = 8 : Failed to read !
CV 22 = Initializing !
Initialization done !
CV 1 = 169  [b]LaisDCC mais ce n'est pas ça[/b]
CV 2 = 255
CV 3 = 63
CV 4 = 23
CV 5 = 48
CV 6 = 189
CV 7 = 221
CV 8 = 255
CV 9 = 0 : Failed to read ! [b]à vide[/b]
CV 10 = 255
CV 11 = 72 : Failed to read !
CV 12 = 126
CV 13 = 76 : Failed to read !
CV 14 = 0 : Failed to read !
CV 15 = 64 : Failed to read !
CV 16 = 93 : Failed to read !
CV 17 = 98
CV 18 = 21 : Failed to read !
CV 19 = 184
CV 20 = 32 : Failed to read !
CV 21 = 98
Cordialement

AmadeusHF

  • Full Member
  • ***
  • Messages: 205
    • Voir le profil
Re : Projet box stand-alone DCC / CAN / Satellites & co...
« Réponse #25 le: mars 15, 2021, 01:30:09 pm »
C'est déjà bien de m'avoir fait une série de tests, merci m'sieur !

Tu n'as pas de problème avec le 471 dans la ligne d'alimentation de la voie ? J'avais fait un essai et j'avais un truc bizarre avec le MEGA qui délirait....je vais refaire un test. J'allais te demander si tu avais bien mis PWM sur 1 puisque pas branché (sur ta photo) sur l'Arduino mais comme la led du LM est allumée je suppose que oui (et ça m'étonnerait que tu ais oublié un détail aussi évident....)
Sébastien.
La perfection est un chemin, non un but...

AmadeusHF

  • Full Member
  • ***
  • Messages: 205
    • Voir le profil
Re : Projet box stand-alone DCC / CAN / Satellites & co...
« Réponse #26 le: mars 15, 2021, 02:02:33 pm »
Bon un truc qui me semble hyper important...

Sur mon montage, si je me contente d'alimenter l'arduino par le port USB j'ai très peu de résultats de lecture fiables.
En revanche, en alimentant l'Arduino par un convertisseur DC/DC réglé sur 5V alimenté par la meme source que la carte moteur, je passe à un taux de succès très élevé...
Sébastien.
La perfection est un chemin, non un but...

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Projet box stand-alone DCC / CAN / Satellites & co...
« Réponse #27 le: mars 15, 2021, 03:48:54 pm »
- PWM : sur 3 pour la main suivant schéma Locoduino (d’ailleurs le DCC est bien produit par le DIR)
- je vais alimenter le Mega par le 12 V du pont (même pas peur)
Cordialement

AmadeusHF

  • Full Member
  • ***
  • Messages: 205
    • Voir le profil
Re : Projet box stand-alone DCC / CAN / Satellites & co...
« Réponse #28 le: mars 15, 2021, 04:04:54 pm »
Sur le mega, la broche sortie 3 correspond à l'OUTPUT COMPARE C du timer 3.

Le code pilote systématiquement OUTPUT COMPARE B pour la génération du PWM (c'est le cas aussi pour dccpp).
Les IFDEF de DCCpp positionnent le timer 3 en service mais c'est la sortie 2 qui fournie OUTPUT COMPARE B du timer 3.

Si tu utilises mon code sans le changer, tu es sur le timer 1 (a peu pres équivalent au timer 3 à peu de choses pres sur un Mega) donc OUTPUT COMPARE B du timer 1 présente sur la sortie 12

Pin mapping MEGA
Sébastien.
La perfection est un chemin, non un but...

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Projet box stand-alone DCC / CAN / Satellites & co...
« Réponse #29 le: mars 15, 2021, 06:31:13 pm »
J'en suis (comme pour les BaseStation voie main) à PWM=3 et DIR=12 pour un Mega.
PWM ne fait qu'autoriser le DCC.
Cordialement