Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Servo DS3218 - GPIOZERO
#1
Bonjour

J'ai un Raspberry Pi 3 et je souhaite connecter un servomoteur DS3218mg via le GPIO.
Le DS3218, je l'ai commandé sur Wish, où on me donne un petit descriptif des caractéristiques.

J'ai donc :
- alimenté le servo avec 4 piles AA 
- relié le servo au pin GPIO17 avec une résistance de 1Kohms
- relié les GND ensemble


J'utilise pour cela l'interface GPIOZERO, et j'ai donc suivi les exemples disponibles sur le site GPIOZERO Servo.

Cependant je n'arrive pas à commander le servo-moteur.
Pourriez vous m'aider ? 

Cordialement
Répondre
#2
Je vais poser une question très bête, mais c'est bien le GPIO17 (broche 11) et pas la broche 17 (+3.3V) que tu utilises ?

Si oui, tu n'as pas d'erreur particulière en lançant ton script ? Peux-tu nous le copier ici ?
Répondre
#3
Oui, c'est bien le GPIO17, que j'utilise.

Voici, un de mes scripts de test, issue de GPIOZERO
Code :
from gpiozero import Servo
from time import sleep

servo = Servo(17)
while True:
   servo.min()
   sleep(1)
   servo.mid()
   sleep(1)
   servo.max()
   sleep(1)

Je n'ai pas d'erreur particulière en lançant le script.
A mon avis, il s'agit des paramètres par défaut de la classe Servo, qui ne sont pas adapté au DS3218. Cependant, je n'arrive pas à trouver les bons paramétrages.

Par défaut, la classe gpiozero.Servo
Code :
class gpiozero.Servo(pin, *, initial_value=0, min_pulse_width=1/1000, max_pulse_width=2/1000, frame_width=20/1000, pin_factory=None)
Répondre
#4
Ou bien (aussi) le GPIO qui est un peu trop léger pour le commander. Sur https://www.robotdigg.com/product/775/DS...ital-Servo, bien qu'ils disent que le servo fonctionne à partir de 4.8V, ils ne donnent des vitesses et couples que pour 6V et 7.2V.
As-tu testé le servo juste sur le +5V du RPi pour voir s'il fonctionnait à cette tension ?
Répondre
#5
Non je n'ai pas testé sur le +5V du RPI. 
Dans tout les tutoriels que j'ai suivi, on précise de passer par une source externe et non par le +5V du RPI.

Sa ne risque rien si je branche sur le 5V du RPI ?

C'est précisé à partir de 4.8V et ils donnent des vitesses et couples que pour 6V et 7.2V.
J'ai 4V * 1.5 = 6V, sa devrait convenir, non ?
Répondre
#6
(25-01-2018, 07:36:51)Fru974 a écrit : Non je n'ai pas testé sur le +5V du RPI. 
Dans tout les tutoriels que j'ai suivi, on précise de passer par une source externe et non par le +5V du RPI.

Sa ne risque rien si je branche sur le 5V du RPI ?

C'est précisé à partir de 4.8V et ils donnent des vitesses et couples que pour 6V et 7.2V.
J'ai 4V * 1.5 = 6V, sa devrait convenir, non ?

Bonjour
Je serais toi, j'éviterais l'alimentation du RPI, le DS3218 est un servo à fort couple et donc consommation élevée.
Il consomme 80mA à vide (sous 6V et jusqu'à 1.3A, voir 1.5A pour 7.2V (https://www.autobotic.com.my/ds3218-serv...servo-armv) il te faut donc une alimentation correcte d'au moins 2A et au moins 6V pour qu'il ait du répondant. Avec des piles, c'est jouable, mais elles ont intérêt à être neuves et elles vont vite se vider.
Pour un servo standard et un seul, ça passe avec l'alimentation du RPI, mais pas plus. Et juste pour des tests car ça parasite pas mal et c'est pas très bon pour le Raspberry.
Par contre, je ne connais pas ta librairie, mais le port qui fait le PWM sur le Raspberry 3 c'est le GPIO18, pas le 17. Sinon, il faut une librairie qui émule le PWM, mais c'est fait par le logiciel et pas par l'électronique du Raspberry.
Je te joints des études que j'ai faites sur le PWM en général et le pilotage des servos, ça t'aidera surement
http://raspberrypi.pagesperso-orange.fr/.../26-03.htm
http://raspberrypi.pagesperso-orange.fr/.../26-10.htm
http://raspberrypi.pagesperso-orange.fr/...-06-06.htm
Bon courage et n’hésite pas si tu as des questions
Répondre
#7
Citation : Avec des piles, c'est jouable, mais elles ont intérêt à être neuves et elles vont vite se vider.

Le servo sera utilisé uniquement 2 fois par jour pendant quelque secondes, et cela chaque jour. Je pense que sa devrait tenir dans la durée, non ? 

Citation :Par contre, je ne connais pas ta librairie, mais le port qui fait le PWM sur le Raspberry 3 c'est le GPIO18, pas le 17. Sinon, il faut une librairie qui émule le PWM
C'est une librairie que j'ai découverte aussi, elle est bien construite et facile à comprendre.
La librairie émule bien le PWM, j'ai testé avec un petit servo, celui fourni par le kit Adeept Ultrasonic Distance Sensor, et j'avais bien la rotation de celui ci. 

Mais avec le DS3218, rien du tout.

Merci de tes liens, je vais regarder si sa peux m'aider.
Répondre
#8
Le SG90 de ton kit est plutôt un mini servo qui consomme beaucoup moins, je pense que tu as un problème de puissance
Je pense aussi que la résistance de 1ko entre le GPIO et le servo fait trop chuter la tension de commande, essais en direct, ça devrait aller mieux.
Répondre
#9
Bonjour

J'ai réussi a faire marcher en partie mon code. 
Pour cela, j'ai du changer de librairie, maintenant c'est RPi.GPIO et de pin, maintenant je suis banché sur le GPIO18.

Le code qui marche permet de faire des aller retour .

Code :
import RPi.GPIO as GPIO
import time

def setAngle(angle):
   duty = float(angle) / 10 + 2.5
   p.ChangeDutyCycle(duty)
   time.sleep(0.015)

servoPin = 18

GPIO.setwarnings(False)

GPIO.setmode(GPIO.BCM)
GPIO.setup(servoPin, GPIO.OUT)

p = GPIO.PWM(servoPin, 100)
p.start(5)

#Code qui marche
for angle in range (0, 270):
   setAngle(angle)

for angle in range (270, 0, -1):
   setAngle(angle)


Le seul soucis, c'est que je veux pouvoir donner un angle et y aller directement.

Si je fais uniquement setAngle(90), rien ne ce passe


Cordialement.
Répondre
#10
J'ai déjà eu ce genre de problème avec un servo Futaba S3305.

J'ai l'impression que les servos à fort couple doivent passer par des valeurs intermédiaires, sinon ils refusent de bouger si la commande est trop rapide. Ils ont comme de l'inertie.

Il faut que tu fasses une boucle pour le faire passer de ta position à 90° par pas de 2 ou 3°
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)

A propos de Communauté francophone RPi

Communauté francophone RPi est un forum d'aide et de partage autour du Raspberry Pi et des micro-ordinateurs.