Auteur Sujet: Commande de plaque tournante Walthers  (Lu 9137 fois)

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 904
  • HO avec DCC++
    • Voir le profil
Re : Commande de plaque tournante Walthers
« Réponse #15 le: août 06, 2020, 05:31:31 am »
Uhmm, j'ai un article qui est sur le point d'être publié concernant l'automatisation d'un pont FLEISCHMANN 6152 (HO) avec un ESP32, en WiFi et en CAN qui fonctionne à merveille. Le principe est bien sur applicable à d'autres ponts pourvu que l'on ait un peu d'espace sous le pont.

Je n'ai pas encore fini d'écrire l'article sur la partie logicielle mais celle-ci fonctionne. merebune, tu peux me contacter en MP si tu veux pour l'article 1 sur le matériel et j'essayerai de sortir l'article 2 pour la fin du mois.

J'avais ouvert un fil sur le sujet : https://forum.locoduino.org/index.php?topic=968.msg10100#msg10100

Une petite vidéo qui date un peu, j'ai depuis ajouté l'accélération au démarrage et la décélération à l'arrivée. l'esthétisme aussi à évolué :

merebune

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
Re : Commande de plaque tournante Walthers
« Réponse #16 le: août 06, 2020, 03:51:05 pm »
Voilà le document fondateur du projet
D'ailleurs il n'est pas spécifiquement destiné à une plaque Heljan/Walthers :

