1/160 - Echelle N

Le Forum consacré à l'Echelle N
 
AccueilAccueil  PortailPortail  ÉvènementsÉvènements  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
N'hésitez pas à consulter le calendrier et les événements du forum pour voir les manifestations près de chez vous !
Elections des modèles de l'année 2023 : Votez avant le 1er Avril !
Le Deal du moment :
Nike : Jusqu’à 50% sur les articles de ...
Voir le deal

 

 Commande plaque tournante Fleischmann 9152

Aller en bas 
+3
Derf
Fantasio
papymouzot
7 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
papymouzot
Membre
Membre
papymouzot


Masculin Age : 59
Localisation : Roquebrune Cap-Martin (06)
Nombre de messages : 654
Date d'inscription : 30/06/2009

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeMer 12 Oct 2022 - 11:58

Bonjour à tous,

Je suis en train de réfléchir sur comment me faire un décodeur spécifique avec un Arduino pour commander une petite plaque tournante Fleischmann en digital et je regarde comment elle fonctionne aujourd'hui. je sais que le TT-Dec existe, mais c'est pour faire l'exercice moi même et pour moins cher aussi...

Je n'ai pas la petite commande blanche qui va avec le pont tournant normalement et je me pose une question...

Le mécanisme est simple. Une couronne est entrainée par un petit moteur et la couronne dispose d'encoches qui sont situées pile poil en face des positions où il peut y avoir des voies. C'est pas con, comme ça ça reste très précis.

La commande de déplacement actionne un solénoïde qui active un doigt qui libère la couronne, en même temps, lorsque le doigt n'est pas dans une encoche le moteur est mis en route par un mécanisme de vis platinées.

ça c'est simple...

J'imagine qu'une impulsion sur la commande blanche peut faire déplacer le pont jusqu'à la prochaine encoche... qu'il y ait une voie ou pas.... Donc si on veut faire un demi-tour complet il faut se déplacer de 24 encoches....

Est-ce qu'il faut déplacer "manuellement" le pont 24 fois à partir de la commande ou on peut laisser le bouton vers la gauche ou vers la droite et le pont continue de tourner tant qu'on ne relâche pas le bouton ???

Si c'est cette deuxième solution le solénoïde reste activé un temps certain pour retenir le doigt pour laisser le moteur activé, longtemps même... et je me demande si le solénoïde peut tenir le coup longtemps dans ce cas là ?

Si je peux laisser le solénoïde activé le temps d'une rotation complète sans risque de le cramer, l'algorithme du décodeur reste assez simple... Si il faut faire N fois la manipulation pour arriver à la N° position possible pour épargner le solénoïde c'est à la fois un chouïa plus compliqué et la plaque va faire clac-clac à chaque fois qu'elle passe devant une sortie potentielle.... pas glop le clac clac non plus...

Donc, ça fonctionne comment cette commande ?? Est-ce que ça fait clac clac quand le plaque se décale de plusieurs voies ??

Commande plaque tournante Fleischmann 9152 Mecani10
Revenir en haut Aller en bas
Fantasio
Membre
Membre
Fantasio


Masculin Age : 63
Localisation : Saint Médard en Jalles (33)
Nombre de messages : 2239
Date d'inscription : 15/11/2019

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeMer 12 Oct 2022 - 14:08

Bonjour
Tu pourrais t'inspirer de cet article
je pense que les deux plaques ont un fonctionnement similaire...

Bonne continuation à toi
Revenir en haut Aller en bas
Fantasio
Membre
Membre
Fantasio


Masculin Age : 63
Localisation : Saint Médard en Jalles (33)
Nombre de messages : 2239
Date d'inscription : 15/11/2019

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeMer 12 Oct 2022 - 14:21

je viens de trouver ceci sur le forum.... Very Happy
Revenir en haut Aller en bas
papymouzot
Membre
Membre
papymouzot


Masculin Age : 59
Localisation : Roquebrune Cap-Martin (06)
Nombre de messages : 654
Date d'inscription : 30/06/2009

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeMer 12 Oct 2022 - 14:53

Coucou Fantasio,

En fait ces "solutions" ne résolvent pas mon problème. hélas !

Le système qu'a réalisé Fleischmann avec la piece métallique qui va le loger dans un des six index situés sur la couronne est quasiment incontournable pour avoir un positionnement précis du pont par rapport aux voies.

J'ai tout démonté sous mon nez et sans cette pièce qui va se loger dans la couronne le positionnement n'est pas bon du tout, il y a trop de jeu. Du moins avec ce que j'ai sous le nez...

J'ai vu plusieurs vidéos ce matin sur youtube où on voit des gars qui ont supprimé cette pièce et la bobine pour uniquement se positionner avec un capteur optique et un disque noir avec une "mire blanche à six branches collée sur la couronne ou alors utiliser des aimants et un capteur à effet hall, les idées sont louables, ça fonctionne peut-être en HO, mais ça ne supprime pas du tout le jeu de l'entrainement de la couronne en N... Si le pont tournant est le même que le mien et que je me positionne avec des capteurs optiques ou magnétiques ce sera du n'importe quoi ! Déraillages à tous les coups assurés.

Par contre, j'ai l'impression que sur le pont que j'ai il manque une pièce qui servirait de rappel pour la pièce métallique (ressort) pour qu'elle rentre bien dans les index de la couronne.. la mienne ne remplit sa fonction parfaitement que si je l'aide à la main.... et là, plus de jeu, le pont et les rails sont parfaitement alignés.

Je me suis demandé si je pouvais utiliser un mini servo à la place de la bobine mais je n'en n'ai pas de suffisamment petit pour aller se loger sur le chariot du mécanisme... Il est petit petit le pont en N Very Happy

Je n'ai pas d'idée magique pour le moment.... Question Idea Idea Question

Si quelqu'un en a, je prends !!! Smile
Revenir en haut Aller en bas
papymouzot
Membre
Membre
papymouzot


Masculin Age : 59
Localisation : Roquebrune Cap-Martin (06)
Nombre de messages : 654
Date d'inscription : 30/06/2009

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeMer 12 Oct 2022 - 15:51

J'ai trouvé.... Hélas, il me manque bien une pièce.... Une lame au niveau de la couronne qui effectivement doit plaquer la pièce métallique vers la couronne....  
Revenir en haut Aller en bas
Derf
Membre
Membre



Masculin Age : 55
Localisation : 31
Nombre de messages : 961
Date d'inscription : 05/03/2011

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeMer 12 Oct 2022 - 18:25

Une idée en l'air:
Du fil à mémoire de forme. C'était en vogue il y a quelques années pour les commandes d'aiguilles associé à un ressort de rappel
Je n'ai pas idée de la place dispo mais le fil peut rester sous tension longtemps, en tout cas le temps d'effectuer un tour je pense et ce doit être plus compact qu'un servo.
Revenir en haut Aller en bas
FP68
Membre
Membre
FP68


Masculin Age : 55
Localisation : Sud Alsace
Nombre de messages : 1191
Date d'inscription : 27/10/2015

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeMer 12 Oct 2022 - 22:32

