Управляем сервоприводом с помощью Raspberry Pi

Управляем сервоприводом с помощью Raspberry Pi

микрокомпьютер Raspberry Pi в Суперайс

Сервоприводы - это устройства, управляющие углом поворота или положением различных механизмов и объектов. Их используют во многих областях, включая робототехнику, автоматизацию производства, авиацию, авиамоделирование, а также многих других. Сервоприводы обеспечивают точное позиционирование и стабильность в производственных процессах, что улучшает качество продукции и существенно повышает эффективность производства.

Время чтения: 18 минут

Серводвигатели применяются вместе с различными одноплатными компьютерами, например, такими, как Raspberry Pi или другие. Приводы применяются в проектах, требующих точного контроля за движением разных механизмов. Одноплатные компьютеры имеют интерфейс ввода-вывода общего назначения – GPIO (general-purpose input/output). Этот интерфейс используется для присоединения внешних устройств, а также обмена с ними данными. На плате он представлен 40-контактным разъемом, выводы которого подключаются, в том числе, к сервомотору.

Raspberry Pi 4 в Суперайс
Распиновка 40-контактного разъема Raspberry Pi 4

Для чего может потребоваться управление сервоприводом через одноплатный компьютер?

Управление серводвигателями с помощью Raspberry Pi используется, например, в робототехнике, чтобы перемещать руки, ноги, а также другие части робота. Кроме того, серводвигатели применяют в автоматизации производства. Например, для автоматизации производственных линий, конвейерами, кранами, множеством других механизмов. Их использование повышает качество и эффективность производства. Передача управляющих сигналов возможна через такие интерфейсы как: UART, I2C или SPI.

Управление сервомотором при помощи одноплатного микрокомпьютера потребуется во многих проектах, где есть точный контроль за движением объекта. Ниже приведены лишь некоторые примеры проектов с контроля привода через Распберри Пи.

  • Робототехника: многие роботы оснащены серводвигателями для контроля движениями, отдельными частями, например, такими, как руки, ноги, голова и другие. Микрокомпьютеры управляют одним или несколькими приводами, созданы для программирования периодичности, последовательности их срабатывания.
  • Гиро-камера: камеры с гироскопической системой предназначены для стабилизации, снижения вибрации при съемке видео или фотографий. Для гиростабилизатора требуется контроль за несколькими сервомоторами. За это также отвечает Распберри Пи, обеспечивая высокую устойчивость и стабилизацию положения камеры.
  • Автоматизация дома: Одноплатные микрокомпьютеры применяются в управлении множеством IoT (internet of things – интернет вещей) устройств, размещаемых в доме. Это - включение и выключение света, музыки, работа системы безопасности, evysst приборы и электроника. Двигатели в системе IoT управляют дверными замками, автоматическими воротами, шторами; присутствуют в системе полива, отопления, водоснабжения, и многих других.
  • Моделирование и симуляция: Raspberry Pi применяется при контроле серводвигателями в моделях автомобилей, кораблей, самолетов. При помощи Распберри Пи можно запрограммировать точные, повторяющиеся движения приводами, а также управлять ими дистанционно.
  • Прототипирование: микрокомпьютер Распберри прототипирует механические устройства, которые требуют точного контроля за движениями. Сервоприводы используют для создания прототипов таких механизмов, как автоматизация технологического процесса или работа робота-манипулятора.
Применение сервомоторов вместе с одноплатными компьютерами расширяет возможности при разработке различных проектов, требующих точного перемещения механизмов.

Что требуется для управления сервоприводом?

Для контроля серводвигателя через одноплатный компьютер (например, Raspberry Pi или Orange Pi), вам понадобится:

  • Сервопривод;
  • Управляющая платформа;
  • Источник напряжения для привода и одноплатного ПК;
  • Дополнительное оборудование;
  • Схема подключения;
  • Операционная система и код управления.

Рассмотрим каждый пункт более подробно.

Выбираем сервопривод

При выборе сервопривода учитываем следующие его характеристики:

  • Крутящий момент: Это один из главных параметров, который определяет, сколько усилий потребуется от привода, для того чтобы он смог выполнить полезную работу.
  • Скорость вращения: Учет скорости вращения для того, чтобы сервомотор перемещал объект с соответствующей задаче линейной или угловой скоростью.
  • Точность: В некоторых областях, например, робототехнике, требуется высокой уровень точности совершаемых движений. В этом случае выбор привода с высокой точностью позиционирования.
  • Размер: Размер сервопривода может быть важным фактором при его выборе. В некоторых случаях - более компактный привод для конструирования компактных устройств.
  • Рабочее напряжение: Необходимо убедиться, что серводвигатель работает с имеющимся напряжением электропитания. Ведь величина напряжения влияет как на скорость, так и на крутящий момент привода. Многим из них достаточно энергии поступающей от микрокомпьютера, однако ряд моделей питаются более высоким напряжением, до 11 Вольт, например. Это обязательно учитываем.
  • Совместимость с контроллером: Важно выбрать двигатель, который легко подключается к контроллеру, находящемуся в системе управления. В противном случае используем шилды-адаптеры или специальные переходники.
  • Жизненный цикл: Некоторые ситуации требуют высокой надежности, длительного срока службы. В этом случае выбираем сервопривод с высоким жизненным циклом. Это обеспечивается качеством производства, степенью защиты устройства от пыли и влаги.
  • Стоимость: Стоимость – это не менее важная характеристика при выборе сервомотора. Выбираем такой привод, который не только отвечал требованиям проекта, но также был доступен в рамках бюджета.

Подбираем управляющую платформу

Под управляющей платформой понимается одноплатный компьютер, который будет управлять нашим серводвигателем. В настоящее время наиболее популярными являются Распберри Пи. Существующие на рынке модели различаются техническими характеристиками (тип микропроцессора, объем памяти, тип, число периферийных разъемов), а также форм-фактором (размером).

Raspberry Pi 4 Model B – это самый популярный одноплатный компьютер, выпущенный компанией Raspberry Pi Foundation в июне 2019 года. Это самая новая, мощная модель Распберри Пи на текущий момент.

Основные технические характеристики включают:

  • 4-ядерный процессор ARM Cortex-A72 с частотой 1,5 ГГц;
  • 8 ГБ оперативной памяти LPDDR4-3200;
  • Встроенный графический процессор Broadcom VideoCore VI с частотой 500 МГц;
  • Беспроводная связь: Wi-Fi 802.11ac, Bluetooth 5.0 BLE;
  • Порты для внешних устройств:
    • 2 х Micro HDMI;
    • 2 x USB 3.0;
    • 2 x USB 2.0;
    • 1 x Gigabit Ethernet;
    • 1 x 40-pins.
  • Дополнительная память: слот для карт MicroSD объемом до 64 ГБ
  • Габариты: 88 x 58 x 19,5 мм
Raspberry Pi 4 B 8GB в Суперайс
Одноплатный компьютер Raspberry Pi 4 B 8GB

Raspberry Pi Zero WH – это одноплатный компьютер, который был выпущен в начале 2018 года. Для создания миниатюрных проектов, где требуется небольшой размер, вес, низкое энергопотребление – менее 150 мА при рабочем напряжении в 5 В. Компактные одноплатные микрокомпьютеры применяют для таких проектов как: контроль умного дома, автоматизации линий и станков, конструирование дронов, других роботизированных устройств.

Основные характеристики этой модели:

  • Одноядерный процессор ARM1176 с тактовой частотой 1 ГГц;
  • 512 МБ оперативной памяти LPDDR2 SDRAM;
  • Графический процессор VideoCore с частотой 250 МГц;
  • Встроенные модули Wi-Fi (802.11n), Bluetooth 4.1;
  • TF разъем для подключения Micro SD карт объемом до 32 ГБ;,
  • Порты для подключения периферии:
    • Видеовыход: mini-HDMI;
    • Аудиовыход: mini-Jack;
    • USB-порты: 1x micro-USB для питания, 1x micro-USB для данных;
    • 40-контактный разъем.
  • Размер: 65 мм x 30 мм x 5 мм.
Raspberry Pi Zero WH в Суперайс
Микрокомпьютер Raspberry Pi Zero WH.

Raspberry Pi Zero 2 W – это миниатюрный одноплатный компьютер, который был выпущен в конце 2021 года. Он представляет собой более мощную, улучшенную версию компактного одноплатного ПК. При этом его энергопотребление при 5 В менее 500 мА.

Технические характеристики следующие:

  • 4-ядерный процессор ARM Cortex-A53 с частотой ядер в 1 ГГц;
  • Оперативная память LPDDR2 на 512 МБ;
  • Беспроводные модули: Wi-Fi 2,4 ГГц, Bluetooth 4.2 BLE;
  • Поддержка карт памяти MicroSD до 128 ГБ;
  • Подключение периферии: mini-HDMI, mini-Jack, 2x micro-USB для подачи напряжения, передачи данных, GPIO-разъем;
  • Размер: 65 мм x 30 мм x 5 мм.
купить Raspberry Pi Zero 2 W в Суперайс
Микрокомпьютер Raspberry Pi Zero 2 W
Компактные одноплатные компьютеры подойдут при реализации различных проектов, таких как умный дом, автоматизация, робототехника, веб-сервер и другие.

Благодаря высокой производительности, малой мощности, размеру, а также относительно низкой стоимости, что делает его доступным для широкой аудитории.

Выбираем схему питания проекта

Для Распберри Пи 4 нужен источник электропитания с напряжением 5 В и током не менее 3 А. Производитель рекомендует брать официальный источник - Raspberry Pi Power Supply, либо другой надежный источник, соответствующий указанным требованиям.

Подачу напряжения для привода реализовываем двумя способами:

  • Использовать электропитание от отдельного независимого источника (блока питания);
  • Подать питание от контактов 40-пинового разъема платы микрокомпьютера.

Питание от независимого источника

У сервоприводов, в зависимости от модели, напряжение составляет 3.3В, 4.8В, 6В, 7.2В или даже 12 В. В связи с этим не на все из них можно подать электропитание от ввода-вывода. В этом случае отдельный независимый источник станет единственным решением.

купить блок питания в Суперайс
Независимые источники питания (слева направо): импульсный блок питания 0520, 5В, 2А (адаптер), блок питания, 5В, 4А, 20Вт, DC-DC повышающе-понижающий преобразователь XL6019

Помимо решения проблемы несовпадения напряжений, независимый режим питания имеет ряд дополнительных преимуществ:

  • отсутствует влияние на линию питания одноплатника и остального оборудования (актуально для мощных сервомоторов);
  • не требуется дополнительной платы расширения (шилда) для согласования напряжений питания;
  • снижение нагрузки на цепи электропитания Распберри, особенно если нужно обеспечить питанием несколько приводов.

Питание от шины ввода-вывода

Все современные модели Распберри Пи и ее клоны имеют дополнительные контакты питания на 40-контактной шине. Это линии электропитания в 5 В (контакты 2, 4), а также линии 3,3 В (выводы 1, 17). Использование контактов ввода-вывода оправдано в следующих случаях:

  • Суммарная нагрузка потребителей не превышает допустимую;
  • При «обкатке» проекта на этапе прототипирования
распберри пай в Суперайс
Распиновка 40-контактного разъема Распберри Пай. Линии питания отмечены красным (5 В) и оранжевым (3,3 В), черным – земля (GND)

Не стоит забывать, что существует ограничение на нагрузку, подключаемую к контактам электропитания, размещенным на 40-пиновом разъеме Raspberry 4.

  • 3,3-вольтовая линия ограничивается характеристиками стабилизатора напряжения. В среднем допустимый ток по ней составляет 1...1,2 А.
  • 5-вольтовая линия нужна для питания потребителей, самой платы. Максимальный ток на ней не должен превышать 3 Ампер.

При электроснабжении проекта от единого источника обязательно учитывайте не только мощность подключаемой периферии, но и потребление от микрокомпьютера. Так для Распберри 4 модели пиковое потребление достигает 1,5 А.

При превышении максимального допустимого значения тока, проходящего по 5-вольтовым выводам 40-контактной шины, могут привести к проблемам со стабильностью, повреждению самой платы. Также помните, что дефицит по питанию сказывается на работе платы, периферийных устройств.

Подбор дополнительного оборудования

Дополнительные элементы делятся на две части:

  • расширяющие функционал проекта;
  • упрощающие присоединение.

К первым относятся элементы, дополняющие, расширяющие функционал проекта. Это сенсоры, датчики (света, влажности, температуры и пр.) для регистрации внешних данных, дисплеи для визуализации данных, модули приема и передачи, а также другие компоненты.

Ко вторым относятся платы расширения или шилды. Они позволяют быстро присоединить устройства за счет группирования линий электропитания, линий передачи данных.

заказать шилд для платы в Суперайс
Шилд для подключения серводвигателей установленный на платах Raspberry Pi 4 Model B 4GB (слева) и Raspberry Pi Zero W (справа)

Выбираем схему подключения

Составить схему соединения Raspberry 4 и сервопривода не составляет серьёзного труда. Единственное, что учитываем при ее сборке – это схема электропитания, а также наличие внешних устройств.

При присоединении к плате только сервомотора и использовании электропитания от 40-контактной шины соблюдаем схему соединения проводов. Для исключения ошибок, провода отходящие от привода имеют различные цвета:

  • Красный провод предназначен для присоединения к положительному (+) контакту;
  • Черный провод – для подключения к отрицательному (-) контакту или земле (GND);
  • Желтый или оранжевый провод предназначен для управления вращением привода. Он присоединяется к одному из управляющих контактов шины ввода-вывода.
микрокомпьютер в Суперайс
Схема присоединения сервопривода с питанием от платы микрокомпьютера и подачей ШИМ-сигнала по 18 пину
купить микрокомпьютер в Суперайс
Схема присоединения трех сервоприводов с независимым питанием и их управлением по 18, 23 и 24 пинам шины ввода-вывода
Обратите внимание, что подключение привода к Raspberry Pi требует некоторых знаний в области электроники, программирования. Пожалуйста, соблюдайте все меры предосторожности.

Подбираем операционную систему

Raspberry Pi существенно отличается от микроконтроллеров на базе ARM или STM. Большая производительность, объем оперативной памяти позволяют интегрировать на плату собственную операционную систему. Чаще всего, оболочка на базе Android или GNU/Linux: Ubuntu, Debian, Armbian, Arch Linux, Fedora, а также множество других.

На то, какую версию оболочки устанавливаем на одноплатный компьютер, влияет тип микропроцессора, его производительность и доступный объем памяти.

Часто производители одноплатных микрокомпьютеров разрабатывают собственные операционные системы: для Распберри – Raspberry Pi OS, для Orange Pi -Orange Pi OS (Droid, Arch, OH). Их преимущество – это оптимизация работы под конкретную плату, поддержка разработчика, комьюнити.

Пишем код управления

Для взаимодействия с серводвигателем требуется написать управляющий код. В зависимости от платформы вам потребуется тот или иной язык программирования. Чаще всего такое написание управляющего кода выполняется на Python или C ++.

Язык программирования Пайтон очень популярен, часто его интерпретатор уже интегрирован в оболочку.

Для контроля за двигателем с помощью одноплатного микрокомпьютера применяют одну из доступных библиотек, контролирующих действия шины ввода-вывода, например, такую как RPi.GPIO или pigpio.

В качестве примера можно составить код для контроля тремя приводами. Управляющие сигналы передаются по пинам 18, 23, 24 шины ввода-вывода.

Перед началом важно убедиться, что вы подключаете приводы правильно к Распберри Пи и используете правильный номера пинов в вашем коде. Особенно это актуально если вы используете сторонний код, а не написанный вами лично.

В начале выполняем импорт библиотеки: RPi.GPIO. Она позволит нам управлять пинами ввода-вывода на 40-контактном разъеме Raspberry Pi. Дополнительно подключаем библиотеку time. Она необходима при работе со временем. В нашем случае – это установка задержки (паузы) в работе двигателя

купить одноплатный компьютер в Суперайс

С помощью библиотеки RPi.GPIO устанавливаем режим нумерации контактов BCM (Broadcom SOC channel). Далее конфигурируем контакты 18, 23, 24, устанавливая их как выходы.

заказать одноплатный компьютер в Суперайс

Создаем ШИМ-объекты (PWM) для каждого из управляющих пинов. Каждому объекту назначаем свой контакт, определяем для них рабочую частоту – 50 Гц.

одноплатный компьютер купить в Суперайс

Выполним инициализацию каждого из двигателей установив их в исходное состояние.

одноплатный компьютер заказать в Суперайс

Определяем функцию для передачи команд сервоприводам. В нее передается два значения: номер двигателя (servo) и угол поворота (angle). Принятое в функцию значение угла конвертируется в коэффициент заполнения (скважность) ШИМ-сигнала – duty. Далее, используя метод ChangeDutyCycle, устанавливается угол поворота выбранного серводвигателя.

Командой time.sleep(1) задаем задержку в одну секунду, а затем отключаем пин.

одноплатный компьютер в Суперайс

В простейшем варианте используем функцию set_angle для контроля за каждым двигателем и установки на них нужного угла поворота.

одноплатный микрокомпьютер в Суперайс

По завершении выполнения команд останавливаем приводы, освобождаем ресурсы.

микрокомпьютер одноплатный купить в Суперайс

После того как вы собрали все компоненты, написали код, приступайте к работе с сервоприводом. Например, изменяйте угол поворота сервопривода, перемещайте его в различные положения или изменяйте скорость его вращения. Дополнив код, привяжите работу приводов и углы их поворота к определенному времени или реакции каких-либо датчиков (света, влажности и т.п.).



Количество показов: 2959
28.03.2023
Понравилась статья? Поделитесь ей в ваших социальных сетях:

Возврат к списку