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

Использование драйверов двигателей и пользовательских блоков к ним
Ответить
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06.02.2016{, 11:01}
Репутация: 37
Откуда: Ярославль
Имя: Сергей

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

#1

Сообщение SSSergeich » 01.09.2020{, 13:51}

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

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

Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24.11.2017{, 16:25}
Репутация: 37
Откуда: Червоноград
Имя: Марьян

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

#2

Сообщение dizzyy » 01.09.2020{, 15:34}

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

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

SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06.02.2016{, 11:01}
Репутация: 37
Откуда: Ярославль
Имя: Сергей

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

#3

Сообщение SSSergeich » 01.09.2020{, 15:38}

dizzyy писал(а):
01.09.2020{, 15:34}
а почему не считать импульсы от концевика к концевику? например посчитали - и у вас 10 000 импульсов
импульс = шаг?

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

Аватара пользователя
Rovki
Полковник
Сообщения: 4872
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 269
Откуда: Чехов
Имя: Анатолий
Контактная информация:

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

#4

Сообщение Rovki » 01.09.2020{, 16:24}

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

SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06.02.2016{, 11:01}
Репутация: 37
Откуда: Ярославль
Имя: Сергей

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

#5

Сообщение SSSergeich » 01.09.2020{, 17:01}

av писал(а):
01.09.2020{, 16:00}
SSSergeich, задачка с неизвестными. Допустим у вас получилось как то рассчитать количество шагов до известной точки с концевиком за один час. Далее вы передвинули концевик в неизвестную точку теперь как рассчитать нужное количество шагов за один час до новой точки ?
Концевики переставили - произвели новую калибровку

sillver
Сержант
Сообщения: 194
Зарегистрирован: 27.04.2017{, 12:04}
Репутация: 3
Откуда: УКРАИНА
Имя: Вячеслав

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

#6

Сообщение sillver » 01.09.2020{, 22:47}

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

SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06.02.2016{, 11:01}
Репутация: 37
Откуда: Ярославль
Имя: Сергей

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

#7

Сообщение SSSergeich » 08.09.2020{, 17:55}

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

Аватара пользователя
Rovki
Полковник
Сообщения: 4872
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 269
Откуда: Чехов
Имя: Анатолий
Контактная информация:

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

#8

Сообщение Rovki » 08.09.2020{, 19:40}

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

SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06.02.2016{, 11:01}
Репутация: 37
Откуда: Ярославль
Имя: Сергей

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

#9

Сообщение SSSergeich » 08.09.2020{, 21:28}

Rovki, никаких "громоздких"не использую. Для шагового двигателя она в принципе не нужна.
Есть мысль использовать метод подсказанный, если не ошибаюсь, pan, запускать плату с экраном ну очень не часто, в моем случае минимум раз в минуту достаточно. Метод от ecoins я попробовал применить (при подсчете шагов, коих оказалось 71815 шагов) не смог вывести на экран больше чем 32768

Аватара пользователя
Rovki
Полковник
Сообщения: 4872
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 269
Откуда: Чехов
Имя: Анатолий
Контактная информация:

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

#10

Сообщение Rovki » 08.09.2020{, 22:59}

SSSergeich писал(а):
08.09.2020{, 21:28}
Rovki, никаких "громоздких"не использую. Для шагового двигателя она в принципе не нужна.
Есть мысль использовать метод подсказанный, если не ошибаюсь, pan, запускать плату с экраном ну очень не часто, в моем случае минимум раз в минуту достаточно. Метод от ecoins я попробовал применить (при подсчете шагов, коих оказалось 71815 шагов) не смог вывести на экран больше чем 32768
Речь о самых простых интерфейсах -I2C,UART и блоках ШД ,которые используют прерывания
Электронщик до мозга костей и не только

SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06.02.2016{, 11:01}
Репутация: 37
Откуда: Ярославль
Имя: Сергей

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

#11

Сообщение SSSergeich » 08.09.2020{, 23:12}

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

Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24.11.2017{, 16:25}
Репутация: 37
Откуда: Червоноград
Имя: Марьян

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

#12

Сообщение dizzyy » 09.09.2020{, 10:03}

SSSergeich писал(а):
08.09.2020{, 21:28}
(при подсчете шагов, коих оказалось 71815 шагов) не смог вывести на экран больше чем 32768
это наверное через использование интеджер, это его предел, нужно использовать лонг интеджер
а экран можно задействовать как по таймеру (раз в секунду), так и метод включения при изменении числа

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

Ответить

Вернуться в «Управление двигателями»