• Première étape
  • Matériel et accessoires ; GPIO
  • Projets
  • Logiciel
    • Serveur Web
  • Arduino & ESP8266
  • Automatisation de la maison
  • Sonstiges
    • News
Facebook Twitter YouTube
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
  • Matériel et accessoires ; GPIO
  • Projets
  • Logiciel
  • Serveur Web
  • Première étape
  • Automatisation de la maison
  • Anglais
  • Allemand
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
Home»Matériel et accessoires ; GPIO»Contrôle du Servo moteur de Raspberry Pi

Contrôle du Servo moteur de Raspberry Pi

Facebook Twitter LinkedIn Tumblr Email Reddit
Contrôle du Servo moteur de Raspberry Pi
Share
Facebook Twitter LinkedIn Email Tumblr Reddit Telegram WhatsApp

En plus des moteurs stepper, il existe aussi des servomoteurs petits et économiques. La commande des servomoteurs Raspberry Pi est très simple et grâce à leur faible encombrement et à leur faible poids, ils sont utilisés dans de nombreux domaines.
Contrairement aux moteurs stepper, les servomoteurs peuvent être contrôlés avec un seul GPIO.

Dans ce tutoriel, je vais montrer un exemple d’utilisation de Python pour contrôler un ou plusieurs servomoteurs.

Pièces de matériel requises

  • Servo moteur
  • Câble Jumper 
  • (Breadboard)
  • si nécessaire, un porte-piles + piles (rechargeables), comme source d’alimentation externe

Bien sûr, il est possible d’alimenter le servomoteur avec une source d’alimentation externe, mais cela n’a de sens que si plusieurs moteurs sont utilisés. Pour cela, des piles rechargeables / piles ordinaires seraient toujours nécessaires.

 

Installation

Dans la plupart des cas, les couleurs du servo sont comme suit et sont connectées au Pi:

Noir – vient à GND (broche 6) du Pi
Rouge – vient à 3V3 (broche 1) du Pi
Jaune/Orange – vers une broche GPIO libre (par ex. GPIO17, broche 11)

Raspberry Pi Servo Motor Anschluss

Si vous voulez jouer la sécurité, vous pouvez installer une résistance ~ 1kΩ entre la broche de données (jaune/orange) et le Pi. Normalement, ce n’est pas nécessaire.

Si le servomoteur ne tourne pas correctement, cela peut également influencer l’alimentation électrique du Raspberry Pi (voir la fiche technique, ce que le moteur consomme). Dans un tel cas, une source d’alimentation externe est utile (généralement de 4 à 6 V).

 

Logiciel de contrôle des servomoteurs Raspberry Pi

Contrairement aux moteurs stepper, les servomoteurs n’occupent pas beaucoup de broches GPIO pour commander un mouvement. Pour cela, la rotation est contrôlée par la durée de l’impulsion.

L’angle du moteur est réglé sur la longueur de l’impulsion, donc le PWM est particulièrement utile, qui envoie des signaux répétitifs à intervalles réguliers (la bibliothèque Python de Raspberry Pi doit être installée).

Nous démarrons soit python (sudo python) ou ouvrir un nouveau script (sudo nano servomotor.py) avec le contenu suivant:

import RPi.GPIO as GPIO
import time

servoPIN = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(servoPIN, GPIO.OUT)

p = GPIO.PWM(servoPIN, 50) # GPIO 17 for PWM with 50Hz
p.start(2.5) # Initialization
try:
  while True:
    p.ChangeDutyCycle(5)
    time.sleep(0.5)
    p.ChangeDutyCycle(7.5)
    time.sleep(0.5)
    p.ChangeDutyCycle(10)
    time.sleep(0.5)
    p.ChangeDutyCycle(12.5)
    time.sleep(0.5)
    p.ChangeDutyCycle(10)
    time.sleep(0.5)
    p.ChangeDutyCycle(7.5)
    time.sleep(0.5)
    p.ChangeDutyCycle(5)
    time.sleep(0.5)
    p.ChangeDutyCycle(2.5)
    time.sleep(0.5)
except KeyboardInterrupt:
  p.stop()
  GPIO.cleanup()

Si le servomoteur tremble un peu alors qu’il ne bouge pas, vous pouvez mettre l’impulsion en pause avec ChangeDutyCycle(0)

Pour les servomoteurs et leurs cartes de commande, l’indication de la période et du rapport cyclique est généralement indiquée dans la fiche technique. Dans l’exemple d’un MG996R nous avons ce qui suit : La durée est de 20 ms. En outre, un cycle d’utilisation compris entre 5 et 10 % de la période est prévu. Ainsi la durée de l’impulsion est comprise entre 1ms et 2ms. Habituellement, les servos peuvent tourner entre 0 et 180°. Nous devons donc ajuster la durée de l’impulsion entre les deux. Une longueur de 1,5ms (7,5%) donne donc un angle de 90°. Et le tout à exactement 50x par seconde (50Hz).

 

Si ça vous dérange que le servo (SG90) ne puisse pas tourner à 360°, il y a un « hack« .

moteur électrique PWK python servo servomoteur
Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
Previous ArticleRaspberry Pi : Commutateur de relais de commande via GPIO
Next Article Mesure de la rotation et de l’accélération avec le Raspberry Pi

Related Posts

Connecter un clavier Raspberry Pi – Code Lock

Enregistrer les données des capteurs Raspberry Pi avec ThingSpeak et les analyser

Construire un capteur de porte / fenêtre Raspberry Pi avec Reed Relais

Apprendre à programmer sur le Raspberry Pi – Partie 1 : Introduction

Leave A Reply Cancel Reply

Enregistrer les données des capteurs Raspberry Pi avec ThingSpeak et les analyser

Contrôlez votre Raspberry Pi à l’aide d’une manette Xbox 360 sans fil

Comment utiliser un capteur d’empreintes digitales Raspberry Pi pour l’authentification

Transfert de données Bluetooth de Raspberry Pi vers le Smartphone

7 segments d’affichage (anode) avec MAX7219 / MAX7221 et Raspberry Pi

Communication sans fil entre les Raspberry Pi via le courtier/client MQTT

ABONNEZ-VOUS MAINTENANT
Et recevez de nouveaux tutoriels dans votre boîte de réception.
Cliquez ici pour soumettre!

Merci!

Nous vous contacterons bientôt.

Tutorials for Raspberry Pi
Facebook Twitter YouTube
  • Politique de confidentialité
  • Conditions de service & Politique sur les cookies

Type above and press Enter to search. Press Esc to cancel.