Forums LR PRESSE

Où il est question de trains, petits et grands

  • Advertisement

Help variante de "huit boutons, huit servos"

Toutes les discussions sur l'Arduino !

Modérateur: MOD

Help variante de "huit boutons, huit servos"

Publié: Mer 15 Nov 2017, 11:00 
Bonjour a tous,
Fervant lecteur de vos sujets depuis pas mal de temps, je me lance à mon tour, mais je viens de naître sur le forum, donc je n'apprends qu'a marcher.
voila pour faire simple, je construit un second réseau analogique, sur lequel déjà deux gares sont gérées par arduino pour le TCO et aiguillage avec le programme "huit boutons, huit servos" qui fonctionne à merveille, bravo en passant et merci au concepteur car ma première approche de la gestion m'a fais mettre de coté une tonne de matrice et de relais. le souci que je rencontre réside sur la gare de remisage avec 5 voies de garage parcourues en sens unique, je ne veux pas d'automatisme, simplement pouvoir choisir ma voie, avec uniquement 5 boutons (pour huit aiguillages), sens être obligé de faire la voie manuellement en amont ou aval et là je bloque, j'aurais pu mettre en place 4 bouton d'entrée, et 4 boutons de sortie, donc huit boutons et repartir sur le même programme, mais non, pourquoi faire simple quant on peu faire compliqué. j'ai besoin de vos lumières pour m'aiguiller!!! :siffle: bon, maintenant il fraudait que j'arrive a mettre des photos. Image
cordialement
Avatar de l’utilisateur
Le Garandiere
 
Messages: 25
Inscrit le: Mar 07 Nov 2017, 20:49
Echelle pratiquée: HO
Prénom: yannick

Re: Help variante de "huit boutons, huit servos"

Publié: Mer 15 Nov 2017, 11:41 
avant on utilisait des diodes ,par arduino je ne connais pas et mon réseau est en digital ,navré pour les réponses :siffle:
Railenbois
Papotier
 
Messages: 194
Inscrit le: Sam 15 Oct 2016, 09:27
Echelle pratiquée: ho

Re: Help variante de "huit boutons, huit servos"

Publié: Mer 15 Nov 2017, 11:48 
j'avoue aussi que depuis que je connais arduino, j'ai un stock de diode enorme
Avatar de l’utilisateur
Le Garandiere
 
Messages: 25
Inscrit le: Mar 07 Nov 2017, 20:49
Echelle pratiquée: HO
Prénom: yannick

Re: Help variante de "huit boutons, huit servos"

Publié: Mer 15 Nov 2017, 19:14 
Pour faire suite, j'ai remis au propre le tableau que j'avais préparé,Image
sur le model de PICO avec la butte de triage pour mener à bien mon projet.Image
Mais c'est après que ça se complique car plusieurs servos en même temps et dans des sens différent... là je bute! sans mauvais jeu de mots.
Avatar de l’utilisateur
Le Garandiere
 
Messages: 25
Inscrit le: Mar 07 Nov 2017, 20:49
Echelle pratiquée: HO
Prénom: yannick

Re: Help variante de "huit boutons, huit servos"

Publié: Jeu 16 Nov 2017, 10:30 
Bonjour, donc je poursuit mes investigations à l'aide du précieux blog "ModelleisenbahN" (j'essaie)
Pour ce qui est de la gestion des LED's par Charlieplexing, rien ne change apparemment car elles sont au nombre de 16, là je me suis pas foulé, mais peut on réellement piloter plusieurs servos avec un bouton? je pense que oui, mais dans des directions opposées comme le voudrait mon tableau,(et moi même par la même occasion).
Avatar de l’utilisateur
Le Garandiere
 
Messages: 25
Inscrit le: Mar 07 Nov 2017, 20:49
Echelle pratiquée: HO
Prénom: yannick

Re: Help variante de "huit boutons, huit servos"

