Page 1 of 2

Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 03 Jun 2017 01:37
by MitsuokaOroshi
Здравствуйте! Доделав ремонт в комнате и определившись с компоновкой интерьера и мебели-пришла в голову мысль что было-бы здорово если бы подвесная полка что по задумке будет содержать инструмент для пайки и прочих работ такого направления имела бы свойство раскрываться и выдвигать содержимое на отдельной платформе. По принципу: условно, есть тактовая кнопка скрытая под панель нажав на которую запускается первая серва (SG90 с снятым ограничителем угла поворота) и работает пока не сработает концевик (геркон или просто кнопка-не важно) после остановки первой сервы, вслед срабатывает следующая и так же по достижению концевика останавливается. В итоге нужно три таких цепочки, на последней серве весь процесс прерывается и находится в режиме ожидания в последней занятой позиции. После повторного нажатия на кнопку (что ранее запустила первую серву) процесс повторяется в обратном порядке и по достижении изначальной позиции-находится в режиме ожидания нажатия кнопки. Нужна помощь в создании такого устройства, МК любой на Ваше усмотрение (желательно не дорогой, а там как получится) проверю в железе сразу как только будут желающие помочь. Думаю заинтересуются и другие люди которые любят автоматику в разных устройствах. Мне вот всегда хотелось сделать раздвижную мебель для дома-а с программированием особо не знаком :(
Собрать, вытравить, развести плату и зашить программу не составит труда-все что нужно для программирования МК Atmega, Tiny, PIC контроллеров есть.

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 03 Jun 2017 09:41
by hardlock
MitsuokaOroshi, я делал на тиньке приблуду для проверки серв, но тут такой алгоритм.... я запутался после первого шага )))

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 03 Jun 2017 10:08
by MitsuokaOroshi
hardlock, Ну да, возможно загнул с описанием алгоритма)) Если проще то так: у нас три сервы, жмем тактовую кнопку и первая серва начинает крутить пока не будет нажат концевик (к примеру дверкой), за ней сразу стартует вторая и так же до срабатывания концевика. И тоже с третьей. Последовательное срабатывание одна за другой. Когда все три сервы остановились-ждем повторного нажатия кнопки и весь процесс повторяется в обратном порядке.
P.S. Вот очень похожая конструкция ящика из игры Borderlands 2.
https://youtu.be/AcpXWmVYwZk
Движение будут такими

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 03 Jun 2017 17:20
by hardlock
MitsuokaOroshi, получается 3 канала ШИМа, 6 концевиков и кнопка... не сложновато ли для "полочки".

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 04 Jun 2017 06:18
by MitsuokaOroshi
hardlock, видел проекты и по забористее)) Тут дело не в сложности а в достижении цели. Если есть вариант по проще-я не против. Для одного экземпляра а не серии думаю можно потратится. Или Вы о том что понадобится больше одного МК?

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 04 Jun 2017 08:48
by IYra
hardlock wrote:MitsuokaOroshi, получается 3 канала ШИМа,
А как планируется управление сервоприводами ? ШИМ же дает точный поворот на определенный угол.
А здесь как я понял вал вращается на несколько оборотов(SG90 с снятым ограничителем угла поворота).
То есть мотором получается надо управлять напрямую, мостовой схемой

Posted: 04 Jun 2017 10:22
by MitsuokaOroshi
Хотелось бы что бы серва просто получала питание по команде с МК через тот же транзистор и останавливалась бы по срабатыванию оконечника подключенному к МК. И за ней запускалась следующая так же до остановки все три.

Re:

