positionnement avec un moteur pas à pas

zeltron

Senior Member
OK : comment on commute le courant sur ces voies ?
Faut-il prévoir un menu pour ça ? Un inter pour chaque voie ?
Ou alors il y a des scénarii d'utilisation comme pour les segments placés autour de la plaque tournante ?
par un relais ou autre transistors etc si vous avez des idées,,,
le relais à le merite d'être isolé de l'alim

oui un menu c'est un plus c'est pour cela aussi que le clavier me plaisait bien
iil permet de les commuter par leurs numéros

les scenarios c'est surtout pour le circuit principal ce sont les itinéraires possibles
qui oblige une commande logique des aiguillages
avant il y avait une matrice à diodes qui permettait de commander plusieurs aiguilles en même temps et sans retour suivant différent itinéraire logique
mais la il faut commander les aiguillages séquentielement à cause de leurs consommations
 

zeltron

Senior Member
je parle de ça:


Je polémique nullement! J'ai proposé une solution en particulier pour l'initialisation précise de la position des voies avec un système très simple dont j'ai l'expérience. J'ai également une certaine expérience des moteurs pas à pas.
On me répond que c'est la pire solution. OK .
moi je n'ai jamais dit ça et je trouve injuste de me passer de votre experience pour les dérives de ce poste dont je ne suis pas responsable
je suis pret à utiliser n'importe quoi pour vu que ça marchote car je suis conscient que sans vos aide il faudra me contenter de "ça marchote"
les seuls composants que je n'ai pas c'est l'encodeur et la tablette...

ce qui se passe c'est qu'entre vous deux je ne sais plus quoi choisir ni faire...
 

BESQUEUT

Senior Member
ce qui se passe c'est qu'entre vous deux je ne sais plus quoi choisir ni faire...
Faites plaisir à PieM : ajoutez un potar à votre montage dédié au réglage fin du moteur PAP.
Pour les autres réglages : soit vous conservez un clavier si ça vous plait et si vous avez la place, soit vous le remplacez par un encodeur si vous souhaitez rester très compact.
 

BESQUEUT

Senior Member
Bon.. Voici ma vision du cahier des charges.
Les menus sont optimisés pour un minimum de pressions de touches, spécialement dans les tâches répétitives.
Code:
Fonctionnement du champ de saisie numérique :
---------------------------------------------
[Choix:__]

Il y a 2 chiffres.
La frappe d'un premier chiffre l'affiche à droite.
Exemple : touche "3"
[Choix:_3]

La frappe d'un second chiffre multiplie par 10 et ajoute le chiffre
Exemple : touche "4"
[Choix:34]

On peut continuer à frapper des chiffres, mais le chiffre de gauche est perdu à chaque fois.
Exemple : touche "5"
[Choix:45]
Exemple : touche "6"
[Choix:56]

La touche Val valide la valeur numérique saisie.
Si le nombre n'est pas possible, on revient à l'affichage __
Le choix _0 est équivalent à l'affichage __
La validation de la valeur __ ou _0 ramène systématiquement au menu principal E01.



Numérotation des voies :
------------------------
Les voies N°1 et N°2 sont les voies d'entrée sur le pont
La voie N°3 est la voie de sortie.

Les voies autour du pont sont numérotées entre 4 et N.

Les "autres voies" (au delà de N) sont numérotées à la suite.
Le nombre de voies N au voisinage du pont est défini par programme et n'est pas réglable.


+-------+
| MENUS |
+-------+

Menu lancé systématiquement à la mise sous tension pour attendre la confirmation de l'opérateur avant de procéder à l'initialisation.

[Menu N° I01     ]
[INITIALISATION..]
[APPUYEZ SUR VAL ]
Un seul choix possible [Val] qui conduit au menu E01

[Menu N° E01     ]
[1:ROTO  2:AIGUIL]
[3:REGL  Choix:__]

1==> Menu R01 (exploitation de la ROTOnde)
2==> Menu A01 (exploitation des aiguillages)
3==> Menu I02 (Initialisation et étalonnage)



[Menu N° I02     ]
[1:INIT  2:ETALON]
[3:EXPL  Choix:__]

1==> Menu I01 (initialisation de la ROTOnde)
2==> Menu I03 (étalonnage des voies)
3==> Menu E01 (Exploitation)



[Menu N° I03     ]
[Etalon.. Voie 01]
[Cor:EXP Choix:__]

