ModelleisenbahN

Accueil > La conception > L’électronique et l’informatique > La carte de commande 6 servo-moteurs, le matériel

La carte de commande 6 servo-moteurs, le matériel

publié par Jean-Luc, le samedi 6 juillet 2013

Tags servo

La commande des actionneurs des 42 aiguilles de Messingrohrstadt (voir « Conception et mise en œuvre ») nécessite la conception d’une carte ad-hoc qui prendra en charge des fonctions que les boîtiers ou cartes de commande de servo-moteurs disponibles dans le commerce n’offrent pas. Cette carte s’inspire beaucoup de la carte conçue par Pierre. La différence majeure est la fonction de commande des alimentations des servos.

Les fonctions à assurer sont :

  • l’allumage et l’extinction des servos individuellement.
  • la commande du servo proprement dite ;
  • la prise en charge des interrupteurs de fin de course ;
  • la connexion au bus CAN des accessoires (voir à ce propos « L’architecture générale »).

Avec ces fonctions, le nombre de broches d’entré/sortie disponible sur le micro-contrôleur choisi fixe le nombre de voies à 6. Ça sera donc une carte permettant de commander 6 servos.

Le micro-contrôleur choisi est un PIC 18F46K80 de Microchip. Il possède une interface CAN et a suffisament d’entrées/sorties logiques. Il est disponible en boîtier DIP 40 broches.

Allumage et extinction individuels des servo-moteurs

Les servos sont conçus pour être alimentés entre 4,8 V et 6 V (ce qui correspond respectivement à l’utilisation de 4 accumulateurs NiMH de 1,2 V ou 4 piles bâton de 1,5 V en modélisme). Pour disposer du meilleur couple possible les servos vont être alimentés en 6 V. Leur alimentation va être synthétisée à partir du 9 V qui sert à l’électronique du réseau et au moyen d’un régulateur 7806.

Le courant maximum consommé par les servos utilisés (des HK15178 de chez HobbyKing) lorsqu’ils sont bloqués est d’environ 100 mA. Par ailleurs, quand on allume un servo-moteur, il a un frétillement et donc consomme immédiatement. Par conséquent, on peut craindre que l’allumage simultané d’environ 70 servos (42 pour les aiguilles, une vingtaine pour la signalisation, 6 pour les portes des remises), engendre un appel de courant d’environ 7 A qui va effondrer l’alimentation générale et planter les micro-contrôleurs.

L’allumage des servo-moteurs est donc piloté et va être opéré selon une séquence pour limiter l’appel de courant. Le schéma suivant accompli cette tache.

