Bricoler un servomoteur à rotation continue

Le moteur tout-en-un du bricoleur

Image d'entête

par skywodd | | Licence (voir pied de page)

Catégories : Tutoriels Arduino Mécanique | Mots clefs : Arduino Genuino Servomoteurs

Cet article n'a pas été mis à jour depuis un certain temps, son contenu n'est peut être plus d'actualité.


Dans ce tutoriel, je vais vous expliquer comment transformer un simple servomoteur de modélisme en "servomoteur à rotation continue". Le but : obtenir un moteur à courant continu tout-en-un, avec moteur, engrenages et électronique de contrôle dans un même boitier.

Sommaire

Bonjour à toutes et à tous !

Dans mon précédent tutoriel, nous nous étions intéressés aux servomoteurs et à l'utilisation de servomoteurs avec une carte Arduino / Genuino. Aujourd'hui, nous allons transformer un servomoteur classique de modélisme en servomoteur à rotation continue.

N.B. Il y a plusieurs façons de réaliser la transformation décrite dans cet article. La méthode détaillée ci-dessous n'est qu'une façon de faire parmi d'autres.

Qu'est-ce qu'un servomoteur à rotation continue ?

Un servomoteur à rotation continue est un servomoteur modifié, qui au lieu de garder un angle précis, tourne dans un sens, ou dans l'autre, comme un moteur classique.

Quel est l'intérêt d'une telle modification ? Obtenir un moteur à courant continu classique, mais "tout-en-un", avec moteur, engrenages et électronique, dans un même boitier, pour le prix d'un simple servomoteur.

Une fois la modification effectuée, on ne contrôle plus l'angle de rotation du servomoteur, mais sa vitesse. Vous ne pourrez plus contrôler l'angle du servomoteur, mais en échange, vous pourrez contrôler sa vitesse et son sens de rotation, de manière relativement précise.

De plus, les servomoteurs de modélisme étant conçus pour être facilement fixés à un support, cette modification est extrêmement intéressante pour les amateurs de robotiques ;)

PS Modifier un servomoteur en servomoteur à rotation continue est un exercice très simple à réaliser et est souvent employé pour faire des robots roulants, rapidement et à bas coup.

Le nécessaire

Matériels requis pour la modification d'un servomoteur classique en servomoteur à rotation continue

Matériels requis

Pour réaliser la modification, vous aurez besoin :

  • d'un tournevis,

  • d'une pince coupante,

  • d'une petite pince plate (pour prendre les engrenages et autres pièces),

  • d'un peu de colle forte (colle cyanoacrylate, colle chaude ou colle époxy),

  • d'un servomoteur.

N.B. Pour cet article, j'utilise un servomoteur Futuba S3003, un gros modèle de servomoteur (et un grand classique de modélisme), qui a l'avantage d'avoir des pièces plastiques facile à démonter et à modifier.

Décorticage

Avant de pouvoir faire la modification, il faut ouvrir la bête, gentiment et avec délicatesse, pas comme une grosse brute ;)

Ouverture du fond d'un servomoteur

Ouverture du fond du servomoteur

Séparation du bras d'un servomoteur

Séparation du bras du servomoteur

Intérieur d'un servomoteur

Intérieur d'un servomoteur

Un servomoteur s'ouvre en retirant les quatre vis à l'arrière du capot et la vis à l'avant qui maintient le bras du servomoteur.

Une fois les vis retirées, toutes les parties du servomoteur doivent se détacher sans forcer.

Ne perdez pas les pièces, en particulier les engrenages et faites bien attention à leur ordre d'assemblage ! Si vous réassemblez les engrenages dans le mauvais ordre, ça ne marchera plus.

N.B. Plus le servomoteur est petit, plus le démontage (et le remontage) est compliqué. Tous les servomoteurs ne sont pas de bon candidat pour la modification. Les servomoteurs "9 grammes" par exemple sont très compliqués à modifier, du fait de leur très petite taille.

Comment ça marche ?

Vue d'ensemble de l’électronique et de la mécanique d'un servomoteur

Vue d'ensemble de l’électronique et de la mécanique d'un servomoteur

Maintenant que le servomoteur est en morceaux, il est possible de voir un peu plus en détail comment cela fonctionne en temps normal.

Normalement, quand le moteur du servomoteur tourne, les engrenages diminuent la vitesse de rotation du moteur et décuplent le couple (la force) du moteur. Les engrenages entrainent ensuite le bras du servomoteur qui est relié à un potentiomètre qui permet à l'électronique du servomoteur de garder une position précise.

Ce retour d'information (électronique -> moteur -> engrenages -> bras -> potentiomètre -> électronique) permet de faire un asservissement de la position du bras du servomoteur en fonction d'une consigne. C'est de cette façon qu'un servomoteur conserve toujours l'angle qu'on lui demande de tenir, même quand quelque chose vient forcer sur le bras du servomoteur.

Malheureusement, un potentiomètre ne peut pas tourner à 360°. C'est pourquoi les fabricants de servomoteurs ajoutent des butées sur le bras du servomoteur pour empêcher celui-ci de trop tourner et d'endommager le potentiomètre.

Pour transformer un servomoteur classique en servomoteur à rotation continue, il suffit de faire deux choses : enlever les butées du bras et dissocier le bras du potentiomètre.