Je suis certainement hors sujet, mais pour la plaque Arnold installée sur mon réseau et commandée via la DR 5000, j’ai retiré tout le mécanisme; laissé que le moteur et les engrenages afférents. 
Dans l’espace libéré, j’ai installé un décodeur NEM 651 à fils. branchement similaire à un moteur de locomotive.
Les 4 fils d’origine permettent d’alimenter les rails du pont et le moteur via le décodeur.
La programmation se fait via la voie de programmation en branchant temporairement le réseau « rails » sur la sortie adéquat de la centrale (et en ayant retirer tous les autres moyens équipés de décodeurs...).
Un système de gestion de boucle de retournement pour gérer les courts circuits entre la plaque, la voie de sortie et les voies de garage.

Évidement, le calage du pont pour faire entrer/sortir une machine se fait à l’œil. Mais en réglant la vitesse de rotation « au pas »,  c’est aisé comme manip.

Voilà ma modeste contribution.
Revenir en haut Aller en bas
papymouzot
Membre
Membre
papymouzot


Masculin Age : 59
Localisation : Roquebrune Cap-Martin (06)
Nombre de messages : 654
Date d'inscription : 30/06/2009

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeMer 12 Oct 2022 - 23:21

C’est quelque chose que propose ESU dans le manuel de l’Ecos: utiliser un décodeur Lokpilot pour contrôler le pont tournant.

Dans mon cas, je désire que quasiment tout soit « automatisé » donc impossible de gérer ça à l’œil 😀

J’ai fini par résoudre mon souci de lame de ressort manquant…. Il m’aura fallu deux Xanax lors du remontage qui n’est pas facile. Avec le système de Fleishmann qui fonctionne l’alignement des voies/pont est nickel.

Il faut maintenant que je trouve quels sont les paquets DCC envoyés par l’Ecos pour commander la plaque tournante pour que je « mimique » un TT-Dec avec mon petit Arduino… La suite dans peu de temps 😄😄
Revenir en haut Aller en bas
sierramike
Membre
Membre
sierramike


Masculin Age : 44
Localisation : 67000 STRASBOURG
Nombre de messages : 4563
Date d'inscription : 29/10/2015

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeJeu 13 Oct 2022 - 0:47

Voilà un problème sur lequel j'ai hâte de me pencher aussi, j'avais fait quelques tests il y a 6 ans (le lien a été cité plus haut), et entre temps j'ai eu l'occasion de voir fonctionner le boitier de commande 6915 de Fleischmann qui permet d'automatiser la rotation du pont, et qui possède une prise permettant de le raccorder à un système DCC. Ca semble superbe, mais à plus de 250€ le boitier, je préfère me payer une loco ...

Ce boitier fait effectivement tourner la plaque voie après voie, c'est à dire qu'il génère bien le "clac-clac". J'imagine que pour reproduire le système, il serait intéressant de mettre un système de détection de consommation sur les fils qui alimentent le moteur de rotation. L'arduino enverrait donc le signal pour retirer le doigt de verrouillage pendant une demi seconde pour lancer la rotation du pont, puis surveille la consommation du moteur de rotation. Lorsque celui-ci s'arrête (car le doigt rentre dans une encoche), immédiatement relancer la commande pour poursuivre la rotation vers la voie suivante.

J'avais aussi vu le système avec aimants dans les encoches et capteur à effet hall, mais en N les xanax ne vont pas suffire pour arriver à rentrer tout ça sous le pont !

Si tu trouves les bonnes infos sur les paquets de commande DCC ça m'intéresse !
Revenir en haut Aller en bas
papymouzot
Membre
Membre
papymouzot


Masculin Age : 59
Localisation : Roquebrune Cap-Martin (06)
Nombre de messages : 654
Date d'inscription : 30/06/2009

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeJeu 13 Oct 2022 - 12:48

Bonjour SierraMike, Bonjour à tous....

J'ai plein de choses à faire mais je n'ai pas pu m'empêcher de regarder quelle tête ont les paquets de données envoyées pour activer le pont tournant...

Ce n'est pas fini, je n'ai fait que quelques tests pour l'instant.

J'ai créé une plaque tournante sur l'Ecos, adresse 225, Märklin, pas de surprise ce n'est pas des paquets DCC qui sont envoyés..

J'ai supprimé et recrée une PT avec cette fois-ci le modèle sélectionné: LokPilot DCC, donc un décodeur de loco ESU standard, protocole DCC

On peut choisir l'adresse, j'ai laissé 225, on peut choisir la vitesse, j'ai laissé 20, et la pause j'ai laissé 3,5 secs. On ne choisit pas ici quelles voies sont libres ou pas. Je suppose que cette configuration est faite ailleurs, peut-être lorsque j'on fait un TCO avec l'Ecos ? Je n'en suis pas là.

Lorsque l'on veut faire avancer le pont d'un cran vers la droite on reçoit simplement un message notifyDccSpeed avec vitesse 20 et direction FWD, puis un autre message notifyDccFunc pour mettre F1 à 1 pour activer le solénoïde et permettre la rotation, alimenter le moteur ne suffit pas, l'activation du solénoïde déclenche la rotation et tant que le moteur n'est pas en face du prochain emplacement, il tourne.

On a plusieurs paquets comme ça, normal, puis on reçoit a nouveau les mêmes messages pour changer la vitesse à 0 et éteindre F1.

Un truc étrange, pour le "stop" la vitesse est changée deux fois, une fois à 0, une fois à 1, or 1 = vitesse 0 normalement... Je ne sais pas ce que ça veut dire le speed=0 (Une spécificité ESU ?)

La même chose pour tourner à gauche, messages Reverse. Toujours avec F1 activé brièvement.

Pour faire tourner le PT de 180° l'Ecos envoie 24 fois les messages avec une pause...de 3,5 secondes entre chaque message... Inutile de dire que ça rame !

Et c'est tout... Créer un sketch sur Arduino pour faire la même chose prendrait quelques minutes... bon, disons une heure max Very Happy avec une gestion complémentaire pour des feux. On ne peut rien faire pour la vitesse de rotation du pont hélas, il faut encore qu'il s'arrête à chaque emplacement possible.

Pour choisir la polarité des rails il faut tout "hardcoder" et assumer que la loco arrive toujours en marche avant, que le pont fait un demi tour avant de faire reculer la loco dans sa voie de garage... idem pour en sortir une. Ou alors module de boucle de retournement d'ESU, ben voyons...

La position 1 du pont est renseignée manuellement à l'Ecos lors de la configuration. La plaque n'est pas réinitialisée au démarrage de l'Ecos. Qu'en sera t'il avec Traincontroler ? Je ne sais pas... (encore Smile )

Voila les infos du jour...

Charles
Revenir en haut Aller en bas
sierramike
Membre
Membre
sierramike


Masculin Age : 44
Localisation : 67000 STRASBOURG
Nombre de messages : 4563
Date d'inscription : 29/10/2015

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeJeu 13 Oct 2022 - 13:04

