HARDWAREMONTAGES ★ INFORMATIQUE PRATIQUE : Pilotons un servomoteur ★

Informatique pratique - Pilotons un servomoteur (Science&Vie)Hardware Montages

Un très abondant courrier nous demande toujours des réalisations concernant la robotique. Voici donc un montage capable de contrôler les mouvements d'un servomoteur.

Avant tout, rappelons de quoi se compose un servomoteur. Généralement il s'agit d'un petit moteur électrique associé à un réducteur de vitesse équipé d'un potentiomètre. Les valeurs prises par les résistances du potentiomètre permettent donc de connaître, à tout instant, la position du moteur. Notre réalisation aura donc pour fonction de “lire” la valeur du potentiomètre et, en fonction des paramètres fixés par le programme, de faire tourner le moteur soit dans un sens soit dans l'autre.

Notons qu'un servomoteur possède une certaine inertie. Si l'on interrompt son alimentation juste au moment où il atteint la position souhaitée, il y a de fortes chances pour qu'il la dépasse. Pour éviter ce phénomène, conduisant la plupart du temps à des oscillations parasites des servomécanismes, nous avons prévu deux commandes, de vitesse pour la rotation du moteur. La plus rapide, correspondant à son régime maximum, sera commutée lorsque la position à atteindre est encore loin. La vitesse lente sera utilisée pour l'approche de la position souhaitée. Notons que ce régime de ralenti sera ajustable pour chaque sens de rotation, par l'intermédiaire d'un potentiomètre. Le réglage idéal de ce dernier sera déterminé expérimentalement en fonction du type de servomoteur utilisé et de sa charge.

Pour la lecture du potentiomètre de position du servomoteur, nous utiliserons, une fois n'est pas coutume, le montage publié le mois dernier. En effet, il permettait à l'ordinateur de connaître la position de deux potentiomètres. L'un de ceux-ci sera remplacé par le potentiomètre du servomoteur. Notons à ce propos que sa valeur n'a pas grande importance ; il reste cependant conseillé qu'elle soit comprise entre 220 ohms et 100 kilohms. Nous conserverons le second potentiomètre ; il pourra servir dans une première phase à effectuer des tests. Il sera alors utilisé de la même manière que le bouton d'une télécommande proportionnelle.

La prise en compte de la position de l'un ou de l'autre des potentiomètres sera commandée par l'ordinateur, comme le mois précédent, par la mise à zéro du bit 0 ou du bit 1 sur l'octet présenté en sortie de notre interface principale.

Les commandes de mouvement du moteur seront précisées par les bits 5,6 et 7 de l'octet présenté par la sortie de l'interface principale. Ces derniers seront appliqués à l'entrée de notre interface de commande décrite ici.

Nous la réaliserons à l'aide de simples transistors dont le type pourra être modifié en fonction du courant, ou de la tension, que nécessite le moteur. Celui-ci se trouve connecté à deux étages “push-pull”, comportant chacun deux transistors complémentaires montés en pont. Ce type de montage nous permettra d'obtenir les deux sens de rotation à partir d'une alimentation unique. En version de base ces deux push-pull seront équipés de transistors 2N 1711 et 2N 2905. Dans ce cas, le courant consommé par le moteur ne devra pas excéder 500 milli-ampères et sa tension d'alimentation ne devra pas être supérieure à 12 volts. Si vous désirez utiliser un moteur plus puissant, et donc plus gourmand, il vous faudra remplacer les 2N 1711 par des MJ 3000 et les 2N 2905 par des MJ 2500. Ces étages de sortie seront commandés chacun par deux transistors prenant en compte l'état des bits de l'octet présenté par l'interface principale. L'un d'entre eux commandera la mise à 0 volt ou, au contraire, la tension d'alimentation de l'étage de sortie.

Le second, associé à un potentiomètre, permettra de délivrer au moteur une tension intermédiaire. La valeur de celle-ci sera fixée au moyen du potentiomètre et permettra donc de fixer le régime du moteur en position ralenti. Notons que, si vous le désirez, au lieu de commander ces deux transistors de ralenti à partir du même bit (B7) il sera possible de les commander à l'aide de deux bits différents (B7 et B4 par exemple).