Publié: Sam 18 Nov 2017, 14:23 
bonjour,
Si je comprends bien le problème, vous voudriez commander vos itinéraires avec 4 boutons.
Les aiguilles sont-elles commandées avec des servos 5v.? Si, oui, il vaut bien mieux alimenter ces servos avec une alimentation séparée, pas celle de l'arduino. Les servos, comme tous les moteurs produisent nombre de parasites qui peuvent fausser la "réflexion de l'Arduino".
Le code est assez simple à mettre en oeuvre :
On lit chaque bouton,(digitalRead() )
On met les résultats dans des variables,
Et on teste chaque variable (avec des if() )
en français ça donne:
Si mon bouton B1 est appuyé : je positionne mon servo A1 pour faire rentrer mon train et là, on peut mettre des détecteurs d'occupation de voie qui renvoient l'information au TCO--> cela permet de ne s'occuper que des aiguilles d'entrée. Quand on veut sortir un train, un deuxième appui sur A1 permet de gérer les aiguilles sortantes (A5 à A8 ) de la même manière.
Pour qu'un bouton puisse gérer 2 commandes différentes ( ou plus d'ailleurs), il faut compter le nombre de fois qu'il a été appuyé ....
Sinon je ne voie pas comment gérer à la fois l'entrée et le sortie avec un seul appui sur les boutons... Vous pouvez vous aider de bibliothèques pour la gestion des boutons.
Choisir, c'est déjà renoncer!
Petitrain
Bavard
 
Messages: 52
Inscrit le: Ven 04 Juil 2014, 11:09
Localisation: Haut-Var
Âge: 66
Echelle pratiquée: HO
Prénom: Gérard
Club: CMMF Mouans-Sartout

Re: Help variante de "huit boutons, huit servos"