Posted: 04 Jun 2017 21:03
by IYra
MitsuokaOroshi wrote:Хотелось бы что бы серва просто получала питание по команде с МК через тот же транзистор и останавливалась бы по срабатыванию оконечника подключенному к МК. И за ней запускалась следующая так же до остановки все три.
Если использовать SG90 то надо его доработать для постоянного вращения.
Вот здесь я нашел подробное описание http://robocraft.ru/blog/mechanics/595.html как это сделать.
Получается 6 концевиков, кнопка включения и 3 управляющих выхода - итого 10 ножек. ATtiny2313 должно хватить.
Шим сделать программный

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 04 Jun 2017 22:18
by MitsuokaOroshi
IYra, да, я по такому принципу SG90 делал что бы не было ограничения угла поворота.

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 05 Jun 2017 10:56
by IYra
MitsuokaOroshi wrote:IYra, да, я по такому принципу SG90 делал что бы не было ограничения угла поворота.
А как поступил с потенциометром. Там может быть проблема с нулевой точкой.
Крайние значения ширины импульса все равно будут крутить влево/вправо. А вот среднюю
точку когда вал не крутится наверно придется подбирать

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 05 Jun 2017 11:04
by MitsuokaOroshi
IYra, я это делал около года назад... надо снова все просмотреть. Но не припоминаю что бы выставлял позицию-разберу и просмотрю еще раз сразу.

P.S. в общем ползунок резистора я в тот раз убрал оттуда... буду думать как его восстановить пока. Одна SG90 не тронутая точно есть. На крайний случай куплю другие сервы.

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 05 Jun 2017 12:55
by IYra
MitsuokaOroshi wrote: P.S. в общем ползунок резистора я в тот раз убрал оттуда... буду думать как его восстановить пока.
Дак в статье вроде советует убрать этот резистор и вместо него припаять
или два постоянных одинаковых или подстроечный соответствующий.

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 05 Jun 2017 14:53
by MitsuokaOroshi
IYra, Попробовал заменить резистор на валу на внешний многооборотный-полной остановки добиться не получается. Максимум - двигатель гудит и его легко остановить касанием пальца, сам же без касания пальцем крутится примерно 5 оборотов в секунду. Видимо SG90 для такой модернизации не годятся.
P.S.
Подключал SG90 к Arduino UNO грузил скетч для проверки с сайта что Вы дали и смог добиться остановки двигателя в средней точке)) Скоро соберу серву и покажу что вышло

