Auteur Sujet: gestion canton avec arduino  (Lu 20815 fois)

Nanard

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
gestion canton avec arduino
« le: septembre 17, 2017, 09:38:56 am »
Bonjour,

Tout d'abord, je me présente, mon prénom est : Jean-Bernard, je joue au train électrique depuis que j'ai 6 ans (avec jouef au départ bien sur, et maintenant il faut multiplier par 10...oui je suis un vieux nanard) et j'ai connu les montages à relais, depuis une vingtaine d'année mon réseau est automatisé à base d'électronique TTL, maintenant, je passe à l'arduino.

Mon choix est de rester à l'ancienne : pouvoir faire rouler n'importe quel convoi sans décodeur....évidement ceux qui sont passé au digital ne comprendrons pas forcément, mais équiper des dizaines de loco avec un décodeur n'est pas toujours simple (même si le cablage s'en trouve simplifié,...quoique...).

Pour des raisons économiques, j'ai choisi une carte Arduino (enfin un clone) "mini pro", il est petit, pas cher et posséde 8 entrées analogiques. Pour cette application, il est saturé...(il faudra peut-être passer à un Mega, mais l'ajout d'un 74hc595 peut faire l'affaire), associé à un L298 qui gére la puissance sur un canton (canton et zone d'arrêt) et deux acs712 entre les broches 1 , 15 et la masse pour détecter la présence et enfin un potentiométre pour la commande de marche/arret, sens normal ou inverse et la puissance.

Mon programme est quasi complet, je n'en livre que le début (c'est trop facile de pomper le travail tout fait, et il faut comprendre) , ceux qui seront intéressés par la suite pourront en discuter (il y a quelques astuces, des boucles pour les changements de vitesses, une valeur résiduelle de la puissance pour permettre la détection des trains à l'arrêt...),  il reste quelques optimisations à réaliser : des lignes de programmes à simplifier (une ligne pour calculer une variable plus une ligne pour la tester à réunir en une seule) ou faire migrer les sorties digitales 0 1 2 3 et 10 11 12 13 vers un 74HC595 (pour éviter de se servir des broches 0 et 1 en digital), on récupère 6 sorties moins 2 (pour piloter la puce) soit quatre broches pour un autre usage .

Financièrement  c'est environ 10 à 12 euros par canton. ce programme est naturellement perfectible, toutes les idées sont les bienvenues . Naturellement il faut toujours des relais associés aux aiguillages pour faire transiter certaines informations. (NB à mon âge je suis pas très rapide pur répondre aux posts....soyez patients).
« Modifié: septembre 17, 2017, 10:57:49 am par Dominique »

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : gestion canton avec arduino
« Réponse #1 le: septembre 17, 2017, 11:05:39 am »
Bonjour Jean-Bernard,

Bienvenue sur Locoduino et merci de nous faire partager une réalisation qui va intéresser du monde car ceux qui ne choisissent pas le digital sont nombreux et là il y a des innovations à découvrir et exploiter (je n'en fais pas partie, mais je m'en rends compte de plus en plus).

Pour rendre ta première contribution plus alléchante, je me suis permis d'ajouter quelques retours et sauts de ligne (la touche "retour chariot" ne marche peut-être plus sur ton clavier ??), une première manière de contribuer à ton projet  ;) ;)

J'ai regardé le code et j'ai fait quelques aménagements sans rien modifier pour que la compilation se passe bien dans l'IDE. Le programme Arduino est en PJ ici.

Amicalement

Dominique
« Modifié: septembre 17, 2017, 11:23:25 am par Dominique »
Cordialement,
Dominique

Nanard

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Re : gestion canton avec arduino
« Réponse #2 le: septembre 17, 2017, 11:57:04 am »
Bonjour,
J'espère que ma réalisation va intéresser les nostalgiques de l'analogique, (bien que je trouve le digital absolument génial),
toutefois le fichier .doc envoyé n'est pas le code complet, c'est un copié collé dans Word (mode paysage), avec les quelques commentaires qui m'ont servis à construire la suite
(je ne dévoile pas encore la mariée...) et il n'y a que le début : les broches utilisées, les variables du programme et un tout petit début de l'exploitation de la lecture de la valeur de l'unique contrôle : un pot de 10KOhm.

Lors de mon prochain post (si ça intéresse toujours), j'envoie la fin....(mais pas encore le coeur du programme), ainsi que la logique et les contraintes intérieures et extérieures au canton qui régissent la marche en sens normal. Après, avec tous ces éléments, un programmeur connaissant l'arduino devrait être capable de finir le programme, un débutant devrait pouvoir alimenter une voie dans les deux sens de marche (comme avec un transfo normal, c'est un début pour s'initier).

Il reste un peu d'électronique à voir et comment exploiter les infos PWM reçues sur une broche analogique : filtre passe-bas ou lecture avec pulseIn? et comment améliorer la détection des train avec un ampli OP et etc...

Si je n'envoie pas la totalité du programme, c'est pour une raison archi simple, c'est que celui qui utiliserai le programme tel quel sans le comprendre dirait :"ça ne marche pas", ben si, mais il faut vérifier le sens d'alimentation de la voie pour le canton et zone d'arrêt et contrôler que les instructions digitalWrite(tractioncanton,HIGH ou LOW) sont dans le bon sens....par exemple. Celles et ceux qui voudrons réaliser ce projet comprendront progressivement  le fonctionnement; Rien que sur les deux premières instructions de void loop, on peut déjà discuter comment on choisi d'utiliser le potentiomètre: moitié pour un sens, moitié pour l'autre, dans ce cas avec la même puissance ou 1/3, 2/3 pour marche inverse et marche normale.......à suivre
« Modifié: septembre 17, 2017, 02:59:00 pm par Dominique »

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1081
  • HO avec DCC++
    • Voir le profil
Re : gestion canton avec arduino
« Réponse #3 le: septembre 17, 2017, 12:12:51 pm »
Bonjour Jean-Bernard,

Je trouve assez bizarre le procédé !!!

Si encore le code que tu présentes n'avait pas d'erreurs, mais ce n'est pas le cas (variables non déclarées, syntaxe fausse...) Et donc au final un code qui ne fonctionne pas.

Locoduino est me semble t'il un site de partage. Alors soit tu partages, soit tu ne partages pas. De toutes les façons, rien qu'à voir la "tête" de ton code, je ne suis pas certain que les programmeurs Arduino et c++ aient quelque chose à apprendre de ton œuvre !

Sur ce et bien amicalement.

Christophe
« Modifié: septembre 17, 2017, 12:33:07 pm par bobyAndCo »

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : gestion canton avec arduino
« Réponse #4 le: septembre 17, 2017, 03:23:52 pm »
Jean-Bernard,

Je soutiens Christophe qui a réagit à ta contribution car elle ne semble pas conforme à l'esprit de Locoduino  >:(

Le mieux est que je t'explique quelques principes qui font que nous aimons Locoduino, comme les milliers de visiteurs qui trouvent ça bien :

- D'abord on partage : on ne vend rien, on se contente de présenter ce qu'on fait, le mieux possible pour notre expérience serve aux autres, sans revendiquer la moindre gloire ni la moindre rémunération. On devient rapidement des copains, des amis et on ne cherche pas à savoir qui est le meilleur. On n'est pas dans une entreprise.

- Pour être agréable à lire, nos contributions sont écrites en bon français (autant que possible, les correcteurs automatiques nous jouant parfois des tours !!), en évitant le texte au kilomètre sans majuscules ni retours à la ligne : j'ai commencé, tu continues !

- C'est pareil pour le code : exit Word : l'éditeur de Locoduino est suffisant pour les petits bouts de code (la balise # en haut du cadre) et les fichiers .ino ou .zip pour les fichiers plus gros.

- Ca ne sert à rien d'annoncer un truc génial pour plus tard, car souvent d'autres publications tout aussi géniales sont déjà parues avant et Locoduino est plein de projets très prometteurs dans l'analogique et le digital, dans la modélisation et la gestion de réseau : Tant que tu n'as pas décrit les principes et les possibilités de réalisation, on ne sait pas ce que tu vas apporter et on risque de te dire "ne vends pas la peau de l'ours ...."  ;D  As-tu lu les articles du site éditorial www.locoduino.org?

- C'est seulement après avoir présenté le projet que le code peut être affiché : là tu as fait l'inverse avec un code qui ne fonctionne pas (est-ce une mauvaise maitrise de l'IDE ?) et on pourrait croire que c'est du bluff !

- D'ailleurs tu l'as bien compris, ce n'est pas mûr pour laisser un débutant faire du copier-coller et dire que ça ne marche pas (tu vois qu'on l'a même fait avant eux).

Pas de panique, on compte sur toi pour nous faire découvrir un projet et une réalisation interessante (toujours après avoir été bien testée). J'imagine une gestion de cantons en PWM avec les interactions entre cantons pour réaliser un système de gestion complet (avec la signalisation ?), comme il en existe d'autres sur Locoduino (pas tous décrits encore, leur auteur ayant à coeur de mettre le système au point avant de le décrire).

A toutes fins utiles, il ne faut pas hésiter à se relire en cliquant sur "Prévisualiser" et, même après la publication, on peut "Modifier" sa contribution !

Bon courage, on attend la suite  ;D
Amicalement.

Dominique
« Modifié: septembre 17, 2017, 03:49:49 pm par Dominique »
Cordialement,
Dominique

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : gestion canton avec arduino
« Réponse #5 le: septembre 19, 2017, 04:04:47 pm »
Après discussion au téléphone, Jean-Bernard qui a bien la volonté de partager son projet sur Locoduino, va préparer sa présentation tranquillement et la poster à nouveau sur ce fil.

Nous avons pensé qu'il fallait mettre dans l'ordre :
- l'objectif du projet, le but à atteindre, donc le cahier des charges (pour utiliser les mots qui conviennent)
- les principes de réalisation choisis
- l'implémentation en dernier, avec le code Arduino

J'ai compris qu'il s'agit d'un système de gestion de circulation des trains avec détection des trains (rétrosignalisation), suivi des trains (poursuite en canton), gestion des signaux et respect par les trains (ralentissements, arrêt, BAL, ...), etc.. on a hâte d'en savoir plus  :D

Le principe de réalisation est "un Arduino par canton"

Je ne sais pas comment la modélisation complète du réseau est faite et traduite dans chaque Arduino, mais c'est ça le suspense  8) 8)

Donnons à Jean-Bernard le temps de préparer sa contribution.

Bon courage

Dominique
Cordialement,
Dominique