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)

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

Було надзвичайно корисним відео

1 комментарий

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

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

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