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 - Thierry

Pages: 1 ... 19 20 [21] 22 23 ... 45
301
Bibliothèques / Re : Bibliothèque Accessories
« le: novembre 26, 2018, 08:24:02 pm »
Les mouvements ne sont pas bloquants dans Accessories, la réception de messages dans Commanders non plus. Les ordres Dcc ne devraient pas être perdus, mais on est pas à l'abri d'une erreur...
Il n'y a pas d'info sur la fin de mouvement... C'est une idée d'amélio pour le futur...
Dans ton cas, peut être qu'une tempo serait suffisante en attendant : inverser le courant juste une seconde après le démarrage du mouvement... Pas avec du 'delay()' hein, sinon tout est bloqué et le mouvement ne se fera pas :) !

302
Bibliothèques / Re : Bibliothèque Accessories
« le: novembre 23, 2018, 10:13:49 am »
Si tu regardes l'exemple livré 'SimpleButtons'

void ReceiveEvent(unsigned long inId, COMMANDERS_EVENT_TYPE inEvent, int inData)
{
COMMANDERS_PRINT_EVENT(inId, inEvent, inData);
}

void setup()
{
Commanders::begin(ReceiveEvent, LED_BUILTIN);

Left.begin(100, 4); // Arduino pin 4, id 100
Dc.begin(101, 6);
Right.begin(102, 8);
pushEPS.begin(103, 10);
pushTJD.begin(104, 11);
}

void loop()
{
Commanders::loop();
}

La fonction ReceiveEvent reçoit tous les événements, tu peux y tester qu'un mouvement mini ou maxi a été demandé. Tu auras à la fois le début du mouvement, et sa nature.

303
Bibliothèques / Re : Bibliothèque Accessories
« le: novembre 20, 2018, 09:09:07 am »
Super. Heureux que ça fonctionne. Pour l'eexmple, tu pourrais poster ici la version corrigée de ton sketch ?

304
Bibliothèques / Re : Bibliothèque Accessories
« le: novembre 19, 2018, 08:21:43 pm »
Oups, tu as raison. J'ai fait ça en temps masqué au bureau, je n'ai pas pu compiler avec l'IDE. J'ai juste compilé avec mon simulateur, mais je ne me suis pas rappelé que lui ne disposait pas du Dcc... Voici les fichiers corrigés.

305
Bibliothèques / Re : Bibliothèque Accessories
« le: novembre 19, 2018, 05:41:30 pm »
Voilà des modifications pour gérer ton cas particulier, même si on va certainement le retrouver chez d'autres utilisateurs de l'Ecos... Copie les deux fichiers joints dans le répertoire Commanders/src . Pense à copier src AVANT pour pouvoir remettre en état après les tests. Si ça marche, je pousserai une nouvelle version de Commanders assez vite.

J'ai ajouté une petite fonction de réglage à appeler après le begin de DccCommander : RaiseEventWhen() avec deux arguments. Le premier fixe le type de paquet Dcc qui déclenche l'événement, activation ou non (par défaut), le second fixe le délai d'inactivité forcé de DccCommander sur cet accessoire précis une fois l'événement envoyé. Ce délai est fixé par défaut à 200ms.
Donc tu devras ajouter

   DccCommander.RaiseEventWhen(true);

ou

   DccCommander.RaiseEventWhen(true, 200);

Le seul problème potentiel que je vois est la collision de plusieurs paquets d'accessoires différents au même moment, ce qui pourrait arriver avec des commandes envoyées très rapidement par logiciel. Pour éviter ça, il faut réduire au maximum le délai. Par exemple le descendre à 100 et voir s'il l'on ne répète pas le même ordre plusieurs fois.

306
Le logiciel DCC++ / Re : DCC++ et Märklin
« le: novembre 19, 2018, 09:34:54 am »
Tout dépend du décodeur présent dans la loco. S'il est compatible DCC, seul protocole piloté par DCC++ ou DCCpp, il peut fonctionner.
Mais Märklin promeut le MFX, sa variante propriétaire du DCC... Et les locos Märklin achetées digitalisées par le constructeur sont très certainement équipées de décodeur exclusivement MFX. Enfin c'est ce que je ferai à leur place...

Après vérifications, il semble que les décodeurs installés d'origine soient bien compatibles DCC, donc c'est possible que ça marche ! Peut être un paramétrage du décodeur à faire pour changer le protocole ?

307
Bibliothèques / Re : Bibliothèque Accessories
« le: novembre 19, 2018, 09:28:24 am »
Après vérification de la norme :

Citer
Basic Accessory Decoder Packet Format

     The format for packets intended for Accessory Digital Decoders is:
            {preamble} 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1

