Servo commande
Go back Servo commande Cours d'informatique

 

Comment commander un servo-moteur avec un PC?

Ce document s’adresse à ceux qui voudraient expérimenter un brin de robotique avec leur ordinateur. Des notions d’électroniques sont requises (en tout cas, savoir souder) et éventuellement des notions de programmation, bien que le programme de commande soit fourni...

Ce petit projet est assez simple et pourrait par exemple être envisagé dans le cadre d’un cours technique, d’une initiation informatique ou mécanique.

L’ordinateur envisagé pour la commande est un pc sous win95, bien que n’importe quel ordinateur puisse commander un servo.

Le soft de programmation est ici DELPHI 3.0, pour sa souplesse, et parce que c’est le seul que je connais.

Le coût total de ce projet doit être, au grand maximum, de 50 FB (10 FF) (Heu... sans les moteurs, évidemment)

 

1. Introduction, remarques générales.

Il est en fait très simple de commander un servo moteur avec un ordinateur. Ce type de moteur, utilisé en modélisme, se trouve facilement, ne coûte pas trop cher, et contient toute l’électronique nécessaire à son bon fonctionnement. De plus il permet un contrôle proportionnel assez précis, et déploit une force impressionnante. Ces moteurs possèdent généralement trois fils:

une alimentation positive (5 volts) (souvent fil rouge)
une masse (0 v) (souvent fil noir)
une ligne de données (souvent fil d’une autre couleur genre brun, ou mauve, ou blanc)

On les alimente en permanence (tant qu’on les alimente, ils restent bloqués sur leur position) et on module la ligne de données: pour ce faire, il faut envoyer toutes les 20 millisecondes (valeur non critique) un signal d’une durée comprise entre 0.5 et 2 msec. C’est la durée de ce signal qui commande la position du moteur.

Envoyer un signal modulé sur une sortie est tout à fait dans les cordes d’un pc. Le seul point délicat se situe au niveau du timing: celui-ci doit être très précis (de l’ordre d ’ 1/100 de msec) pour permettre un positionnement précis du moteur, et pour éviter que celui-ci ne tremble lors de ses déplacements.

Nous utiliserons, pour la commande du moteur, le port parallèle du pc, qui permet, avec ses huit lignes de sortie, de commander huit moteurs séparément!

2. L'électronique

Elle est réduite à sa plus simple expression: pas de composants, juste du fil et un bout de plaquette d’expérimentation.

Liste du matériel nécessaire:

Un fer à souder (évidemment)
3 m (ou plus) de fil multibrin tout bête.
Une prise DB 25
Des pins à souder qui correspondent aux prises de vos servo moteurs. Normalement, trois par servo. La plupart des prises pour servo sont maintenant au pas standard de 2.54mm. Evidemment, si vous utilisez des vieux servo de 1963...
Un bout de plaquette d’expérimentation, genre 5*3 cm
Une alimentation 5v ou alors, repiquer la tension dans l’ordinateur
Les servo moteur: de récupération ou dans un magasin de modélisme, mais méfiez-vous, ce genre de moteur coûte plutôt cher quand on l’achète neuf. (genre 500frs ...woops)

Il suffit, en fait, de relier toutes les masses et toutes les alimentations des moteurs ensemble, et de relier la ligne data de chaque moteur à une des huit sorties du port //.

Mais le schéma ci-dessous devrait encore éclairer les choses. Les sorties utilisées sur le port// sont sur les pins 2 à 10.

Vous serez peut-être surpris de constater qu’il n’y a pas la moindre pièce électronique pour faire l’interfaçage. Ces pièces seraient en fait inutiles... (certaines revues d’électronique ont d’ailleurs l’art de faire très compliqué quand on peut faire très simple)

3. La partie "software"

3.1 Le logiciel de base (avec delphi 3.0)

Ici aussi, pas besoin de trop se casser la tête, du moins pour un programme de base. Il faut juste innover un peut pour la procedure delay, qui doit être très précise.

On crée en fait un timer qui, toutes les 20 msec, envoie un signal dont la durée est conditionnée par la position d’une trackbar.

Vous pourrez bientôt télécharger ce programme simple (en attendant : téléchargez la version complète ci-dessous)

3.2 La version évoluée (aussi avec delphi)

Celle-ci permet la commande de 4 moteurs (facilement upgradable en 8) avec un joystick, la mise en mémoire de différents pas de programme, la sauvegarde d’un programme...

Il n’est probablement pas nécessaire de faire une longue explication de ce programme. Si vous voulez le modifier, c’est que vous vous y connaissez en peu en programmation, regardez alors les sources : servosource.zip (17k)

Le programme final est bien entendu aussi disponible : servo.zip(162k)

 

4. Tests

Branchez tout le bazar et lancez le programme de base:

Si le servo se bloque dans une position et qu’il réagit aux déplacements de la trackbar, bravo, ça marche.
Si rien ne se passe: vérifiez l’adresse du port imprimante, vérifiez vos branchement, vérifiez le servo, vérifiez votre cerveau.
Si un mince filet de fumée se dégage de l’arrière de la machine et qu’une odeur de brûlé atteint vos narines, rappelez-vous: 1. Toujours essayer ce genre d’engin chez un "ami" 2. Je ne peux être tenu responsable de quoiqu’il puisse arriver à vous, à votre ordinateur, à votre maison, à votre chien, qui résulterait de l’utilisations des renseignements fournis ici tels quels. 3. Remarquez d’ailleurs que je ne suis pas plus responsable de la mort du commandant Cousteau... ni d’ailleurs de celle du roi Baudouin

5. D’autres développements?

Ce programme devrait déjà vous permettre de faire des petits essais. Essayez aussi la version plus complète et modifiez - là comme vous le sentez. Il devrait d’ailleurs être possible, avec ce système, de commander un petit robot (max. 8 axes.. pas si mal, et plutôt dur à gérer) ou d’autres choses... A vous de jouer. A ce propos, je serais enchanté d’avoir des nouvelles, des questions, de ceux qui ont expérimenté ce système... Ou d’autres systèmes aussi d’ailleurs.

mailto:philippe.jadin@skynet.be

6. "Légal"

Cette page ainsi que son contenu peuvent être librement distribués. Les programmes disponibles en téléchargement sont évidemment freeware, et le code source peut être modifié ou réutilisé dans un autre projet. Ce serait tout de même sympa de signaler où vous avez obtenu le code...

Je vous propose dès maintenant un service de création de pages Internet à très bon prix.  Visitez le site "Clair et Net" pour vous en convaincre.
Fast and good Web site creation in Belgium ? Visit
my site
Visit my site my site and get convinced
This site has been created by Philippe Jadin. Contact me for any information
Cette page a été créée par Philippe Jadin. Contactez-moi pour toute information complémentaire