Добавлено спустя 1 час 51 минуту 20 секунд:
Вот так получилось. Внутрь влез многооборотник на 5К.
Image Image

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 05 Jun 2017 17:27
by IYra
MitsuokaOroshi wrote: Попробовал заменить резистор на валу на внешний многооборотный-полной остановки добиться не получается.
Мне кажется проще поставить два одинаковых R1+R2 = 5кОм и подобрать ширину импульса чтоб серва не вращалась.
Тем более что есть Ардуино. А потом это значение использовать в проекте. Только желательно одинаковая ширина для трех серв

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 05 Jun 2017 17:35
by MitsuokaOroshi
Пока тестил серву-всплыл один момент, такой как нагрев резистора. После минуты работы нулевая точка "плывет" и нужно снова подстраивать уже на тепленькую(( Благо требуется крохотное движение движка резистора что бы все пришло в норму. На данный момент выставил на тепленькую и так что после примерно 5 сек. работы серва уже не дергается. С постоянными думаю так не прокатит. А у меня есть только простые 1% точности и не термостабильные.

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 05 Jun 2017 17:40
by IYra
MitsuokaOroshi wrote: С постоянными думаю так не прокатит. А у меня есть только простые 1% точности и не термостабильные.
А почему ? Если использовать помощнее резисторы чтоб меньше грелись. Надо попробовать

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 05 Jun 2017 17:47
by MitsuokaOroshi
Попробую вечерком. Набор из 1206 собрать

---------

Спустя час перебора резисторов-плюнул на это занятие ибо после замеров перекос в плечах был не равномерный даже на выставленной серве. А мелких и точных Ом-ных резисторов у меня попросту нет что бы выравнивать сопротивление на уровне нескольких Ом. К тому же обнаружив что кончились 5К подстроечники, притулил 10К и на удивление пропал эффект смещения нулевой точки. Но есть маленький рывок при подаче питания. И черт с ним. Закажу пока 5К подстроечников.



---------

Все три сервомашинки готовы и выставлены. Что еще нужно сделать?

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 06 Jun 2017 20:03
by IYra
MitsuokaOroshi wrote: Все три сервомашинки готовы и выставлены. Что еще нужно сделать?
А какие 3 значения(влево/стоит/вправо) ширины импульса будем использовать ?
Концевики какого типа ? В схеме Протеуса я использовал кнопки (концевики) подключенные к земле.
То есть при нажатии на концевик на входе 1 (разрыв подключения к земле).
Выкладываю только схему в Протеусе для обсуждения

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 06 Jun 2017 20:29
by MitsuokaOroshi
IYra, А вот тут я наверное задам глупый вопрос... как мне определить/выбрать эти самые значения ширины?
Концевик - обычная кнопка с тактовая или с рычагом типа этого: Image
И похоже у меня программа требует наладки для запуска симуляции. Когда то пробовал запускать симуляцию термостата и не помню где его искать что бы выкинуть с программы. Ибо получаю вот такую ошибку при запуске:

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 06 Jun 2017 21:33
by IYra
MitsuokaOroshi wrote: А вот тут я наверное задам глупый вопрос... как мне определить/выбрать эти самые значения ширины?
Из скетча для Ардуино
MitsuokaOroshi wrote: Концевик - обычная кнопка с тактовая или с рычагом типа этого:
При нажатии замыкается или размыкается ?
MitsuokaOroshi wrote: И похоже у меня программа требует наладки для запуска симуляции. Когда то пробовал запускать симуляцию термостата и не помню где его искать что бы выкинуть с программы. Ибо получаю вот такую ошибку при запуске:
В Протеусе не надо запускать. Там только схема и подключения. Программы еще нет.

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 06 Jun 2017 21:48
by MitsuokaOroshi
Скетч использовал этот для настройки средней точки:
#include <Servo.h>

Servo myservo; // создаём объект servo
void setup()
{
myservo.attach(9); // серву на 9 ногу
myservo.write(90); // и повернуть в среднее положение
}

void loop()
{
//тупим в вечной петле
}


Мне не принципиально как будет работать кнопка, пусть будет как Вы писали - на размыкание

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 13 Jun 2017 21:10
by IYra
MitsuokaOroshi wrote: Мне не принципиально как будет работать кнопка, пусть будет как Вы писали - на размыкание
Ну тогда сделал так.(По Протеусу)
BUTTON11,BUTTON21 и BUTTON31 - начальные(когда закрыто) концевики соответствующих приводов. Они замкнуты на землю.
BUTTON12,BUTTON22 и BUTTON32 - конечные(когда открыто) концевики соответствующих приводов. Они замыкаются на землю когда открыто.
При нажатии и отпускании кнопки Open/Close включается режим Open
начинает вращаться влево Serv1 (импульс 900мкс). Для имитации работы концевиков надо отжать BUTTON11 и затем нажать BUTTON12. После этого аналогично начинает вращаться Serv2 и Serv3.
После нажатия BUTTON32 включается режим ожидания (импульс 1400мкс).
При следующем нажатии и отпускании кнопки Open/Close включается режим Close.
начинает вращаться вправо Serv1 (импульс 1900мкс). Для имитации работы концевиков надо отжать BUTTON32 и затем нажать BUTTON31. После этого аналогично начинает вращаться Serv2 и Serv3.
Проблема может возникнуть при подстройки приводов в средней точке (режим покоя - 90гр)
Может они будут дергаться потихоньку - в Протеусе ширина импульса немного плавает

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 13 Jun 2017 21:34
by MitsuokaOroshi
IYra, Да у меня тоже предчувствие что средняя точка еще напомнит о себе. Уже можно пробовать в железе?

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 13 Jun 2017 21:46
by IYra
MitsuokaOroshi wrote:IYra Уже можно пробовать в железе?
Нужно
Для начала можно просто подсоединить привод к соответствующему выводу и проверить подстройку на среднюю точку
Частота МК - 8 Мгц

Re: Управление несколькими сервоприводами с реверсом одной кнопкой

Posted: 13 Jun 2017 22:01
by MitsuokaOroshi
IYra, по фьюзам только CKSEL и SUT отмечать?
Компилировал так: Library-Compile library. В папке с проектом появился хекс с тем же именем. Все верно?