PNG - 30.3 ko
Alimentation pilotable pour les servo-moteurs
(clic sur l'image pour agrandir ou télécharger)
CA0 est la commande en provenance du micro-contrôleur. Quand CA0 est à 0V (0 logique), T7 est bloqué, ce qui a pour effet de bloquer T1. T1 est un darlington qui inclue une résistance de tirage de la base au potentiel de l’émetteur, c’est à dire 6V. R27 assure le blocage de T7 si le micro-contrôleur ne pilote pas CA0. Quand CA0 est à 5V (1 logique), T7 est passant et tire la base de T1 à la masse. Ceci a pour effet d’allumer la LED témoin et de rendre T1 passant. La sortie AL0 est donc à la tension de l’émetteur de T1 (6V) moins le seuil du transistor.

En agissant sur l’entrée CA0, le micro-contrôleur peut permettre ou non l’alimentation du servo-moteur. Ce schéma est répété pour chacune des voies (commandes CA0, CA1, CA2, C3, CA4 et CA5). 6 sorties logiques sont par conséquent occupées.

La commande du servo proprement dite

Un servo-moteur est commandé via une PWM : un signal ayant alternativement pour valeur 0V ou 5V et qui se répète à intervalle régulier. L’information est transmise par le temps passé dans un état. Pour les servo-moteurs, il s’agit du temps passé à l’état haut (5 V). cette impulsion est répétée toutes les 20 ms et la durée de l’impulsion code la position du servo-moteur. Un signal haut d’une durée de 0,5 ms correspond à l’une des positions extrême du servo (-90°), d’une durée de 2,5 ms à l’autre position extrême (+90°) et une durée de 1,5 ms à la position milieu (0°).

PNG - 9.2 ko
La PWM de commande d’un servo
(clic sur l'image pour agrandir ou télécharger)
Seuls les durées extrêmes de l’impulsion et la durée médiane sont montrées mais toutes les valeurs entre 0,5 ms et 2,5 ms sont possibles.

Bien évidemment, toutes les positions intermédiaires sont possibles et en faisant varier continuement et doucement la durée de l’impulsion, il est possible d’obtenir un mouvement de vitesse voulue.

La PWM est générée par logiciel et cette génération sera décrite en détail dans un prochain billet. 6 sorties logiques sont occupées par les 6 PWM qui sont nommées de PWM_0 à PWM_5. 6 résistances de 10 kΩ tirent chacune de ces sorties à la masse afin de ne pas envoyer des parasites sur les PWM si le micro-contrôleur ne les pilote pas, ceci afin d’éviter des mouvements erratiques des servo-moteurs.

la prise en charge des interrupteurs de fin de course

Chaque servo-moteur dispose de deux interrupteurs de fin de course. Le servo-moteur étant alimenté en 6V, on ne peut pas utiliser l’état haut pour indiqué qu’un fin de course est enfoncé [1] car le micro-contrôleur ne tolère pas une entrée qui soit au delà de 5V. L’information « interrupteur de fin de course enfoncé » correspond donc à un 0 logique. 2 entrées logique par voie sont utilisées. Un réseau de résistance tire chaque entrée à l’état haut (5 V) quand l’interrupteur n’est pas enfoncé. L’état de ces interrupteurs indique indirectement la position de l’aiguille :

Fin de course Horaire Fin de course trigo Signification
0 0 Problème de collage
0 1 L’aiguille est en position horaire
1 0 L’aiguille est en position trigo
1 1 L’aiguille est en court de mouvement

Ces informations ne suffisent pas pour diagnostiquer une panne. En confrontant la valeur demandée de la PWM à l’état des interrupteurs de fin de course, il est possible d’affiner le diagnostic comme nous le verrons dans le billet consacré au logiciel.

La connexion au bus CAN des accessoires

Deux broches CANRx (réception CAN) et CANTx (émission CAN) permettent de connecter le micro-contrôleur au bus CAN. Le bus CAN étant un bus différentiel pour garantir une certaine immunité au bruit, il faut ajouter un transceiver qui convertira les signaux logiques en signaux différentiels. Le MCP2551 de Microchip remplit ce rôle. Des connecteurs RJ11 sont employés pour le bus CAN.

Enfin, 7 cartes seront nécessaires pour les aiguilles. Il est donc nécessaire de pouvoir les distinguer sur le bus en leur donnant des adresses différentes. C’est le rôle d’un DIP-switch à 4 interrupteur qui permet 16 adresses différentes.

PNG - 267.6 ko
Le micro-contrôleur et l’interface CAN
(clic sur l'image pour agrandir ou télécharger)

L’alimentation

Il s’agit d’un montage tout à fait classique à base de régulateur de tension 7805 pour l’alimentation de la logique et de 7806 pour l’alimentation des servo-moteurs. Le 7806 a un courant de sortie maximum de 1,5 A ce qui est suffisant pour couvrir la consommation maximum des 6 servos.

En entrée, une diode de protection permet de prévenir les erreurs de branchement. Les deux condensateurs filtres la basse fréquence et la haute fréquence sur l’alimentation.

PNG - 30.2 ko
L’alimentation de la carte
(clic sur l'image pour agrandir ou télécharger)

Le typon

La schématique de la carte son dessin ont été réalisés avec le logiciel Canari. Elle est dessinée en double face et occupe une surface de 98,2 mm x 55,2 mm. La figure suivante montre l’implantation des composants.

PNG - 51.5 ko
Implantation des composants
(clic sur l'image pour agrandir ou télécharger)

Les deux figures suivantes montrent le typon.

PNG - 45.7 ko
Pistes côté composants
(clic sur l'image pour agrandir ou télécharger)
PNG - 47.1 ko
Pistes côté soudure
(clic sur l'image pour agrandir ou télécharger)

Notes

[1À moins de placer un diviseur de tension dans le circuit mais cela demanderait 12 résistances supplémentaires.

Répondre à cet article

Les thèmes

Archives

Informations

ModelleisenbahN | publié sous licence Creative Commons by-nc-nd 2.0 fr | généré dynamiquement par SPIP & Blog'n Glop