Nombre==> modification du choix
Val   ==> validation du numéro de voie qui met à jour la ligne 1
Cor   ==> Enregistrement du réglage et retour au menu E01
Tant que ce menu est affiché, le potentiomètre permet d'ajuster la position de la rotonde.



[Menu N° R01     ]
[Voie en cours 01]
[Voie choisie :__]

Nombre==> modification du choix
Val   ==> validation du numéro de voie qui met à jour la ligne 1

Dès qu'une voie est validée :
- Tous les segments de voie au voisinage du pont sont mis hors tension
- Le pont est amené en face de la voie choisie
- les segments de voie du pont et de la voie choisie sont mis sous tension.


Si la voie n'existe pas, on va au Menu R02

[Menu N° R02     ]
[Voie inconnue 77]
[Voie choisie :__]



Si la voie n'est pas au voisinage du ponts, on va au Menu R03

[Menu N° R03     ]
[Autre Voie    35]
[Voie choisie :__]

Dès qu'une voie est validée :
- Tous les segments de voie au voisinage du pont sont mis hors tension
- la voie choisie est mise sous tension.
- si cette voie correspond à une des voies d'entrée ou de sortie, cette voie est également mise sous tension
- si le pont est en face de la voie en question du segment du pont est également mis sous tension.



[Menu N° A01     ]
[Aiguil 12 Etat=G]
[Cor ou  choix:__]

Nombre==> modification du choix
Val   ==> validation du numéro de voie qui met à jour la ligne 1

Tant que ce menu est affiché, la touche [Cor] permet de basculer l'aiguille de la position Gauche à Droite.

[Menu N° A02     ]
[Aiguil 12 Etat=D]
[Chg ou  choix:__]
 
Last edited:

zeltron

Senior Member
beau travail bien complet! merci
il y a juste cette phrase qui me choque
- Tous les segments de voie au voisinage du pont sont mis hors tension

les voies sont en permanences par défauts hors tensions
il ne doit y"en avoir qu'une d'alimentée celle choisie apres placement du pont
 

PieM

Senior Member
Faites plaisir à PieM : ajoutez un potar à votre montage dédié au réglage fin du moteur PAP.
traduction: achetez une sucette au gamin il nous foutra la paix.
après le
Vous me rappeler Bedos dans son sketch du môme qui s'ennuie avec son train électrique payé par Papa...
on touche le fond !
 

dje8269

Senior Member
Yop tout le monde ,

Bon allez , les experts , ca suffit ; Je crois qu'on a compris vos points de vue et vos divergences ;

Ma maigre expérience, me dit , qu'un encodeur incremental rotatif , c'est beau , c'est pratique ,mais c'est un peu pechu a mettre en oeuvre, on la vu avec le compte a rebours pour les enfants ; j'ai quand même bien galérer ; donc si Zeltron veut tout comprendre, il faut qu'il sache qu'il y a beaucoup de travail .

Ma vision des choses ?

Je connais pas trop les trains miniatures, mais j'imagine bien une console faite maison , avec le clavier un ecran voir deux , des potars , des BP , avec des petites étiquettes a la DYMO dessus, un petit poste de pilotage quoi .

Le clavier c'est mieux pour rentrer des chiffres qu'un encodeur ou un potar ( n° de voie par exemple)
Un encodeur c'est mieux , pour naviguer dans un menu qu'un clavier ou qu'un potar grâce a son absence d'effet mémoire
un potar c'est mieux pour un réglage fin et precis qu'un clavier et plus facile qu'un encodeur ( pour al vitesse par exemple, ou l'effet mémoire est utile) ou pas gênant;

Chaque choix a ces avantages et ses inconvénients, je pense que tout est faisable et chaque problème contournable.

Donc vous vous prenez la tête et vous envoyez des petits pics depuis je sais pas combien de post , pour votre façon de voir les choses . Vous êtes deux gros piliers du fofo, et sans vous autant vous dire que ce serait pas la joie, et les novices comme zeltron ou moi, ne trouverais aucune réponse a leurs questions ;

Je pense qu'il est temps de stopper ca , et de demander a zeltron comment il verrait les choses . a vouloir trop anticiper, ou voir trop loin, Le projet de Zeltron n'avance pas, a un moment faut se jeter a l'eau, on verra au fil de l'eau les problemes.

Voila moi je propose un pupitre avec plein d'éléments qui pourront toujours servir avec des évolutions ; des BP , un ou deux encodeur , des potars , un clavier et un écran .
 

BESQUEUT