Publié: Sam 18 Nov 2017, 14:59 
bonjour petitrain et merci de l’intérêt que tu porte a mon problème, en faite j'ai lu un tas de tutos et autre sujet (a ce sujet) LOCODUINO, BUTTE DE TRIAGE...,mais tous parlent d'automatisme, hors, pour ma part, que les départs de trains soient ordonnés ou aléatoires, cela reste pour moi rébarbatif, JE veux jouer au train, et les excellents conseils de ARDUINO m'on permis de mettre au point deux de mes quatre TCO de mon réseau en court de réalisation, commandé analogiquement avec des aiguillages motorisés par des servo 9g, gérés par arduino, je n'ai pas de mérite car je n'ai fait que reprendre les schéma et programmes. mais je suis totalement novice, et j'ai beau essayer mais je ne comprend pas ce que je fais.
En fait, je voudrais ( j'aimerais) comme sur mon croquis, 4 boutons (un par voie de garage), pour exemple, j'envoi un train en coulisse, un système d'occupation de voie par détection de courant que j'ai monté, me signal par une LED au TCO quelle voie reste libre. disons la voie "3". avant que le train n'arrive sur l'aiguillage d'entrée, j'appuie sur le bouton 3, qui met en position A1 et A2 non dévie, et A3 dévié. Par la même action mon bouton 3 sert autant pour l'entrée que pour la sortie, c'est a dire qu'il positionne également A6 en dévié et A7 et A8 non dévié,
et là je me dit que je m'exprime peut être comme je voudrais faire un programme et c'est pas gagné!!!
Avatar de l’utilisateur
Le Garandiere
 
Messages: 25
Inscrit le: Mar 07 Nov 2017, 20:49
Echelle pratiquée: HO
Prénom: yannick

Re: Help variante de "huit boutons, huit servos"

Publié: Sam 18 Nov 2017, 19:26 
Oui, mais, en faisant comme tu l'expliques, tu ne va avoir qu'une voie de garage et non quatre , je m'explique :
supposons 2 ou 3 voies de libre et une voie occupée.
si tu veux mettre un convoi en voie 3, en appuyant sur ton bouton B3, tu fais les aiguilles d'entrée et de sortie, du coup, tu ne peux plus utiliser tes 2 autres voies de libre, car, en appuyant sur un autre bouton, tu vas détruire ton itinéraire de sortie.
A mon sens, il te faut considérer les itinéraires d'entrée d'une part et ceux de sortie d'autre part.
Le code n'est pas très complexe, si tu veux comprendre ce que tu fais, fais-le par étape.
- D'abord les boutons : moi, j'utilise une bibliothèque qui me simplifie le code:
elle s'appelle simpleBouton.h ,je l'ai trouvé sur le forum arduino en français et c'est dans la section tutoriel et cours. Cela va te permettre d'avoir un code qui prend en compte le rebond du bouton. C'est très facile à utiliser, allume une led avec . Quand le problème des boutons est acquis, tu passes à la suite.
- un crayon est une feuille et tu notes tous tes itineraires d'entrée et ceux de sortie indépendamment
Itinéraire voie 1 --> aiguille A1 déviée etc..
- Il faut aussi penser que la platine arduino a des entrée/sortie limitées en nombre. Dans ton cas, il faut faire l'état des lieux :
-Combien d'entrées pour mes boutons, pour mes détections.
-Combien de sorties pour mes servos, pour mes leds...
Comme tu n'as que quatre boutons, chaque bouton doit gérer 2 itinéraires: l'itinéraire d'entrée et celui de sortie.
Donc un appui sur le bouton doit simplement indiquer quel itinéraire arduino doit mettre en oeuvre et après c'est des conditions (if()) qui vont déterminer quel aiguillage doit bouger, les leds à allumer sur le T.C.O etc...
Cela se fait très facilement avec la librairie, car, comme elle gère les rebonds, tu ne risques pas d'avoir des résultats erronés.
Voilà, si tu veux comprendre ce que tu fais, il vaut mieux arrêter de copier des codes tout fait et faire le tien même si au début c'est un peu dur.
Si tu es d'accord, essaie de retrouver cette bibliothèque, elle est très bien faite et il y a plein d'exemples pour la prendre en main.
Bon courage.
Choisir, c'est déjà renoncer!
Petitrain
Bavard
 
Messages: 52
Inscrit le: Ven 04 Juil 2014, 11:09
Localisation: Haut-Var
Âge: 66
Echelle pratiquée: HO
Prénom: Gérard
Club: CMMF Mouans-Sartout

Re: Help variante de "huit boutons, huit servos"

Publié: Sam 18 Nov 2017, 21:21 
en fait voici ce que je recherche en images, 5 étapes distinctes suivant quel BP est appuyé, n'oubliez pas que je suis en analogique, je conduis un train a la foi, mais je suis preneur de tes connaissance petit train car moi du coté arduino, je n'en ai aucune.
ImageImageImageImageImage
Avatar de l’utilisateur
Le Garandiere
 
Messages: 25
Inscrit le: Mar 07 Nov 2017, 20:49
Echelle pratiquée: HO
Prénom: yannick

Re: Help variante de "huit boutons, huit servos"

Publié: Dim 19 Nov 2017, 09:40 
Le Garandiere a écrit:... je suis preneur de tes connaissance petit train car moi du coté arduino, je n'en ai aucune.


Et pourquoi ne pas essayer de les acquérir ?
Oui, je sais, la traditionnelle réponse sera sans doute : c'est trop compliqué pour moi...
Mais les choses restent compliquées jusqu'à ce qu'on décide de les comprendre.
Cela demande un peu d'effort comme toutes les techniques du modélisme ferroviaire (ballastage, câblage, mise en peinture, patine, moulage, impression 3D, kit laiton, etc.). Mais c'est faisable. :wink:
Pour en revenir à ton problème, Petitrain a raison ; il faut séparer itinéraire d'arrivée avec itinéraire de départ, et bien réfléchir sur papier à l'ordre des opérations à effectuer. Les travaux de PICO peuvent servir de bonne base pour la réalisation de ta gare car sa butte de triage est un peu l'équivalent.
Tu vas y arriver, je n'en doute pas.
Avatar de l’utilisateur
Arduino
Prolixe
 
Messages: 1656
Inscrit le: Mer 25 Sep 2013, 16:14

Re: Help variante de "huit boutons, huit servos"

Publié: Dim 19 Nov 2017, 10:24 
Jolis dessins, c'est tout à fait faisable ... mais supposons que tu fasses entrer un train voie 1, que tu le stokes puis que tu fasses entrer un autre train voie 3, tu vas détruire le précédant itinéraire pour construire celui de la voie 3... Pas très grave, me diras-tu, car quand je voudrais faire partir le train voie1, en appuyant sur le bouton je vais reconstruire l'itinéraire perdu. Vrai, mais tu fait travailler tes servos beaucoup plus que nécessaire!
Autre chose : si tu évalues les entrées/sorties qu'il faut pour ton projet,
- 8 sorties pour les servos.
- 5 entrées pour les boutons .
- 5 entrées pour les détecteurs d'occupation.
- 5 sorties pour les leds indicatrices sur le T.C.O. pour libre/occupée
- Éventuellement, 2 leds de plus pour savoir si on est sur un itineraire entrant ou sortant.
- les broches 0 et 1 (tx et rx) sur nano, uno,... doivent rester libres car elles servent à la communication avec l'ordi.
Du coup, ça nous fait 25 broches minimum ou 27. Si tu travailles avec des nanos, comme c'est mon cas, mais même avec un uno, il te faut séparer ton programme pour le mettre sur deux arduinos ou prendre un méga (une grosse machine pour un petit travail!!). Il y a aussi des méthodes pour économiser les broches (broches d'entrée analogiques pour les boutons, leds néo-pixels) mais ça va compliquer ton programme et si tu débutes, il vaut peut-être mieux pas.
Voilà, quelques réflexions suplémentaires pour ce Dimanche, tu vois, il vaut mieux bien réfléchir avant d'écrire du code, on gagne du temps...
Choisir, c'est déjà renoncer!
Petitrain
Bavard
 
