Forums LR PRESSE

Où il est question de trains, petits et grands

  • Advertisement

Arduino - pour les nuls et débutants ( progressons ensemble)

Toutes les discussions sur l'Arduino !

Modérateur: MOD

Re: Arduino - pour les nuls et débutants ( progressons ensem

Publié: Sam 12 Déc 2015, 08:52 
2 déctecteurs IR de part et d'autre est largement possible.

Chaque paire sera à mettre à une distance plus courte que la longueur de la plus petite machine. On utilise une interruption pour ne pas louper un train (de passer de 0 à 1 ou inversement selon le montage) pour une de la paire et dans cette interruption on lit sa moitié. On sait dans ce cas le sens de la machine. Dans chaque cas, on incrémente ou décrémente un compteur. Et dans la boucle, une simple comparaison >0, et les barrière s'activent.

Le seul truc il me semble c'est que la loco qui fait demi tour n'active pas les deux interruptions.
Guillaume22
Papotier
 
Messages: 145
Inscrit le: Dim 29 Sep 2013, 08:20

Re: Arduino - pour les nuls et débutants ( progressons ensem

Publié: Sam 12 Déc 2015, 12:00 
Merci beaucoup pour les conseils je vais voir ça! Je n'ai pas pu m'en occuper cette semaine pour voir si le programme fonctionne. Meme si j'ai encore des difficultés à comprendre certaines choses ^^
Avatar de l’utilisateur
tgvdu88
Papotier
 
Messages: 177
Inscrit le: Sam 25 Oct 2008, 16:45

Re: Arduino - pour les nuls et débutants ( progressons ensem

Publié: Sam 12 Déc 2015, 15:37 
hello, je ne comprends pas pourquoi il fautdrait 2 detecteurs de chaque côté…
de plus il est impossible de mettre les detecteurs à distance…pas la place.
donc je ne peux dépendre de la longueur du train…
faire + 1 quand la détection s'active
faire -1 quand la détection s'éteint SI le compteur est > 1

fermer les barrieres si le compteur est > 0

ça ne peut pas s'écrire ?
jepi54
Papotier
 
Messages: 173
Inscrit le: Mer 13 Jan 2010, 13:40

Re: Arduino - pour les nuls et débutants ( progressons ensem

Publié: Sam 12 Déc 2015, 21:56 
jepi54 a écrit:...faire + 1 quand la détection s'active
faire -1 quand la détection s'éteint SI le compteur est > 1
fermer les barrieres si le compteur est > 0
ça ne peut pas s'écrire ?
Tout peut s'écrire, c'est l’intérêt d'un programme.
Mais de ce que j'ai compris, la solution que tu décris ci-dessus ne fonctionne pas.

Initialement, le compteur est à 0 et le PN ouvert. Supposons qu'une loco "courte" arrive de la gauche et se dirige vers la droite ; elle va successivement passer devant les détecteurs A puis B.
  • la loco arrive sur A donc +1 dans le compteur :arrow: Compteur = 1 et le PN se ferme 8)
  • la loco quitte A mais comme le compteur n'est pas > 1, on ne fait pas -1 :arrow: Compteur = 1 et le PN reste fermé 8)
  • la loco arrive sur B donc +1 dans le compteur :arrow: Compteur = 2 et le PN reste fermé 8)
  • la loco quitte B, le compteur est > 1 donc -1 dans le compteur :arrow: Compteur = 1, la loco quitte la zone et ... le PN reste fermé car le compteur est à 1, pas à 0 :cry: !
Est-ce bien cela ou ai-je mal compris ?
Alain17
Loquace
 
Messages: 1253
Inscrit le: Ven 21 Juil 2006, 15:36
Localisation: Entre Cognac, Ré et Oléron

Re: Arduino - pour les nuls et débutants ( progressons ensem

Publié: Sam 12 Déc 2015, 22:01 
Oui tu as tout compris c exactement cela…..
mais il faut ajouter une boucle sur A et B pour refaire -1... :mrgreen:
jepi54
Papotier
 
Messages: 173
Inscrit le: Mer 13 Jan 2010, 13:40

Re: Arduino - pour les nuls et débutants ( progressons ensem

Publié: Sam 12 Déc 2015, 22:49 
jepi54 a écrit:..mais il faut ajouter une boucle sur A et B pour refaire -1... :mrgreen:
Peux tu expliquer ? Peux tu faire apparaitre cette "boucle" dans l'exemple de mon message précédent ?
Alain17
Loquace
 
Messages: 1253
Inscrit le: Ven 21 Juil 2006, 15:36
Localisation: Entre Cognac, Ré et Oléron

Re: Arduino - pour les nuls et débutants ( progressons ensem

Publié: Dim 13 Déc 2015, 11:20 
:geek: au lieu de la boucle dont je parlais :

la loco arrive sur A : +1 dans C(compteur) et le PN se ferme car C différent de 0
la loco quitte A : -2 dans C qui est égal à -1; le PN reste fermé carC n'est pas égal à 0
la loco arrive sur B : +2 dans C soit C = 1; le PN reste fermé
la loco quitte B : -1 dans C et C = 0 donc le PN s'ouvre

maintenant dans l'autre sens :
la loco arrive sur B : + 2 dans C; le PN se ferme (C=2)
la loco quitte B : -1 dans C; le PN reste fermé (C=1)
la loco arrive sur A : +1 dans C; le PN reste fermé (C=2)
la loco quitte A : -2 dans C; le PN s'ouvre (C=0

CA MARCHE..? :gne: :gne:
jepi54
Papotier
 
Messages: 173
Inscrit le: Mer 13 Jan 2010, 13:40

Re: Arduino - pour les nuls et débutants ( progressons ensem

Publié: Dim 13 Déc 2015, 20:07 
Ok, ça marche pour ces cas de figure.
Mais si la loco arrive sur A, quitte A, puis s'arrête, repart en arrière, arrive sur A et quitte A, ça ne marche pas ... :cry: Si la loco arrive de B et s'arrête entre B et A pour repartir vers B, ça ne fonctionne pas non plus.
Alain17
Loquace
 
Messages: 1253
Inscrit le: Ven 21 Juil 2006, 15:36
Localisation: Entre Cognac, Ré et Oléron

Re: Arduino - pour les nuls et débutants ( progressons ensem

Publié: Dim 13 Déc 2015, 22:38 
C'est un cas classique d'automate à états finis. Il faut établir la liste des états et la matrice des transitions.
Une simple recherche sur internet de "passage à niveau" et "automate fini" donnera déjà plusieurs algorithmes.
D@niel
 
Messages: 12
Inscrit le: Mar 01 Déc 2009, 21:53
Localisation: Bruxelles

Re: Arduino - pour les nuls et débutants ( progressons ensem

Publié: Lun 14 Déc 2015, 17:56 
:geek: :roll: ouais mais dur dur à comprendre ce qu'on pioche avec la simple recherche gogol
jepi54
Papotier
 
Messages: 173
Inscrit le: Mer 13 Jan 2010, 13:40

Re: Arduino - pour les nuls et débutants ( progressons ensem

Publié: Lun 14 Déc 2015, 20:09 
Ok, c'est relativement théorique !

Mais si on imagine les états suivants pour le passage à niveau:
1) pas de train entre A et B, barrière ouverte
2) train entre A et B, barrière ouverte
3) train entre A et B, barrière fermée
4) et pas de train entre A et B, barrière fermée

L'automate commence dans l'état 1, la détection d'un train par le capteur A ou B, provoque la transition vers l'état 2 et la fermeture des barrièrres.
La barrièrre fermée provoque la transition de l'état 2 vers l'état 3.
A nouveau, la détection par le capteur A ou B provoque la transition de l'état 3 vers 4 et l'ouverture des barrières. La barrière ouverte provoque le retour de l'état 4 vers l'état 1.
Probablement trop simple, il faudra complèter le tableau par les transitions impossibles ou interdites (par exemple impossible de passer de l'état 1 directement à 4, etc)
Il faut peut-être aussi définir des états supplémentaires (par exemple, si un train peut être plus grand que la distance entre A et B, etc)
Et enfin, il faudra probablement définir plus précisement les transitions (par exemple si le capteur détecte le début du train, ne détecte plus le train ou il en détecte la fin)

Le but est de décrire complètement le comportement de l'automate et ces états, ces transitions, ainsi que les actions associées à chaque transition. Après la programmation, c'est une variable qui reprend l'état courant de l'automate, une boucle qui vérifie les capteurs et provoque les transitions (avec erreur si impossibles ou interdites) et à la fin de la boucle le programme exécute les actions associées au nouvel état.

C'est incroyable les systèmes complexes que l'on peut modéliser avec ces automates finis.
D@niel
 
Messages: 12
Inscrit le: Mar 01 Déc 2009, 21:53
Localisation: Bruxelles

Re: Arduino - pour les nuls et débutants ( progressons ensem

Publié: Lun 14 Déc 2015, 23:47 
jepi54 a écrit::geek: :roll: ouais mais dur dur à comprendre ce qu'on pioche avec la simple recherche gogol
Et est ce que ça c'est plus clair ?
Image
Est ce que ça correspond à ce que tu souhaites faire ?
Il reste une contrainte : le PN étant ouvert, un train ne doit pas arriver sur un détecteur (A ou B) et s'arrêter sur celui-ci pour repartir dans le sens opposé.
Alain17
Loquace
 
Messages: 1253
Inscrit le: Ven 21 Juil 2006, 15:36
Localisation: Entre Cognac, Ré et Oléron

Re: Arduino - pour les nuls et débutants ( progressons ensem

Publié: Mar 15 Déc 2015, 17:47 
:? euh je veux bien….
je joue avec l'arduino et le detecteur ultrasons…j'ai réussi à brancher et écrire le programme qui va bien….pour allumer une diode si objet <10cm et une autre diode si pas d'objet dans les 10cms…

par contre j'essaie de brancher un aiguillage idem…via uln2803 et là rien ne bouge…pb de puissance ???les 5v de l'arduino ne suffisent pas ? mais comment on branche le tout si on utilise une alim 12v pour l'aiguillage ??? :gne:
jepi54
Papotier
 
Messages: 173
Inscrit le: Mer 13 Jan 2010, 13:40

Re: Arduino - pour les nuls et débutants ( progressons ensem

Publié: Mer 16 Déc 2015, 11:23 
Les infos sont disponibles...
http://locoduino.org/spip.php?article10
Guillaume22
Papotier
 
Messages: 145
Inscrit le: Dim 29 Sep 2013, 08:20

Re: Arduino - pour les nuls et débutants ( progressons ensem

Publié: Mer 16 Déc 2015, 11:51 
:applause: pour le lien
@+
12035
Avatar de l’utilisateur
12035
Loquace
 
Messages: 1003
Inscrit le: Lun 08 Déc 2008, 13:20

PrécédentSuivant

Retour vers Arduino

Qui est en ligne ?

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