Страница 1 из 1

Подскажите, как шагать правильно?

Добавлено: 01 сен 2020, 13:51
SSSergeich
Задачка вроде бы простая, но запутался.
Есть шаговик, есть рабочее поле и 2 концевика.
Размер рабочего поля, т.е. расстояние между концевиками может меняться, а время прохождения этого расстояния должно оставаться прежним.
Например, есть рабочее поле 1м, шаговик должен пройти за 1 час. Далее, изменили рабочее поле на 1.5м и его шаговик должен пройти за час.
Т.е. после изменения расстояния нужно откалибровать настройки.
Есть мысль, что например, выставляем скорость 1000 ш/с идем к первому концевику, как только его увидели, разворачиваемся и бежим к другому, засекаем время за которое был совершен проход, допустим 120 секунд.
Получаем типа пропорции
1000ш/с - 120 сек = 120 000 шагов
х ш/с - 3600 сек = 120 000 шагов

А вот дальше ступор, что делать?
Чем считать эти 120000 миллисекунд? Использовать блок системных часов или запускать свой генератор и счетчик?
В проекте присутствует 1602 i2c и энкодер на 2,3 пинах.

Подскажите, как шагать правильно?

Добавлено: 01 сен 2020, 15:37
dizzyy
а почему не считать импульсы от концевика к концевику? например посчитали - и у вас 10 000 импульсов , их надо сделать за 1 час..
делаете просчеты и пишите в еепром
а далее несеметричный генератор , в нем нужная длина импульса для драйвера , а паузу из вычислений

Отправлено спустя 3 минуты 28 секунд:
главное вычисления ставить в отдельную плату , которая будет работать только в режиме калибровки ..а то энкодер, айтуси , а если есче блок шаговика поставите + вычисления то тормоза будут

Подскажите, как шагать правильно?

Добавлено: 01 сен 2020, 15:41
SSSergeich
dizzyy писал(а): 01 сен 2020, 15:34 а почему не считать импульсы от концевика к концевику? например посчитали - и у вас 10 000 импульсов
импульс = шаг?

Отправлено спустя 2 минуты 55 секунд:
dizzyy писал(а): 01 сен 2020, 15:37 главное вычисления ставить в отдельную плату , которая будет работать только в режиме калибровки ..а то энкодер, айтуси , а если есче блок шаговика поставите + вычисления то тормоза будут
Ага, на отдельную с отключением всего лишнего на это время.
Уже столкнулся с тормозами, после чего использовал энкодер от Drundel, библу lcd от ecoins, а ПБ шаговика сделал из примера Гайвера

Подскажите, как шагать правильно?

Добавлено: 01 сен 2020, 16:24
Rovki
Элементарно , Ватсон (с). :smile198:
Концевики выполняют две функции
1. при калибровке- проходим расстояние со скоростью V1(константа) и измеряем время , по которому вычисляем расстояние
2.Во время работы останавливают шаговый двигатель , который двигается с заданной (расчетной) скоростью.
Алгоритм- калибруем , то есть вычисляем расстояние,
потом работа- делим расстояние на время(константа) =скорость(VAR) ,
зная количество импульсов на оборот ШД , вычисляем и задаем нужную частоту следования импульсов (скорось движения) с учетом редукции (если есть).
Тоесть задаем не количество шагов , а скорость движения . По достижения концевика , подача импульсов на ШД прекращается :smile37:

Подскажите, как шагать правильно?

Добавлено: 01 сен 2020, 17:01
SSSergeich
av писал(а): 01 сен 2020, 16:00 [ref]SSSergeich[/ref], задачка с неизвестными. Допустим у вас получилось как то рассчитать количество шагов до известной точки с концевиком за один час. Далее вы передвинули концевик в неизвестную точку теперь как рассчитать нужное количество шагов за один час до новой точки ?
Концевики переставили - произвели новую калибровку

Подскажите, как шагать правильно?

Добавлено: 01 сен 2020, 22:47
sillver
добрый вечер! С таким алгоритмом я встречался в автоматических дверях в супермаркетах (при ремонте) в одних применяют шаговики в других дивжки с энкодером, но алгоритм почти у них похожий при любом сбое происходит самотестирование причем прохождение человека производит остановку и дальше тестирует (считает шаги) так-как там нет концевиков ориенитируется на ток потребления двигателем при упоре резко возрастает ток вот и концевая точка. В автоматических воротах идет отсчет не по времени а по периодам в сети (это в дорогих) в дешевых по времени.

