Raspberry Pi + сервопривод (servo)

Приветствую вас! Мы уже разобрались с понятием ШИМ (PWM) и пробовали подключать наш сервопривод к Arduino, поэтому на теории подробно останавливаться не будем.

Подключение к Raspberry Pi

От сервопривода идет шлейф из трех проводов:

красный – питание – подключается к контакту 5V (пин 2) или непосредственно к источнику питания;

коричневый или черный – земля GND (пин 6 Raspberry Pi);

желтый или белый – сигнал; подключим к пину 7.
gpio

Спецификации нашего серво
Модель: TowerPro SG90
Рабочее напряжение: 4.8 DC
Скорость: 60 градусов за 0.1 с
Крутящий момент: 1.6 кг см
Вес: 9 г
Диапазон ширины импульса: 0.5 мс – 2.5 мс

towerpro-sg-90-9g-servoaccessories-1534857789

Данное серво не может вращаться на 360 градусов. Оно имеет нейтральную позицию (Neutral) и границы в ноль и 180 градусов. Для установления серво в нейтральную позицию, необходимо подать высокий сигнал длительностью 1.5 мс, в 0 градусов – 0.5 мс, в 180 градусов – 2.5 мс.

кут серво

Рассмотрим следующую программу:

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)

GPIO.setup(7,GPIO.OUT)

p = GPIO.PWM(7,50)
p.start(7.5)

try:
        while True:
                p.ChangeDutyCycle(7.5)
                time.sleep(1)
                p.ChangeDutyCycle(12.5)
                time.sleep(1)
                p.ChangeDutyCycle(2.5)
                time.sleep(1)

except KeyboardInterrupt:
        p.stop()

        GPIO.cleanup()

В данной программе мы настраиваем седьмой пин для работы широтно-импульсной модуляции с частотой 50 Герц: GPIO.PWM(7,50)

Теперь подавая на серво импульсы разной длины мы можем изменять его положение
цикл серво
Работа данной программы:

Было очень полезным видео

Оставить ответ

Обязательные поля помечены*

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.