Senior Member
Autre proposition d'IHM, façon oscilloscope :
Pas de clavier
1 potar pour choisir la voie,
1 potar pour choisir l'aiguillage
1 potar pour le réglage fin du Pap
1 bouton de validation
1 bouton pour la bascule des aiguillages
etc...
Un LCD fixe qui donne :
Le numéro de la voie en cours
Le numéro de l'aiguillage en cours et son état
etc...
On peut très facilement basculer un aiguillage, manœuvrer la loco, faire tourner le pont, basculer un autre aiguillage, etc...
Sans avoir à changer de menu entre...

Le programme nécessite de veiller simultanément toutes les entrées possibles (et éventuellement des sollicitations externes)
C'est sans doute un peu plus pointu qu'une programmation linéaire.
Mais l'IHM, un peu "retro" est très commode.
 

BESQUEUT

Senior Member
il y a juste cette phrase qui me choque
- Tous les segments de voie au voisinage du pont sont mis hors tension

les voies sont en permanences par défauts hors tensions
il ne doit y"en avoir qu'une d'alimentée celle choisie apres placement du pont
Ben oui : c'est juste une simplification de programmation
On pourrait aussi écrire :
Mettre hors tension les voies qui sont sous tension
Et un peu plus loin :
Mettre sous tension la ou les voies qui doivent l'être.

Ou encore :
Changer la liste des voies sous tension vers la nouvelle liste des voies sous tension.

ce qui suppose qu'on ne change pas les voies qui n'étaient pas sous tension et qui ne doivent toujours pas l'être.
Ca complique pas mal le programme.

En général, il est plus simple de s'assurer que tout est hors tension,
puis de mettre sous tension uniquement ce qui doit l'être.

En outre, si vous faites tourner le pont en face d'une voie, c'est très probablement que vous allez y ranger la loco.
Donc c'est inutile de demander à l'opérateur de choisir. Dès que le pont est en place on peu rétablir l'alimentation.

