Forums LR PRESSE

Où il est question de trains, petits et grands

  • Advertisement

Arduino - Bloc automatique

Toutes les discussions sur l'Arduino !

Modérateur: MOD

Re: Arduino - Bloc automatique

Publié: Mer 01 Mars 2017, 19:49 
Pour la synchronisation des PWM, j'ai réglé le problème en la créant moi-même et je l'envoie sur des 74HC259 que je bascule à l'impulsion voulu. L'avantage, c'est que le même arduino peut gérer la PWM des 64 cantons (jusqu'à 40 trains simultanément). Enfin, sur le papier, je n'ai pas de quoi le tester, mais si ça marche pour 2 trains sur 6 cantons, ça doit marcher sur + (il n'y a que le temps de scrutation du programme à surveiller...)

Pour le DIY, je suis d'accord, et j'éprouve énormément de satisfaction à voir fonctionner mon projet. Mais, ça m'agace au plus haut point aussi quand il y a un truc qui marche pas et qu'on ne trouve pas d'où ça vient (on ne peut se retourner vers personne, sauf les forums pour avoir de l'aide...)

Pour les locos en pousse et double traction, je ferai une vidéo demain matin, je la mettrai en ligne aussitôt pour te montrer cela !! (En fait, c'est le premier essieu détecté qui fait fonctionner le système, donc le wagon en tête fait office de loco, et comme je fait varier la PWM sur tout le canton, la loco ralentit comme si elle était en tête du train !)
Nicozea57
 
Messages: 11
Inscrit le: Dim 26 Fév 2017, 15:37
Echelle pratiquée: n
Prénom: michael

Re: Arduino - Bloc automatique

Publié: Mer 01 Mars 2017, 20:16 
Nicozea57 a écrit:Pour le DIY, je suis d'accord, et j'éprouve énormément de satisfaction à voir fonctionner mon projet. Mais, ça m'agace au plus haut point aussi quand il y a un truc qui marche pas et qu'on ne trouve pas d'où ça vient (on ne peut se retourner vers personne, sauf les forums pour avoir de l'aide...)


Si cela fonctionnait toujours du premier coup, il n'y aurait plus de défi et ce serait lassant. :wink:

J'ai commencé la lecture de ton fil sur FdN, mais 17 pages, ça ne se fera pas d'un seul coup.
Ton projet a peut-être évolué depuis les premières pages. J'ai constaté sur ta première vidéo postée que le train ne redémarre pas tout de suite ; il semble attendre le feu vert alors qu'il pourrait le faire à l'orange. Sans doute, le canton "tampon" ? J'ai cru comprendre que ce canton était défini un peu comme une sécurité supplémentaire. J'ai hâte d'en lire plus...
Avatar de l’utilisateur
Arduino
Démonstratif
 
Messages: 1596
Inscrit le: Mer 25 Sep 2013, 17:14

Re: Arduino - Bloc automatique

Publié: Jeu 02 Mars 2017, 08:49 
Nicozea57 a écrit:Pour la synchronisation des PWM, j'ai réglé le problème en la créant moi-même et je l'envoie sur des 74HC259 que je bascule à l'impulsion voulu. L'avantage, c'est que le même arduino peut gérer la PWM des 64 cantons (jusqu'à 40 trains simultanément).

Tu peux développer ?
Je ne suis pas arrivé à synchroniser "simplement" mes PWM sur un réseau Arduino (CANbus)
Avatar de l’utilisateur
Ramboman
Disert
 
Messages: 423
Inscrit le: Lun 23 Oct 2006, 18:13
Localisation: Waterloo, Belgique
Âge: 73
Echelle pratiquée: LGB

Re: Arduino - Bloc automatique

Publié: Jeu 02 Mars 2017, 12:53 
Bonjour Nicozea57,

Je suis en train de rattraper mon retard : déjà 10 pages sur 17 de lues sur le FdN. Intéressant :) mais pour bien suivre, cela demande du temps :mort: !

En tout cas, ce que j'apprécie dans ton fil sur FdN, c'est qu'il y a plein de vidéos, ce qui permet de voir le fonctionnement de ton BAL. Avec quoi fais tu le montage ?

