Проблемы с сервоприводом при использовании ШИМ с Raspberry Pi - PullRequest
0 голосов
/ 07 июня 2018

Моя настройка - это просто сервопривод JX-PDI-6221MG, который напрямую активируется с помощью PWM от Raspberry Pi через библиотеку GPIO.Сервопривод совершенно новый, я следовал этому уроку и установил значения рабочего цикла от 0 до 100. Углы, которые он делает, не имеют шаблона, кажется, он идет в одну сторону от 20 до 50 и от 60 до 90другой.

Я решаю перебрать все возможные рабочие циклы (код приведен ниже) и подтверждаю, что изменения не являются плавными и не выглядят точными.После попытки установить фиксированные значения снова он начинает вращаться в нескольких направлениях, даже не меняя ничего.Даже GPIO.cleanup() или уничтожение процессов, связанных с python, не остановили его.

Мой Raspberry Pi начинает дрожать и быть очень неточным или я стал жертвой фальсификации?

Код:

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)
GPIO.setup(11,GPIO.OUT)
pwm=GPIO.PWM(11,330) #which is the same as shown in datasheet
pwm.start(0)

for i in range(0,100):
     pwm.ChangeDutyCycle(i)
     time.sleep(0.02)

for i in range(0,100):
     i = 100 - i
     pwm.ChangeDutyCycle(i)
     time.sleep(0.02)`

1 Ответ

0 голосов
/ 22 июня 2018

AFAIK, только GPIO 18 может использоваться библиотекой GPIO для аппаратного ШИМ.попробуйте изменить tht GPIO.OUT на это.

Также попробуйте использовать библиотеку pigpio, которая позволяет ЛЮБОМУ выводу GPIO выполнять аппаратную синхронизацию по времени.

...