кто возьмется за грамотный скетч(управление сервами)?

ser
Offline
Зарегистрирован: 17.04.2013

нужно управлять четырьмя приводами через две кнопки(каждый привод имеет свой алгоритм)

maksim
Offline
Зарегистрирован: 12.02.2012

Подробнее?

ser
Offline
Зарегистрирован: 17.04.2013

 

имеется:
 
arduino mega 2560                          1шт.
 
сервопривод постоянного вращения FS5113R   4шт.
 
тактовая кнопка                            2шт.
 
аккумулятор 6в 4,5 а/ч                     4шт.
 
 
к ардуино подключены две цепи 
 
 
цепь 1:
 
три сервопривода  питаются каждый от своего аккумулятора(земля общая с ардуино),
 
управляются пинами 2,3 и 4 включение и выключение программы всех трех приводов осуществляется 
 
тактовой кнопкой через пин 5(как я понимаю второй провод от кнопки идет в землю ардуино)
 
 
цепь 2:
 
один сервопривод питается от своего аккумулятора(земля общая с ардуино)
 
управляется пимом 6 включение и выключение программы привода осуществляется 
 
тактовой кнопкой через пин 7(как я понимаю второй провод от кнопки идет в землю ардуино)
 
 
кнопки:
 
сигналы от кнопки стабильные без дребезжания
 
каждое однократное нажатие кнопки включает и выключает программу приводов 
 
(время программы цепь 1 одна минута выключается автоматически) если выключить до окончания 
 
программы то при включении программа начнется с начала (с нулевой точки  через кнопку на ардуино)
 
относится к обеим цепям
 
 
программа приводов цепь 1:
 
время программы (1 минута) разбито на 6 этапов по 10 секунд.
 
 
первый этап:
 
приводы имеющие сигналы от пинов 2,3 и 4 одновременно начинают вращение с нулевой точки
 
по часовой стрелке два оборота в секунду до девятой секунды.десятая секунда все сервы стоят
 
в положении нулевой точки(9 секунд вращаются 18 оборотов и 1 секунду стоят в нулевом положении)
 
 
второй этап:
 
приводы(по часовой стрелке) от пинов 2 и 4 стоят в нулевом положении,привод от 3 пина начинает
 
вращение с равномерным ускорением за 5 секунд до 2 оборотов в секунду.после 5 секунды равномерно 
 
снижает скорость до остановки на 10 секунде.приводы 2 и 4 начинают вращение на 5 секунде ускоряясь
 
к 10 секунде до 2 оборотов в секунду(приводы 2 и 4 первые 5 секунд стоят вторые 5 секунд 
 
равномерно ускоряются по часовой стрелке до двух оборотов в секунду. привод 3 с 1 по 5 секунду 
 
равномерно ускоряется по часовой стрелке до двух оборотов в секунду и после 5 секунды начинает
 
равномерно останавливаться к 10 секунде)
 
 
третий этап:
 
приводы 2,3 и 4 вращаются 2 секунды (с одним оборотом в секунду) по часовой стрелке 2 секунды 
 
(с 1 оборотом в секунду) против часовой стрелки так пять раз(2 оборота туда 2 обратно циклично
 
2,5 раза за 10 секунд)
 
 
четвертый этап:
 
привод 3 и 4 стоят привод 2 вращается по часовой стрелке (2 оборота в секунду) через 2 секунды
 
включается привод 3(2 оборота в секунду) через 2 секунды включается привод 4(2 оборота в секунду)
 
через 2 секунды выключается привод 2 в нулевую точку,через 2 секунды выключается привод 3 в
 
нулевую точку (все приводы по часовой стрелке привод 2 вращается первые 6 секунд,привод 3 с 2 по 
 
8 секунду,привод 4 с 4 по 10 секунду)
 
 
пятый этап:
 
по часовой стрелке приводы 2,3 и 4 с одним оборотами в секунду делают поворот и одну секунду
 
стоят в нулевой точке и так 10 раз(все приводы одновременно 1 секунду поворачиваются 1 секунду стоят
 
цикл повторяется 5 раз и умещается в 10 секунд)
 
 
шестой этап:
 
 
приводы имеющие сигналы от пинов 2,3 и 4 одновременно начинают вращение с нулевой точки
 
против часовой стрелки два оборота в секунду до девятой секунды.десятая секунда все сервы стоят
 
в положении нулевой точки(9 секунд вращаются 18 оборотов и 1 секунду стоят в нулевом положении)
 
 
 
программа привода цепь 2:
 
 
привод 6 бесконечно вращается в два этапа по 20 секунд,по часовой стрелке 0,5 оборота в секунду и 
 
и против часовой стрелки 1 оборот в секунду(20 секунд по и 20 секунд против,но скорость разная)
 
 
maksim
Offline
Зарегистрирован: 12.02.2012

Скайп удобно? Добавьтесь, но начать только ближе к вечеру получится.

 

ser
Offline
Зарегистрирован: 17.04.2013

готовый скетч нужен до субботы)

maksim
Offline
Зарегистрирован: 12.02.2012

Если вы сможете оперативно проверять работу скейтча и выявлять недочеты (опущенные условия работы алгоритма), то думаю до субботы будет.

ser
Offline
Зарегистрирован: 17.04.2013

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

maksim
Offline
Зарегистрирован: 12.02.2012

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

ser
Offline
Зарегистрирован: 17.04.2013

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

ser
Offline
Зарегистрирован: 17.04.2013

какие мощные сервы постоянного вращения есть с углом поворота.спасибо за ответ

vvadim
Offline
Зарегистрирован: 23.05.2012

Сервы постоянного вращения угол не отслеживают.

carduino.ru
Offline
Зарегистрирован: 06.12.2011

Можно вместо сервы использовать мотор-редуктор с оптическим энкодером

 

У меня робот с такими энкодерами может ехать идеально по прямой и поварачивает

на любой заданный угол, с точностью 4 градуса.  Если интересно могу выложить код

ВИДЕО

 

 

 

ser
Offline
Зарегистрирован: 17.04.2013

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

vvadim
Offline
Зарегистрирован: 23.05.2012

Шаговик маленьких размеров больших усилий не даст плюс к нему нужен драйвер.