Je mets moi-même des vidéos sur bon nombre de montages que je propose aux débutants (à voir sur ce forum ou sur locoduino). Au fait, je voulais te poser cette question : connais tu notre site locoduino.org ? Je pense certainement que oui, mais je t'invite à lire les articles de Pierre59 sur Gestionnaire de réseau en C++. Je me suis beaucoup amusé avec son locodrome virtuel. C'est une autre forme de programmation (C++, POO) mais personnellement je suis en train de m'y mettre et cela ne devrait pas te poser de problème à toi qui es jeune.

Comme quoi je sais reconnaître quand d'autres sont bien plus doués que moi et je n'en éprouve aucune jalousie puisque je me nourris de leurs connaissances pour augmenter les miennes... :siffle: C'est en tout cas la philosophie de locoduino où chacun apporte sa pierre à l'édifice et où nous souhaitons publier des articles pour tous les niveaux, du débutant à l'expert en passant par le niveau intermédiaire confirmé. Je participe aux trois niveaux :
- débutant : animations lumineuses pour réseau ferré
- confirmé : programmation du µC ATtiny45 avec application pratique au modélisme ferroviaire
- expert : mise en oeuvre des timers
Heureusement, je ne suis pas le seul, ce qui fait qu'il y en a pour tous les domaines, y compris le DCC que je ne pratique pas moi-même, du moins pour l'instant, mais cela viendra.

Une dernière précision qui me parait importante pour qu'il n'y ait aucune ambiguïté : locoduino n'est pas un site en concurrence avec le forum Loco-Revue ou autre forum. je le vois plutôt comme complémentaire car notre but est de publier des articles, facilement retrouvables, alors qu'il est beaucoup plus difficile de retrouver des informations publiées sur un forum. Lorsque ton BAL sera bien au point, si tu le souhaites, tu pourras l'expliquer sur locoduino. La communauté de modélistes t'en sera reconnaissante. :wink:
Avatar de l’utilisateur
Arduino
Démonstratif
 
Messages: 1596
Inscrit le: Mer 25 Sep 2013, 17:14

Re: Arduino - Bloc automatique

Publié: Jeu 02 Mars 2017, 13:57 
Ramboman a écrit:Tu peux développer ?


Alors, je vais essayer d'être clair car c'est pas forcément simple.
Le 74HC259 est un démultiplexeur adressable à mémoire, c'est à dire qu'on choisit une sortie parmi 8, et on lui change son état. Celle-ci va rester à cette valeur jusqu'à ce qu'on lui dise de changer... Même si on s'occupe d'une autre sortie ! Et c'est là que c'est intéressant, car les PWM des différentes locos ont des valeurs différentes...

Je crée dans le programme une interruption toutes les 128µs (correspondant à une fréquence de 3900Hz). Dans cette interruption, j'incrémente un compteur allant de 0 à 80 (car 80 x 128µs = 10ms soit 100Hz au vu de la loco). Si, par exemple, la consigne de la loco N°1 est de 30 (sur 80), lorsque le compteur arrive à 50 (80-30), je passe la sortie du 74HC259 correspondante au canton sur lequel se trouve la loco N°1 à la valeur 1.
Si, une loco N°2 a pour consigne 25, lorsque le compteur arrive à 55 (80-25), je passe la sortie du canton où se trouve la loco N°2 à la valeur 1.
Puis, lorsque le compteur arrive à 80, je le remet à zéro, et je passe toutes les sorties à 0 (grâce à la fonction "reset" de la mémoire du 74HC259).
En écrivant directement les bits de l'arduino, plutôt que de passer par la fonction digitalWrite, c'est ultra rapide !!
Il suffit d'envoyer l'adresse correspondante à la sortie que l'on souhaite modifier vers le 74HC259 et de valider sur son entrée dédiée. (voir la table de vérité).
Pour envoyer cette adresse (0 à 7), il suffit de 3 bits.
Pour mon système, il y aura jusqu'à 64 cantons, donc 8 x le 74HC259. J'ajouterai devant ce groupe de 8, un 74HC138 (démultiplexeur classique) afin de choisir lequel parmi les huit je dois utiliser. J'ajoute donc 3 bits pour ce choix. Ce qui fait 6 bits au total. (+ le bit de validation, et le bit de reset mémoire)
Si, on veut encore accélérer le processus, il suffit de mettre les 3 premiers bits (ceux des 259) à la suite des 3 suivants (ceux du 138) afin de n'utiliser qu'un seul port de l'Arduino et ainsi pouvoir changer en même temps tous les bits de l'adresse (des 2 adresses en fait...) en envoyant la valeur décimale correspondant à tous les 6 bits.
Ce qui prend le temps d'un seul changement de bit, c'est à dire à peine 2 ou 3 oscillations du processeur.

N'hésite pas à questionner si tu n'as pas tout compris, j'essayerai d'approfondir si besoin.

Arduino a écrit:En tout cas, ce que j'apprécie dans ton fil sur FdN, c'est qu'il y a plein de vidéos, ce qui permet de voir le fonctionnement de ton BAL. Avec quoi fais tu le montage ?


Merci ! La plupart des vidéos sont brutes de décoffrage, filmées avec mon téléphone. Celle où j'explique un peu plus longuement le fonctionnement avec les sous-titres, je l'ai fait directement sur YouTube. Sinon, quand j'ai besoin de faire du montage, j'utilise VideoPad (gratuit et pas mal fait).
J'essaye de faire la vidéo avec la loco en pousse, et je reviens la publier !
Nicozea57
 
Messages: 11
Inscrit le: Dim 26 Fév 2017, 15:37
Echelle pratiquée: n
Prénom: michael

Re: Arduino - Bloc automatique

Publié: Jeu 02 Mars 2017, 14:05 
Et pour locoduino : tu connais je suppose ?

Tu as également de solides connaissances en microcontrôleur (et électronique) : où les as-tu acquises ? Etudes, travail, autodidacte ? (En effet, tout le monde ne sait pas utiliser directement les Ports d'un µC sans passer par digitalWrite d'Arduino, même si je l'ai décrit dans mon cours "Electronique programmable").

Je prends beaucoup de plaisir à découvrir ton fil sur FdN : la suite sera pour ce soir...
Avatar de l’utilisateur
Arduino
Démonstratif
 
Messages: 1596
Inscrit le: Mer 25 Sep 2013, 17:14

Re: Arduino - Bloc automatique

Publié: Jeu 02 Mars 2017, 14:15 
Arduino a écrit:Et pour locoduino : tu connais je suppose ?


J'ai créé un sujet sur le forum de Locoduino à propos de ce projet !! Bien-sûr que j'ai lu beaucoup d'articles dessus !! :P

Arduino a écrit:Tu as également de solides connaissances en microcontrôleur (et électronique) : où les as-tu acquises ? Etudes, travail, autodidacte ?


Je suis électro-technicien à la base, j'ai donc des connaissances en électronique dues à ma formation. Mais, j'avoue que les composants n'étant pas mon fort, et j'apprends de manière autonome ce dont j'ai besoin, ensuite je teste et j'essaye de comprendre... :roll:
Nicozea57
 
Messages: 11
Inscrit le: Dim 26 Fév 2017, 15:37
Echelle pratiquée: n
Prénom: michael

Re: Arduino - Bloc automatique

Publié: Jeu 02 Mars 2017, 17:11 
Nicozea57 a écrit:
Ramboman a écrit:Tu peux développer ?

Alors, je vais essayer d'être clair car c'est pas forcément simple.


Merci... mais je renonce...
car en plus, je devrais synchroniser les PWM sur plusieurs Arduino en réseau...
Il existe bien une solution... qui fait intensément appel aux "internals" de l'Arduino... ça dépasse mon niveau de compétence.
Je m'en tiendrai donc à la commutation par relais "à la" chenevez.
Avatar de l’utilisateur
Ramboman
Disert
 
Messages: 423
Inscrit le: Lun 23 Oct 2006, 18:13
Localisation: Waterloo, Belgique
Âge: 73
Echelle pratiquée: LGB

Re: Arduino - Bloc automatique

Publié: Jeu 02 Mars 2017, 17:23 
Pour Michael:

Bravo : c'est indéniable, tu es quelqu'un de brillant car tu as cette volonté de progresser et d'arriver au bout. Je prendrai beaucoup de plaisir à échanger avec toi.
Pour l'instant, je vais terminer la lecture de ton fil sur FdN et je reprendrai contact avec toi après pour en discuter. Cela nous permettra de comparer des choix techniques.
Bien entendu, je reste à ta disposition d'ici là si tu as besoin ; on sait comment se joindre. Matabiau m'a envoyé sa doc complète sur la conception de ses cantons et c'est très intéressant ; autres choix, autre philosophie, mais en mettant tout cela bout à bout, il peut en sortir des améliorations pour les uns et les autres. Et ce serait bien que Gérard (lgperrin, l'initiateur du fil sur lequel on est) reprenne la prose. Mais lui aussi doit certainement être très occupé ; peut-être verra-t-il cet échange.
Bonne chance pour arriver à commercialiser ta réalisation puisque cela semble être ton souhait. :wink:
Avatar de l’utilisateur
Arduino
Démonstratif
 