En supprimant l'asservissement, le servomoteur redevient un moteur à courant continu classique, mais "tout-en-un". Le moteur, l'électronique de contrôle, la mécanique, les fixations, tout est prêt à l'emploi.

Supprimer les butées empêchant la libre rotation du servomoteur

Fin de course du bras du servomoteur avant la découpe

Fin de course du bras du servomoteur avant la découpe

Fin de course du bras du servomoteur après la découpe

Fin de course du bras du servomoteur après la découpe

La première étape de la modification consiste à supprimer avec une pince coupante (et idéalement un cutter) les butées qui empêchent le servomoteur de tourner à 360°.

Deux coups de pince coupante, une petite finition avec un cutter (attention aux doigts) et c'est fini ;)

Guillotiner le potentiomètre

PS J'aurai bien fait une blague en criant "Révolution !", mais je ne suis pas sûr que tout le monde aurait compris le double sens (de rotation) de ladite blague ;)

Potentiomètre du servomoteur après la découpe

Potentiomètre du servomoteur après la découpe

La deuxième étape de la modification consiste à couper la tête du potentiomètre, juste au-dessus de la base du méplat.

Il ne faut pas couper l'intégralité de l'axe du potentiomètre, il faut juste conserver la partie ronde, sans méplat.

Ajustement et collage

Une fois le potentiomètre raccourci, il faut le régler pour que le servomoteur ne tourne pas quand on lui demande de rester à 90° (la mi-course d'un servomoteur normal).

Montage d'ajustement du point zéro du servomoteur

Montage d'ajustement du point zéro du servomoteur

Il existe plusieurs méthodes pour trouver le point milieu du potentiomètre.

  • La plus simple est de marquer avec un crayon un trait sur l'axe du potentiomètre puis de le faire tourner pour voir les limites et déterminer la mi-course du potentiomètre.

  • Une autre technique consiste à utiliser un code pour déterminer de manière empirique les durées des signaux de contrôle correspondant aux limites de rotation du potentiomètre, puis de calculer la valeur médiane.

  • Ma technique est beaucoup plus simple, pas du tout scientifique et un peu bête, mais elle marche (la plupart du temps). Personnellement, je préfère la simplicité d'usage à l'ajustement parfait.

Ma technique consiste tout simplement en un code Arduino qui demande au servomoteur de rester à 90° tout le temps :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
/**
 * Exemple de code pour un servomoteur, mets le bras du servomoteur à 90°.
 */

 /* Inclut la lib Servo pour manipuler le servomoteur */
#include <Servo.h>

/* Créer un objet Servo pour contrôler le servomoteur */
Servo monServomoteur;

void setup() {
    
  // Attache le servomoteur à la broche D9
  monServomoteur.attach(9);
  
  // Rotation 90°
  monServomoteur.write(90);
}

void loop() {
}

L'extrait de code ci-dessus est disponible en téléchargement sur cette page (le lien de téléchargement en .zip contient le projet Arduino prêt à l'emploi).

Une fois le code envoyé sur une carte Arduino et le servomoteur câblé sur la broche D9, il suffit d'ajuster le potentiomètre jusqu'à ce que le moteur s'arrête de tourner. Tout simplement.

Avec cette technique, 90° correspond à l'arrêt du moteur, 0 ~ 90° à une rotation horaire (plus ou moins rapide) et 90° ~ 180° à une rotation antihoraire (plus ou moins rapide).

N.B. Avec ma technique, la plage de vitesse du servomoteur n'est pas forcément très symétrique, mais au moins, c'est simple et ça marche.

Collage du potentiomètre du servomoteur

Collage du potentiomètre du servomoteur

Une fois le potentiomètre correctement ajusté, il suffit de verser une pointe de colle sur le coin de l'axe du potentiomètre pour l'empêcher de se dérégler avec le temps.

Le résultat

Voilà ce que ça donne avec ce petit code de test, tiré de l'article précédent :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/**
 * Exemple de code pour un servomoteur, fais faire des va-et-vient à la tête du servomoteur.
 */

 /* Inclut la lib Servo pour manipuler le servomoteur */
#include <Servo.h>

/* Créer un objet Servo pour contrôler le servomoteur */
Servo monServomoteur;

void setup() {
 
  // Attache le servomoteur à la broche D9
  monServomoteur.attach(9);
}

void loop() {

  // Fait bouger le bras de 0° à 180°
  for (int position = 0; position <= 180; position++) {
    monServomoteur.write(position);
    delay(25);
  }
  
  // Fait bouger le bras de 180° à 10°
  for (int position = 180; position >= 0; position--) {
    monServomoteur.write(position);
    delay(25);
  }
}

Un moteur tout-en-un pour même pas 10€ en seulement 15 minutes, ça vaut le coup :)

PS La vitesse de rotation reste celle d'un servomoteur, n'espérez donc pas faire du 110 Km/h sur votre parquet avec un robot utilisant ce genre de servomoteur modifié ;)

Conclusion

Ce tutoriel est désormais terminé.

Si ce tutoriel vous a plu, n'hésitez pas à le commenter sur le forum, à le diffuser sur les réseaux sociaux et à soutenir le site si cela vous fait plaisir.