Accessory Digital Decoders can be designed to control momentary or constant-on devices, the duration of time each output is active being controlled by configuration variables CVs #515 through 518. Bit 3 of the second byte "C" is used to activate or deactivate the addressed device. (Note if the duration the device is intended to be on is less than or equal the set duration, no deactivation is necessary.) Since most devices are paired, the convention is that bit "0" of the second byte is used to distinguish between which of a pair of outputs the accessory decoder is activating or deactivating. Bits 1 and 2 of byte two are used to indicate which of 4 pairs of outputs the packet is controlling. The most significant bits of the 9-bit address are bits 4-6 of the second data byte. By convention these bits (bits 4-6 of the second data byte) are in ones complement.

(source https://www.nmra.org/sites/default/files/s-9.2.1_2012_07.pdf)

Il est bien dit que deux paquets doivent être envoyés, l'un en activation et l'autre en désactivation, mais il est aussi précisé que lorsque la désactivation peut être évitée si le délai de fonctionnement de l'accessoire est inférieur au délai d'activation... On est probablement dans ce cas. Je vais voir ce soir si je peux modifier Commanders pour gérer ce cas précis.

308
Bibliothèques / Re : Bibliothèque Accessories
« le: novembre 18, 2018, 09:00:21 pm »
Je vais essayer de jeter un oeil plus attentif sur la norme demain pour voir s'il n'y aurait pas des exceptions à la règle du activé/désactivé...  Bonne soirée.

309
Bibliothèques / Re : Bibliothèque Accessories
« le: novembre 18, 2018, 08:25:31 pm »
J'ai l'impression que ce n'est pas un problème de durée, mais de désactivation non demandée. Il devrait y avoir au moins deux paquets Dcc, l'un en activation et l'autre en désactivation. Voir par exemple la video de Rudy au sujet de son sniffer (https://www.youtube.com/watch?time_continue=103&v=UC2eJa6SEmM, à partir de 1'43"). Dans son test, chaque appui sur sa centrale génère deux paquets différents. Il semble donc bien que le problème soit lié à un réglage de l'Ecos...

310
Bibliothèques / Re : Bibliothèque Accessories
« le: novembre 18, 2018, 07:00:04 pm »
Non, pas besoin de changer de centrale, c'est plutôt à Commanders de s'adapter... Il faudrait dans un premier temps confirmer la théorie qui dit qu'il n'y a jamais de code de désactivation. Ca peut se faire avec un sniffeur de trame Dcc. Il y en a un sur Locoduino quelque part... Si c'est le cas, il faut alors que je prévoie une option dans DccCommander pour gérer ce cas correctement...

311
Bibliothèques / Re : Bibliothèque Accessories
« le: novembre 18, 2018, 06:24:42 pm »
Le problème semble venir du dernier '1' du message 'DCC packet found'.
Tel que le défini la norme, lorsqu'un accessoire est activé, la centrale envoie trois messages avec le dernier flag, l'activation, à 1, puis un seul avec 0. C'est fait pour les aiguillages à solénoïde qui ne doivent pas rester activé trop longtemps. Du côté de Commanders, je ne réagis qu'au passage du 0, ça m'évite de traiter la moitié des messages. Et Accessories est censée gérer le temps d'allumage elle même, sans tenir compte de ce que dit le Dcc.
Dans tes trames, je ne vois pas de 0, j'ai aussi une MS2 de Trix, et je ne vois pas où serai réglée la durée de l'activation d'un accessoire...

312
Bibliothèques / Re : Bibliothèque Accessories
« le: novembre 18, 2018, 03:02:22 pm »
Après essai sur mon simulateur, je constate que dans ton code il y a deux fois la définition de SERVOMAX et SERVOMIN, c'est dangereux et devrait même se planter à la compilation... Une fois retiré ce doublon, ça marche pour moi. Comme je suis sur le simulateur et que je n'ai pas de liaison Dcc, j'ai implémenté le SerialCommander qui me permet de lancer des événements manuellement. Lorsque je met 125:0 ou 125:1 qui correspondent aux deux positions, j'ai bien des mouvements de mon servo virtuel... Voici ma version, qui permet de tester avec la console série :
#include <Commanders.h>
#include <Accessories.h>

SERIAL_COMMANDER(Serial);

// Le poussoir...
ButtonsCommanderPush boutonPoussoir;

// Le moteur
AccessoryServo AIGL;

// Les ports pour connecter le moteur...
PortServo portAIGL;

//#define SERVOMIN  201
//#define SERVOMAX  202

// code pour un accessoire à l'adresse DCC 125 piloté par un bouton On et un bouton Off (cas de ma MS2 Marklin...)
#define SERVOMIN  DCCINT(125,0)
#define SERVOMAX  DCCINT(125,1)

void setup()
{
Commanders::begin(LED_BUILTIN);
Serial.begin(115200);
SerialCommander.begin();

// Memoriser les positions des moteurs dans l'EEPROM.
Accessories::begin(0, 500);

// Récupérer le signal DCC sur la broche interruption 3...
//-DccCommander.begin(0x00, 0x00, digitalPinToInterrupt(3), true);

// Evènement du bouton 200 branché sur la borne 6...
boutonPoussoir.begin(200, 6);
boutonPoussoir.AddEvent(SERVOMIN, COMMANDERS_EVENT_MOVEPOSITIONID, 0); // Le dernier argument ne sert pas pour ce type d'evenement
boutonPoussoir.AddEvent(SERVOMAX, COMMANDERS_EVENT_MOVEPOSITIONID, 0);

// Les ports avec leurs broches en digital (pas PWM)
portAIGL.begin(12);

// Le servo : pas de durée de mouvement, un débattement entre 95 et 135 degres
// et deux positions stables annoncées avec des identifiants inutiles (mais obligatoires)
AIGL.begin(&portAIGL, 50, 95, 135, 1);
// Les deux positions sont au mini et au maxi :
AIGL.AddMinMaxMovingPositions(SERVOMIN, SERVOMAX);
}

void loop()
{
unsigned long id = Commanders::loop();

if (id != UNDEFINED_ID)
{
// Renvoie l'événement reçu de Commanders, vers les accessoires...
Accessories::RaiseEvent(id, (ACCESSORIES_EVENT_TYPE)Commanders::GetLastEventType(), Commanders::GetLastEventData());
}

Accessories::loop();
}

313
Présentez vous ! / Re : Présentation d'un nouveau passionné
« le: novembre 18, 2018, 11:24:27 am »
Bonjour,

Bienvenue dans notre communauté de passionnés, qui ont tous comme toi trouvé l'intérêt de cumuler deux passions. Nous sommes complémentaires ici, nous n'avons pas tous les mêmes compétences, besoins ou envies. Mais c'est vrai que nous parlons beaucoup technique, beaucoup moins décor, hormis pour des animations ponctuelles.
Si dans le petit groupe à la tête du site, nous pratiquons tous le deux rails et principalement le N, il n'y a évidemment aucun problème à faire avancer le schmilblick sur un projet 3 rails en HO, c'est juste que comme c'est un système propriétaire et exclusif Marklin, les informations sont peu nombreuses... Par exemple le système MFX, concurrent du DCC chez eux n'est pas Open Source, donc pas documenté. Par contre, nous serions heureux d’accueillir sur le forum ou via des articles des réalisations sur MFX ou le système trois rails, encore très répandu...

314
Bibliothèques / Re : Bibliothèque Accessories
« le: novembre 18, 2018, 10:51:21 am »
Bonjour. Pour continuer de tester, il faudrait aussi mettre le mode debug sur accessories, voir quels événements lui arrivent.

315
Discussions ouvertes / Re : Locoduino à Orleans
« le: novembre 12, 2018, 09:46:40 am »
Oui, une journée et demi pour moi, avec une pleine brassée de motivation, d'encouragements, de remerciements aussi. Ce genre d'événements, qui plus est partagé avec des amis, reboost pour repartir 'au boulot' plein d'entrain et de bonne volonté !
C'était effectivement un plaisir de pouvoir enfin mettre un visage devant un pseudo ou un prénom, et de pouvoir échanger de vive voix avec vous.  Enfin passer tout un week end ou presque à tenter de partager notre passion commune, c'est un gros kif comme disent les jeunes. :)

Les démonstrations prenaient toujours le même chemin:

- Émerveillement : l'explication de ce que sont capables de faire nos montages... ;D
- Surprise: On ne vend rien chez Locoduino ! :o
- Abattement: Il faut tout faire vous même. ::)
- Joie mesurée: On est tous là pour vous aider :)
- Franche joie: et tout ça ne coûte qu'une fraction du matériel du commerce équivalent !   :D :D

Au delà de l'événement en lui-même, il va être temps pour nous de tirer les enseignements de ce salon, pour la publication de nouveaux articles, pour les solutions à mettre en place pour faciliter l'accès a nos montages, pour l'avenir du site et surtout pour nous améliorer encore et toujours.

Donc restez à l'écoute sur le forum, et guettez les nouveaux articles qui vont reprendre un rythme de publication plus important après la pause d'Orléans. Et h'hésitez pas à porter la bonne parole comme nous avons tenté de le faire pendant deux jours.

 

Pages: 1 ... 19 20 [21] 22 23 ... 45