Опубликовано 2026-04-20
В этом руководстве представлены пошаговые инструкции по подключению и управлению микроконтроллером.сервоприводдвигатель с использованием Raspberry Pi. Вы изучите правильное подключение, примеры кода Python и практические решения распространенных проблем. Вся информация основана на стандартных электронных методах и проверена в ходе реальных испытаний.
Raspberry Pi (любая модель с контактами GPIO, например 3B+, 4 или 5)
Микросервоприводдвигатель (общий тип: 9 гсервопривод, 3-проводной)
Перемычки (мама-мама)
Внешний источник питания 5 В (опционально, но рекомендуется для стабильной работы)
Небольшой потенциометр (опционально, для примера ручного управления)
Важное примечание по безопасности:Не подавайте питание наМикро Сервоприводнепосредственно от контакта 5 В Raspberry Pi, если вы используете сервопривод под нагрузкой или в течение длительного времени. Выход 5 В Pi может подавать только около 500 мА, аМикро Сервоприводможет потреблять 200-400 мА во время движения. Используйте отдельный источник питания 5 В (например, 4 батарейки АА или блок питания USB 5 В) и подключите землю этого источника к земле Pi.
Точно следуйте этим трем соединениям.Микро Сервоприводимеет три провода:
Коричневый или черный→ Земля (GND)
Красный→ Питание 5 В (внешний источник питания или вывод 5 В Pi только для тестирования)
Оранжевый или желтый→ Контакт GPIO (например, GPIO18)
Пример общего случая:Любитель попытался запитать два микросервопривода напрямую от контакта 5 В Pi. Сервоприводы хаотично дергались, и Pi перезагрузился. После добавления отдельного батарейного блока на 5 В (4xAA) и соединения всех заземлений оба сервопривода работали без сбоев в течение нескольких часов.
Микросерводвигатель содержит двигатель постоянного тока, потенциометр (датчик положения) и схему управления. Он используетШиротно-импульсная модуляция (ШИМ)для установки угла вала. Сервопривод ожидает сигнал частотой 50 Гц (период 20 мс). Длина импульса определяет угол:
Импульс 0,5 мс → 0 градусов
Импульс 1,5 мс → 90 градусов (центр)
Импульс 2,5 мс → 180 градусов
Большинство микросервоприводов имеют физический диапазон около 180 градусов, но некоторые составляют 90 или 270 градусов. Всегда сначала проверяйте пределы без нагрузки.
1. Включите оборудование ШИМ на Raspberry Pi. Откройте терминал и запустите:
sudo raspi-конфигурация
Перейдите к: «Параметры интерфейса» → «Удаленный GPIO» → «Да» → «Готово».
2. Установите библиотеку RPi.GPIO (предустановлена в большинстве версий ОС Raspberry Pi). Для полного управления ШИМ установите pigpio:
sudo apt update sudo apt install pigpio python3-pigpio sudo systemctl включить pigpiod sudo systemctl запустить pigpiod
Создайте файл с именемservo_sweep.py:
import pigpio import time # Подключитесь к демону pigpio pi = pigpio.pi(), если не pi.connected: print("Демон Pigpio не запущен. Начните с: sudo pigpiod") exit() # Установите контакт GPIO (используя GPIO18) SERVO_PIN = 18 # Определите ширину импульса в микросекундах (500 = 0,5 мс, 2500 = 2,5 мс) def set_angle(angle): # Преобразование угол (0–180) к ширине импульса (500–2500) импульс = 500 + (угол / 180,0)2000 pi.set_servo_pulsewidth(SERVO_PIN,pulse) попробуйте: while True: для угла в диапазоне (0, 181, 10): set_angle(angle) time.sleep(0,1) для угла в диапазоне (180, -1, -10): set_angle(angle) time.sleep(0,1) кроме KeyboardInterrupt: print("Stopping...") pi.set_servo_pulsewidth(SERVO_PIN, 0) # Остановить сигнал ШИМ pi.stop()
Запустите код:
sudo pigpiod # если python3 servo_sweep.py еще не запущен
Ожидаемый результат:Сервоманипулятор будет поворачиваться от 0 до 180 градусов и обратно, делая паузу 0,1 секунды на каждые 10 градусов.
В этом примере вы можете повернуть потенциометр для позиционирования сервопривода. Подключите потенциометр 10 кОм: левый контакт к 3,3 В, правый контакт к GND, средний контакт к GPIO17 (вход АЦП). Raspberry Pi не имеет аналоговых входов, поэтому мы используем микросхему АЦП MCP3008 или простой метод синхронизации RC. Ниже приведен метод синхронизации RC (дополнительный чип не требуется).
Подключите конденсатор 1 мкФ между GPIO23 и GND, а резистор 10 кОм от GPIO23 к движку потенциометра. Это продвинутый уровень. Для простоты используйте MCP3008 с SPI. Однако распространенный случай: многие новички терпят неудачу, потому что пытаются читать аналог напрямую.Рекомендация:Используйте недорогой АЦП, например MCP3008, или купите плату драйвера сервопривода.
Вот надежный код с использованием MCP3008:
import pigpio import time import spidev spi = spidev.SpiDev() spi.open(0, 0) spi.max_speed_hz = 1350000 def read_adc(channel): если канал 7: return -1 adc = spi.xfer2([1, (8+channel) 2000 pi.set_servo_pulsewidth(SERVO_PIN,pulse) try: while True: value = read_adc(0) # потенциометр на канале 0 angular = (value / 1023.0) * 180 set_angle(angle) time.sleep(0.02) кроме KeyboardInterrupt: pi.set_servo_pulsewidth(SERVO_PIN, 0) pi.stop() spi.close()
Для управления до 16 микросервоприводами используйте специальную плату драйвера ШИМ (не называя бренды, найдите «16-канальный драйвер сервопривода ШИМ I2C»). Подключите его через I2C. Драйверу требуется только два контакта GPIO (SDA/SCL) и внешний источник питания 5 В. Каждый сервопривод имеет свой собственный сигнальный контакт. Это устраняет джиттер и нагрузку на процессор.
1. Всегда начинайте с одного сервопривода и внешнего источника питания 5 В.Прежде чем добавлять собственную логику, протестируйте код очистки.
2. Используйте pigpio для всех сервопроектов.Он обеспечивает аппаратно синхронизированную ШИМ с точностью до микросекунды, необходимую для плавного движения.
3. Установите сервоимпульс на 0 (выключено), когда он не движется.Это снижает энергопотребление и предотвращает перегрев.
4. Добавьте конденсатор емкостью 1000 мкФ к клеммам источника питания.(плюс и земля) рядом с сервоприводом для сглаживания скачков напряжения.
5. Для проектов с батарейным питанием используйте 4 NiMH перезаряжаемые батареи типа АА.(4,8 В) или регулируемый UBEC 5 В. Не используйте напряжение 6 В, если сервопривод не рассчитан на него (большинство микросервоприводов допускают напряжение 4,8–6,0 В).
Для управления микросерводвигателем с помощью Raspberry Pi требуется правильная проводка, внешний источник питания для надежной работы и библиотека pigpio для точных сигналов ШИМ. Основные шаги: правильно подключить заземление и питание, использовать GPIO18 для ШИМ, написать код Python, который сопоставляет углы с шириной импульса от 500 до 2500 микросекунд, и всегда сначала тестировать без нагрузки.
Заключительные действия:
Соберите схему с отдельным аккумулятором на 5 В.
Установите pigpio и запустите код очистки.
Измените код, чтобы интегрировать сервоуправление в свой собственный проект (роботизированная рука, поворотно-наклонная камера или автоподатчик).
Если вы испытываете дрожание, переключитесь с RPi.GPIO на pigpio.
Для нескольких сервоприводов добавьте плату драйвера ШИМ.
Следуя этому руководству, вы достигнете стабильного и точного управления любым стандартным микросерводвигателем с помощью Raspberry Pi.
Время обновления: 20 апреля 2026 г.
Свяжитесь со специалистом по продукции Kpower, чтобы порекомендовать подходящий двигатель или редуктор для вашего продукта.