Messages: 52
Inscrit le: Ven 04 Juil 2014, 11:09
Localisation: Haut-Var
Âge: 66
Echelle pratiquée: HO
Prénom: Gérard
Club: CMMF Mouans-Sartout

Re: Help variante de "huit boutons, huit servos"

Publié: Dim 19 Nov 2017, 13:20 
bonjour et merci de m’épauler, j'ai bien relu vos réponses,pour ce qui est des zones d'arrêt et détections je passe par ce système, cela fonctionne parfaitement,
Image
donc 5 connections de moins sur la carte, ne serait il pas possible de brancher les poussoirs comme pour ton système Arduino que j'utilise déjà, d'ou le titre du sujet, par contre et j'ai pas honte, petit train, mais uno je sais ce que sait (pas comment cela fonctionne ), mais nano, mega, bibliothèque, ... c'est du chinois :? avec une clef de 13 je fais ce que tu veux, mais avec un clavier, il y a du boulot,
Bref, pour ce qui est de détruire les itinéraires, vous avez raison, je n'avais pas vu cet aspect. mais pourquoi uniquement 5 poussoir si il faut séparer entrées et sorties, ça fais bien 10
Avatar de l’utilisateur
Le Garandiere
 
Messages: 25
Inscrit le: Mar 07 Nov 2017, 20:49
Echelle pratiquée: HO
Prénom: yannick

Re: Help variante de "huit boutons, huit servos"

