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 demi-tour (0° à 180°) ;
- un tour complet (0°à 360°) ;
- plusieurs tours.
- Couple (puissance) :
- 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.
- 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.
.
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 :
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:
- 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
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
Durée
00:15:00
Nombre de vidéos
1
Certificat de fin de formation
NON