Подскажите, как шагать правильно?

Добавлено: 08 сен 2020, 17:55
SSSergeich
Все получилось)
Во время калибровки бежим, считаем шаги, после калибровки, как и говорил [ref]dizzyy[/ref], настройка генератора и пошагали)
Более того, решил внести возможность изменять время) Тестировали 1м, 1ч, 2ч, 2.5ч, 9ч20м, в норматив (+/- секунды) укладываемся...
Единственное, что пришлось сделать, на время походки отключать дисплей. А хотелось бы на него выводить инфу остаток времени до конца, ну или сколько уже прошло и выполнение задачи в %.

Подскажите, как шагать правильно?

Добавлено: 08 сен 2020, 19:40
Rovki
SSSergeich писал(а): 08 сен 2020, 17:55 Все получилось)
Во время калибровки бежим, считаем шаги, после калибровки, как и говорил [ref]dizzyy[/ref], настройка генератора и пошагали)
Более того, решил внести возможность изменять время) Тестировали 1м, 1ч, 2ч, 2.5ч, 9ч20м, в норматив (+/- секунды) укладываемся...
Единственное, что пришлось сделать, на время походки отключать дисплей. А хотелось бы на него выводить инфу остаток времени до конца, ну или сколько уже прошло и выполнение задачи в %.
Это нужно бибки править и использовать механизм ecoins . А иначе одно(ШД) мешает другому (дисплею или модбасу) .

Подскажите, как шагать правильно?

Добавлено: 08 сен 2020, 21:28
SSSergeich
[ref=#ff8000]Rovki[/ref], никаких "громоздких"не использую. Для шагового двигателя она в принципе не нужна.
Есть мысль использовать метод подсказанный, если не ошибаюсь, [ref=#ff8000]pan[/ref], запускать плату с экраном ну очень не часто, в моем случае минимум раз в минуту достаточно. Метод от [ref=#ff8000]ecoins[/ref] я попробовал применить (при подсчете шагов, коих оказалось 71815 шагов) не смог вывести на экран больше чем 32768

Подскажите, как шагать правильно?

Добавлено: 08 сен 2020, 22:59
Rovki
SSSergeich писал(а): 08 сен 2020, 21:28 [ref=#ff8000]Rovki[/ref], никаких "громоздких"не использую. Для шагового двигателя она в принципе не нужна.
Есть мысль использовать метод подсказанный, если не ошибаюсь, [ref=#ff8000]pan[/ref], запускать плату с экраном ну очень не часто, в моем случае минимум раз в минуту достаточно. Метод от [ref=#ff8000]ecoins[/ref] я попробовал применить (при подсчете шагов, коих оказалось 71815 шагов) не смог вывести на экран больше чем 32768
Речь о самых простых интерфейсах -I2C,UART и блоках ШД ,которые используют прерывания

Подскажите, как шагать правильно?

Добавлено: 08 сен 2020, 23:12
SSSergeich
Rovki писал(а): 08 сен 2020, 22:59
SSSergeich писал(а): 08 сен 2020, 21:28 [ref=#ff8000]Rovki[/ref], никаких "громоздких"не использую. Для шагового двигателя она в принципе не нужна.
Есть мысль использовать метод подсказанный, если не ошибаюсь, [ref=#ff8000]pan[/ref], запускать плату с экраном ну очень не часто, в моем случае минимум раз в минуту достаточно. Метод от [ref=#ff8000]ecoins[/ref] я попробовал применить (при подсчете шагов, коих оказалось 71815 шагов) не смог вывести на экран больше чем 32768
Речь о самых простых интерфейсах -I2C,UART и блоках ШД ,которые используют прерывания
из всего используемого оказался дисплей i2c, прерывания использует энкодер, для ШД прерывания вааапче не нужны, ровно как и библиотеки

Подскажите, как шагать правильно?

Добавлено: 09 сен 2020, 10:05
dizzyy
SSSergeich писал(а): 08 сен 2020, 21:28 (при подсчете шагов, коих оказалось 71815 шагов) не смог вывести на экран больше чем 32768
это наверное через использование интеджер, это его предел, нужно использовать лонг интеджер
а экран можно задействовать как по таймеру (раз в секунду), так и метод включения при изменении числа

Отправлено спустя 2 минуты 1 секунду:
можно попробовать вместо екрана i2c взять тм1637