« Item:Micro-servo à rotation continue » : différence entre les versions

Philby (discussion | contributions)
Aucun résumé des modifications
Antonydbzh (discussion | contributions)
Aucun résumé des modifications
 
(2 versions intermédiaires par un autre utilisateur non affichées)
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 14 : 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, dans ce cas 0 signifie marche arrière rapide, 90 moteur à l'arrêt, et 180 marche avant rapide, avec toutes les possibilités de vitesses, en arrière ou en avant, entre ces intervalles).
'''MAIS PAS DE PANIQUE ! :-)''' ...  


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


'''Exemple de programmation :'''
Une fois déclaré, l'activation du servomoteur se fait via


// Déclaration de la bibliothèque
[nom du servo].write(A/V);
<nowiki>#</nowiki>include "Servo.h"               


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


// Déclaration de mon servomoteur


Servo monServo;                   
'''Caractéristiques techniques :'''<br />
 
(...)
 
// Initialisation de mon servomoteur, en indiquant
 
// que son fil de commande est connecté au pin D7
 
// du microcontrôleur
 
monServo.attach(D7);     
 
(...)
 
// Marche avant toute !
 
monServo.write(180);       
 
 
'''Caractéristiques techniques :'''
<br />


*Dimensions : 23,2 x 12,5 x 22 mm
*Dimensions : 23,2 x 12,5 x 22 mm
Ligne 61 : 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=Draft
|Complete=Published
}}
}}

Dernière version du 23 janvier 2022 à 08:57


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)
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);

#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
}


Pour les servomoteur ordinaires, voir Item:Servomoteur

Commentaires

Published