Publié: Dim 19 Nov 2017, 14:30 
Je ne connais pas ce système de détection, mais si il va bien, autant le garder.
je vois sur le shémas, 5 inters, qu'est-ce que s'est?
Effectivement, 5 broches de gagnées
Pour répondre à ton questionnement : arduino, c'est toute une famille qui grandit d'année en année . Nano, méga ce sont des frères de l'uno, vas voir sur le site officiel toute la famille. Une bibliothèque c'est un code que quelqu'un met à la disposition de tout le monde, il permet de faire plus facilement une tache répétitive ou difficile . Par exemple, la bibliothèque dont je parle permet de gérer des boutons beaucoup plus facilement.
En informatique, le bouton standard c'est le bouton poussoir momentané 1rt:
quand on appuie il change d'état et quand on relâche il reprend son état antérieur. Avec ça, grâce à du code, on peut avoir le comportement que l'on veut et pour ton application, tu peux lui dire :
chaque fois que je vais t'appuyer dessus, tu vas mettre un de plus dans une variable;

const byte boutonB1 =2;
int compteurPourLaVoie1 = 0;

// déclaration de ma variable bouton sur la broche 2,
// déclaration de ma variable pour le nombre de presse du bouton.

if(digitalRead(boutonB1)){compteurPourLaVoie1 ++}
//si je lis la valeur de ma variable bouton1 et si elle est égale à 1(j'ai pressé mon bouton) alors j'incrémente mon autre variable de 1. Un deuxième appui mettra donc 1 de plus dans ma variable.

if(compteurPourLaVoie1>2){compteurPourLavoie1 = 0}
// Cette autre condition donne des limites à mon compteur
//la variable compteurPourLaVoie1 pourra donc être égale à 0,1 ou 2 et c'est tout !
Ton petit bouton te donne bien tes 3 positions :
=0 neutre, ne fait rien.
=1 met les aiguilles pour l'itinéraire d'entrée
=2 met les aiguilles pour l'itinéraire de sortie
Un bémol à tout ça, c'est que arduino travaille à 16 Mz, c'est à dire qu'il fait 16 millions d'instruction à la seconde--> quand toi tu aura appuyé 1 fois sur ton bouton, arduino va enregistrer 5 ou 6 fois un appui, c'est du au rebond mécanique des boutons . On ne passe pas de 0 à 5volt franchement mais en plusieurs étapes que nos pauvres sens ne peuvent saisir.
La solution, il faut faire plusieurs lectures du bouton séparée dans le temps et si elles donnent le même résultat, alors on considère l'état du bouton comme valide. CQFD il existe des bibliothèques toutes faites pour faire cela.
Arduino sur ce forum et locoduino ont fait des pages sur ce problème...
Je ne sais pas de quel système tu parles?
Choisir, c'est déjà renoncer!
Petitrain
Bavard
 
Messages: 52
Inscrit le: Ven 04 Juil 2014, 11:09
Localisation: Haut-Var
Âge: 66
Echelle pratiquée: HO
Prénom: Gérard
Club: CMMF Mouans-Sartout

Re: Help variante de "huit boutons, huit servos"

Publié: Lun 20 Nov 2017, 11:14 
Bonjour, les 5 inter servent à réalimenter la zone d'arrêt et donc de faire repartir le convoie.
bon ben je suis a la ramasse! donnez moi la main SVP pour compiler car je sais ce qu'il faut faire, mais absolument pas comment.

1) à l'allumage du système ou reset
- lecture de toutes les positions des aiguillages (entrée et sortie)
- positionnement des 8 aiguillages entrées et sorties en voie direct
-lecture de l’état des sorties LED
-mise à l'état 1 des sorties LV2, 4, 6, 8, et LV9, 11, 13, 15
-mise a l'état 0 des sorties LV1, 3, 5, 7, et LV10, 12, 14,15

2) si je presse le bouton 1 (1 fois)
-lecture de la position aiguillage A1
-positionnement de A1 en voie DEVIEE (accès voie 1)
-lecture de l’état des sorties LED
-mise à l'état 1 de LV1
-mise à l'état 0 de LV2
-mise à l'état INZ de LV3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16

3) si je presse le bouton 1, (2 fois)
-lecture de la position aiguillage A5
-positionnement de A5 en voie DIRECT (sortie voie 1)
-lecture de la position aiguillage A6
-positionnement de A6 en voie DIRECT
-lecture de la position aiguillage A7
-positionnement de A7 en voie DIRECT
-lecture de la position aiguillage A8
-positionnement de A8 en voie DIRECT
-lecture de l’état des sorties LED
-mise à l'état 1 de LV9, 11, 13, 15
-mise à l'état 0 de LV10, 12, 14, 16