Messages: 1596
Inscrit le: Mer 25 Sep 2013, 17:14

Re: Arduino - Bloc automatique

Publié: Jeu 02 Mars 2017, 18:43 
Bonjour,

une nouvelle vidéo pour montrer le fonctionnement du système avec loco en pousse :
(vidéo brute de décoffrage, pas de montage...)

Nicozea57
 
Messages: 11
Inscrit le: Dim 26 Fév 2017, 15:37
Echelle pratiquée: n
Prénom: michael

Re: Arduino - Bloc automatique

Publié: Jeu 02 Mars 2017, 20:18 
Super ! Extra ! Génial ! :applause:

L'arrivée d'un essieu graphité sur la zone d'arrêt déclenche la non alimentation de l'ensemble du canton sur lequel est le convoi, c'est bien cela ? Tu n'as pas besoin d'avoir en mémoire la longueur de ton convoi ?

Autre question : les détecteurs d'occupation détectent bien sur les trois zones de tes cantons, n'est-ce pas ? (d'après la figure schyma11 de ton fil). Et c'est l'entrée analogique qui détermine quelle zone est occupée avec le diviseur de tension. Si convoi sur plusieurs zones, une seule est vue comme occupée, non ? (la plus proche de la zone d'arrêt) :?:
Avatar de l’utilisateur
Arduino
Démonstratif
 
Messages: 1596
Inscrit le: Mer 25 Sep 2013, 17:14

Re: Arduino - Bloc automatique

Publié: Jeu 02 Mars 2017, 20:26 
Arduino a écrit:Super ! Extra ! Génial !

Merci, merci, merci !

Arduino a écrit:L'arrivée d'un essieu graphité sur la zone d'arrêt déclenche la non alimentation de l'ensemble du canton sur lequel est le convoi, c'est bien cela ? Tu n'as pas besoin d'avoir en mémoire la longueur de ton convoi ?


C'est ça ! La longueur des cantons est calculée par le système grâce à la mesure de vitesse.

Arduino a écrit:Autre question : les détecteurs d'occupation détectent bien sur les trois zones de tes cantons, n'est-ce pas ? (d'après la figure schyma11 de ton fil). Et c'est l'entrée analogique qui détermine quelle zone est occupée avec le diviseur de tension. Si convoi sur plusieurs zones, une seule est vue comme occupée, non ? (la plus proche de la zone d'arrêt)


Tout juste !
Nicozea57
 
Messages: 11
Inscrit le: Dim 26 Fév 2017, 15:37
Echelle pratiquée: n
Prénom: michael

Re: Arduino - Bloc automatique

Publié: Ven 03 Mars 2017, 15:00 
Bonjour Nicozea57,

Je viens de publier sur le site LOCODUINO la réalisation de mon B.A.L.
A voir ICI.

Comme tu le verras, il est extrêmement simplifié par rapport au tien parce qu'il n'a pas été conçu avec la même finalité.
Ses points forts sont :
- pas d'électronique à réaliser (deux cartes Arduinos et 4 ILS)
- prix de revient réduit (hors signaux lumineux)
- possibilité de l'installer sur le circuit d'un coffret de départ (idéal pour débutants)
- fiabilité de circulation
Ses points faibles sont : nombreux ! :lol:

Néanmoins, je pense qu'il pourra intéresser ceux qui n'ont pas envie de développer aussi loin que toi et veulent tout de même se faire plaisir à voir se suivre deux engins sur le même ovale.

Je te laisse prendre connaissance de mon système et nous reparlerons de nos solutions respectives.

Amicalement.

Christian
Avatar de l’utilisateur
Arduino
Démonstratif
 
Messages: 1596
Inscrit le: Mer 25 Sep 2013, 17:14

Précédent

Retour vers Arduino

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité