Ce que vous apprendrez

Plan à suivre

  • Préambule
  • Que savoir sur le micro servo SG90 ?
  • Matériels
  • Exemple de câblage du micro servo SG90 
  • Exemple de code pour le micro servo SG90

Prérequis

aucun

Contenu du cours

Un servomoteur est un système qui a pour but de produire un mouvement précis en réponse à une commande externe. C’est un actionneur (système produisant une action) qui mélange l’électronique, la mécanique et l’automatique.
Un servomoteur est composé :
– d’un moteur à courant continu ;
– d’un axe de rotation ;
– d’un capteur de position de l’angle d’orientation de l’axe (très souvent un potentiomètre) ;
– d’une carte électronique pour le contrôle de la position de l’axe et le pilotage du moteur à courant continu.
Un servomoteur est capable d’atteindre des positions prédéterminées dans les instructions qui lui ont été données, puis de les maintenir.
Le servomoteur a l’avantage d’être asservi en position angulaire, cela signifie que l’axe de sortie du servomoteur respectera la consigne d’instruction que vous lui avez envoyé en son entrée.
Même si un obstacle si tiens sur la route, qui viendrait à lui faire changer l’orientation de sa trajectoire, le servomoteur essayera de conserver la position. Contrairement aux moteurs à courant continu qui peuvent tourner continuellement, on distingue des servos faisant :

  • un demi-tour (0° à 180°) ;
  • un tour complet (0°à 360°) ;
  • plusieurs tours.

Dans ce tutoriel, nous utiliserons la première gamme : celle faisant un demi-tour.
En réalité, dans un servomoteur, le petit moteur à courant continu est relié à un réducteur (des engrenages) dont l’objectif est de réduire la vitesse et d’augmenter le couple (puissance), d’un potentiomètre qui permet au servo de garder l’angle d’inclinaison choisit.

  • Couple (puissance) :

Le couple exprimé en kg.cm (kilogramme. centimètre) indique la relation entre la longueur du bras du servomoteur et la force exercée sur le bras du servomoteur (la force représente le poids de l’objet qu’on désire mettre en mouvement).
 Ainsi si l’on veut déplacer une charge de 3kg situé à 1cm de l’axe du servomoteur, un servo de couple  3kg.cm suffira. Par contre si l’on veut déplacer cette même charge mais à 10 cm de l’axe du servomoteur, il faudra un servomoteur de couple 30kg.cm.

  • Calcul du couple

De l’exemple précédent on déduit la formule du calcul du couple :

C=M*D

Avec

-C = le couple du servomoteur (kg.cm) ;

-M = le poids de la charge à déplacer (kg)

-D= la distance entre la charge et l’axe de rotation du servomoteur(cm)

  • Réducteur (engrenage)

Un engrenage est une roue dentée qui en tournant, entraîne (engrène) une autre roue dentée aussi.Si la première roue dentée tourne dans un sens, la seconde tournera dans l’autre sens. On peut donc dire que le sens de rotation s’inverse d’une roue à l’autre dans un engrenage.

-Si les deux roues dentées ne font pas la même taille, la vitesse de rotation de chaque roue sera différente. En effet si la première roue a 10 dents, et la seconde 30 dents, la première effectuera 3 tours alors que la seconde n’en fera qu’un (10 dents* 3 tours= 30 dents).

-La conséquence de la différence de taille entre deux roues (la petite appelée pignon) est que la transmission du mouvement gagne en puissance (couple) de la petite vers la grande roue.

  • Si l’on désire accélérer le mouvement, le moteur doit entraîner la grande roue qui entraînera la petite. Dans ce cas la puissance de rotation (le couple) de l’axe de la petite roue sera plus faible.
  • Si l’on désire gagner en couple, le moteur doit entraîner la petite roue qui entraînera la grande. Dans ce cas, vous perdrez de la vitesse.

Ainsi dans le réducteur, il y a une petite roue dentée reliée au moteur à courant continu qui en tournant entraîne une autre roue dentée ayant un nombre de dent plus élevé. Donc la petite roue en tournant plus vite que l’autre lui transmet sa vitesse qu’elle transforme en couple. C’est la seconde roue qui va entraîner l’axe de rotation du servomoteur.
Le réducteur permet donc de perdre en vitesse pour gagner en puissance.

  • Le capteur de position de l’angle d’orientation de l’axe (très souvent un potentiomètre) envoie la position de l’axe à un comparateur qui la compare à la commande assignée afin d’agir en conséquence (C’est la partie électronique qui se charge de la comparaison). En effet le curseur du potentiomètre bouge en fonction de la position du moteur. Ce qui fait du servomoteur un système d’asservissement (l’asservissement est un moyen de gérer une consigne de régulation selon une commande d’entrée).

La commande est constituée des impulsions carrées sur une durée allant de 1ms à 2ms.

Figure : signaux de commande d’un servo moteur


Caractéristiques :

  • Modulation : Analogique
  • Couple : 4.8V (1.6 kg-cm)
  • Vitesse : 4.8V 0.1 sec/60°
  • Poids : 9g
  • Dimensions : 23mm x 12.2mm x 29 mm
  • Angle de rotation : 180°
  • Connectique : Connecteur 3 points
  • Contient : boîtier de direction, culbuteur, vis, etc.

Présentation du micro servo SG90

Figure :Servomoteur

3.Matériels

Pour réaliser notre petit test, nous aurons besoin des matériels suivants :

  • Une carte arduino UNO

Un micro servo SG90

Un potentiomètre

Des fils de connexion

Tous ces matériels sont disponibles chez Youpilab  https://youpilab.com

Exemple de câblage du micro servo SG90

Afin de pouvoir faire le test, je vous propose ces 2 schémas réalisés dans fritzing.

  • Le premier fera tourner dans les deux sens le servomoteur sans cesse
  • Le second fera tourner le moteur suivant le réglage du potentiomètre.

Cours pour débuter sur Arduino

Schéma 1 : câblage sans potentiomètre

.

Contrôler un servomoteur avec une plaque Arduino. Servo SG90.

Schéma 2 : avec potentiomètre

Le code 1 correspond au schéma 1   et le code 2 au schéma 2
Etant donné que l’on doit envoyer une impulsion de durée comprise entre 1ms et 2ms ( pour envoyer des commandes d’angle ), il nous faudra convertir l’angle en tension.
Pour le faire, nous utiliserons la fonction arduino « map »
Définition de la fonction  :

C


Avec :

  • compte : la valeur que vous voulez transformer (l’angle dans notre cas)
  • min et  max :la plage de valeurs (le minimum et le maximum qu’elle peut prendre, soit ici 0° et 179°)
  • transMin et  transMax : c’est la plage de valeurs dans laquelle on doit transformer le compte  (ici 1ms et 2ms)

Pour le fonctionnement, il y a aussi une bibliothèque « servo.h » inclut dans arduino qui permet de contrôler le servomoteur.

Code Arduino  //vous pouvez directement le copier dans votre IDE Arduino

  • Code 1:
C

  • Si le servomoteur ne revient pas à sa position de 0° : il faut alors augmenter le nombre de boucles effectuées par le compteur « t » dans la fonction tourner().  En effet, si la vitesse de rotation de votre servo ne lui permet pas d’atteindre le zéro en 300 boucles, il lui faut plus de temps.
  • Si le servomoteur ne parcourt pas un demi-tour complet : il faut alors changer les valeurs dans le mappage. En effet, tous les servos ne sont pas réglés de manière identique. Par exemple, pour celui que nous utilisons sur ce test, les valeurs 1 000 et 2 000 sont remplacés par 500 et 2 500 respectivement.

Pour le second code, nous utiliserons la fonction servo inclue dans Arduino.

Code Arduino  //vous pouvez directement le copier dans votre IDE Arduino

Code 2

C

Test :

Si tout a été bien fait, après téléversement du code dans la carte Arduino, vous devriez constater le résultat attendu.

Merci d’avoir suivi ce tutoriel.  A bientôt !!!


Contrôlez un servomoteur SG90 avec Arduino.

Catégorie

Electronique

Durée

00:15:00

Nombre de vidéos

1

Certificat de fin de formation

NON