4) si je presse le bouton 2, (1 fois)
-lecture de la position aiguillage A1
-positionnement de A1 en voie DIRECT
-lecture de la position de l'aiguillage A2
-positionnement de A2 en voie DEVIEE (accès voie 2)
-lecture de l’état des sorties LED
-mise a l'état 1 de LV2 et LV3
-mise à l'état 0 de LV1 et LV4
-mise à l'état INZ de LV5, 6, 7, 8

5) si je presse le bouton 2, (2 fois)
-lecture de la position de aiguillage A5
-positionnement de A5 en voie DEVIEE (sortie voie 2)
-lecture de la position aiguillage A6
-positionnement de A6 en voie DIRECT
-lecture de la position aiguillage A7
-positionnement de A7 en voie DIRECT
-lecture de la position aiguillage A8
-positionnement de A8 en voie DIRECT
-lecture de l’état des sorties LED
-mise à l'état 1 de LV10, 11, 13, 15
-mise à l'état 0 de LV9, 12, 14, 16

6) si je presse le bouton 3, (1 fois)
-lecture de la position aiguillage A1
-positionnement de A1 en voie DIRECT
-lecture de la position de l'aiguillage A2
-positionnement de A2 en voie DIRECT
-lecture de la position de l'aiguillage A3
-positionnement de A3 en voie DEVIEE (accès voie 3)
-lecture de l’état des sorties LED
-mise à l'état 1 de LV2, 4, et LV5
-mise à l'état 0 de LV1, 3 et LV6
-mise à l'état INZ de LV7 et 8

7) si je presse le bouton 3, (2 fois)
-lecture de la position aiguillage A6
-positionnement de A6 en voie DEVIEE (sortie voie 3)
-lecture de la position de l'aiguillage A7
-positionnement de A7 en voie DIRECT
-lecture de la position de l'aiguillage A8
-positionnement de A8 en voie DIRECT
-lecture de l’état des sorties LED
-mise à l'état 1 de LV12, 13, et LV15
-mise à l'état 0 de LV11, 14 et LV16
-mise à l'état INZ de LV9 et LV10
etc etc
:moi: c'est bien ça?
Avatar de l’utilisateur
Le Garandiere
 
Messages: 25
Inscrit le: Mar 07 Nov 2017, 20:49
Echelle pratiquée: HO
Prénom: yannick

Re: Help variante de "huit boutons, huit servos"

Publié: Lun 20 Nov 2017, 13:31 
Bonjour,
Ça travaille dur les dimanches!!!
Il me semble que votre problème, c'est écrire le code qui va bien dans l'Arduino...
Mais, est-ce que le branchement à l'Arduino est acquis, de mon coté, je ne sais toujours pas ce qui est branché à l'Arduino et qu'est-ce qu'il doit faire.
Un petit croquis des branchements électriques à l'Arduino serait le bienvenu ( même un croquis fait main) et si vous avez un début de code fait dans l'IDE d'Arduino, mettez le entre des balises code ( ce sont les balises qui sont au dessus de l'espace ou on écrit).
On va y arriver, mais pour écrire le code, il faut d'abord être bien clair sur le circuit électrique et ce qu'on veut faire.
Je regarde de mon coté pour faire un plan de comment je vois les choses.
Avez-vous trouvé la bibliothèque simpleBouton.h ?
Choisir, c'est déjà renoncer!
Petitrain
Bavard
 
Messages: 52
Inscrit le: Ven 04 Juil 2014, 11:09
Localisation: Haut-Var
Âge: 66
Echelle pratiquée: HO
Prénom: Gérard
Club: CMMF Mouans-Sartout

Suivant

Retour vers Arduino

Qui est en ligne ?

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