Item:Micro-servo à rotation continue : Différence entre versions

 
Ligne 5 : Ligne 5 :
 
|Cost=5
 
|Cost=5
 
|Currency=EUR (€)
 
|Currency=EUR (€)
|ItemLongDescription=Il existe deux types de servomoteurs : "'''classiques'''", qui permettent de se positionner à un angle entre 0 et 180°, et"'''à rotation continue'''", tel que celui-ci, où l'angle est remplacé par une vitesse.
+
|ItemLongDescription=Il existe deux types de servomoteurs :  
 
 
  
 +
* "'''classiques'''", qui permettent de se positionner à un angle entre 0 et 180°,
 +
* et "'''à rotation continue'''", tel que celui-ci, où l'angle est remplacé par une vitesse (et un sens de rotation).
  
 
Ces servomoteurs ont trois connexions : 2 pour l'alimentation (GND et 5V), et la troisième est utilisée pour définir l'angle ou la vitesse de rotation, qui va dépendre du signal reçu. Celui-ci est de type PWM (Pulse-Width Modulation = modulation de largeur d'impulsion). Cela signifie qu'on utilise simplement une des sorties numériques ('pins') du microcontrôleur, où l'on va alterner les 0 et les 1. C'est la durée pendant laquelle on reste en position 1, qui donnera la valeur considérée par le servomoteur :<br />{{#annotatedImageLight:Fichier:Item-micro-servo a rotation continue Signal servomoteur.jpg|0=1094px|hash=|jsondata=|mediaClass=Image|type=frameless|alt=(image Signal PWM servomoteur)|align=center|src=https://www.wikidebrouillard.org/images/4/4f/Item-micro-servo_a_rotation_continue_Signal_servomoteur.jpg|href=./Fichier:Item-micro-servo a rotation continue Signal servomoteur.jpg|resource=./Fichier:Item-micro-servo a rotation continue Signal servomoteur.jpg|caption=Signal PWM servomoteur|size=1094px}}
 
Ces servomoteurs ont trois connexions : 2 pour l'alimentation (GND et 5V), et la troisième est utilisée pour définir l'angle ou la vitesse de rotation, qui va dépendre du signal reçu. Celui-ci est de type PWM (Pulse-Width Modulation = modulation de largeur d'impulsion). Cela signifie qu'on utilise simplement une des sorties numériques ('pins') du microcontrôleur, où l'on va alterner les 0 et les 1. C'est la durée pendant laquelle on reste en position 1, qui donnera la valeur considérée par le servomoteur :<br />{{#annotatedImageLight:Fichier:Item-micro-servo a rotation continue Signal servomoteur.jpg|0=1094px|hash=|jsondata=|mediaClass=Image|type=frameless|alt=(image Signal PWM servomoteur)|align=center|src=https://www.wikidebrouillard.org/images/4/4f/Item-micro-servo_a_rotation_continue_Signal_servomoteur.jpg|href=./Fichier:Item-micro-servo a rotation continue Signal servomoteur.jpg|resource=./Fichier:Item-micro-servo a rotation continue Signal servomoteur.jpg|caption=Signal PWM servomoteur|size=1094px}}
Ligne 15 : Ligne 16 :
  
  
'''MAIS PAS DE PANIQUE ! :-)''' ... La bibliothèque "Servo.h" du logiciel Arduino, facilite grandement l'utilisation d'un servomoteur. Une fois déclaré, l'activation du servomoteur se fait via [nom du servo].write(A/V);", où A/V est une valeur entre 0 et 180, et qui donne l'angle (servo classique), ou la vitesse (servo à rotation continue).
+
'''MAIS PAS DE PANIQUE ! :-)''' ...  
 
 
 
 
'''Exemple de programmation :'''
 
 
 
// Déclaration de la bibliothèque               
 
 
 
<nowiki>#</nowiki>include "Servo.h"               
 
 
 
(...)
 
 
 
// Déclaration de mon servomoteur
 
 
 
Servo monServo;                   
 
 
 
(...)
 
 
 
// Initialisation de mon servomoteur, en indiquant
 
 
 
// que son fil de commande est connecté au pin D7
 
 
 
// du microcontrôleur
 
  
monServo.attach(D7);     
+
La bibliothèque "Servo.h" du logiciel Arduino, facilite grandement l'utilisation d'un servomoteur.  
  
(...)
+
Une fois déclaré, l'activation du servomoteur se fait via
  
// Marche avant toute !
+
[nom du servo].write(A/V);
  
monServo.write(180);       
+
où A/V est une valeur entre 0 et 180, et qui donne l'angle (servo classique), ou la vitesse (servo à rotation continue).
  
  
'''Caractéristiques techniques :'''
+
'''Caractéristiques techniques :'''<br />
<br />
 
  
 
*Dimensions : 23,2 x 12,5 x 22 mm
 
*Dimensions : 23,2 x 12,5 x 22 mm
Ligne 63 : Ligne 42 :
 
*Type de moteur : Métal
 
*Type de moteur : Métal
 
*Longueur du fil : 20 cm
 
*Longueur du fil : 20 cm
 +
 +
== Code Minimal ==
 +
 +
 +
Le servomoteur à rotation continu se pilote en fonction de la valeur de l'angle qu'on lui donne, comme ceci :
 +
 +
* à 90 il est immobile.
 +
* entre 0 et 90 il tourne dans un sens
 +
* entre 90 et 180 il tourne dans l'autre sens.
 +
 +
 +
{| class="wikitable" cellspacing="0" border="0"
 +
| height="17" bgcolor="#999999" align="left" |
 +
| valign="middle" bgcolor="#999999" align="center" |
 +
| bgcolor="#999999" align="center" |Servo moteur
 +
|-
 +
| rowspan="2" valign="middle" height="49" bgcolor="#999999" align="center" |Avant le Setup
 +
| valign="middle" bgcolor="#999999" align="center" |Importation de la bibliothèque
 +
| valign="middle" align="left" |#include <Servo.h>
 +
|-
 +
| valign="middle" bgcolor="#999999" align="center" |Création de l’objet
 +
| valign="middle" align="left" |Servo monservo;
 +
|-
 +
| valign="middle" height="17" bgcolor="#999999" align="center" |Dans le Setup
 +
| valign="middle" bgcolor="#999999" align="center" |Démarrage de l’objet
 +
| valign="middle" align="left" |monservo.attach(broche du servo);
 +
|-
 +
| valign="middle" height="28" bgcolor="#999999" align="center" |Dans le Loop
 +
| valign="middle" bgcolor="#999999" align="center" |Utilisation
 +
| valign="middle" align="left" |monservo.write(180);<br />
 +
|}<br /><syntaxhighlight lang="arduino" line="1">
 +
#include <Servo.h> //importation de la bibliothèque servo
 +
 +
Servo monservo;  // Création de l'objet monservo
 +
 +
void setup() {
 +
  monservo.attach(12); //Démarrage de l'objet
 +
 +
}
 +
 +
void loop() {
 +
  monservo.write(180); // En avant toute !
 +
  delay(1000); // pendant une seconde
 +
  monservo.write(0); // En arrière toute !
 +
  delay(1000); // pendant une seconde
 +
}
 +
</syntaxhighlight>
 +
 +
 +
Pour les servomoteur ordinaires, voir [[Item:Servomoteur]]
 
}}
 
}}
 
{{Tuto Status
 
{{Tuto Status
 
|Complete=Published
 
|Complete=Published
 
}}
 
}}

Version actuelle datée du 23 janvier 2022 à 10:57


Item-micro-servo rotation continue micro-servo-a-rotation-continue-fs90r.jpg

Micro-servo à rotation continue

Ce petit moteur peut être alimenté directement depuis un microcontrôleur de type Arduino ou D1 mini, à l'aide de la bibliothèque "servo.h".

5EUR (€)


Description longue

Il existe deux types de servomoteurs :

  • "classiques", qui permettent de se positionner à un angle entre 0 et 180°,
  • et "à rotation continue", tel que celui-ci, où l'angle est remplacé par une vitesse (et un sens de rotation).
Ces servomoteurs ont trois connexions : 2 pour l'alimentation (GND et 5V), et la troisième est utilisée pour définir l'angle ou la vitesse de rotation, qui va dépendre du signal reçu. Celui-ci est de type PWM (Pulse-Width Modulation = modulation de largeur d'impulsion). Cela signifie qu'on utilise simplement une des sorties numériques ('pins') du microcontrôleur, où l'on va alterner les 0 et les 1. C'est la durée pendant laquelle on reste en position 1, qui donnera la valeur considérée par le servomoteur :
(image Signal PWM servomoteur)


(les graphiques ne sont pas à l'échelle, la durée du "1" va de 2ms à 10 ms sur un cycle de 20 ms)


MAIS PAS DE PANIQUE ! :-) ...

La bibliothèque "Servo.h" du logiciel Arduino, facilite grandement l'utilisation d'un servomoteur.

Une fois déclaré, l'activation du servomoteur se fait via

[nom du servo].write(A/V);

où A/V est une valeur entre 0 et 180, et qui donne l'angle (servo classique), ou la vitesse (servo à rotation continue).


Caractéristiques techniques :

  • Dimensions : 23,2 x 12,5 x 22 mm
  • Poids : 9 g
  • Vitesse de fonctionnement : 110 RPM (4,8 V) / 130 RPM (6 V)
  • Couple : 1,3 kg.cm/18,09 oz.in (4,8 V) / 1,5 kg.cm/20,86 oz.in (6 V)
  • Tension de fonctionnement : 4,8 à 6 V
  • Système de contrôle : Analogique
  • Direction : CCW (sens inverse de l'aiguille d'une montre)
  • Amplitude : 360°
  • Impulsion requise : 900 us à 2 100 us
  • Type de roulement : Aucun
  • Type de roue dentée : Plastique
  • Type de moteur : Métal
  • Longueur du fil : 20 cm

Code Minimal

Le servomoteur à rotation continu se pilote en fonction de la valeur de l'angle qu'on lui donne, comme ceci :

  • à 90 il est immobile.
  • entre 0 et 90 il tourne dans un sens
  • entre 90 et 180 il tourne dans l'autre sens.


Servo moteur
Avant le Setup Importation de la bibliothèque #include <Servo.h>
Création de l’objet Servo monservo;
Dans le Setup Démarrage de l’objet monservo.attach(broche du servo);
Dans le Loop Utilisation monservo.write(180);

 1 #include <Servo.h> //importation de la bibliothèque servo
 2 
 3 Servo monservo;  // Création de l'objet monservo
 4 
 5 void setup() {
 6   monservo.attach(12); //Démarrage de l'objet
 7 
 8 }
 9 
10 void loop() {
11   monservo.write(180); // En avant toute !
12   delay(1000); // pendant une seconde
13   monservo.write(0); // En arrière toute !
14   delay(1000); // pendant une seconde
15 }


Pour les servomoteur ordinaires, voir Item:Servomoteur

Commentaires

Published