• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO





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



Статьи публикуются по мере поступления. Для упорядоченного тематического
поиска воспользуйтесь блоком  "Карта сайта"







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

 

 

На всякий случай напомню, что аппаратуре радиоуправления сигнал с чатотой 50Гц и длительностью 0,8-2,3мс (может отличаться немного у разных производителей) стал стандартом дефакто. Тестер генерирует именно этот сигнал. Когда строишь РУ модель или какого-нибудь робота, то бывает удобно использовать этот тестер для проверки, если нет аппаратуры или электроники для робота. Или надо просто быстро проверить работоспособность.

 

Фичи нового тестера сервоприводов:

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

2.Формирование сигнала и индикация в микросекундах. В большинстве тестеров индикация отображается не понятно в чем, либо отсутствует вовсе

3.Минимальный шаг изменения длительности — 1мкс. То есть диапазон 0,8-2,3мс разбит на 1500 шагов

4.Возможность подключения к ПК. Можно использовать его, например, в паре с Raspberry Pi. Сам сигнал будет формироваться при этом существенно точнее, чем средствами самого одноплатного компьютера

5. Открытость! Я выложу все файлы и вы сможете сами его изготовить

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

Технические характеристики

1. Напряжение питания - 5В
2.Потребляемый ток (без сервоприводов), не более - 100мА
3.Длительность формируемых импульсов - 0,8-2,3мс
4.Точность установки длительности - 1мкс
5.Частота следования импульсов - 50Гц
6. Скорость соединения с ПК - 9600, 8 bits, 1 stop bit

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

 

 

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

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

 

 

Все файлы для скачивания будут в конце статьи. Некоторую сложность, с точки зрения припаивания, представляют только резисторные сборки в корпусе 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.  Джампер на 2,54мм

Корпус
Еще я нарисовал и распечатал на 3D-принтере небольщую оправку и ручку на энкодер. Файлы для скачивания чуть позже.

Прошивка
Файлы прошивки мы приложим в конце статьи. Прошить контроллер можно при помощи любого 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 (все двигатели в среднее положение)

 

Файлы для скачивания
Печатная плата
Прошивка
Модель для печати корпуса

Сергей Грищенко, Екатеринбург







Просмотров: 2275 | Добавил: Chinas | Рейтинг: 1.0/1








Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 380



          

Радио для всех© 2024