Par contre il y a ambiguïté sur le terme "mettre sous tension". (et il faudra le préciser dans le cahier des charge"
Comprendre par la "relier à l'alimentation pwm"

C'est a ce niveau que l'on décide la mise sous tension effective et son sens.

Suis-je clair ?


Code:
Fonctionnement du champ de saisie numérique :
---------------------------------------------
[Choix:__]

Il y a 2 chiffres.
La frappe d'un premier chiffre l'affiche à droite.
Exemple : touche "3"
[Choix:_3]

La frappe d'un second chiffre multiplie par 10 et ajoute le chiffre
Exemple : touche "4"
[Choix:34]

On peut continuer à frapper des chiffres, mais le chiffre de gauche est perdu à chaque fois.
Exemple : touche "5"
[Choix:45]
Exemple : touche "6"
[Choix:56]

La touche Val valide la valeur numérique saisie.
Si le nombre n'est pas possible, on revient à l'affichage __
Le choix _0 est équivalent à l'affichage __
La validation de la valeur __ ou _0 ramène systématiquement au menu principal E01.



Numérotation des voies :
------------------------
Les voies N°1 et N°2 sont les voies d'entrée sur le pont
La voie N°3 est la voie de sortie.

Les voies autour du pont sont numérotées entre 4 et N.

Les "autres voies" (au delà de N) sont numérotées à la suite.
Le nombre de voies N au voisinage du pont est défini par programme et n'est pas réglable.



Gestion de l'alimentation
----------------------------
C'est au niveau du module alimentation PWM que l'on règle la puissance, le sens et la mise sous tension effective.
L'expression "mettre sous tension" doit être comprise comme "relier au module alimentation pwm"


+-------+
| MENUS |
+-------+

Menu lancé systématiquement à la mise sous tension pour attendre la confirmation de l'opérateur avant de procéder à l'initialisation.

[Menu N° I01     ]
[INITIALISATION..]
[APPUYEZ SUR VAL ]
Un seul choix possible [Val] qui conduit au menu E01

[Menu N° E01     ]
[1:ROTO  2:AIGUIL]
[3:REGL  Choix:__]

1==> Menu R01 (exploitation de la ROTOnde)
2==> Menu A01 (exploitation des aiguillages)
3==> Menu I02 (Initialisation et étalonnage)



[Menu N° I02     ]
[1:INIT  2:ETALON]
[3:EXPL  Choix:__]

1==> Menu I01 (initialisation de la ROTOnde)
2==> Menu I03 (étalonnage des voies)
3==> Menu E01 (Exploitation)



[Menu N° I03     ]
[Etalon.. Voie 01]
[Cor:EXP Choix:__]

Nombre==> modification du choix
Val   ==> validation du numéro de voie qui met à jour la ligne 1
Cor   ==> Enregistrement du réglage et retour au menu E01
Tant que ce menu est affiché, le potentiomètre permet d'ajuster la position de la rotonde.



[Menu N° R01     ]
[Voie en cours 01]
[Voie choisie :__]

Nombre==> modification du choix
Val   ==> validation du numéro de voie qui met à jour la ligne 1

Dès qu'une voie est validée :
- Tous les segments de voie au voisinage du pont sont mis hors tension
- Le pont est amené en face de la voie choisie
- les segments de voie du pont et de la voie choisie sont mis sous tension.


Si la voie n'existe pas, on va au Menu R02

[Menu N° R02     ]
[Voie inconnue 77]
[Voie choisie :__]



Si la voie n'est pas au voisinage du ponts, on va au Menu R03

[Menu N° R03     ]
[Autre Voie    35]
[Voie choisie :__]

Dès qu'une voie est validée :
- Tous les segments de voie au voisinage du pont sont mis hors tension
- la voie choisie est mise sous tension.
- si cette voie correspond à une des voies d'entrée ou de sortie, cette voie est également mise sous tension
- si le pont est en face de la voie en question du segment du pont est également mis sous tension.



[Menu N° A01     ]
[Aiguil 12 Etat=G]
[Cor ou  choix:__]

Nombre==> modification du choix
Val   ==> validation du numéro de voie qui met à jour la ligne 1

Tant que ce menu est affiché, la touche [Cor] permet de basculer l'aiguille de la position Gauche à Droite.

[Menu N° A02     ]
[Aiguil 12 Etat=D]
[Chg ou  choix:__]
 
Last edited:

zeltron

Senior Member
dje à bien résumé la situation je pense comme lui à 100%

POST 371 oui c'est clair si c'est pour des astuces de programmation...
pour la commutation des voies je pense à des relais activés par la sortie du picaxe
sortie à 0 commande relais voies hors tension
sortie à 1 voie recevant la commande pwm

idem pour les aiguillages sauf que c'est un peu plus compliqué et vraiment pas certain d'un besoin de relais

il faut une partie mémorisé/une autre fugitive d'une seconde
-memorisation pour une visu led ou pour le picaxe il doit se souvenir dans quel position est l'aiguille
et donc il faut une phase d'initialisation (si besoin itineraire)
exemple au début on envoie une commande tous à gauche d'une facon séquentiel

-et une partie fugitive puisqu'ils ne supportent pas une alim permanente

finalement je me demande si c'est un truc de gamin....
 

BESQUEUT

Senior Member
Voila moi je propose un pupitre avec plein d'éléments qui pourront toujours servir avec des évolutions ; des BP , un ou deux encodeur , des potars , un clavier et un écran .
La façon d'écrire le programme est très dépendante des outils de saisie et de la façon dont on s'en sert.
Proposez une IHM complète : comment on gère chaque chose, qu'est ce qui s'affiche, qu'est ce qui doit être pris en compte simultanément...
J'ai fait une proposition d'IHM sur la base d'un clavier qui peut être géré de façon très séquentielle sans nécessiter trop souvent d'avoir recours à un menu.
Votre proposition ressemble à mon post #370, mais soit on veut rester en programmation "linéaire" et il faut passer par un menu avant d'utiliser un périphérique de saisie (peu ergonomique), soit il faut gérer simultanément tous les périphériques de saisie.
Comment voyez-vous les choses ?
 

dje8269

Senior Member
Comment voyez-vous les choses ?
Perso , j'aurais gerer les commandes de saisies indépendamment . Si j'avais un projet en tête de train miniatures, j'aurais fais un pupitre . Mais je n'ai pas la vision des problémes, ou des difficultés que cela engendrerait .

Par exemple , si l'écran affiche de rentrer un chiffre , alors on utilise le clavier , si l'ecran affiche un menu , on utilise l'encodeur . rien n'empeche d'avoir des BP en plus du clavier qui lui est juste une interface avec des chiffres ;Mais ca reste un choix personnel

dans ce genre en plus moderne
images.jpg
 

zeltron

Senior Member
ok avec dje
Perso , j'aurais gerer les commandes de saisies indépendamment . Si j'avais un projet en tête de train miniatures, j'aurais fais un pupitre . Mais je n'ai pas la vision des problémes, ou des difficultés que cela engendrerait .

Par exemple , si l'écran affiche de rentrer un chiffre , alors on utilise le clavier , si l'ecran affiche un menu , on utilise l'encodeur . rien n'empeche d'avoir des BP en plus du clavier qui lui est juste une interface avec des chiffres ;Mais ca reste un choix personnel

dans ce genre en plus moderne
View attachment 17780
c'est pour cela que je n'ai pas d'idée arreté sur le cahier des charges
j'avais l'intention d'adapter le pupitre
mais vu les remarques qu'il faut tout prendre en compte pour la structure du soft j'ai décris tout ce que je pouvais
et semblais être important à prendre en compte...
je pensais sans l'expérience de la programmation il est vrai
que le soft serait plus facile à gérer et surtout à modifier que le hard

et finalement à vous écouter je finis par penser le contraire
c'est pour celà que je ne sais plus par quel bout le prendre!
surtout je ne pas envie de vous refiler le bébé sans y participer
je pensais pouvoir faire des bride de programme et comprendre petit à petit
mais s'il faut sortir la grosse artierie en un seul morceau parce que la structure ne sera plus adaptable
la je suis largué
je continue de préférer le clavier et le potar
mais il à aucun soucis pour encodeur (ce qui me fait flipper c'est que dje dit c'est chaud)ou autre bp etc j'ai de la place sur le pupitre...

oui ça reste ok pour les 2803 mais n'empeche qu'il faut un maintien des infos soit par soft ou bascule ou autre...
surtout comme décrit DJE avec un tableau de commande et une visu par led
 
Last edited:

dje8269

Senior Member
je pensais sans l'expérience de la programmation il est vrai
que le soft serait plus facile à gérer et surtout à modifier que le hard
En fait ca depend ;

On peut quasiment tout faire en soft ( avec plus ou moins de complexité) , on ne peut pas tous faire en hard . Avec un projet comme le tiens en avance de phase , il est bien de simplifier a vec les deux . le hard peut très largement simplifié le soft par la suite . et le soft simplifie le hard aussi vu qu'il y a un µC qu ifais le job .

Le tout est de déterminé ce que toi tu vois pour piloter ce qu'il y as a piloter . Ce que tu trouve pratique ou non , beau ou pas , utile ou non .
Mais je sais que c'est delicat quand on ne connais pas le soft ! et que deux experts se tire la bourre !

j'espere que PieM reviendras dans la course quand même , une fois ton choix etablie
 

zeltron

Senior Member
pour moi à choisir
c'est clavier pour les chiffres
bp poussoirs auxiliares pour valider des menus ou autre si le clavier n'est pas adaptée
potar pour la commande pont/alims rapport cyclique/polarité
et si tout ça engendre un petit problême d'utilisation ou de ctrl du soft, encodeur...


j'ai voulu commencer par le clavier ça n'a pas été une franche réussite du point de vue de ce poste
j'ai alors assayé de completer le soft en integrant le clavier
vous m'avez dit que c'était l'exemple à pas faire...

alors maintenant par quoi commencer/continuer???
 
Last edited:

BESQUEUT

Senior Member
Par exemple , si l'écran affiche de rentrer un chiffre , alors on utilise le clavier , si l'ecran affiche un menu , on utilise l'encodeur . rien n'empeche d'avoir des BP en plus du clavier qui lui est juste une interface avec des chiffres ;
Cette description est trop générique pour juger de sa pertinence. Il faudrait décrire précisément ce qui est affiché à chaque étape, quels périphériques sont accessibles ou pas, et quelles actions sont lancée.
Si un seul périphérique est accessible à la fois, la programmation est plus simple. Mais ce sera difficile d'obtenir une ergonomie simple (qui ne passe pas par des tas d'actions dans des menus)

