Utilisation du servomoteur SG90 avec le Raspberry Pi

Using the SG90 Servo Motor with the Raspberry Pi

Le Motor SG90 est un petit servo léger couramment utilisé dans les projets de robotique, d'automatisation et de bricolage. Il permet un contrôle précis de la position angulaire en utilisant Modulation de largeur d'impulsion (PWM). Ce guide vous montrera comment contrôler un Motor Sg90 avec un Raspberry Pi Utilisation de Python.


Ce dont vous aurez besoin

  1. Raspberry Pi (Tout modèle avec le support GPIO, par ex., PI 3, PI 4)
  2. Motor SG90
  3. Source d'alimentation externe (5V, facultatif pour plusieurs servos)
  4. Fils de planche à pain et de cavalier
  5. Python installé sur le Raspberry Pi

Étape 1: Câblage du servo SG90 au Raspberry Pi

Le SG90 Servro Motor a trois épingles:

Broche SG90 Pin de framboise PI Fonction
VCC (rouge) 5V (broche 2) Alimentation électrique
GND (marron) GND (broche 6) Sol
Signal (orange) GPIO18 (broche 12) Contrôle du signal PWM

Note: Si vous utilisez plusieurs servos, utilisez un Alimentation externe 5V Pour éviter de surcharger la broche 5V du Raspberry Pi.


Étape 2: Activer PWM sur le Raspberry Pi

Le Raspberry Pi génère des signaux PWM pour contrôler le service de servo.

  1. Installer le Bibliothèque Raspberry Pi GPIO (Si ce n'est pas déjà installé):
    sudo apt update && sudo apt install python3-rpi.gpio
    
  2. Ouvrez un éditeur de script Python:
    nano servo_control.py
    
  3. Copiez le script Python suivant à contrôler le servomoteur SG90:

Étape 3: code python pour contrôler le servo

import RPi.GPIO as GPIO
import time

# Set up the GPIO pin for PWM
SERVO_PIN = 18  # Use GPIO18 (Pin 12)
GPIO.setmode(GPIO.BCM)
GPIO.setup(SERVO_PIN, GPIO.OUT)

# Start PWM with 50Hz frequency
pwm = GPIO.PWM(SERVO_PIN, 50)
pwm.start(0)

def set_angle(angle):
    duty_cycle = (angle / 18) + 2.5  # Convert angle to duty cycle
    GPIO.output(SERVO_PIN, True)
    pwm.ChangeDutyCycle(duty_cycle)
    time.sleep(0.5)  # Wait for servo to move
    GPIO.output(SERVO_PIN, False)
    pwm.ChangeDutyCycle(0)

try:
    while True:
        angle = int(input("Enter angle (0-180): "))
        if 0 <= angle <= 180:
            set_angle(angle)
        else:
            print("Invalid angle! Enter a value between 0 and 180.")

except KeyboardInterrupt:
    print("Exiting...")
    pwm.stop()
    GPIO.cleanup()

Étape 4: Exécution du script de contrôle servo

  1. Enregistrer le script et quitter:

    • Presse Ctrl + x, alors Y, alors ENTRER.
  2. Exécutez le script:

    python3 servo_control.py
    
  3. Entrez des angles entre 0 et 180 pour déplacer le servo.


Étape 5: Comprendre PWM pour le contrôle du servomoteur

  • Fréquence PWM: Le SG90 fonctionne à 50Hz.
  • Calcul du cycle de service:
    • 0 ° → 2,5% du cycle de service
    • 90 ° → 7,5%
    • 180 ° → 12,5% de cycle de service
  • Formule: duty_cycle = (angle / 18) + 2.5

Étape 6: Applications de SG90 Servo avec Raspberry Pi

  1. Bras robotiques - Contrôler les articulations du mouvement.
  2. Portes et serrures automatisées - Mécanismes ouverts / fermes à l'aide d'un servo.
  3. Systèmes de caméras panilées - Déplacer les caméras pour la surveillance ou la photographie.
  4. Home-Automation intelligente - Leviers, verrouillage et commutateurs de contrôle à distance.

Dépannage

  1. Servo ne bouge pas?

    • Assurer câblage correct (VCC, GND et GPIO18 pour le signal).
    • Si vous utilisez plusieurs servos, utilisez un Source d'alimentation externe 5V.
  2. Mouvements erratiques?

    • Assurer une puissance stable; utiliser condensateurs (100 µF) si nécessaire.
    • Utiliser Contrôle PWM de précision plus élevée, comme un Module PWM PCA9685 pour plusieurs servos.
  3. Erreur d'autorisation refusée?

    • Exécutez le script avec sudo:
      sudo python3 servo_control.py
      

Conclusion

Le Motor SG90 est un excellent moyen d'ajouter contrôle du mouvement aux projets Raspberry Pi. En utilisant Signaux PWM, vous pouvez contrôler avec précision la position du servo pour Applications robotiques, automatisation et IoT. Expérimentez avec différents angles et applications pour débloquer son plein potentiel! 🚀

Laissez un commentaire

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.