Сервотестер
Прошивка обновлена, точность повышена, теперь 1024 шага.
Часто для тестирования и наладки конструкций на сервоприводах или бесколлекторных моторах нужно знать, как они поведут себя в тех или иных ситуациях. Для этого их нужно подключить к источнику PPM сигнала, но не всегда пульт управления может быть под рукой или устройство управления может ещё быть неготовым, в такой ситуации на выручку приходит сервотестер.
Сервотестер в работе
В статье речь пойдёт о простеньком сервотестере на микроконтроллере PIC16F688/676.
Можно было взять контроллер и попроще, но собирал из того, что был под рукой.
Схема
Интервал PPM управляющего импульса составил 0,7-2,2 мс, период 20мс, 1024 шага, чего достаточно для большинства задач. Управление производиться по средством переменного резистора R2. Единственное замечание при работе, при включение вал переменного резистора нужно выставлять на середину, что бы не повредить сервопривод запредельным положением вала и во время работы не уходить за рабочий диапазон сервомашинки.
Печатка (вид со стороны деталей)
На плату подаётся 5В. Микроконтроллер PIC16F688 или PIC16F676, в зависимости от прошивки в DIP корпусе. Кварц Z1 20МГц, обвязка конденсаторы C3-C4 22пкФ в корпусах в корпусах типоразмера 0805. Конденсатор C1 емкостью от 470мкФ до 1000мкФ напряжением от 10В, C2 0,1мкФ 0805. Диод шоттки MBR2402. Резистор R1 4к7 0805, можно выбрать любой, из интервала 2,7-20кОм. Переменный резистор R2 4,7-68к припаивается проводами к плате. Разъём – сдвоенный PLD-6 штырь или угловой PLD-6R.
В качестве корпуса был использован закрытый отсек для 2-х АА батареек.
Видео работы обновленного сервотестера (1024 шага)
Видео работы сервотестера первой версии (64 шага)
Прошивка и печатка обновлены 19.08.2012
Исходник добавлен 02.12.2014
Alex_EXE | 25.07.2012 | Робототехника |
atom пишет 12.08.2012 в 00:16 #
А котроллер бесколекторного для HDD сможеш на pic cмостерить
Alex пишет 19.08.2012 в 21:45 #
День добрый Alex_EXE, подскажи на схеме RC4 свободный, а на печатке на + , где правильно ? и VD1 это диод или стабилитрон ?
Alex_EXE пишет 19.08.2012 в 22:21 #
RC4 не используется, через него питание провёл.
VD1 — диод шоттки, с помощью конденсатора и его кратковременные проседания по питанию на сервоприводах не приведут к перезагрузке МК.
Alex пишет 03.09.2012 в 00:47 #
Собрал сервотестер, оказалось, что не все сервы работают с этим тестером, одни как надо, а другие словно с ума сошли вперёд-назад и так не прерывно пока не отключишь (переменник роли не играет) в чем проблема, я так понимаю что одни цифровые, другие аналоговые ??????
Alex_EXE пишет 03.09.2012 в 14:09 #
Какие сервы используете?
От чего питаете сервы и сервотестер? Хватает ли им тока?
Alex пишет 04.09.2012 в 22:45 #
Серво-машинки которые вперёд-назад, фирмы (AVIONIX SA0921S). Питание от ака 12 вольт > 5 вольт
Alex_EXE пишет 05.09.2012 в 18:28 #
Alex: письмо отправлено
Проблема была в дохлом стабилизаторе.
Alexander пишет 24.11.2012 в 21:17 #
Доброе время суток! Собрал тестер на PIC16F676. К сожалению он не заработал вообще. Монтаж проверен, ошибок нет, контроллер прошился без ошибок. Брак микросхемы почти не допускаю, так как куплено две таких и результат на обеих идентичен — не работает. Кварц тоже заменял.
Alex_EXE, Вы проверяли работоспособность контроллера именно на PIC16F676 ? Вы можете выложить исходник прошивки?
Alex_EXE пишет 25.11.2012 в 22:11 #
Он у меня на 676 и собран, 688 проверял в протеусе.
Исходник пока выложить не могу, только после публикации некоторых других статей.
Анатолий пишет 04.06.2013 в 16:14 #
можно ли на этой схеме запустить только бесколлекторный двигатель, без включения серво?
Alex_EXE пишет 04.06.2013 в 16:24 #
Можно.
Пригоден для управления любым устройством со стандартным PPM входом.
На видео для наглядности побольше устройств.
Анатолий пишет 19.06.2013 в 13:20 #
Диод шоттки MBR2402 или здесь опечатка и правильно «MBR24020»?
Alex_EXE пишет 20.06.2013 в 01:45 #
Да опечатка, правильно MBR0520, MBR0540 или любые шоттки диоды, смысл, что накопленный заряд возле МК не возвращается обратно, когда серва просаживает напряжение.
Gromit пишет 24.11.2014 в 21:40 #
Alexander -Нормально работает на 676! Даже с кварцем на 18мГЦ — какой был. Configuration Bits надо проверить, FOSC2-0; FOSC1-1;FOSC0-0 должно быть для высокочастотного кварца (HS oscillator),
MCLRE -1, на счёт WDTE — не знаю это, у меня 1 — работает, а вообще у Alexa надо спрашивать
Gromit пишет 24.11.2014 в 21:46 #
Alex а если исходники нельзя, то можно хотя бы таймер добавить — для кордового самолёта (к регулятору подключаю) пацанам надо. Т.е. минуту летаем и хорош — тягу на ноль, а? А то не хочется как-то ещё 555 прибабахивать )))
Alex_EXE пишет 25.11.2014 в 02:54 #
Исходник подготовил, но залить не смог, пароль от сервера забыл, на следующей недели вернусь — добавлю.
На счёт 18МГц кварца — работать будет, но выходной диапазон сместиться.
Gromit пишет 26.11.2014 в 03:01 #
Вот спасибо! Не ожидал, больше года прошло с последнего комментария! Насчёт кварца понятно, подотктнул что было, чисто проверить — заведётся ли? ))
Alex_EXE пишет 02.12.2014 в 04:19 #
Исходник добавил
Gromit пишет 03.12.2014 в 22:48 #
Благодарю! Алекс, ещё одна просьба. Порекомендуйте пожалуйста пожалуйста ПО для написания программ под PIC, а то я из пиков я только для PIC16F84 проги очень простые на ассемблере делал, лет 10 назад.) Потом на Atmel перешёл, в Code Vision AVR на Си только для мег, тиник кое-что поделывал.
Alex_EXE пишет 09.12.2014 в 05:23 #
Могу порекомендовать только то, чем сам пользуюсь — MPLAB. Последняя версия, вроде, содержит встроенный компилятор. У меня же компилятор — Hi-Tech, версию не вспомню.
Gromit пишет 11.12.2014 в 22:17 #
Понял, благодарю!
Александр пишет 29.12.2014 в 18:53 #
Уважаемый alex_exe, очень нужна кнопка «среднее положение», возможно ли добавить такую функцию?
Alex_EXE пишет 30.12.2014 в 03:25 #
RC4 подтянуть к +5В 10к и добавить кнопку на землю с конденсатором на 0.1-1мкФ.
В коде заменить 94 строку таким кодом.
if(!(PORTC&0x10))
{
T[0]=1500;
}
else
{
T[0]=ADC_volume()*20/17+897;
}
При нажатии кнопки сервопривод перемещается в среднее положение.
Александр пишет 30.12.2014 в 12:55 #
Уважаемый Alex_EXE спасибо за быстрый ответ, не могли бы Вы скомпилировать код в hex файл. Или кто-нибудь из форумчан, просто я не очень силён в этом.
Vadim пишет 06.02.2015 в 02:27 #
Не подскажите, как в версии 688 Пика выставить биты конфигурации? А то в Нехе они не выставлены автоматически и при прошивке по умолчанию схема не работает.
Gromit пишет 03.03.2015 в 23:49 #
Для 688 наверно так:
111111110010 левый младший т.е. 0bit
правый 11bit дальше 12-15 не используются
Gromit пишет 03.03.2015 в 23:50 #
🙂 т.е. наоборот правый младший!
Max пишет 22.05.2015 в 03:38 #
Доброго времени!
Возможно кто переделывал прошивку под pic16f628?
Непостижимо это для меня, вторые сутки пытаюсь понять как это сделать, но увы((((
Денис пишет 06.11.2016 в 23:50 #
Здравствуйте. Я сам не силен в программировании микроконтроллеров. Но мне для бюджетной переделки детского коллекторного квадрокоптера на бесколлекторники требуется сигнал с мотора перевести в сигнал управления РРМ. Я это делал сервотестером на аттини, но их требуется 4 штуки. А можно вас попросить сделать прошивку на 4 потенциометра и 4 выхода РРМ. К примеру входы потенциометров на RA0-3, а выходы на RC0-3. Т.е 4 в одном. Все это будет подключаться к ESC моторов. Я думаю для многих такой адаптер был бы актуален. Наверняка у многих имеются дешевые детские квадрики с поломанными моторами и корпусом, дохлыми акками и тд. А электроника цела. Так вот им можно дать жизни. И получится своими руками сделать довольно серьезные машинки и значительно сэкономить. Заранее благодарю.
Если вдруг вы прочитаете это и сделаете такую прошивку, напишите мне пожалуйста на почту. Спасибо.
Alex_EXE пишет 15.11.2016 в 02:18 #
RC цепочки на сглаживание ШИМ сигнала в постоянный понадобится время, если же будут большие пульсации, то сервотестер может на них негативно реагировать. Но это вся зависит от частоты, которая идёт на ключи управляющие моторами.
Плюс на опрос 4-х каналов вместо одного уйдёт больше времени, хотя это будет менее 0,1мс.
Описанные выше факторы могут быть критичны, с другой стороны у PPM сигнала период около 15-20мс.
Сейчас, к сожалению, со временем напряженка, через некоторое время можно будет сделать.