| Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino | |
|
|
|
Auteur | Message |
---|
jlb Membre
Age : 60 Localisation : Ici Nombre de messages : 1544 Date d'inscription : 31/12/2011
| Sujet: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Lun 11 Nov - 16:51 | |
| Bonjour, Dans la mouvance de la dynamique Arduino lancée par Christian Bézanger dans les pages de Loco-Revue, du succès d'alemonb dans son entreprise de commande signalisation ici : Problème "semi-automatisation" électronique de signaux et suite à la question de pm1309 ici : Commande d'aiguille par servomoteur , j'ai entrepris de développer une application de pilotages de 8 aiguilles avec des servo-moteurs et un Arduino pour une exploitation manuelle analogique. Le public visé : le ferro-modéliste qui bricole un peu d'électricité, voudrait faire des choses plus abouties mais bloque sur la façon de les attaquer. Le pré-requis est d'avoir une idée de ce qu'est un programme. Les articles sont construits dans un but pédagogique et montre comment on peut construire un dispositif de ce type. Deux premiers articles sont en ligne sur mon blog : Description du systèmeet Mise en œuvre d'un servo-moteur |
|
| |
jlb Membre
Age : 60 Localisation : Ici Nombre de messages : 1544 Date d'inscription : 31/12/2011
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Lun 11 Nov - 18:01 | |
| |
|
| |
Trusty Membre
Age : 62 Localisation : Melun Nombre de messages : 942 Date d'inscription : 08/10/2012
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Lun 11 Nov - 19:21 | |
| Génial. Excellente initiative ! De la lecture pour les longues soirées d'hiver ! |
|
| |
SavignyExpress Membre
Age : 61 Localisation : yyy Nombre de messages : 2043 Date d'inscription : 10/10/2010
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Mar 12 Nov - 10:54 | |
| Bonjour Jlb, J'ai lu avec grand intérêt les descriptions sur ton site et j'aimerais apporter quelques précisions. Mon PN est actionné par des servo-moteurs pilotés par un Attiny2313, un microcontrôleur de la même famille que les Atmega qui équipent les cartes Arduino. J'obtiens un mouvement fluide des barrières avec des incréments de 20 micro-secondes, espacés de 60 milli-secondes. Pour cette application, j'utilise la course complète des servos. Pour le câblage d'un poussoir en entrée de l'Arduino, je préconise une pull-up et le poussoir met l'entrée à 0 V. Les raisons sont les suivantes:
- Le poussoir est souvent éloigné de la carte, il n'est alors pas nécessaire de faire sortir le +5 V, uniquement le 0 V.
- Si tu remplaces le poussoir par un transistor NPN, par exemple celui d'un optocoupleur pour faire un système de détection, le transistor NPN ne fonctionnera qu'avec une pullup.
- Les microcontrôleurs AVR ont des pullups internes qui évitent d'en ajouter à l'extérieur. Pour l'Arduino, l'instruction à utiliser est: pinMode(num_pin,INPUT_PULLUP);
Il suffit ensuite d'inverser la condition testée dans le programme. |
|
| |
pm1309 Membre
Age : 69 Localisation : Marseille Nombre de messages : 1558 Date d'inscription : 16/10/2010
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Mar 12 Nov - 12:20 | |
| Tu vas finir par me convertir aux microcontrôleurs! si j'ai bien compris, il est possible d'avoir des vitesses de rotation du servo différentes dans chaque sens? ce serait pour commander éventuellement des signaux mécanique; l'ouverture de ceux çi étant plus lente que la fermeture. Y a t il une distance critique entre l'arduino et le servo et entre l'arduino et les poussoirs? Cdlt |
|
| |
jlb Membre
Age : 60 Localisation : Ici Nombre de messages : 1544 Date d'inscription : 31/12/2011
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Mar 12 Nov - 12:40 | |
| Bonjour SavignyExpress - SavignyExpress a écrit:
- Pour le câblage d'un poussoir en entrée de l'Arduino, je préconise une pull-up et le poussoir met l'entrée à 0 V.
[snip]
Il suffit ensuite d'inverser la condition testée dans le programme. Dans le principe je suis d'accord mais pour des raisons pédagogiques, j'ai préféré ne pas ajouter de confusion. |
|
| |
jlb Membre
Age : 60 Localisation : Ici Nombre de messages : 1544 Date d'inscription : 31/12/2011
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Mar 12 Nov - 12:56 | |
| - pm1309 a écrit:
- Tu vas finir par me convertir aux microcontrôleurs!
Je démystifie - Citation :
si j'ai bien compris, il est possible d'avoir des vitesses de rotation du servo différentes dans chaque sens?
Tout à fait. Tout est réglable au micropoil - Citation :
ce serait pour commander éventuellement des signaux mécanique; l'ouverture de ceux çi étant plus lente que la fermeture.
J'ai aussi des signaux mécaniques prévus sur mon réseau qui seront pilotés par servo-moteur. J'utilise exactement la même carte et le même logiciel que pour les aiguilles, seule le réglage des vitesses change. - Citation :
Y a t il une distance critique entre l'arduino et le servo et entre l'arduino et les poussoirs? Cdlt Entre l'Arduino et le servo, par expérience, tu peux monter à 1m, 1m50 Entre l'Arduino et les poussoirs, ça dépend du nombre de poussoirs sur l'entrée analogique. Avec 8 (article en préparation), l'intervalle de valeur par bouton est de 0,625V (analogique) et 128 (numérique). Donc si le câble est bruité au delà de 200-300mV, ça risque de perturber. Toutefois pour rendre plus robuste, il suffit de consommer plus. Là j'ai mis une résistance de 10kΩ, soit 0,5mA sous 5V, en descendant à 500Ω, on a 10mA, ce qui est largement acceptable, et une meilleure immunité au bruit. On peut même monter plus haut en courant. Dans ce cas il faut faire attention à la chute de tension dans les câbles et ne pas mettre du trop fin (avec du 0,22mm2, on est tranquille). Donc je dirais qu'on peut mettre les poussoirs à plusieurs mètres. Il faut donc monter l'Arduino à proximité des groupes d'aiguilles/signaux à piloter. |
|
| |
jlb Membre
Age : 60 Localisation : Ici Nombre de messages : 1544 Date d'inscription : 31/12/2011
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Mar 12 Nov - 13:09 | |
| - SavignyExpress a écrit:
- Les microcontrôleurs AVR ont des pullups internes qui évitent d'en ajouter à l'extérieur. Pour l'Arduino, l'instruction à utiliser est: pinMode(num_pin,INPUT_PULLUP);
Le problème du pullup interne pour cette application précise est que sa valeur est grande mais aussi incertaine. Comme il s'agit de faire un diviseur de tension variable pour brancher plusieurs boutons sur l'entrée analogique, ça n'est pas commode. |
|
| |
SavignyExpress Membre
Age : 61 Localisation : yyy Nombre de messages : 2043 Date d'inscription : 10/10/2010
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Mar 12 Nov - 20:34 | |
| - jlb a écrit:
- Le problème du pullup interne pour cette application précise est que sa valeur est grande mais aussi incertaine. Comme il s'agit de faire un diviseur de tension variable pour brancher plusieurs boutons sur l'entrée analogique, ça n'est pas commode.
Bonsoir Jlb, Autant pour moi! Je n'ai pas lu l'article de ton blog attentivement et j'ai zappé le clavier analogique. La pullup interne ne fonctionne que pour une entrée binaire. Sur le forum "dessoudeurs de l'extrême", j'avais posté une feuille Excel et sa description pour calculer les résistances d'un tel clavier analogique, utilisé pour la gare de Jappy. Voici le lien: http://dessoudeurs-ex.lebonforum.com/t146-lire-l-etat-d-un-bouton-poussoir-parmi-plusieurs-en-analogique. Cet article rejoindra prochainement mon blog, accompagné de la fonction de lecture utilisant le convertisseur AD de l'Atmega. Bonne soirée. |
|
| |
jlb Membre
Age : 60 Localisation : Ici Nombre de messages : 1544 Date d'inscription : 31/12/2011
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Sam 16 Nov - 22:54 | |
| |
|
| |
SavignyExpress Membre
Age : 61 Localisation : yyy Nombre de messages : 2043 Date d'inscription : 10/10/2010
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Sam 16 Nov - 23:08 | |
| Bonsoir Jlb,
Sur la carte Atmega8 de la gare de Jappy, je viens de vérifier que les diviseurs de tension donnaient les bonnes valeurs en fonction du poussoir pressé ainsi que tu le montres sur ton blog !
J'aime bien l'idée de la division et du décalage pour obtenir le numéro du poussoir, mais je ne pense pas que je pourrai l'utiliser pour la gare de Jappy.
J'ai 2 fois 6 poussoirs sur 2 entrées analogiques séparées de l'Atmega8. Je ne peux donc pas diviser par une puissance de 2 (que le compilateur C traduit en décalage à droite) et je passe par une table en mémoire programme. Je posterai le programme correspondant très prochainement.
Sinon, ton tuto est parfait. Je me permettrai de m'y référer depuis mon blog ! Si le fichier Excel t'a plu, pas de problème pour le présenter dans ton blog.
Bon dimanche et bonne nuit. |
|
| |
jlb Membre
Age : 60 Localisation : Ici Nombre de messages : 1544 Date d'inscription : 31/12/2011
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Dim 17 Nov - 13:42 | |
| |
|
| |
SavignyExpress Membre
Age : 61 Localisation : yyy Nombre de messages : 2043 Date d'inscription : 10/10/2010
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Lun 18 Nov - 22:35 | |
| Bonsoir à tous, En complément de l'excellente description de Jlb sur la connexion de boutons poussoir sur une entrée analogique d'un microcontrôleur, j'ai créé une feuille Excel permettant de calculer les résistances pour un nombre quelconque de poussoirs. La feuille Excel ainsi que sa description font l'objet de cet article: Connecter plusieurs boutons poussoir à un microcontrôleur. Je posterai la fonction C très prochainement. Bonne lecture et bonne soirée. |
|
| |
mistigris Membre
Age : 56 Localisation : Maisons Alfort Nombre de messages : 473 Date d'inscription : 11/04/2012
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Ven 22 Nov - 15:06 | |
| |
|
| |
jlb Membre
Age : 60 Localisation : Ici Nombre de messages : 1544 Date d'inscription : 31/12/2011
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Ven 22 Nov - 15:36 | |
| |
|
| |
railyRabbit Membre
Age : 47 Localisation : Paris Nombre de messages : 138 Date d'inscription : 07/12/2012
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Ven 22 Nov - 21:35 | |
| Excellent cette technique !! En revanche si je comprends tout à fait le principe et les raisons de l'automate pour éviter les transitions, je me suis perdu dans le pas-à-pas entre les états. Je reprendrai ça plus tard. En tout cas merci pour vos articles ! |
|
| |
jlb Membre
Age : 60 Localisation : Ici Nombre de messages : 1544 Date d'inscription : 31/12/2011
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Sam 23 Nov - 11:24 | |
| |
|
| |
SavignyExpress Membre
Age : 61 Localisation : yyy Nombre de messages : 2043 Date d'inscription : 10/10/2010
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Ven 29 Nov - 7:03 | |
| Bonjour Jlb,
Lors d'une rencontre hier soir avec Jappy pour avancer sur la gare de son réseau, nous avons regardé ta vidéo de démo du clavier analogique. Elle est très bien faite et elle nous a permis de passer directement à la pratique avec le clavier analogique de notre système.
Bonne fin de semaine. |
|
| |
jlb Membre
Age : 60 Localisation : Ici Nombre de messages : 1544 Date d'inscription : 31/12/2011
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Sam 30 Nov - 8:21 | |
| Bonjour, @SavignyExpress: Merci je vais continuer dans le style vidéo de présentation + article détaillé. @RailyRabbit: J'ai ajouté la description de l'automate en dessous, j'étais allé un peu vite et ça manquait de clarté. Du coup je me suis rendu compte d'une erreur qui explique que tu aies bloqué dessus : la condition de passage de NON_PRESSE à ENFONCE était fausse. J'avais mis numPoussoir < 0 alors que c'est numPoussoir < 8. Le code était bon par contre. J'ai corrigé. http://modelleisenbahn.triskell.org/spip.php?article59 |
|
| |
jlb Membre
Age : 60 Localisation : Ici Nombre de messages : 1544 Date d'inscription : 31/12/2011
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Sam 30 Nov - 13:14 | |
| |
|
| |
jlb Membre
Age : 60 Localisation : Ici Nombre de messages : 1544 Date d'inscription : 31/12/2011
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Dim 1 Déc - 18:23 | |
| |
|
| |
jlb Membre
Age : 60 Localisation : Ici Nombre de messages : 1544 Date d'inscription : 31/12/2011
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Lun 2 Déc - 8:59 | |
| |
|
| |
jlb Membre
Age : 60 Localisation : Ici Nombre de messages : 1544 Date d'inscription : 31/12/2011
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Lun 2 Déc - 21:25 | |
| |
|
| |
SavignyExpress Membre
Age : 61 Localisation : yyy Nombre de messages : 2043 Date d'inscription : 10/10/2010
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Mar 3 Déc - 7:01 | |
| Bonjour Jlb, Si le nombre limité de cycles d'écriture de l'EEPROM pose problème, il est possible de l'étendre en écrivant les mêmes données à plusieurs endroits de l'EEPROM. Il faut faire de même avec l'index qui garde une trace de l'emplacement utilisé. La note d'application d'Atmel suivante présente ce mécanisme: http://www.atmel.com/Images/doc2526.pdf. Voici le lien pour télécharger l'exemple en C: http://www.atmel.com/Images/AVR101.zip. Je pense que c'est adaptable à l'Arduino sans aucune difficulté, les fonctions d'accès à l'EEPROM ayant un niveau d'abstraction similaire aux fonctions de la librairie que l'on utilise pour développer directement sans passer par l'Arduino. J'envisage d'utiliser ce mécanisme pour la gare de Jappy afin de mémoriser l'état de la gare à chaque changement d'état. Comme les changements d'état résultent d'actions de l'utilisateur, on ne devrait pas gaspiller les cycles d'écriture en EEPROM et j'ai quelques décennies de réserve à raison de 2-3 heures d'exploitation du réseau par semaine et 2-3 changements d'état par minute. Bien entendu, cela diminue d'autant la capacité de stockage de l'EEPROM car les données sont stockées plusieurs fois, un compromis est à trouver. Pour la gare de Jappy, j'avais pensé au Charlieplexing pour multiplexer les relais en remplaçant les leds par des optocoupleurs, mais ce n'est pas adapté car il faut que plusieurs relais puissent être activés simultanément. Cela pourrait éventuellement fonctionner pour des commandes d'aiguilles. Encore un tout grand bravo pour ton blog, tes articles sont excellents et très clairs, tu devrais publier ces articles dans LocoRevue en complément de ceux sur l'Arduino ! |
|
| |
jlb Membre
Age : 60 Localisation : Ici Nombre de messages : 1544 Date d'inscription : 31/12/2011
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino Mar 3 Déc - 19:54 | |
| Bonsoir SavignyExpress, Merci pour le tuyau sur l'EEPROM. Il me semble que tu en avais déjà parlé mais je ne crois pas avoir lu l'AN auparavant. Je ne pense pas en avoir besoin pour cette application mais je pense à l'enregistrement de la position et la nature des trains en EEPROM à intervalle régulier pour ne pas perdre l'information en cas de coupure de courant. En effet, sur la carte Mezzanine du contrôleur centrale, j'ai 2 EEPROM de 64ko accessibles en I2C. Elle sont sur support mais cette technique peu permettre de les préserver ad vitam. Merci également pour les compliments |
|
| |
Contenu sponsorisé
| Sujet: Re: Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino | |
| |
|
| |
| Pilotages de 8 aiguilles avec des servo-moteurs et l'Arduino | |
|