Super, t'as avancé ! Donc je déduis que le décodeur de plaque tournante est considéré comme un décodeur de machine, et non comme un décodeur d'accessoires, pour lesquels de mémoire il n'y a pas de fonctions F0/F1 etc.

Effectivement le principe semble sacrément lent comme tu l'expliques avec la pause de 3,5 secondes. C'est sûrement pour ça que je suppose que le système Fleischmann fonctionne par détection de consommation pour ne pas avoir besoin d'une pause et pouvoir relancer la rotation instantanément lorsque le pont a fini la précédente.

Est-ce que dans ton Ecos tu as la possibilité de régler la plaque tournante en mode Fleischmann au lieu de Marklin ou ESU ?

Il faudrait pouvoir envoyer un message contenant la voie à atteindre et que ce soit le décodeur Fleischmann qui s'occupe ensuite de gérer le fonctionnement de la plaque sans le principe de la pause.

Edit : concernant la vitesse 0 et la vitesse 1, de mémoire dans la norme concernant les machines, la vitesse 1 c'est arrêt "normal", c'est à dire avec la décélération réglée dans les CV 2 à 5, et la vitesse 0 c'est arrêt immédiat et brutal.
Revenir en haut Aller en bas
papymouzot
Membre
Membre
papymouzot


Masculin Age : 59
Localisation : Roquebrune Cap-Martin (06)
Nombre de messages : 654
Date d'inscription : 30/06/2009

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeJeu 13 Oct 2022 - 14:09

Mon Ecos a le dernier Firmware 4.2.10, HW 2.1.1 et mes seuls choix lorsque je crée une plaque tournante sont Märklin 7686, LokPilot DCC, LokPilot Motorola et Märklin 74861... La doc que j'ai ne contient même pas toutes ces options...

Rien d'autre... Je suis très déçu en fait...

Je ne vois pas comment piloter la plaque avec l'Ecos de façon automatique, on ne peut pas la mettre dans le TCO, on ne peut pas dire quelles voies existent ou pas.. Comme on ne peut pas la mettre dans le TCO, comment l'exploiter si ce n'est à vue sans dire quelles voies sont occupables ?

Il est peut-être possible de l'intégrer dans RRTC, définir quelles voies sont utilisables ou pas, il me semble possible de lui dire d'aller "à la voie 12" puisque c'est faisable sur l'Ecos, mais pas moyen d'optimiser le trajet, en choisissant le plus court. On peut programmer le décodeur pour avoir une phase d'accélération, une vitesse rapide et décélération mais ça ne sert à rien si il doit s'arrêter de partout...

Il serait possible de faire un décodeur Marklin avec un Arduino, il y a les libraries pour ça, mais on aurait le choix avec 24 voies ou 15 voies et pas 48 comme sur nos PT Fleishmann en N... ????

Avec un décodeur "Loco" DCC on peut avoir les 48 voies par contre... Avec le protocole Marklin on peut "sauter" de six voies si on veut, donc on pourrait très bien optimiser sur une plaque HO avec 24 voies en "simulant" un décodeur TT-Dec...

Bref, c'est NUL ! je suis triste....
Revenir en haut Aller en bas
DAN57FRN
Membre
Membre
DAN57FRN


Masculin Age : 58
Localisation : 57390 AUDUN LE TICHE
Nombre de messages : 2228
Date d'inscription : 09/09/2014

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeJeu 13 Oct 2022 - 21:09

Le mouvement de la plaque par "cran" n'est pas très réaliste, mais il a l'avantage de bien caler la plaque en face de chaque voie. remplacer ce système par un capteur de position (optique ou à effet Hall) est possible mais assez compliqué. c'est pour cela que les modules existants conservent généralement le principe mécanique et comptent les "crans" pour positionner la plaque

Digikeijs avait aussi un module pour plaque, mais il ne semble plus au catalogue. Il semble similaire au TT-dec le DR5052. Il était programmable par PC et avait beaucoup d'options: notice

