Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - chris_bzg

Pages: 1 ... 4 5 [6] 7 8 ... 20
76
J'ai regardé un peu votre code.
Il y a un petit effort à faire pour trouver des noms de variables explicites. Ici, on a deux variables Aller et aller qui sont différentes, mais je ne comprends pas en première lecture à quoi elles servent. Alors, oui, un nom de variable explicite est plus long à taper mais c'est le prix à payer pour avoir un programme clair pour tout le monde (et pour vous si vous le reprenez dans un an ou plus).
Sinon, pour régler le problème des delay non pris en compte, on peut utiliser des Serial.print pour repérer par où passe le programme : il suffit de faire afficher des messages différents. Et avec cela, on peut mieux comprendre comment le programme se déroule.
Ne vous inquiétez pas : nous sommes aussi passés par là. Depuis, nous avons acquis des réflexes et plus on le fait tôt, mieux cela vaut.
Donc, ce que nous disons n'est pas une critique, mais plutôt un conseil : si vous l'appliquez, vous progresserez plus rapidement.

77
Bonsoir à vous msport et chris_bzg,

@chris_bzg Merci pour ce retour ceci me montre encore une autre façon de faire mais l'aiguillage est géré automatiquement et non avec un Bp  :(

...

Automatiquement ou manuellement, peu importe : le traitement est le même !
Face à un problème, il y a toujours plusieurs façons de faire. Les réponses données vous en montrent quelques unes qu'il faut essayer.

Pour ma part, mon mini-réseau est commandé avec un TCO dessiné sur ordinateur par Processing : je clique sur une aiguille et c'est tout un itinéraire qui se constitue. Je clique sur une voie et j'envoie le courant sens aller ou sens retour.
Les principes ont été expliqués dans : https://www.locoduino.org/spip.php?article226 pour une aiguille motorisée par servomoteur, mais une fois que vous saurez faire avec des relais, il suffit de remplacer.

Pour une formation aux microcontrôleurs (notamment Arduino), je vous recommande celle de l'Ecole Polytechnique Fédérale de Lausanne (EPFL) que vous pouvez suivre sous forme d'un MOOC gratuit (tapez Coursera dans un moteur de recherche et regardez ce qui est proposé) : c'est très sérieux et très accessibles, avec TP à réaliser et diplôme final. Je l'ai faite il y a quelques années.  ;)

78
Bonjour Guillaumevlv62,

La bonne méthode est de gérer la direction de l'aiguille (directe ou déviée) : comme il n'y a que deux possibilités, un booléen est parfait, par exemple true si dévié et false sinon. Il faut aussi garder l'état antérieur de l'aiguille et on effectue le mouvement que si la commande donne un état différent de l'état antérieur.
Exemple : au départ (initialisation), l'aiguille A est directe : etat_A = false et old_etat_A = false
On veut manoeuvrer l'aiguille A en appuyant sur un BP ou automatiquement. A l'appui du BP, etat_A devient true (on veut que l'aiguille dévie). Donc etat_A est différent de old_etat_A : dans ce cas, on envoie l'impulsion sur le bon solénoïde.
Une fois que c'est fait, il ne faut pas oublier de faire old_etat_A = etat_A pour mémoriser le nouvel état de l'aiguille. A la boucle suivante de la fonction loop, il n'y aura pas de mouvement, jusqu'à ce qu'on change à nouveau etat_A.
Etc.

Ceci va vous faire réviser les variables booléennes, et les tests de comparaison. Pour le reste, vous y êtes presque.  ;)

Vous pouvez aussi mettre la commande des solénoïdes à l'intérieur d'une routine qui traite de l'appui sur le BP (dans ce cas, l'impulsion n'a lieu que si BP appuyé) :.
if(pinBP == LOW) {
  etat_A = !etat_A;  // l'etat devient son opposé parce que BP appuyé
  if(etat_A) {
  // envoyer impulsion sur solénoïde 1
  }
  if(!etat_A) {
  // envoyer impulsion sur solénoïde 2
  }
}

L'appui sur le BP doit être traité contre les rebonds (une petite temporisation devrait suffire).

79
Vos projets / Re : Annonces en gare avec la RFID
« le: octobre 12, 2022, 07:17:29 pm »
C'est une erreur malencontreuse de notre part d'avoir appelé nos fichiers sons 0001.mp3, 0002.mp3, 0003.mp3 ; il aurait été suffisant de les appeler 1.mp3, 2.mp3, 3.mp3. Je pense que nous l'avions fait à l'époque pour montrer qu'il peut y en avoir beaucoup, mais comme nous avons testé le montage avec moins de huit fichiers, nous ne nous sommes pas rendu compte que ce serait considéré comme un nombre octal.
Lorsque j'ai utilisé le DFPlayer pour sonoriser le PN, le fichier son s'appelait sonnerie-pn-pour-arduino.mp3 et je l'appelais par myDFPlayer.play(1). Le fichier était unique sur la carte SD, mais si j'en avais eu plusieurs, cela aurait été pareil car, si mes souvenirs sont bons, myDFPlayer.play(2) ne joue pas le fichier 2.mp3 mais le deuxième fichier qui se trouve sur la carte SD. D'où l'importance de les enregistrer dans le bon ordre sur la carte SD.
Pour vous, la solution est de numéroter vos fichiers sans mettre de 0 devant sur la carte SD, et dans le programme et cela devrait marcher.

80
Bonjour à tous,
...
Aujourd'hui je voudrais compliquer la chose avec 2 trains et 3 gares mais je n'arrive pas à trouver la solution des conditions de départ. Je souhaite que le train A part le 1er vers la gare 3 après un temps donné il revient en gare 1 puis après un temps donné le train B part de la gare 2 vers la gare 3 il s'arrêt X temps puis repart vers la gare 2 et le cycle reprends en boucle.
...

Ce problème peut être résolu avec un programme qui exécute les actions les unes après les autres (un tel programme s'appelle un séquenceur, comme par exemple un feu rouge de carrefour).
Il vous faut un relais 2RT pour inverser le sens du courant sur la voie, et deux relais 1RT pour alimenter les zones d'arrêt des gares 1 et 2, mais pas en même temps. La gare 3 peut être gérée par une simple diode afin de créer un garage, la diode alimentant ce garage que dans le sens départ du garage.
Voici les actions du programme :
Polariser la voie dans le sens départ.
Alimenter la section d'arrêt 1 -> le train 1 part vers 3. Lorsqu'il arrive en 3, la diode fait qu'il s'arrêtera.
Attendre.
Polariser en inverse le circuit : la diode alimente la section 3 et le train repart en sens inverse. Positionner le relais pour que la voie 1 ne soit pas alimentée. Le train s'arrêtera dessus.
Attendre.
Même chose pour le train 2, après avoir positionné l'aiguille (il suffit d'alimenter le solénoïde avec un ou deux relais, suivant qu'il y a ou non des contacts de fin de course : j'ai décrit cela dans une fiche pratique Loco-Revue). Lorsque le train est revenu en 2, remettre l'aiguille en position pour le train 1.
Comme vous le voyez, il n'y a pas besoin de capteurs mais vous pouvez aussi les garder pour bien contrôler le processus.
En espérant que cela vous aura aidé...  ;)

81
Présentez vous ! / Re : bonjour je suis Daniel
« le: octobre 11, 2022, 09:28:41 am »
La réponse est là :
https://www.locoduino.org/spip.php?article263
avec, si j'ai bien compris, les barrières en vis à vis, donc d'un seul côté, contrairement au PN où elles sont des deux côtés de la voie. Les ILS pourront être remplacés par un seul bouton poussoir qui commandera les barrières.
Si vous êtes débutant en Arduino, je vous invite à faire d'autres montages plus simples avant de commencer un tel projet qui requiert une bonne compréhension du système Arduino.

82
Présentez vous ! / Re : Presentation de HubertGAUT
« le: octobre 06, 2022, 07:46:44 pm »
Studio 7 peut peut-être programmer via ISP. En tout cas, il le fait pour un programmateur de marque Atmel comme ICE. Voir article Assembleur (4).
Après quel intérêt pour un AVR que l'IDE programme très bien via USB ?

83
Présentez vous ! / Re : Papymouzot, un nouveau dans le sud de la France
« le: septembre 29, 2022, 12:15:26 pm »
Bonjour Charles,

Bienvenue chez LOCODUINO. Vous trouverez ici plein d'idées pour votre futur réseau.

Lorsque je me suis remis au modélisme ferroviaire, je voulais aussi faire une table basse : j'avais vu cela au Salon du modélisme porte de Versailles et j'avais beaucoup discuté avec celui qui présentait cette table. Je me suis lancé dans l'aventure, mais je n'avais peut-être pas assez d''expérience et j'ai très vite renoncé car parfois, les locos sont capricieuses (surtout en analogique, le DCC n'étant pas encore ce qu'il est aujourd'hui). J'ai pensé que je passerais trop de temps à ouvrir le plateau de verre de la table pour pousser les locos. Je pense que pour un tel projet, la voie doit être posée de façon parfaite et surtout réalimentée à chaque coupon via un feeder. Mais ce doit être possible d'arriver au résultat.

Quant aux animations de décor, ce sera le morceau le plus facile car il y a sur ce site de nombreux montages, schéma, programme à utiliser et à améliorer. Vous êtes donc au bon endroit.

Cordialement.

Christian

A voir ou revoir :

84
Vie du forum / Re : Vidéo Locoduinodrome
« le: septembre 06, 2022, 10:10:06 am »
Bonjour Cyril,
J'ai l'impression (mais aucune preuve) d'avoir été contacté par un de vos élèves, à la suite de l'article sur le B.A.L avec la carte shield 4 relais.
Si cela devait se reproduire, je serai vigilant afin de ne pas faire leurs devoirs à leur place.
Par contre, je considère que chercher à comprendre fait partie de ce qu'on demande à un élève, donc je continuerai à expliquer ce qui peut avoir été mal dit dans un article.
Ne vous inquiétez pas, je ne suis pas né de la dernière pluie et j'ai été enseignant moi-même.
A suivre.

85
Débuter / Re : signal DCC directement récupéré sur arduino
« le: septembre 04, 2022, 04:10:53 pm »
Lorsque vous parlez de la PIN2 d'un ATtiny, est-ce que vous parlez de la broche 2 ou bien de la sortie 2 au sens d'Arduino ? Car ce n'est pas la même chose.
De toute façon, les broches d'un microcontrôleur ATtiny sont multiplexées, ce qui veut dire qu'elles ont plusieurs fonctions. La sortie 2 est en fait la broche 7 et peut être soit une E/S numérique (PB2), soit une entrée analogique (A1) ; après, vous en faites ce que vous voulez dans le programme. La broche 2 du µC est soit une E/S numérique (PB3), soit une entrée analogique (A3).
Pour comprendre le multiplexage des broches d'un µC ATtiny, vous pouvez vous référer à l'article https://www.locoduino.org/spip.php?article195 .
L'optocoupleur a un intérêt certain, c'est qu'il assure l'isolation galvanique entre le µC et le reste du circuit (signal DCC par exemple) ; l'utiliser est donc une sécurité.
-----
Broche : la patte du circuit intégré, la 1 étant repérée par un point ou une encoche et la numérotation tourne dans le sens inverse des aiguilles d'une montre
PIN ou sortie : ce qu'est capable de faire la broche.

86
...

En fait je cherche là où il n'y a rien à chercher.

Merci

Cordialement

C'est souvent comme cela : face à un problème à résoudre, on se rajoute inconsciemment des contraintes qui n'ont pas lieu d'être.
Il faut toujours essayer ce qui parait le plus simple, le plus logique.
Dans le cas présent, si cette colonne existe sur l'écran, c'est qu'elle a une raison d'être. En comparant avec un vrai affichage dans n'importe quelle gare, on en déduit que cela doit être la voie.
Si vous préférez, vous pouvez modifier l'affichage de la première ligne pour que DEPART ou ARRIVEE soit plus près de HEURE, ce qui vous laisse la place pour écrire Voie en toutes lettres et aligné à droite.

Gilbert avait présenté son travail sur le forum de Loco-Revue ; c'était un remarquable travail pédagogique car toutes les étapes étaient décrites. Je l'ai persuadé de nous faire un article où on a simplifié et élagué ce qui était décrit dans d'autres articles de notre site, par exemple comment installer une bibliothèque.

En tout cas, c'est un beau projet à réaliser. Merci à Gilbert de l'avoir partagé avec nous.  :)

87
Débuter / Re : MFRC 522
« le: août 31, 2022, 09:51:14 am »
La broche IRQ est une sortie ; vous ne pouvez donc pas la mettre à 0 ou à 1.
C'est le contrôleur MFRC522 qui la gère et l'événement peut être repris par un Arduino pour exécuter une séquence de programme.
Dans les montages décrits dans LOCODUINO, nous n'utilisons pas cette possibilité.

88
...
On aboutirait au même résultat en scrutant régulièrement les ILS dans le programme principal ou dans une routine d'interruption unique attachée à un timer. Le processeur tourne suffisamment rapidement pour ne pas manquer les changements d'états des ILS, pour autant qu'il n'y ait pas d'attente bloquante dans le programme principal. Le mode scrutation a l'avantage d'éviter l'accès concurrent aux variables partagées avec la routine d'interruption.

Très bonne journée à tous.

Je réponds sans doute un peu tard à ce post que je viens de découvrir seulement aujourd'hui.
Effectivement, j'ai d'ailleurs fait une mise à jour de l'article https://www.locoduino.org/spip.php?article297 le 2 août 2022 où la bibliothèque PinChangeInt (qui n'est plus distribuée) a été ôtée du programme.
L'article initial (B.A.L avec la carte shield 4 relays) avait été écrit aussi dans le but de montrer l'utilisation d'interruptions.

89
Débuter / Re : MFRC 522
« le: août 30, 2022, 10:16:01 am »
Dominique a répondu pour l'essentiel et ce qu'il faut retenir, c'est que nos applications n'utilisent pas cette broche.
Si cependant tu veux entrer dans le détail, il faut savoir qu'un signal peut être généré sur cette broche et donc utilisé par Arduino dans le cadre normal d'une interruption externe. Huit événements peuvent créer ce signal et ils sont repérés par le tableau 18 de la datasheet (page 29). Pour discriminer quel événement a créé l'interruption, il faut aller examiner le registre ComIrqReg décrit au paragraphe 9.3.1.5 (page 37). Par exemple, les données sont échangées via un buffer FIFO (First In First Out) : le fait que ce buffer soit presque plein ou bien presque vide peut être un événement, ou bien que ce buffer ait été complètement traité, ou bien encore qu'une erreur ait été détectée.
Mettre en oeuvre toutes ces techniques demande une grande connaissance de la structure de la puce, de ses registres et de leur mise en oeuvre. Cela requiert une étude approfondie de la datasheet du composant (MFRC 522) mais ceci reste vrai pour n'importe quel composant électronique. C'est pour cela qu'on utilise des bibliothèques qui nous évitent d'entrer dans ces détails, d'autres l'ayant fait pour nous.

90
Vie du forum / Re : Re : Vidéo Locoduinodrome
« le: août 29, 2022, 05:19:34 pm »

Je ne me souviens pas de la couleur des trains. Il y en avait deux. L'un avançait plus vite que l'autre. Le deuxième ne  parvenait pas à rattraper le premier du fait de la gestion par cantons.

J’aborde souvent avec mes élèves, différents thèmes liés au modélisme ferroviaire.

Je souhaite utiliser, cette année, cette fameuse vidéo comme support d’activité (situation déclenchante) pour mes élèves de troisième.

......

Cyril

Peut-être s'agit-il de cette vidéo :
Si oui, elle ne concerne pas ce que nous avons appelé Locoduinodrome mais un simple ovale constitué de quatre cantons analogiques.
Vous trouverez comment faire dans l'article https://www.locoduino.org/spip.php?article204 pour quatre cantons ou bien dans cet article https://www.locoduino.org/spip.php?article297 pour plus de quatre cantons. Ce dernier article a été remis à jour récemment afin de se passer d'une bibliothèque qui n'est plus distribuée.
Bonnes activités avec vos élèves.
Cordialement.

Christian

Pages: 1 ... 4 5 [6] 7 8 ... 20