Différences entre versions de « P2E-Servo-FR »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
Ligne 60 : Ligne 60 :
 
== Bibliothèque ==  
 
== Bibliothèque ==  
  
La bibliothèque {{fname|servo}} nécessaire est déjà installée sur le Raspberry-Pi Pico du Pico-2-Explorer.  
+
La bibliothèque {{fname|servo}} utilisée dans ces exemples est déjà installée sur le Raspberry-Pi Pico du Pico-2-Explorer.  
  
Il est possible de l'installée sur un autre Raspberry-Pi Pico depuis le dépôt [https://github.com/mchobby/micropython-pico micropython-pico disponible ici sur Github].  
+
Il est possible de l'installée sur un autre Raspberry-Pi Pico depuis le dépôt [https://github.com/mchobby/micropython-pico micropython-pico disponible ici sur Github].
  
 
== Cas pratique ==
 
== Cas pratique ==

Version du 30 janvier 2025 à 17:57

Le servo-moteur

Qu'est-ce qu'un Servo-Moteur ?

Un servo-moteur est un dispositif typiquement utilisé en modélisme pour, par exemple, contrôler la direction d'une voiture télécommandée, l'orientation d'un avion.

Servomoteur2.jpg

Sur un servo-moteur, l'angle de rotation de l'axe reste sur une position fixe. L'angle de l'axe peut être positionné entre 0 et 90° (modélisme) ou 0 et 180°C (hobbyiste) en fonction du signal communiqué au servo-moteur (la demande du microcontroleur).

Servo-inside.png

Un servo-moteur comprend :

  • Un moteur électrique (continu), généralement assez petit.
  • Des engrenages réducteur en sortie du ce moteur (pour avoir moins de vitesse et plus de couple ou de force).
  • Un capteur type "potentiomètre" raccordé sur la sortie.
    Il s'agit donc d'une résistance qui varie en fonction de l'angle, ce qui permet de mesurer l'angle de rotation sur l'axe de sortie.
  • Un asservissement électronique pour contrôler la position/rotation, de cet axe de sortie pour le maintenir à la bonne position.

Contrôler un servo-moteur

Le servo-moteur s'alimente avec une tension de 5V (6V max) et utilise un signal PWM particulier pour communiquer l'angle de rotation au moteur.

Le temps d'impulsion du signal permet de déterminer la position du servo-moteur:

  • 1.25 ms = 0 degré
  • 1.50 ms = 90 degrés
  • 1.75 ms = 180 degrés

ServoImpluseAngle.jpg
Source: Area RC-Bot

Raccordement d'un servo-moteur

Puisque l'interface de commande est assez simple, un servo-moteur se raccorde avec seulement 3 fils (la masse, +5v et la commande d'impulsion). Les raccordements les plus standardisés sont:

Noir, Rouge, Blanc :

  • Noir: Raccordé à la Masse,
  • Rouge: Alimentation moteur et logique de commande. Raccordé à VCC 5v,
  • Blanc: Commande de la position du servo-moteur.

Marron, Rouge, Jaune :

Couleurs du standard Graupner.

Servograupner.png

  • Marrons: Raccordé à la Masse,
  • Rouge: Alimentation moteur et logique de commande. Raccordé à VCC 5v,
  • Jaune: Commande de la position du servo-moteur.

Les autres cas :

La plupart des servo-moteur ont 3 conducteurs avec des couleurs noir, rouge et blanc OU brun, rouge et orange/jaune/etc:

Servo-autre-raccord.jpg

  • brun ou noir = MASSE/GND (borne négative de l'alimentation)
  • Rouge = alimentation servo (Vservo, borne positive de l'alimentation)
  • Orange, jaune, blanc ou bleu = Commande de position du servo

Bibliothèque

La bibliothèque servo utilisée dans ces exemples est déjà installée sur le Raspberry-Pi Pico du Pico-2-Explorer.

Il est possible de l'installée sur un autre Raspberry-Pi Pico depuis le dépôt micropython-pico disponible ici sur Github.

Cas pratique

Cet exemple se déroulera en deux temps:

  1. Positionnement sur une position arbitraire pour démontrer le fonctionnement d'un servo-moteur.
  2. Positionnement en fonction de la position d'un potentiomètre, très utile pour déterminer l'amplitude d'un servo-moteur.

Branchement

P2E-servo-wiring-2.png

Afin d'éviter tout incident de polarisation, il est préférable de brancher:

  • le +5V en premier. Celui-ci se connecte au centre du connecteur.
  • la masse (GND) en second
  • le signal en dernier (sur GP22).

Code simple

Bien que la plupart des servo-moteurs hobbyistes disposent d'une amplitude angulaire proche de 180°, cet exemple se limitera volontairement à une amplitude de 90°.

Le script ci-dessous place l'angle du servo à 0° puis 45° puis 90° avant de revenir à 0°. Cette


1 from machine import Pin, Servo

Voici quelques explications utiles:

  • Ligne 2: per

Un problème?

Pas de son ?

  1. Est ce que le code est en cours d'exécution ?
    1. OUI:

Le défi

1. Sur