Nouveau !
Création de la catégorie Tutoriels Arduino avec comme premier tutoriel : La communication par USB entre Arduino UNO et Raspberry Pi.

Tutoriel Raspberry
Contrôler un Servo moteur en Python


Mis à jour le : 17/11/2017


Le Raspberry permet de réaliser divers projets de robotique. Le servo moteur est un composant très souvent utilisé Servo moteur - Espace Raspberry Francais dans ce domaine. En effet, ce n'est pas un simple moteur, il est "intelligent". On va pouvoir lui demander d'aller à une certaine position, et il va executer les ordres, sans avoir besoin d'ajouter de capteurs de fin de courses, etc. Malheureusement, sa course de sortie n'est que de 180°.
D'autres types de servo moteurs existent, comme les Servo treuil. Ils offrent une course de sortie de plus de 3 tours mais sont plus cher.

I. Prérequis

Pour contrôler un Servo moteur à l'aide d'un Raspberry, il faut :

Une fois tous les éléments réunis, on peut passer au branchement.

II. Connexion du Servo au Raspberry

Le Servo moteur possède 3 fils :

    Le fil rouge : +5V;
    Le fil noir : GND, 0V;
    Le fil blanc/jaune : fil de data, où les ordres circulent du Raspberry vers le Servo.

Pour alimenter le Servo, il est préférable d'utiliser une alimentation externe de 5V, surtout si l'alimentation de votre Raspberry délivre peu de courant.
Le Servo se branche donc comme ceci :


Shéma de branchement d'un Servo Moteur sur Raspberry Pi 3
Shéma de branchement d'un Servo Moteur sur Raspberry Pi B rev 2

III. Programmation

Une fois que tout est branché correctement, on peut passer à la programmation. Pour contrôler le Servo moteur, voici un programme Python qui permet de :

    Demander au Servo d'atteindre une position (un angle), qu'il maintiendra pendant une durée déterminée,
    Lui demander de faire des aller-retour de 0° à 180°

Ce programme est évidemment là pour être modifié et adapté aux besoins de votre projet, donc à vous de jouer !


Commentaires

dood, le 16/09/2018 à 17h42
Merci pour ce petit tuto.
Pour info, input donne des types str, donc il faut convertir en int pour que ça fonctionne.
EspaceRaspberryFrancais, le 16/09/2018 à 17h46
Bonjour dood,

Merci pour l'info, je viens de corriger le code :)

Bonne continuation sur votre Raspberry Pi !
tafiolemika, le 23/11/2018 à 16h44
bonjour
le programme m'indique une erreur :
unorderable type : int () <= str()
merci de votre aide
EspaceRaspberryFrancais, le 24/11/2018 à 10h18
Bonjour tafiolemika,
Je viens de changer le code, cela devrait marcher maintenant !
Le problème venait du fait qu'il restait des input qui n'étaient pas convertis en entier dans le code et qui donnaient donc des str.

Bonne journée,
EspaceRaspberryFrancais.
Romain, le 08/12/2018 à 13h15
Il faut une bread board?
Et est ce qu'on peut utiliser un Raspberry Pi zero ?
EspaceRaspberryFrancais, le 09/12/2018 à 18h45
Bonjour Romain,
La Bread Board n'est pas obligatoire, mais sans, il faut souder la résistance du schéma aux fils, ce qui est un peu plus compliqué.
Sinon, oui le tuto est réalisable sur Raspberry Pi Zero, en utilisant le même GPIO qu'avec un Raspberry Pi 3.

Bonne soirée !
viforget, le 23/12/2018 à 02h57
Bonsoir, j'aimerai savoir a quoi sert la variable ajoutAngle S.V.P
Robinson, le 07/02/2019 à 13h20
Bonjour. Merci pour ce petit programme. J'aimerais controler deux servomoteur, un pour les axes X et l'autre pour les axes Y par exemple. Comment dois-je faire?!
Est ce que : GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
GPIO.setup(27, GPIO.OUT)
GPIO.setwarnings(False)

Fonctionnerai ou bien fait il "configurer" le programme autrement?!

Merci d'avance pour votre reponce.
EspaceRaspberryFrancais, le 10/02/2019 à 09h42
Bonjour,
Je ne possède qu'un Servo moteur donc je ne peux malheureusement pas tester mais je pense que on peut faire fonctionner le script avec autant de Servo que l'on veut.
En plus de l'ajout de GPIO.setup(27, GPIO.OUT), il faut ajouter ligne 23 : pwm2=GPIO.PWM(27,100) pour définir le deuxième servo et ensuite faire ce que vous voulez avec ce dernier.

Bonne journée,
EspaceRaspberryFrancais.
Robinson, le 12/02/2019 à 06h38
Merci pour votre reponse. Je teste ca au plus vite. :)
Commenter
Votre adresse mail ne sera pas visible sur le site.

Seuls les commentaires jugés corrects seront mis en ligne.



Composants Bien débuter sur le Raspberry PI Configurer le Raspberry Pi
Ecran LCD 16x02 Accessoires indispensables sur Raspberry Pi Connexion sans login ni mot de passe au Raspberry
Capteur de température DS18B20 Première installation et démarage Changer le Hostname du Raspberry Pi
Afficheurs 7 segments Création et execution d'un programme Python Connexion Ethernet Raspberry/ordinateur
Capteur distance HC-SR04 Connexion au bureau depuis Windows
Bouton Test & tuto : Ecran LCD 7" tactile
Servo Moteur
Capteur de présence HC-SR501
Module RFID-RC522
Caméra sur Raspberry Pi

EspaceRaspberryFrançais |
Contact | Facebook | Liens utiles



En tant que Partenaire Amazon, je réalise un bénéfice sur les achats remplissant les conditions requises.

Espace-raspberry-francais.fr est hebergé par SARL LWS.