Un BP en plus du clavier qui est déjà un ensemble de BP ?
L'utilisateur risque de ne plus savoir s'il doit valider sur le clavier ou sur le BP...
 

BESQUEUT

Senior Member
c'est clavier pour les chiffres
bp poussoirs auxiliares pour valider des menus ou autre si le clavier n'est pas adaptée
C'est a vous de dire si la touche "VAL" du clavier est adaptée ou pas pour valider une saisie.
Ergonomiquement, une touche d'un clavier ou un BP, c'est la même chose. Il faut juste savoir de combien de touches on a besoin.
Et ça, c'est l'enchaînement des actions qui permet de le dire...

potar pour la commande pont/alims rapport cyclique/polarité.
Un potar pour le réglage fin du pont.

Un autre pour la puissance et la polarité de la source de courant, mais sur un module totalement séparé.

Merci d'être précis, sinon on n'en sortira jamais.

C'est conforme à ma proposition #371.
Dès que c'est validé, on pourra écrire le programme en commençant par la gestion des menus.
 

zeltron

Senior Member
oui ok avec le post 371
sauf que je me demande s'il faudrait pas ajouter au menu un retournement direct de la loco 180°
(entrée en voie 1 ou 2 et sortie en voie 3 directement
et offrir l'option du sens de rotation du pont horaire/antihoraire
comme ça l'operateur choisi s'il veut sortir en marche avant ou arriere...

mais c'est la cerise sur le gateau!
 

BESQUEUT

Senior Member
oui ok avec le post 371
sauf que je me demande s'il faudrait pas ajouter au menu un retournement direct de la loco 180°
(entrée en voie 1 ou 2 et sortie en voie 3 directement!
Ca c'est déjà possible avec le cahier des charges indiqué.
et offrir l'option du sens de rotation du pont horaire/antihoraire
comme ça l'operateur choisi s'il veut sortir en marche avant ou arriere...
Si on ne veut pas compliquer les menus, un inter à bascule ?

Mais il faut savoir s'il doit être pris en compte ou pas pendant la rotation du plateau, genre :
- c'est parti... à M...e je voulais l'autre sens... clac je bascule l'inter...

Remarquez bien que c'est pareil pour tout le reste...
Est-il autorisé de préparer la prochaine position de la plaque tournante (sans valider) pendant qu'elle est en mouvement ?
Si on valide pendant le mouvement, doit-on immédiatement changer l'objectif ?
Est-il autorisé de manipuler les aiguillages pendant que la plaque tourne ?
 

BESQUEUT

Senior Member
va pour l'inter c'est super comme ça
et pour le reste il faut aller au plus simple à programmer
Code:
Fonctionnement du champ de saisie numérique :
---------------------------------------------
[Choix:__]

Il y a 2 chiffres.
La frappe d'un premier chiffre l'affiche à droite.
Exemple : touche "3"
[Choix:_3]

La frappe d'un second chiffre multiplie par 10 et ajoute le chiffre
Exemple : touche "4"
[Choix:34]

On peut continuer à frapper des chiffres, mais le chiffre de gauche est perdu à chaque fois.
Exemple : touche "5"
[Choix:45]
Exemple : touche "6"
[Choix:56]

La touche Val valide la valeur numérique saisie.
Si le nombre n'est pas possible, on revient à l'affichage __
Le choix _0 est équivalent à l'affichage __
La validation de la valeur __ ou _0 ramène systématiquement au menu principal E01.



Numérotation des voies :
------------------------
Les voies N°1 et N°2 sont les voies d'entrée sur le pont
La voie N°3 est la voie de sortie.

Les voies autour du pont sont numérotées entre 4 et N.

Les "autres voies" (au delà de N) sont numérotées à la suite.
Le nombre de voies N au voisinage du pont est défini par programme et n'est pas réglable.



Gestion de l'alimentation
----------------------------
C'est au niveau du module alimentation PWM que l'on règle la puissance, le sens et la mise sous tension effective.
L'expression "mettre sous tension" doit être comprise comme "relier au module alimentation pwm"


+-------+
| MENUS |
+-------+

Menu lancé systématiquement à la mise sous tension pour attendre la confirmation de l'opérateur avant de procéder à l'initialisation.

[Menu N° I01     ]
[INITIALISATION..]
[APPUYEZ SUR VAL ]
Un seul choix possible [Val] qui conduit au menu E01

[Menu N° E01     ]
[1:ROTO  2:AIGUIL]
[3:REGL  Choix:__]

1==> Menu R01 (exploitation de la ROTOnde)
2==> Menu A01 (exploitation des aiguillages)
3==> Menu I02 (Initialisation et étalonnage)



[Menu N° I02     ]
[1:INIT  2:ETALON]
[3:EXPL  Choix:__]

1==> Menu I01 (initialisation de la ROTOnde)
2==> Menu I03 (étalonnage des voies)
3==> Menu E01 (Exploitation)



[Menu N° I03     ]
[Etalon.. Voie 01]
[Cor:EXP Choix:__]

Nombre==> modification du choix
Val   ==> validation du numéro de voie qui met à jour la ligne 1
Cor   ==> Enregistrement du réglage et retour au menu E01
Tant que ce menu est affiché, le potentiomètre permet d'ajuster la position de la rotonde.



[Menu N° R01     ]
[Voie en cours 01]
[Voie choisie :__]

Nombre==> modification du choix
Val   ==> validation du numéro de voie qui met à jour la ligne 1

Dès qu'une voie est validée :
- Tous les segments de voie au voisinage du pont sont mis hors tension
- Le pont est amené en face de la voie choisie
- les segments de voie du pont et de la voie choisie sont mis sous tension.


Si la voie n'existe pas, on va au Menu R02

[Menu N° R02     ]
[Voie inconnue 77]
[Voie choisie :__]



Si la voie n'est pas au voisinage du ponts, on va au Menu R03

[Menu N° R03     ]
[Autre Voie    35]
[Voie choisie :__]

Dès qu'une voie est validée :
- Tous les segments de voie au voisinage du pont sont mis hors tension
- la voie choisie est mise sous tension.
- si cette voie correspond à une des voies d'entrée ou de sortie, cette voie est également mise sous tension
- si le pont est en face de la voie en question du segment du pont est également mis sous tension.



[Menu N° A01     ]
[Aiguil 12 Etat=G]
[Cor ou  choix:__]

Nombre==> modification du choix
Val   ==> validation du numéro de voie qui met à jour la ligne 1

Tant que ce menu est affiché, la touche [Cor] permet de basculer l'aiguille de la position Gauche à Droite.

[Menu N° A02     ]
[Aiguil 12 Etat=D]
[Chg ou  choix:__]


Sens du mouvement sur la pont
------------------------------------
Un interrupteur à bascule permet de choisir le sens du mouvement pour le segment de voie placé sur le pont tournant, ceci par rapport à un repère visuel placé sur le pont (flèche ?)
cet interrupteur est pris en compte pour définir quelle extrémité du pont tournant doit être placée en face de la voie sélectionnée.

Si cet interrupteur est manipulé pendant la rotation du pont, la dernière modification effectuée sera prise en compte au plus tard dès la fin du mouvement, donc avant mise sous tension de la voie du pont.

Actions simultanées
----------------------
Pendant que la plaque est en rotation (hors initialisation et étalonnage) l'idéal est qu'il soit possible d'utiliser la clavier pour préparer la prochaine position du pont ou manipuler les aiguillages.
De même, il serait apprécié que le basculement de l'inter soit détecté, et modifie la destination en conséquence.
Voili, voilou : nouvelle version du cahier des charges...
 
Last edited:

BESQUEUT

Senior Member
Logiquement, on commence par afficher les différents menus et vérifier que ça s'enchaîne bien.
Si il y a des contraintes particulières, c'est au développeur de trouver la solution technique (informatique) idoine...
Avec un cahier des charges complet, ça limite les risques d'avoir à tout reprendre parce qu'on n'avait pas pensé à une interaction.
En particulier, le développeur devra faire un choix dès le départ vis à vis de la dernière ligne du cahier des charges. Le diable se cache dans les détails...

Merci de préciser quels sont les numéros des touches Cor et Val (ou C et V sur certains claviers) ?
10=Cor 11=Val ou l'inverse ?
Si c'est écrit autre chose, ce serait bien de le préciser.
 

BESQUEUT

Senior Member
c'est ce clavier et les touches 10 et 12 de dispo
apres au choix POUR VALID ET CORRECTION
Disons * pour [Cor] ou pour changer la position de l'aiguillage
et # pour Valider

Dans les menus, ça permet de gagner 2 caractères à chaque fois...
 

BESQUEUT

Senior Member
alors la structure du programme principal serait ça?
View attachment 17788
Je verrais plutôt un truc du genre :
Code:
SYMBOL Menu_INIT=0
SYMBOL Menu_ETAL=1
SYMBOL Menu_EXPL=2
SYMBOL Menu_ROTO=3
SYMBOL Menu_AIGU=4
SYMBOL Menu_REGL=5
SYMBOL LeMenu=b5
'...


'Text sur display
serout B.7,N2400_16,(254,128,"INITIALISATION..")
serout B.7,N2400_16,(254,192,"APPUYEZ SUR VAL ")
LeMenu=Menu_INIT





Do
	Do 
		readadc a.0 , touche    ' On detecte un appui
	loop while touche > 250 

	for compteur = 0 to 19 		' on mesure 20 fois
		readadc a.0 , touche    	' On lit la touche appuyee
		addition = addition + touche	' on fait la somme
	next

	touche = addition / 20
	addition = 0
	
	select case touche  'on reaffecte aux touches leurs vraies valeurs sauf # et *
   	case > 133 : touche = 1
   	case > 128 : touche = 2
   	case > 122 : touche = 3
   	case > 111 : touche = 4
   	case > 105 : touche = 5
   	case > 98 : touche = 6
   	case > 81 : touche = 7    
   	case > 71 : touche = 8
   	case > 60 : touche = 9
   	case > 35 : touche = 11 'correction
   	case > 20 : touche = 0
   	case > 0 : touche = 12 'validation
   	endselect

	select case touche
    	case = 11               'correction dernier chiffre
      		nombre = nombre/10   
   		case < 240              'un chiffre valide est rentre
      		nombre = nombre*10 + touche 'ajout du chiffre

  	case = 12
		gosub ChoixValide
	endselect


'puis on attend que les touches soient relachees pour eviter les repetitions
   	do
   		readadc a.0 , touche 
   		loop while touche < 250    
   		pause 200
	Loop

Loop


' On fait ce qu'il faut en fonction du menu en cours et du Nombre qui vient d'être validé.
' En particulier, on affiche un nouveau menu si c'est nécessaire
ChoixValide:
	select case LeMenu
	case Menu_INIT:
		serout B.7,N2400_16,(254,128,"1:ROTO  2:AIGUIL")
		serout B.7,N2400_16,(254,192,"3:REGL  Choix:__")
		LeMenu=Menu_EXPL

	case Menu_ETAL:
'...

	case Menu_EXPL:
		select case nombre
		case 1:
			serout B.7,N2400_16,(...) ' Menu Rotonde
			serout B.7,N2400_16,(...)
			LeMenu=Menu_ROTO

		case 2:
			serout B.7,N2400_16,(...)	' Menu Aiguillages
			serout B.7,N2400_16,(...)
			LeMenu=Menu_AIGU
		case 3:
			serout B.7,N2400_16,(...)	' Menu Réglages
			serout B.7,N2400_16,(...)
			LeMenu=Menu_REGL
		EndSelect


	case Menu_ROTO:
'...

	case Menu_AIGU:
'...

	case Menu_REGL:
'...

	endSelect
	return
Attention c'est juste une ébauche, il y a plein de choses à compléter...

NB : merci de mettre votre code entre balises
Code:
....[/CODE ]
 

zeltron

Senior Member
j'ai placé entre balise mais c'est refusé pour trop de caracteres

vais étudier ça, parce que pour l'instant je ne comprend pas comment ça fonctionne.
 

dje8269

Senior Member
j'ai placé entre balise mais c'est refusé pour trop de caracteres
Oui il ne faut pas faire "copier pour le forum" car cela copie aussi la syntaxe des couleurs. Il faut seulement copier et copier entre les balises
 

BESQUEUT

Senior Member
vais étudier ça, parce que pour l'instant je ne comprend pas comment ça fonctionne.
Voir #392
Le Picaxe passe son temps à attendre qu'on veuille bien utiliser le clavier.
Quand ça se produit, il fait ce qu'il y a à faire en fonction du choix qui a été validé.
Qu'est ce qui n'est pas clair ?
 

zeltron

Senior Member
c'est d'un niveau trop fort pour moi..
j'ai commenté le programme en détaille pour mieux comprendre
mais non comprend pas comment ça peut marcher...
j'ai compris que Picaxe passe son temps à attendre qu'on veuille bien utiliser le clavier.
mais apres je ne comprend rien, je sais qu'il manque des trucs mais ça m'aide pas à comprendre
par quel diablerie sont validés les choix roto, regl, aiguil???
ça fume! je vais aller poser des voies;)
 

BESQUEUT

Senior Member
par quel diablerie sont validés les choix roto, regl, aiguil???
Qaund on tape la touche 12, on valide le choix du nombre.
Dans ce cas on va au sous-programme "ChoixValidé"

Comme on est dans le Menu Exploitation,
on va faire quelque chose en fonction du nombre qui vient d'être validé
case Menu_EXPL:
select case nombre
case 1:

En l'occurrence, on affiche le menu qui correspond à ce nombre.
N'hésitez pas à poser de nouvelles questions et à publier votre programme.

ça fume! je vais aller poser des voies;)
Loco à vapeur ?
 

zeltron

Senior Member
plutot ma caboche!
j'ai compris enfin je crois ;)
pourquoi utiliser case plutot que if then?
if c'est plus clair...
 
Top