Dans ce cas et en ajustant judicieusement le réglage des potentiomètres, il sera possible d'obtenir jusqu'à trois vitesses différentes de ralenti. Ceci pourra être appréciable dans le cas de moteurs relativement puissants possédant une inertie élevée.

Enfin, précisons que cette interface ne peut contrôler qu'un seul moteur. Si plusieurs moteurs doivent être utilisés,ce montage devra être fait en plusieurs exemplaires. Les bits inutilisés seront alors mis à profit pour sélectionner le moteur à mettre en route.

La réalisation de ce contrôleur de servomoteurs ne doit pas poser de problèmes particuliers. Le câblage sera, comme toujours, effectué en “wrapping”. Notons que les contacts de notre connecteur laissés übres lors de notre réalisation du mois dernier, pourront être directement utilisés pour la connexion de ce montage. Une fois complet il comportera donc deux plaquettes interconnectées (photo).

Les liaisons au servomoteur sont également simples à réaliser. Les deux fils issus des transistors de sortie seront reliés au moteur lui-même, trois autres fils seront utilisés pour connecter le potentiomètre inclus dans le réducteur en lieu et place du potentiomètre dont la lecture est commandée par le bit 0 sur notre précédente réalisation.

Le seul point à contrôler sera la polarité de l'alimentation du moteur. En effet, il faudra veiller à ce que notre système tende bien à faire avancer le moteur vers la position choisie ; ceci sera facilement vérifiable en opération manuelle

grâce au potentiomètre que nous avons conservé.

En cas contraire, les deux fils du moteur devront être inversés.

Notre petit programme de test permettra de lever ce doute. Il suffira, après apparition de la page d'accueil, de demander : “Test proportionnel”. Une fois ce test passé, le mode “Commande directe” pourra être essayé. Dans ce cas la position à atteindre sera indiquée à l'ordinateur sous forme d'un nombre compris entre 0 et 255.

CONFIGURATION DE L'OCTET DE COMMANDE

  • B0 : lecture de la position du servomoteur
  • B1 : lecture de la position du potentiomètre
  • B2 : bit non utilisé
  • B3 : bit non utilisé
  • B4 : bit non utilisé
  • B5 : marche sens 1
  • B6 : marche sens 2
  • B7 : commande vitesse lente

FONCTION DE CHAQUE OCTET UTILE

LECTURE DES POSITIONS

DécimalB1B0Fonction
NN + 0 00Commande interdite
NN + 1 01Lecture potentiomètre
NN + 2 10Lecture servomoteur

COMMANDES DE MOUVEMENTS

DécimalB7B6B5Fonction
00 + N000Arrêt moteur
32 + N001Marche rapide sens 2
64 + N010Marche rapide sens 1
96 + N011Arrêt moteur
128 + N100Arrêt moteur
160 + N101Marche lente sens 2
192 + N110Marche lente sens 1
224 + N111Arrêt moteur

Henri-Pierre PENEL , Science&Vie n°841

★ EDITEUR: Science&Vie
★ ANNÉE: 1987
★ AUTEUR: Henri-Pierre PENEL
★ INFO: En réponse à un abondant courrier, nous vous rappelons que l'interface principale pour Z 80 a été publiée dans notre n° 824 de mai 86 et sa mise à jour dans le n° 834 de mars 87. Pour l'interface MO 5, les schémas ont été publiés dans le n° 831 de décembre 86.

★ AMSTRAD CPC ★ DOWNLOAD ★

Other platform tool:
» Science  et  Vie-Pilotons  un  servomoteur    LISTING    FRENCHDATE: 2016-03-10
DL: 274
TYPE: PDF
SiZE: 155Ko
NOTE: 2 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Hardware » Interface 8e Bit Pour Imprimante (CPC Revue)
» Hardware » Diskhandling (CPC Amstrad International)
» Hardware » Port 8 Bits (Micro-Mag)
» Hardware » CPC 6128 Plus - Tape Upgrade (Amstrad Action)
» Hardware » Happy-Megabitkarte (Happy Computer)
» Hardware » Convertisseur Analogique Digital 8 Voies (CPC Revue)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 269 millisecondes et consultée 1644 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.