Vous êtes ici

Commande d'aiguillage par sevomoteur avec Arduino

Le choix d'un microcontrôleur pour commander les aiguillages.

Dans l'article consacré à la commande d'aiguillage à mouvement lent avec un servo-moteur l'option de commande du servo par un microcontrôleur a été mentionnée.

La programmation de ces véritables ordinateurs ultra miniaturisés est à la portée de tout un chacun avec les environnements de développement intégrés (IDE) proposés aujourd'hui.

Rappelons pour mémoire le succès de la famille des PIC de Microchip qui avec un circuit intégré et une poignée de composants peut servir à tous les usages possibles et imaginables. L'une des applications les plus connues des PIC de Microchip pour les modélistes ferroviaires reste le décodeur en commande digitale.

Une fois de plus, c'est le monde de l'open source qui nous ouvre en grand la porte pour nous donner accès à la programmation des micro contrôleurs, c'est la solution Arduino.

Arduino, en plus de l'IDE gratuit d'une simplicité et d'une efficacité remarquables offre plusieurs versions de cartes prémontées accessibles à tout un chacun pour des prix défiant toute concurrence.

Un système de cartes à enficher dans la carte du microcontroleur permet de disposer de capteurs et de commandes qui répondent à l'immense majorité des applications.

La communauté Arduino s'appuie aussi sur des plaques d'essais qui permettent de cabler facilement tout type de prototypes.

Des bibliothèques (c'est la traduction un peu plus fidèle de library) sont mises à disposition, gratuitement le plus souvent, pour répondre à toutes sortes de besoins de programmation.

Dans notre cas, nous pouvons citer 2 librairies qui intéresseront les modélistes ferroviaires au plus haut point. Il s'agit bien entendu de la librairie "Servo" présente par défaut à l'installation de l'IDE qui facilite la commande des servo-moteurs dont nous avons besoin pour la commande à mouvement lent dont il est question ici.

Une seconde librairie permet de faciliter la création de décodeurs DCC pour les commandes numériques : c'est la librairie "Loconet".

Toutes les fonctions élémentaires sont préprogrammées, il suffit d'appeler la fonction voulue. Il ne reste plus qu'à programmer la partie que nous souhaitons personnaliser, à savoir les instructions de commande (bouton, signal, etc.) et les actions souhaitées.

Pour couronner le tout, les fonctions les plus courantes ont souvent déjà été programmées et elles sont partagées gracieusement par les concepteurs.

La documentation disponible est très vaste, notamment en ligne.

D'excellents ouvrages sur l'Arduino sont publiés, ils couvrent tous les besoins depuis ceux du débutant jusqu'à ceux du programmeur confirmé

Le matériel Arduino pour la commande à mouvement lent.

Pour disposer de l'électronique sous une forme très compacte nous opterons pour une carte Arduino nano (link is external)

Cette carte dispose des sorties pour commander 6, et même jusqu'à 12 servos. En tenant compte de toutes les broches nécessaires aux commandes du servo telles que les boutons pour changer la position et les informations nécessaires pour les réglages, il est possible de commander facilement jusqu'à 4 servo-moteurs sans le moindre composant additionnel.

Youtube offre de nombreuses vidéos qui présentent comment piloter un sevo-moteur avec l'Arduino telles que celle-ci.

Le programme pour la commande à mouvement lent.

Coder son propre programme

Le plus courageux pourront concevoir un programme permettant de régler par des boutons tous les paramètre du servo :

  • ajustement de la position de repos.
  • ajustement de l'excursion maximum.
  • réglage de la vitesse du mouvement.
  • etc.

Solution commerciale.

Une solution commerciale existe déjà chez Esu avec le Switch Pilot.

Programmes disponibles en partage sur internet.

Voici une suggestion de programme de pilotage de la commande à mouvement lent qui permet de faire appel :

  • à un bouton poussoir pour faire changer la position de l'aiguillage
  • à une centrale DCC puisque le programme gère la communication avec la centrale et se comporte comme un décodeur.

Les paramètres d'ajustement de la position centrale, de l'excursion comme de la vitesse de déplacement se font en modifiant les valeurs des variables dans le programme même. Ces variables sont très faciles à trouver grâce aux commentaires figurant dans le programme.

Le câblage est aussi expliqué dans les commentaires du programme.

L'auteur de ces lignes n'a testé que la solution analogique avec le bouton poussoir. Le lecteur pourra explorer le fonctionnement en tant que décodeur DCC et éventuellement partager ses conclusions en publiant un commentaire sur cette page.

Ce programme est partagé sous licence Creative Commons avec attribution. Il peut donc être utilisé sans restriction à condition d'en mentionner l'auteur.

Lien vers le programme Arduino pour la commande d'aiguillage, le fichier est nommé "Quad_Servo_Arduino_Sketch.zip"

Programme dédié pour la commande à mouvement lent.

N'ayant pas trouvé de programme de ce type et pour répondre aux besoins spécifiques d'une commande universelle convenant à la commande des aiguillages tout comme à l'ouverture et à la fermeture des portes d'une remise ou au mouvement des barrières d'un passage à niveau en passant par l'articulation d'une grue à eau ou d'une grue de manutention, l'auteur a développé le programme permettant de régler le servo à sa convenance.

Il est possible de régler les angles de déplacement max et min tout comme la vitesse du déplacement.

Il est aussi possible d'utiliser les potentiomètres de limite de déplacement pour que le mouvement du servo suive le déplacement du potentiomètre sur 90° par défaut (cet angle est modifiable bien sur en modifiant une seule variable dans le programme).

Le fonctionnement classique permet de changer la position du servo à chaque appui sur un bouton poussoir.

Le cavalier sur D3, par sa présence ou son absence, permet de choisir la position initiale du servo à la mise sous tension.

Le cavalier sur D4 active lorsqu'il est présent les fonctions d'ajustements des déplacements mini et maxi ainsi que de la vitesse par les potentiomètres.

Ce programme fonctionne seulement en commande analogique.

Pour le fonctionnement basique, les potentiomètres, la résistance, et la LED peuvent être supprimés.

Compte tenu de la simplicité du montage, chacun procédera au câblage comme il l'entend et selon le type de bouton poussoir et de potentiomètres choisis (en volant, sur une plaquette pastillée, en réalisant son propre circuit imprimé, etc.).

Sans plus attendre, voici le schéma de câblage nécessaire pour réaliser toutes ces fonctions.

Schéma de câblage de la commande de servo avec Arduino nano

Le module Arduino nano programmé est disponible sur ebay.

Partagez cette page avec vos amis: 

Tags: 

Ajouter un commentaire

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.