Il y a aussi la solution du contrôleur Fleischmann 6915 (J'ai justement étudié la notice cette semaine  lol! )

Commande plaque tournante Fleischmann 9152 691510

Il se pilote par les adresses aiguillages 200 à 299 (adresses module d'accessoires 50 à 75; un décodeur d'aiguillage a 4 aiguillages en sortie)
en adressant en DCC l'un des aiguillages la plaque s'aligne automatiquement en face de la voie correspondante. Il y a aussi une entrée loconet (étonnant pour du Fleischmann). la définition des voies se fait par programmation du 6915. lien vers la notice
la programmation permet d'adresser les voies en fonction de son installation sur 24 ou 48 voies suivant la plaque. Chaque voie est programmée sur le Graphique "Horloge" voie 1, voie 2 etc jusqu'à 99. on ne programme que les voies montées sur son réseau.
l'adresse 201 correspond à la voir 1 la 202 à la voie 2 etc.. l'adresse 200 permet de faire un demi tour à la plaque pour positionner la loco dans le bon sens. les adresses non utilisées peuvent servir pour un deuxième 6915 pour une deuxieme plaque à condition d'utiliser les numéros de voies non utilisées dans le premier module.

C'est certes cher mais on peut s'inspirer du fonctionnement. l'vantage du 6915 c'est son affichage graphique intuitif. Peut-etre reproductible sur un arduino.

A mon avis le décodeur Märklin intégré dans la centrale ESU doit avoir un fonctionnement assez similaire au décodeur TT-DEC. Il faut que j'essaye cela car les commandes ressemblent beaucoup. C'était à mon programme des jours pluvieux Very Happy

sur le TTdec les adresses sont différentes mais on n'indique pas les voies non utilisées et il y a des flèches de commande voici un extrait de la notice.
Les modules font aussi souvent le retour d'occupation de la plaque et aussi l'inversion de polarité lorsque la plaque dépasse 180°

Commande plaque tournante Fleischmann 9152 Ttdec10
Revenir en haut Aller en bas
http://dan57fr.unblog.fr/
papymouzot
Membre
Membre
papymouzot


Masculin Age : 59
Localisation : Roquebrune Cap-Martin (06)
Nombre de messages : 654
Date d'inscription : 30/06/2009

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeVen 14 Oct 2022 - 21:40

Bonsoir à tous, j’ai essayé d’apprendre un peu comment sont formatés les messages Märklin-Motorola à l’aide d’un sketch sur Arduino et mon Ecos avec une plaque tournante configurée en Märklin 7686.

J’arrive à détecter les 2x9 bytes des messages et je les décompose en « trits » j’ai encore du chemin à faire mais il y a de l’espoir car l’Ecos n’envoie pas 24 lots de messages pour faire tourner le pont de 180 degrés, mais seulement un « lot »…. De même pour aller de la voie un vers la voie 10 ou 20 par exemple…

Par contre j’ai trouvé plusieurs choses qui ressemblent à des« bugs » sur l’Ecos !!! Je vais me les documenter bien comme il faut et les faire parvenir à ESU… On verra bien ce qu’ils disent… On va voir si ils me répondent que ce sont des « features » !!! 😛😛😛

Il m’est arrivé à deux reprises d’avoir la plaque tournante, du moins sa représentation sur l’Ecos qui bouge toute seule sans que l’on touche à quoi que ce soit !!! J’ai même fait une petite vidéo… Pour arrêter ce gag il faut rebooter l’Ecos !!!

Lorsque je crée une loco en Märklin, des messages sont transmis « non stop » dès que la première commande est envoyée…. C’est tout simplement du spam sur le bus de données…. Parfois oui, parfois non… ce n’est pas consistant… Mais Fréquent…. Supprimer la loco ne suffit pas.. faut rebooter l’Ecos.

Lorsque je crée une plaque tournante, parfois c’est le même gag… souvent seulement un lot de message est envoyé et parfois c’est non stop…, c’est là où j’ai essayé de supprimer la plaque… mais surprise, les messages continuent d’affluer… en fait pour stopper ça il faut aller dans les réglages dans l’onglet des accessoires et on y voit toujours les plaques qui ont pourtant été effacées dans les accessoires de base… Si je les supprime ici les messages s’arrêtent….

Si dans les réglages je ne sélectionne pas le format MM les messages MM sont quand même envoyés.. je ne comprenais pas à quoi le paramètre servait alors ??? Lorsque j’ai coché la case j’ai reçu au démarrage les messages pour l’adresse 80 »idle » (qui veut dire 00 chez Märklin, va savoir pourquoi) et ça marche un peu mieux…

Je n’ai pas les mêmes résultats si je choisis des adresses inférieures à 80 ou supérieures… Il faut que je comprenne pourquoi…


Je ne comprends toujours pas pourquoi on n’a pas l’option d’avoir 48 et pas seulement 24 voies dans la configuration de la plaque….

J’ai encore beaucoup à apprendre sur le format MM, il y a plein de trucs que je ne comprends pas encore. Je n’ai pas trouvé beaucoup d’infos sur le net…

Si vous savez où je peux trouver de la doc ou de l’aide je suis preneur… Ça m’aurait bien servi d’avoir une centrale d’une autre marque pour re tester tout ça !!

La suite demain..,
Revenir en haut Aller en bas
sierramike
Membre
Membre
sierramike


Masculin Age : 44
Localisation : 67000 STRASBOURG
Nombre de messages : 4563
Date d'inscription : 29/10/2015

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeVen 14 Oct 2022 - 22:34

Pourquoi te tournes tu vers le format Marklin ? Ce ne serait pas mieux de viser le DCC qui est plus universel ?

Concernant la répétition des trames, c'est pareil pour d'autres marques, j'ai fait le test avec la Multimaus (petite centrale noire) et avec la DR5000, dès qu'on envoie une commande, la centrale la répète sur le bus jusqu'à ce qu'on la modifie, auquel cas la nouvelle commande est répétée.

Je m'explique, si on lance l'avance d'une loco, la trame indiquant sa vitesse va être répétée, jusqu'à ce qu'on modifie la vitesse, auquel cas la nouvelle trame de vitesse sera répétée, et si on arrête la loco, la nouvelle trame d'arrêt restera répétée. Si on allume les feux, pareil, la trame des fonctions sera répétée jusqu'à ce qu'on modifie les fonctions activées.

Dans le but que si la loco passe à un endroit où elle ne capte plus le courant, au moment où elle récupère le contact, elle obtient de nouveau les infos pour retrouver son état précédent (il n'y a pas de mémoire d'état dans les décodeurs).

Et c'est pareil pour les accessoires.

Donc effectivement, ce n'est pas un bug, c'est une feature !

Après, tu dis qu'en supprimant la plaque du TCO les messages continuent, ça ne m'étonne pas du tout. La centrale, en interne, est probablement décomposée en plusieurs parties, un peu comme la Multimaus et la z21 qui sont 2 appareils distincts, alors que dans l'Ecos les 2 sont dans la même boite. D'un côté tu as la partie commande (écran, boutons etc.), de l'autre tu as la centrale DCC à proprement parler, qui ne reçoit pas l'information "tel accessoire a été supprimé".

Ca ne me semble pas problématique d'envoyer des messages concernant un accessoire qui n'existe plus, dans la mesure où, justement, il n'existe plus. Et le cas de la suppression d'un accessoire, ça doit rester plutôt rare dans la vie d'utilisation du produit. Au début tu paramètres tout ton réseau, mais une fois que ton réseau est paramétré, tu ne vas plus en modifier souvent les accessoires, tu vas surtout utiliser ton paramétrage existant.
Revenir en haut Aller en bas
papymouzot
Membre
Membre
papymouzot


Masculin Age : 59
Localisation : Roquebrune Cap-Martin (06)
Nombre de messages : 654
Date d'inscription : 30/06/2009

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeSam 15 Oct 2022 - 0:33

Bonsoir,

En fait je « regarde » 🙂 du côté Motorola car en DCC la seule option qui semble s’offrir à moi est l’utilisation d’un décodeur accessoire. Avec cette « option » la centrale envoie 24 commandes « déplace toi d’une piste » au décodeur pour faire un demi tour… 24x3.5s=84 secondes… 😵💫😵💫 c’est long et la plaque fait clac clac à chaque voie… Pourquoi dépenser des sous, du temps et des boites de Xanax a digitaliser et sonoriser des locos, pourquoi poser du track bed woodland scenics et coller les rails avec une colle qui reste souple (Anita décor) et pas les clouer ou visser pour limiter le bruit de roulement si à côté la plaque tournante couvre tout avec son bruit ? Du moins c’est ce que je me dis… Pour l’instant, c’est un essai pas plus, car avec MM ma cochonnerie d’Ecos ne semble vouloir reconnaître que 24 pistes… ESU se serait-il ligué avec Märklin pour que les plaques Fleischmann avec 48 pistes ne soient pas exploitables ?? 😛😛 En fait ça l’est peut-être mais je n’ai pas trouvé comment faire en tout cas 😜😜

Le TT-Dec est compatible avec la plaque Märklin 7686, et le TT-Dec a un réglage 24/48 pistes mais sur l’Ecos, si on choisit la plaque Märklin, crac, on est bloqué sur 24 pistes, c’est ballot je trouve…. Les plaques Fleischmann avec 48 pistes existent depuis très longtemps…. Non ?

En utilisant MM c’est un seul lot d’instructions qui est envoyé au décodeur, que ce soit pour se décaler d’une voie ou de dix… De ce fait je pourrais imaginer avoir une rampe d’accélération, de décélération et une vitesse de rotation plus élevée et dans le silence, oui, car cette fois l’idée d’un capteur a effet hall et de six aimants sur la couronne me permettraient d’activer le retrait du pion de centrage, sauter N-1 voies, relâcher le pion et je n’aurais que le clac au début… tout en gardant la précision qu’offre le système Fleischmann.., en remplaçant le moteur d’origine par un kit sb-modelbau ce serait le silence… (ou presque 🙂 )

Je parlais de « bugs » vs « features » car ce n’est pas tout le temps que la centrale envoie des paquets à tout va…. Qu’il y ait une répétition des trames, je comprends très bien. Les décodeurs doivent lire au moins deux trames identiques et « intactes » pour exécuter la commande demandée et le format DCC semble plus robuste que MM (je n’ai pas regardé le Mfx encore, mais si c’est comme en DCC où ce sont des paquets « turnouts » qui sont envoyés pour des signaux alors que les paquets « signaux » existent ! Tout ça pour rester compatible avec les vieilleries, je devrais uniquement regarder du côté de MM et même pas MM2 😅😅😅 ou alors je devrais ressortir mon matos en FMZ !! 😂😂😂)

Et la position du pont qui change toute seule sans intervention aucune, c’est aussi une « feature » ? 😂😂😂

Bref, entre le fait que l’écran tactile ne soit pas top du tout si on a l’habitude de l’écran d’un iPhone, utiliser celui de l’Ecos est horrible… La traduction des libellés en Français est tout simplement scandaleuse, les textes se chevauchent avec d’autres textes ou boutons, et plusieurs petites autres choses me font regretter mon achat depuis la fin de l’après-midi 😥
Revenir en haut Aller en bas
papymouzot
Membre
Membre
papymouzot


Masculin Age : 59
Localisation : Roquebrune Cap-Martin (06)
Nombre de messages : 654
Date d'inscription : 30/06/2009

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeSam 15 Oct 2022 - 13:59

Je commence enfin à comprendre les messages MM et MM2

MM pour les turnouts, MM2 pour les Locos... Je n'ai trouvé de doc pour le Mfx qu'en Allemand, mais pour l'instant je me moque du Mfx Very Happy

Je sais décoder un paquet "turnout" envoyé par l'Ecos pour des Accessoires à deux, trois et quatre positions. Enfin !   J'ai pigé !

Je sais décoder les paquets "turnout" envoyés pour contrôler la plaque tournante !! YES !!!   bounce

On a effectivement un message qui dit va à la position 12, va à la position 20 directement... DONC il est possible en théorie d'éviter les clacs-clacs à chaque position et aller direct à la bonne position, on peut décider quel est le chemin le plus court pour y parvenir

Mais ça passe par une config sur l'Ecos en MM avec comme choix une Plaque Marklinge 7686 qui n'aura que 24 voies... C'est là que je râle comme un pou !!!!  Je n'ai aucune idée de comment on peut faire pour avoir le choix des 48 positions...  Evil or Very Mad

grrrrrr

Edit: J'ai peut-être une idée.... Créer 48 boutons... plus un 180°... C'est relou... rendeer
Revenir en haut Aller en bas
sierramike
Membre
Membre
sierramike


Masculin Age : 44
Localisation : 67000 STRASBOURG
Nombre de messages : 4563
Date d'inscription : 29/10/2015

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeSam 15 Oct 2022 - 17:20

papymouzot a écrit:
Bonsoir,

En fait je « regarde » 🙂 du côté Motorola car en DCC la seule option qui  semble s’offrir à moi est l’utilisation d’un décodeur accessoire. Avec cette « option » la centrale envoie 24 commandes « déplace toi d’une piste » au décodeur pour faire un demi tour… 24x3.5s=84 secondes… 😵💫😵💫 c’est long et la plaque fait clac clac à chaque voie…  Pourquoi dépenser des sous, du temps et des boites de Xanax a digitaliser et sonoriser des locos, pourquoi poser du track bed woodland scenics et coller les rails avec une colle qui reste souple (Anita décor) et pas les clouer ou visser pour limiter le bruit de roulement si à côté la plaque tournante couvre tout avec son bruit ? Du moins c’est ce que je me dis…  Pour l’instant, c’est un essai pas plus, car avec MM ma cochonnerie d’Ecos ne semble vouloir reconnaître que 24 pistes… ESU se serait-il ligué avec Märklin pour que les plaques Fleischmann avec 48 pistes ne soient pas exploitables ?? 😛😛  En fait ça l’est peut-être mais je n’ai pas trouvé comment faire en tout cas 😜😜

Le TT-Dec est compatible avec la plaque Märklin 7686, et le TT-Dec a un réglage 24/48 pistes mais sur l’Ecos, si on choisit la plaque Märklin, crac, on est bloqué sur 24 pistes, c’est ballot je trouve…. Les plaques Fleischmann avec 48 pistes existent depuis très longtemps…. Non ?

En utilisant MM c’est un seul lot d’instructions qui est envoyé au décodeur, que ce soit pour se décaler d’une voie ou de dix…  De ce fait je pourrais imaginer avoir une rampe d’accélération, de décélération et une vitesse de rotation plus élevée et dans le silence, oui, car cette fois l’idée d’un capteur a effet hall et de six aimants sur la couronne me permettraient d’activer le retrait du pion de centrage, sauter N-1 voies, relâcher le pion et je n’aurais que le clac au début… tout en gardant la précision qu’offre le système Fleischmann.., en remplaçant le moteur d’origine par un kit sb-modelbau ce serait le silence… (ou presque 🙂 )

J'ai deux remarques par rapport à ce que tu écris :
1) Si tu veux rajouter un capteur à effet hall et récupérer l'info, tu seras obligé de réussir à planquer toute l'électronique dans le pont (pas évident en N), car sinon tu n'auras pas assez de pistes dans les 5 contacts d'origine pour récupérer l'info hors de la plaque ...
2) Concernant le principe "la centrale envoie 24 commandes", si tu trouves le moyen, par exemple avec le capteur à effet hall, d'éviter le principe du clac-clac en visant directement la bonne voie, tu pourrais réduire la "pause" dans la config de la centrale, par exemple à 1s, et "bufferiser" les commandes dans ton Arduino, selon ce principe :
- A la première commande tu lances le déplacement du pont et tu commences à compter les voies
- A chaque commande supplémentaire tu incrémentes le compteur du nombre de voies demandées
- Une fois que les 2 valeurs sont égales tu arrêtes le pont (ou plutôt si N(déplacement)=N(demande)-1 tu relâches le doigt pour que le pont s'arrête à la suivante)
Avec une pause de 1s, les commandes arriveront plus vite que le déplacement du pont et tu sauras de combien est le déplacement demandé avant d'atteindre l'objectif.

J'espère que je suis assez clair Laughing

papymouzot a écrit:

Je parlais de « bugs » vs « features » car ce n’est pas tout le temps que la centrale envoie des paquets à tout va….  Qu’il y ait une répétition des trames, je comprends très bien. Les décodeurs doivent lire au moins deux trames identiques et « intactes » pour exécuter la commande demandée et le format DCC semble plus robuste que MM (je n’ai pas regardé le Mfx encore, mais si c’est comme en DCC où ce sont des paquets « turnouts » qui sont envoyés pour des signaux alors que les paquets « signaux » existent ! Tout ça pour rester compatible avec les vieilleries, je devrais uniquement regarder du côté de MM et même pas MM2 😅😅😅 ou alors je devrais ressortir mon matos en FMZ !! 😂😂😂)

Et la position du pont qui change toute seule sans intervention aucune, c’est aussi une « feature » ? 😂😂😂

Bref, entre le fait que l’écran tactile ne soit pas top du tout si on a l’habitude de l’écran d’un iPhone, utiliser celui de l’Ecos est horrible… La traduction des libellés en Français est tout simplement scandaleuse, les textes se chevauchent avec d’autres textes ou boutons,  et plusieurs petites autres choses me font regretter mon achat depuis la fin de l’après-midi 😥

Effectivement, avec cette description on dirait bien un sacré bug ! Et ce que tu dis sur la qualité de l'écran me conforte sur ce que je pensais à propos de cette centrale bien trop onéreuse ... Surtout si on vise une commande par ordinateur (Train Controller ou autre), ça devient overkill voir inutile !

D'ailleurs, dans tes essais, tu devrais aussi faire un test pour voir ce que fait Train Controller pour piloter la plaque tournante ! A ce propos, j'avais lu que seule la version Gold permet d'automatiser une plaque tournante. Tu peux utiliser la version d'essai pour faire les tests Wink
Revenir en haut Aller en bas
papymouzot
Membre
Membre
papymouzot


Masculin Age : 59
Localisation : Roquebrune Cap-Martin (06)
Nombre de messages : 654
Date d'inscription : 30/06/2009

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeSam 15 Oct 2022 - 18:01

Coucou,

Je pensais bien intégrer le décodeur sous le pont.... Un Arduino Mini Pro, un mini pcb avec quelques composants rentre au chausse pied, mais il rentre...

Je n'adhère pas à ton idée de lancer le démarrage du pont et ensuite compter... J'ai l'intime conviction que ce n'est pas possible à faire fonctionner sans y passer beaucoup (trop) de temps. (Rien n'est impossible vraiment)

Les messages arrivent un après l'autre, mais en lisant et traitant un message on ne sait absolument pas quel sera le suivant, car la lecture se fait dans les librairies et le traitement dans le sketch, donc à N-1 on ne sait pas si on doit s'arrêter à la prochaine.... et si on ne veut se déplacer que d'une voie....? Il faudrait changer les libraries nmraDCC pour ça, pour bufferiser les commandes et agir en conséquence. Sans motifs des librairies point de salut je pense. De surcroît il ne faut pas oublier que les commandes sont envoyées par quatre à chaque fois, donc il faut avoir le lot de commandes qui dit quoi faire et le lot de commande qui annule la commande précédente.... une fois les deux lots compris les libraries envoient la commande au sketch pour traitement... impossible alors de savoir ce qui se passe plus loin.... il ne faut pas oublier non plus que l'Arduino c'est un proc 8 bits à 16mHz.... C'est pas puissant du tout sauf à faire du très bas niveau... impossible de faire du multi-tâches avec ça (toujours pareil, pas possible... facilement)

Tu as 100% raison pour tester avec RRTC pour voir comment ça se passe... En fait, je compte me l'offrir, mais pour l'instant je bricole, et tant que le réseau n'est pas en cours de montage, je ne pensais pas m'aventurer dans l'apprentissage de RRTC... J'ai en fait un souci depuis quelques années qui est accepté et reconnu par ma famille et les copains proches mais inimaginable pour les autres qui fait que j'ai du mal à me concentrer et surtout à mémoriser... Je peux apprendre des tas de choses, mais si je ne pratique pas pendant quelques temps tout disparaît.... Comme si je n'y avais pas touché.... Quand j'écris du code ces temps-ci pour l'arduino j'écris dix fois plus de lignes de commentaires que de code, sinon c'est à jeter en cas de bug... Donc, si quelque chose est technique, je commence, je finis car après j'oublie..... J'arrive à pouvoir regarder deux fois le même film sans m'en souvenir.... Very Happy Very Happy Very Happy je dois me donner à fond dans quelque chose pour y arriver.... et après pouf, je ne sais plus.... Sad donc je pense que l'apprentissage de RRTC se fera un jour, à fond, pour que tout fonctionne... Il faudra que je prenne beaucoup de notes.... Si je stoppe au milieu ce sera retour case départ.... Arrow Exclamation Arrow Exclamation

Donc, comme ma Twin Center m'a fait des misères j'ai eu besoin d'une autre centrale pour faire mes bricoles.... avant de tout oublier... J'ai voulu essayer l'Ecos... je le regrette... En plus j'ai réparé une partie de ma TC et j'ai commandé les deux boutons chez Uhlenbrock, donc elle refonctionnera sous peu.... par contre ce n'est pas une IB, donc pas de protocole Marklin dessus, c'est con...(pardon)

Au départ je comptais faire mes bricoles avec ma TC et plus tard me prendre une Dijikeijs... J'ai été idiot... Trop dans l'achat compulsif...

Les gens chez Ecos ne semblent pas aller au bout des choses. La centrale est jolie certes mais l'écran tactile est nul, il y a des bugs, les libellés en français se chevauchent, des menus incohérents, des choses pas à leur place... ça ne fait pas fini du tout, il y a des trucs dans le firmware qui ne sont pas acceptables. J'ai posté quelques demandes sur le forum d'ESU mais c'est soit pas de réponse soit à côté de la plaque... Je ne risque pas d'acheter quoi que ce soit de chez ESU désormais. Faut pas s'étonner que Marklin ait arrêté tôt sa collaboration avec ESU pour ses CS, j'aurais fait pareil....

Je vais me la garder maintenant que je l'ai achetée... mais je suis déçu !!
Revenir en haut Aller en bas
sierramike
Membre
Membre
sierramike


Masculin Age : 44
Localisation : 67000 STRASBOURG
Nombre de messages : 4563
Date d'inscription : 29/10/2015

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeSam 15 Oct 2022 - 18:14

Autant je trouve que les décodeurs ESU, avec ou sans sons, sont plutôt fiables et très compatibles avec un maximum de matériel, et que leurs logiciels PC de paramétrage (en utilisant le lokprogrammer) semblent avoir bien des avantages, autant la Ecos ne m'a jamais tenté, et les décodeurs d'accessoires hors de prix ne m'attirent pas du tout !

Pour en revenir au sujet, j'avais commencé avec la librairie DCC_Decoder écrite par Kevin Snow trouvable sur son site internet MynaBay.com qui semble hors service à ce jour ... Cette librairie traite les commandes DCC via des interruptions, ce qui permet justement de recevoir les commandes en même temps qu'on fait les traitements. Ca marche franchement bien !

Je m'en suis inspiré pour refaire ma bibliothèque de réception DCC pour mon décodeur d'accessoires universel que je suis en train de développer (enfin, qui est en pause et pas terminé par manque de temps). Je suis parti sur un Esp8266 à la place de l'Arduino car je voulais du WiFi et plus de mémoire intégrée pour stocker l'interface web, et il se trouve qu'il est beaucoup plus rapide, pour un prix tout aussi petit voir plus petit que l'Arduino. D'ailleurs, possible qu'il soit assez petit pour tenir sous le pont tournant !

Il se programme avec la même interface Arduino, c'est aussi facile à utiliser.
Revenir en haut Aller en bas
papymouzot
Membre
Membre
papymouzot


Masculin Age : 59
Localisation : Roquebrune Cap-Martin (06)
Nombre de messages : 654
Date d'inscription : 30/06/2009

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeSam 15 Oct 2022 - 20:49

La librairie à utiliser pour se fabriquer des décodeurs DCC est nmraDcc que l’on trouve dans le library manager de l’IDE. Elle est beaucoup plus à jour et fiable. Je crois que c’est la librairie que tu cites que j’ai utilisée au début et j’avais des soucis. De plus nmraDcc est livrée avec beaucoup d’exemples très bien faits et très clairs. Du code de qualité. Quelles que soient les librairies utilisées pour développer des décodeurs, que ce soit du DCC ou du MM, elles utilisent toutes des interruptions et exclusivement la Pin 2 (INT0) de l’arduino. Il n’est pas possible avec les librairies disponibles de lire plusieurs messages et les traiter en même temps, les libraries doivent être lourdement modifiés pour pouvoir accumuler des instructions dans une file d’attente pour informer l’application des messages qui suivent. Aujourd’hui les libraries stockent les instructions décodées et les envoient une à une a l’application mais c’est du séquentiel, lorsque l’application traite un message elle ne peut pas avoir accès au message suivant. On n’est pas dans un système multi tâches. C’est une boucle qui est exécutée en permanence. Les interruptions traitent les messages et lorsqu’un message est décodé une fonction de ton sketch est automatiquement appelée et elle s’exécutera mais à l’intérieur de cette fonction tu ne peux PAS avoir accès au message suivant car ce n’est pas toi qui décide, c’est la librairie !!

Le code que j’ai écrit pour décoder les messages Motorola est similaire dans l’idée à ce que tu décris, mais au bout de quelques minutes elle plante car elle fait un « stack overflow » j’ai écrit ça vite fait, pas bien fait 😅😅😅

Regarde bien les exemples de nmraDcc, tu verras, le code est très clair à lire. Et tu peux bien regarder aussi comment est construite la librairie et comment sont décodés les messages :nmraDcc.cpp c’est très bien fait.

J’ai des ESP en commande depuis un bail chez AliExpress mais je n’ai jamais été livré…. Je me suis bien fait entuber par certains vendeurs. Je suis aussi convaincu que ces cartes sont beaucoup mieux que des UNO ou nano ou mini pro, la taille d’une esp ne rentre pas du tout dans un pont en N, mais ce n’est pas grave, ça marchera très bien avec une mini pro.

Je vais me recommander des esp pour les tester et jouer un peu avec, des fois que ça puisse me servir un jour 😅😅😅 Pour l’instant pas besoin de wifi ou Bluetooth…. Je vais finir mes barrettes à leds avec décodeurs pour les wagons…. Et faut que je trouve comment utiliser la plaque tournante et finir le décodeur pour celle-ci…. Et effectivement il va falloir que je me prenne RRTC maintenant pour voir si je peux gérer celle-ci beaucoup mieux qu’avec l’Ecos…

Bonne soirée, faut que j’y aille c’est l’heure de la soupe 😅😅😅
Revenir en haut Aller en bas
sierramike
Membre
Membre
sierramike


Masculin Age : 44
Localisation : 67000 STRASBOURG
Nombre de messages : 4563
Date d'inscription : 29/10/2015

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeDim 16 Oct 2022 - 15:33

Alors concernant le "multi-tâches", oui et non (et je fais référence à ton dernier message et également à ce que tu avais écrit plus haut), aucun processeur n'est multi-tâches, c'est le système d'exploitation qui l'est. Bien sûr, on ne va pas réécrire un Linux pour Arduino, mais on peut faire une version light du multi-tâches en partant du principe de base : le jeton.

C'est ce que j'ai fait dans plusieurs de mes sketches, ça fonctionne très bien.

L'idée, c'est que lorsque tu as plusieurs tâches, le système d'exploitation donne un jeton à chacune des tâches l'une après l'autre pendant un temps relativement court pour que cette tâche puisse exécuter quelques instructions.

Pour nos petits besoins d'Arduino, et avec sa capacité limitée, on ne va pas aller jusque là en décidant du temps alloué à chaque tâche, puisqu'en étant nous même développeurs du sketch, on peut s'autolimiter sur la quantité d'instructions exécutées par les tâches.

Pour faire simple, on crée une classe "Task" avec une fonction "Do()" qui ne fait rien. Ensuite, pour chaque tâche que l'on souhaite exécuter, on crée une classe qui hérite de "Task", et on surcharge la fonction "Do()" avec le code que la tâche doit exécuter, et on s'arrange pour que ce code soit le plus court possible.

Dans le code principal du programme (méthode Setup voir dans le Loop au besoin), on instancie les tâches dont on a besoin, et on les stocke dans un tableau "Task[n]".
Dans le loop, on boucle sur le tableau des tâches et on appelle la méthode "Do()" de chacune :
Code:
for(int i = 0; i < n; i++)
    Task[i]->Do();

En ce qui concerne les messages DCC, l'erreur à ne pas commettre c'est justement de traiter l'instruction DCC dans la méthode appelée par la librairie, car pendant l'exécution de ce traitement, les interruptions ne sont plus gérées, et on risque de louper des messages.

Donc :

Dans le programme principal, on instancie un tableau d'instructions (une file serait plus adaptée mais je ne vais pas rentrer trop loin dans le détail) : Instructions[n];

Dans la méthode appelée par la librairie, on se contente d'ajouter l'instruction au tableau : Instructions[position_libre] = instruction_de_la_librairie;

Et dans la tâche qui s'occupe de traiter les instructions, on traite tant qu'il y a une instruction dans la file d'attente.

Autrement dit, on ne modifie SURTOUT PAS la librairie, on gère la file d'attente des instructions soi même dans le programme. Et de cette manière, tu as bien accès aux prochaines instructions pendant ton traitement.

NOTE COMPLEMENTAIRE : si tu gères le déplacement du pont tournant dans la méthode appelée par la librairie, tu vas devoir gérer une attente d'une demi-seconde, au mieux d'un quart de seconde entre le moment où tu retires le doigt du mécanisme et le moment où tu relâches alors que le pont s'est mis à bouger. Pendant ce temps, les interruptions sont désactivées et ton Arduino "loupe" ce qui se passe sur le bus DCC. Et en 250ms, il s'en passe des choses sur un bus DCC !
Revenir en haut Aller en bas
sierramike
Membre
Membre
sierramike


Masculin Age : 44
Localisation : 67000 STRASBOURG
Nombre de messages : 4563
Date d'inscription : 29/10/2015

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeDim 16 Oct 2022 - 15:54

Je complète ce que j'ai dit ci-dessus, par exemple pour gérer cette pause nécessaire entre ton instruction (sûrement un pinOut) qui va faire reculer le doigt du mécanisme, et l'instruction qui va relâcher le doigt du mécanisme pour que le pont s'arrête à la position suivante.

De base, la tentation est grande d'appeler la méthode "Delay(250);" pour faire une pause de 250ms. Le problème, c'est que pendant ce temps, plus aucun code n'est exécuté, et dans le système multi-tâches que j'ai décrit ci-dessus, aucune tâche n'est exécutée. 250ms, c'est trèèèèèèèèès long !!!

La technique, c'est de stocker la valeur de la méthode "millis()" dans une variable de type "unsigned long" (le "unsigned" est trèèèès important).
Ensuite, à chaque appel de la méthode Do(), on teste si la différence entre cette variable et la valeur actuelle de millis() est supérieure ou égale au délai souhaité. Si c'est le cas, c'est qu'on a atteint la fin du délai et on peut exécuter la suite.

Exemple :
Code:

if (il_faut_démarrer_le_pont)
{
    Retirer_le_doigt_du_mécanime();
    this->pont_démarré = true;
    this->t_début = millis();
}
if (this->pont_démarré)
{
    if (millis() - this->t_début >= durée_souhaitée)
    {
        Relâcher_le_doigt_du_mécanisme();
        this->pont_démarré = false;
    }
}

Avec ce principe, l'exécution du sketch n'est jamais interrompue, et d'autres choses (en plus des interruptions qui sont toujours prioritaires) peuvent se dérouler pendant les 250ms (par exemple) de la pause.
Revenir en haut Aller en bas
sierramike
Membre
Membre
sierramike


Masculin Age : 44
Localisation : 67000 STRASBOURG
Nombre de messages : 4563
Date d'inscription : 29/10/2015

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeDim 16 Oct 2022 - 16:03

Encore une piste, si jamais tu te rends compte que l'Arduino ne suffit pas à tes besoins en termes de rapidité/capacité mémoire (bien que je pense qu'il suffira), et que tu souhaites passer à l'ESP8266, tu peux prendre un module ESP12F, qui contient juste le composant ESP8266MOD mais sans le gros PCB de développement avec prise USB etc. : Module ESP12F

Il ne mesure que 24x16mm, déjà plus compact pour tenir sous le pont !

Commande plaque tournante Fleischmann 9152 Ori-module-esp-12f-28406
Revenir en haut Aller en bas
papymouzot
Membre
Membre
papymouzot


Masculin Age : 59
Localisation : Roquebrune Cap-Martin (06)
Nombre de messages : 654
Date d'inscription : 30/06/2009

Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitimeDim 16 Oct 2022 - 16:46

bounce bounce bounce Ouuuhhh lala Very Happy

J'ai lu rapidement sur le web il y a peu de temps comment était conçu le c++ afin d'essayer de comprendre les sources des libraries, car si elles existent, je n'ai pas trouvé de manuel sur comment les utiliser.... J'ai dirigé des équipes de développement mais sans être un développeur moi même, doté d'une bonne logique j'étais à même de comprendre ce que l'on devait livrer sans connaitre les méandres des applications développées....

Aujourd'hui je comprends mieux comment on utilise les méthodes appelées par les librairies DCC et autres d'Arduino mais je suis un débutant en développement, je fais toujours appel à la logique qui me reste car la mémoire ne fonctionne plus hélas Very Happy...

Grace aux libraries je trouve ça simple de développer des sketches et ça m'amuse beaucoup je dois dire.. mais je n'ai jamais développé de trucs "savants".. J'ai joué aux légos !! J'utilise "simplement" ce qui est mis à ma disposition...

Pour les classes, J'imagine le concept, j'ai lu là dessus mais je ne pense pas être capable de developper en les utilisant à l'heure actuelle; J'ai encore du mal à conceptualiser ce que tu tentes très bien de m'expliquer et je te remercie pour ça !!!

Si je vulgarise, est-ce que la méthode appelée par la librairie va vérifier si le message est pour elle, et si oui elle doit l'empiler dans un tableau de messages à traiter au lieu de le traiter et passer la main ?

Comme on est sorti de la méthode appelée par la librairie, on sort de dcc.process() et les interruptions sont toujours bloquées jusqu'au prochain appel de dcc.process() dans loop(). exact ?

Et dans loop() on va executer les instructions qui sont immédiatement après l'appel de dcc.process() et si il y a des messages à traiter dans le tableau on doit appeler une fonction pour les traiter de façon séquentielle ?? mais pendant qu'on traite le message, plus d'interruptions donc on ne traite toujours pas l'arrivée de nouveaux messages ???? car c'est dcc.process() qui permet de lire le bus et décoder les trames dcc ??? non ??

Une autre question cependant... Avec un tableau de tâches à exécuter et pas une pile, comment fais tu pour que la méthode appelée par la librairie "empile" le message à traiter et que la fonction loop() qui doit aussi exécuter dcc.process(); et ensuite "dépile" le suivant (N+1) car le message N a été traité ? le tableau aura une taille fixe. On doit empiler par le bas et dépiler par le haut non ?? Comment on gère ça ??

Dans le cas concret de la reception de messages dcc pour faire tourner la plaque...

setup() on initialise
loop() on execute dcc.process() et une fonction pour traiter les messages reçus telle que processTT()
notifyDccAccTurnoutBoard() on vérifie si les messages sont pour nous et on les empile dans un tableau
processTT() on traite le message ou les messages reçus qui sont dans la pile de façon séquentielle

soit:

- je débloque l'index
- je démarre le moteur
- debut boucle
- je teste si j'ai un autre message à traiter
-- si oui, je laisse tourner et je compte le nombre de voies passées et je reboucle
-- sinon je sors de la boucle
- je libère l'index

je sors de processTT()


mais tant que je suis dans processTT(), pas d'interruptions non ? car elles sont activées dans dcc.process() et désactivées lorsque la méthode est appelée ?? on joue juste sur le fait que notifyDccAccTurnoutBoard() va très très vite car il doit juste empiler les messages ??

est-ce que lorsque l'on va recevoir 24 messages dcc.process() aura le temps d'appeler 24 fois notifyDccAccTurnoutBoard() avant que l'on appelle processTT() ?


J'ai l'impression que je pose pas mal de questions sans avoir les compétences pour comprendre les réponses Very Happy

Revenir en haut Aller en bas
Contenu sponsorisé





Commande plaque tournante Fleischmann 9152 Empty
MessageSujet: Re: Commande plaque tournante Fleischmann 9152   Commande plaque tournante Fleischmann 9152 Icon_minitime

Revenir en haut Aller en bas
 
Commande plaque tournante Fleischmann 9152
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» plaque tournante 9152 fleischmann
» plaque tournante FLEISCHMANN de référence 9152 C
» plaque tournante FLEISCHMANN de référence 9152 C
» Plaque tournante FLEISCHMANN référence 9152 C
» Pilotage plaque tournante Fleischmann 9152

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
1/160 - Echelle N :: Modèles réduits à l'echelle N :: Electricité / Electronique-
Sauter vers: