CUSTOMELECTRONICS.RU
Информационно-учебный блог о разработке электроники
Эл. почта: info@customelectronics.ru

Многоканальный тестер сервоприводов с дисплеем и подключением к ПК

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

Для чего нужен тестер сервоприводов

В хоббийной электронике широко применяются системы с управлением при помощи PWM-сигнала. Это последовательность импульсов с частотой 50Гц. Информация в них кодируется в виде длительности импульсов, которые могут меняться от 0,8 до 2,3мс. Крайние значения этого диапазона могут незначительно отличаться у разных производителей.

Сигнал управления сервоприводом

Сигнал управления сервоприводом

Сервоприводы для строительства авиамоделей, гексаподов, манипуляторов и т.д., используют именно такой сигнал. Как правило они имеют три провода — питание, общий и сигнал. Также в авиамоделировании, автомоделировании, коптеростроении регуляторы хода коллекторных и бесколлекторных моторов используют такой же управляющий сигнал, который определяет скорость и направление вращения двигателей.
Источником такого сигнала может служить пульт управления, запрограммированный контроллер или что-то подобное. Но очень часто на этапе строительства бывает удобно применить тестер сервоприводов, который генерирует такой же сигнал в ручном режиме. Это позволяет заранее проверить работоспособность механики, измерить крайние положения и т.д.

Описание сервотестера

Мы поставили перед собой задачу сделать действительно полезный прибор. Вот его отличительные особенности:

  1. Шесть независимых каналов управления. Именно независимых! Обычно в готовых можно подключить одновременно несколько двигателей, но сигнал на них один и тот же. У нас можно даже запустить один в автоматическом режиме, а остальными управлять по очереди в ручном
  2. Формирование сигнала и индикация в микросекундах. В большинстве тестеров индикация отображается не понятно в чем, либо отсутствует вовсе
  3. Минимальный шаг изменения длительности — 1мкс. То есть диапазон 0,8-2,3мс разбит на 1500 шагов
  4. Возможность подключения к ПК. Можно использовать его, например, в паре с Raspberry Pi. Сам сигнал будет формироваться при этом существенно точнее, чем средствами самого одноплатного компьютера
  5. Открытость. В конце статьи вы сможете найти все файлы, необходимые для самостоятельного изготовления тестера

Забегая вперед, мы хотим продемонстрировать само устройство. Вот так тестер выглядит в собранном виде на заводской печатной плате:

Тестер сервоприводов

Тестер сервоприводов

История проекта

Простой одноканальный тестер мы разработали очень давно и конструкция пользуется популярностью. Нам до сих пишут с вопросами и поэтому мы решили сделать на смену ему действительно хороший прибор.
Мы выложили все файлы проекта, но решили подготовить партию для тех кто хочет купить в готовом виде. Весной 2016 мы провели кампанию по сбору средств в паблике Товары из Китая Радиолюбителю и в группе хакспэйса MakeItLab. Там, при желании вы сможете проследить за развитием идеи и процессом доводки и изготовления.
На данный момент вы тоже можете купить это изделие в собранном виде в нашем магазине.
Итак, перейдем непосредственно к тому, что он из себя представляет.

Схема тестера сервоприводов

Работая над схемой мы старались максимально удешевить ее и сделать простой в повторении. В качестве управляющего контроллера использована Atmega8A-AU.
Трехразрядный семисегментный дисплэй подключается через сдвиговый регистр и логические транзисторы. Шесть светодиодов служат для отображения текущего режима и подключены они методом так называемого чарлиплексирования для экономии выводов МК.
Для управления использован обычный инкрементальный энкодер и две кнопки. Энкодер управляет установленным углом, а кнопки переключают режим управления и текущий канал.
Разъемы тестера предназначены для подключения самих сервоприводов, программирования, подключения к ПК и питания. Мы приняли решение не устанавливать на плату стабилизатор питания. То есть для ее использования не получится использовать напряжение аккумуляторов напрямую. Необходимо найти источник или стабилизатор на 5В с током, соответствующим току, потребляемому подключаемыми двигателями.

Схема тестера сервоприводов

Схема тестера сервоприводов

Печатная плата

Печатная плата подготовлена в формате Sprint Layout. Это двухсторонняя плата, но ее характеристики вполне позволяют изготовить ее в домашних условиях ЛУТом или фоторезистом, а в переходные отверстия легко можно запаять перемычки с одной стороны платы на другую.

Плата тестера с лицевой стороны

Плата тестера с лицевой стороны

И вот так плата выглядит с лицевой стороны в собранном виде:

Плата тестера с лицевой стороны

Плата тестера с лицевой стороны

На обратной стороне установлено большинство SMD-компонентов:

Плата тестера с обратной стороны

Плата тестера с обратной стороны

И в собранном виде…

Плата тестера с обратной стороны

Плата тестера с обратной стороны

Ниже мы предоставим файл платы для скачивания. Вы не найдете в ней слоев шелкографии — это наш способ усложнить копирование устройства в заводских условиях, но если у вас есть возможность изготовить для личного пользования в домашних условиях плату с шелкографией, то напишите нам и мы вышлем полную версию исходника и gerber-файлы.
Некоторую сложность, с точки зрения припаивания, представляют только резисторные сборки в корпусе 0603×4. Также обратить внимание стоит на полярность светодиодов, которые установлены навстречу друг другу.

Список компонентов

Для сборки потребуется приобрести следующие компоненты:

  1. Микроконтроллер Atmega8A-AU в корпусе TQFP44
  2. Трехразрядный семисегментный дисплей с общим катодом BC56-12GWA. Если вы обратили внимание, на плате предусмотрено место для установки другого, существенно более дешевого дисплея с aliexpress
  3. Сдвиговый регистр SN74HC595DR в корпусе SOIC16
  4. Логический транзистор BCR108E6327 в корпусе SOT23 — 3шт
  5. Светодиоды KP-2012SGC, либо любые другие в корпусе 0805 — 6шт
  6. Инкрементальный энкодер EC12E24204A9
  7. Танталовый конденсатор T491C226K016AT (22мкФ-16В, типоразмер C)
  8. Конденсатор 0,1мк в корпусе 0805 — 7шт
  9. Резистор 1кОм в корпусе 0805
  10. Резисторная сборка 1кОм в корпусе 0603×4
  11. Резисторная сборка 300 Ом в корпусе 0603×4 — 3шт
  12. Кнопка без фиксации типа DTSM20-4.3N — 2шт
  13. Клеммная колодка с шагом выводов 5,08 с двумя контактами
  14. Гребенка контактов PLS-40 (всего потребуется 26 штырьков)
  15. Джампер

Корпус

Мы подготовили файлы для печати держателя платы. Он делает тестер более эстетичным и может быть прикручен к корпусу тестируемого объекта. Также можно распечатать ручку на энкодер. Ниже мы дадим ссылку для скачивания моделей для печати.

Корпус для тестера сервоприводов

Корпус для тестера сервоприводов

Тестер сервоприводов в сборе с корпусом

Тестер сервоприводов в сборе с корпусом

Прошивка

Файлы прошивки мы приложим в конце статьи. Прошить контроллер можно при помощи любого ISP-программатора через стандартный 6ти-пиновый разъем. На плате шесть из восьми контактов слева от энкодера предназначены в первую очередь именно для этого.
Фьюз-биты необходимо установить так, как показано на рисунке:

Фьюз-биты тестера сервоприводов

Фьюз-биты тестера сервоприводов

Работа тестера

Для запуска тестера в ручном режиме управления необходимо, чтобы перемычка «PC/Manual» при включении питания была установлена
При запуске в ручном режиме на дисплее высветиться приветствие «HI» и тестер перейдет в режим ожидания выбора пользователем начальной длительности сигнала. Грубо говоря, от края или от середины диапазона. При нажатии на левую кнопку управление будет происходить от нуля, при нажатии на правую — от середины. После нажатия на одну из кнопок начнется генерирование сигнала, активным станет первый канал и он перейдет в режим "1".
В рабочем режиме кнопка MODE переключает режимы управления, меняя шаг приращения. Отображение текущего режима происходит при помощи шести светодиодов. Возможны четыре ручных режима (шаг 0,1; 1; 10 и от 0 до 150, то есть между краями диапазонов) и два автоматических (старт/стоп). Длительное нажатие на кнопку MODE переводит канал в режим автоматического управления и двигатель начинает плавно качаться из стороны в сторону. Короткое нажатие кнопки MODE в автоматическом режиме останавливает или возобновляет движения. Длинное нажатие на кнопку MODE возвращает канал в режим управления энкодером.
Кнопка CHANNEL производит переключение между активными каналами. Отображение текущего активного канала происходит на дисплее в двоичном коде при помощи разрядных точек. Длинное нажатие на эту кнопку переводит тестер в режим формирования одинаковых импульсов на всех каналах
Обратите внимание, что на индикаторе отображаются цифры от 0 до 150. Это примерно соответствует углу сервопривода и может быть пересчитано в длительность импульса. Для пересчета достаточно умножить показания на десять и прибавить 800. Например, если на индикаторе десять, значит длительность импульсов 900мкс.
Но проще все это один раз увидеть:

Подключение к ПК

Если вы используете Raspberry Pi, то вы можете просто подключить Rx, Tx и GND в левой нижней части платы. Если у вас нет TTL-совместимого COM-порта в вашем компьютере, то вы можете использовать USB-COM-переходник, которые стоят очень дешево. Также вы можете взять напряжение 5В USB-порта, но помните, что его максимальный ток 500мА! Скорость подключения — 9600.
Для того, чтобы тестер загрузился в режиме управления от ПК необходимо включить его без перемычки. При этом на индикаторе отобразятся буквы "PC" и тестер перейдет в режим ожидания команд от ПК. До прихода первого полного пакета на всех каналах сигнал будет отсутствовать.
Значения длительности импульсов необходимо отправлять в микросекундах от 0 до 1500. То есть на каждый канал расходуется два байта.
Пакет данных должен состоять из 16ти байт: сначала два байта 0xFF для обозначения начала пакета, затем 12 байт длительностей импульсов для каждого канал и в конце два байта check-суммы. Check-сумма необходима для проверки корректности пакета и должна быть равна сумме всех длительностей.

  • 1ый байт — 255 (0xFF)
  • 2ой байт — 255 (0xFF)
  • 3ий байт — старший байт первого канала
  • 4ый байт — младший байт первого канала
  • 5ий байт — старший байт второго канала
  • 6ый байт — младший байт второго канала
  • 7ий байт — старший байт третьего канала
  • 8ый байт — младший байт третьего канала
  • 9ий байт — старший байт четвертого канала
  • 10ый байт — младший байт четвертого канала
  • 11ий байт — старший байт пятого канала
  • 12ый байт — младший байт пятого канала
  • 13ий байт — старший байт шестого канала
  • 14ый байт — младший байт шестого канала
  • 15ый байт — старший байт check-суммы
  • 16ый байт — младший байт check-суммы

Примеры корректных пакетов (в десятичной системе):
255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (все двигатели в начальное положение)
255 255 2 238 0 0 0 0 0 0 0 0 0 0 0 240 (первый двигатель в среднее положение)
255 255 2 238 2 238 2 238 2 238 2 238 2 238 17 148 (все двигатели в среднее положение)

Обратите внимание! У нас появилась программа для управления этим тестером с компьютера! Скачать ее можно ЗДЕСЬ.

Файлы для скачивания

Печатная плата
Файл прошивки
3D-модели корпуса

На данный момент вы можете приобрести тестер сервоприводов в готовом виде в следующих местах:
Наш магазин
Good-kits.ru
MakeItLab.ru

Метки: , , , , , , Просмотров: 13872

File not found.