PLAQUE TOURNANTE NUMERISATION
Aujourd’hui, il existe plusieurs constructeurs de plaque tournante avec chacun sa logique de commande, mais difficilement intégrables sous le logiciel TrainController. On se retrouve parfois avec des incohérences et dans inversions entre le réseau physique et le TCO de TrainController dû à des commandes de la plaque tournante hasardeuses avec le retournement à 180°.
CAHIER DES CHARGES
Le projet consiste à numériser une plaque tournante afin de pouvoir l’utiliser dans des trajets automatiques sous le logiciel de pilotage TrainController. La plaque tournante pourra également fonctionner en mode dit manuel pour les personnes qui ne possèdent pas TrainController.
FONCTIONS DE BASE
•   Spd : réglage de la vitesse, nécessitera une nouvelle calibration pour compter le temps pour faire un tour.
•   Cal : Calibration qui va permettre à la plaque tournante de trouver son point zéro, référence absolue pour tout autre déplacement enregistré.la rotation se fera toujours dans le sens des aiguilles d’une montre. Elle permettra également le temps pour faire un tour complet, paramètre nécessaire dans la configuration de la plaque tournante sous TrainController.
•   Prog : permet de programmer les différentes positions sans être contraint par des positions physiques prédéfinies. Le réglage se fera toujours dans le sens des aiguilles d’une montre. En cas de dépassement de la position voulue il faudra revenir en arrière pour bien régler la position.
•   Mod : modification d’une position pour un meilleur ajustement
•   Del : suppression d’une position
•   TrXX : permet de commander manuellement le positionnement de la plaque à une voie donnée. La position de la plaque tournante à 180° par rapport à une position données sera une autre adresse. Il sera nécessaire de se faire un schéma de plaque tournante afin d’y repérer les différente voies TrXX. On pourra limiter le nombre de positions à 99 pour une cohérence d’affichage.
•   Adr : adresse DCC de commutation de base de la première position enregistrée et commandable par le bus LocoNet. Les autres adresses des différentes positions seront déduites en ajoutant la différences en fonction du numéro de position. Faites-vous un tableau de correspondance entre les voie TrXX et les adresses de commutation
•    Rst : reset permettant de supprimer toutes les positions enregistrées
MECANIQUE DE LA PLAQUE TOURNANTE
Ceci suppose d’utiliser une mécanique fiable et sans faille.
Elle doit également s’appliquer à n’importe quelle plaque tournante du commerce et de fabrication personnelle
Un détecteur infrarouge devra être installé sur la partie fixe de la plaque tournante pour sa calibration. Et bien sûr un émetteur sera embarqué à une extrémité de la plaque tournante.
La rotation sera assurée par un moteur pas à pas et d’un réducteur de facteur 300. Ce qui permettra une meilleure précision pour le positionnement  Pour un réalisme désiré par les ferrovipathes, une plaque tournante met entre 30 et 70 s pour faire un tour en fonction de la grandeur de la plaque tournante (130 pieds pour les modélistes américains et leurs Bigboys à garer)
La continuité électrique se fera par un connecteur rotatif 10 conducteurs 2A, 4 conducteurs pour l’alimentation de la voie en DCC, 2 conducteurs pour l’alimentation de la led infrarouge, (3 conducteurs pour le servo linéaire de verrouillage de la plaque tournante avec un patin de frein).
On pourra alourdir également la plaque tournante pour une meilleure stabilité.
Un schéma de montage et de réglage sera effectué en fonction de la solution retenue.
HARDWARE
La base est l’arduino uno ou mega
Un shield moteur pas à pas
Un shield avec une carte SD pour sauvegarder les données de programmation de la plaque tournante
Un shield LocoNet
Un shield affichage avec 6 boutons de commande minimum (UP – DOWN -RIGHT – LEFT – SET – autre)
Une entrée détection lors de la calibration
Un circuit Digitrax BXPA-1s Auto Reversers pour l’inversion automatique de polarité de l’alimentation de la voie de la plaque tournante etla de détection de la locomotive. Ce circuit se branche directement sur le LocoNet et possède sa propre programmation.
PROGRAMMATION
Description de chaque fonction :
FONCTION SPD
Avant la calibration de la plaque tournante
1.   Faire tourner la plaque tournante dans le sens des aiguilles d’une montre
2.   Et à l’appréciation de l’utilisateur par les touches vers haut (UP) et vers bas (DOWN) faire varier la vitesse
3.   L’utilisateur validera la vitesse choisie par une commande SET
Il peut passer ensuite à la calibration automatique de la plaque tournante.
FONCTION CAL
Cette fonction qui permet de déterminer le point de référence fera tourner la plaque tournante dans le sens des aiguilles d’une montre et comptera le temps pour faire un tour.
1.   Lancer la rotation  du moteur
2.   Attendre la détection sur l’entrée du détecteur infrarouge et démarrer le comptage de pas et du temps.
3.   Attendre une seconde détection sur l’entrée du détecteur infrarouge qui arrêtera la rotation de la plaque tournante, mémoriser dans des variables globales le nombre de pas et le temps pour faire 1 tour. Afficher ce temps pour l’utilisateur pour qu’il puisse le mémoriser et le programmer dans les paramètres de la plaque tournante dans TrainController. Le nombre de pas pour faire un tour va nous servir à déterminer le plus court chemin entre 2 positions
FONCTION PROG
Ceci suppose que les voies autour de la plaque tournante soient posées dans leur position définitive de manière rigide (on pourra les coller sur les bords de la plaque tournante une fois que la position sera testée. on ajustera l’alignement de quelques dixième de mm).
On commencera par la première voie à droite de la position de calibration (sens des aiguilles d'une montre, et on les numérotera en croissant)
1.   UP avance rapide sens des aiguilles d'une montre
2.   RIGHT avance lente permettant l’ajustement fin sens des aiguilles d'une montre
3.   SET mémorisation du nombre de pas par rapport à la référence de calibration
4.   LEFT avance lente sens inverse des aiguilles d'une montre
5.   DOWN avance rapide sens inverse des aiguilles d'une montre
6.   Après une commande LEFT ou DOWN on ne pourra pas mémoriser le nombre de pas, il faudra revenir légèrement en arrière puis utiliser la commande RIGHT avant de faire la commande SET
7.   Après la commande SET on pourra choisir le numéro de voie par les commandes UP et DOWN qui par défaut sera le numéro suivant par rapport à la voie précédente.
8.   Puis on réappuie sur SET pour mémoriser le nombre de pas par rapport à au numéro de voie.
La mémorisation des pas se fera toujours par rapport au zéro de la calibration.
FONCTION MODULE
Pour réajuster une position qui n’aurait pas été bien effectuée
1.   Sélectionner la position par UP ou DOWN puis SET
2.   La plaque tournante tourne jusqu’à sa position mémorisée
3.   Puis avec LEFT et RIGHT réajuster la position (toujours terminer par RIGHT avant de mémoriser)
4.   Puis mémoriser par une commande SET le nouveau nombre de pas absolu
FONCTION DEL
1.   Sélectionner la position à supprimer par UP et DOWN
2.   Supprimer la position par SET
3.   Infirmer ou Confirmer par LEFT et RIGHT
FONCTION TRXX
1.   Sélectionner la voie à atteindre par UP et DOWN
2.   Puis appuyer sur SET la plaque tournante tournera à la position sélectionnée
La dernière commande sera mémorisée de manière globale pour qu’en cas d’extinction du système celle-ci serve de référence pour repartir sur une nouvelle position.
Il faudra recalibrer le système si la plaque tournante était en train de tourner au moment de l’arrêt. On pourra automatiser cette opération à l’aide d’un flag global qui sera faux tant que la plaque tournante est en train de tourner.
FONCTION ADR
Ici nous allons programmer l’adresse de commutateur (aiguillage) de la position de base de la Tr01, les autres en découleront.
Par défaut la voie Tr01 aura l’adresse 201 et comme il y aura la possibilité de programmer 99 voies (Tr99) il suffira d’incrémenter.
201 car cela laisse à l’utilisateur la possibilité d’adresser 200 aiguillages. Si on utilise une carte de gestion de 32 signaux SE8C elle est facilement programmable au-delà de ces adresses.
On laisse ici la possibilité de modifier l’adresse de la plage d’adresses par UP et DOWN, sachant que 99 adresses consécutive seront réservées.
Une commande SET validera cette nouvelle plage.
GESTION DES COMMANDES LOCONET
Ces adresses seront utilisées dans la programmation de la plaque tournante sous TrainController afin d’adresser en cliquant sur les positions de la plaque tournante dans la fenêtre d’écran de TrainController. Il faudra corréler chaque position de voie TrXX avec l’adresse de commutation correspondante avec la cabine opposée.
Dans l’absolu, il sera possible d’utiliser les adresses de commutation non-utilisées. Il est conseillé d’utiliser les adresses basses pour la plaque tournante. Si une commande LocoNet de commutation est interprétée par la plaque tournante et que le nombre de pas est égal à 0 alors la commande sera ignorée.
Si une commande LocoNet de commutation est reçue et que le nombre de pas est différent de 0, la plaque tournante ira à la position correspondante à la voie de l’adresse de commutation.
Tant que la plaque tournante tourne elle ne prendra pas en compte les nouvelles commandes de commutation. Donc le temps de rotation de la plaque tournante devra être bien rentré dans les paramètres de TrainController.
EXTENTION DE LA GESTION SOUS TRAINCONTROLLER
Il est possible dans les paramètres de la plaque tournante sous TrainController de spécifier un contact ou un Flag de fin de rotation de la plaque tournante, ce qui permettrait de s’affranchir du temps de rotation maximal et qui laisse des temps d’attente bien long une fois que la position de la voie est atteinte et avant que la locomotive démarre.
On pourrait se servir du flag global de fin de rotation de la Fonction TrXX, qui renverrai une adresse de contact lorsqu’il est validé.
Il faut donc ajouter une fonction RTR où on donnera l’adresse de contact
FONCTION RST
Remet tous les paramètres à zéro pour recommencer entièrement la programmation.
1.   SET
2.   Puis Infirmer ou Confirmer par LEFT et RIGHT


Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : Commande de plaque tournante Walthers
« Réponse #17 le: août 07, 2020, 09:17:20 am »
Beau projet Arduino, contraint dans un environnement proprietaire peut-être bien spécifique.

D’autres modélistes intéressés ?
Cordialement,
Dominique

merebune

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
Re : Commande de plaque tournante Walthers
« Réponse #18 le: août 07, 2020, 10:48:33 am »
Non justement Dominique, ce projet n'est pas propriétaire à une plaque Heljan, Walthers ou Cornerstone, il sera applicable à n'importe quelle plaque analogique ou DCC du commerce et même de fabrication personnelle

Mais bien sûr l'environnement DCC est privilégié puis qu'ensuite le pont répondra aux commandes de Traincontroller

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : Commande de plaque tournante Walthers
« Réponse #19 le: août 07, 2020, 11:14:07 am »
Je voulais dire propriétaires par rapport à RRTC qui n’a rien d’un DIY.
Ce serait JMRI, ouvert aux développeurs, peut-être..
Cordialement,
Dominique