Подскажите алгоритм управления для 2ух шаговиков (Camera Slider)

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
Посмотрел видео - прикольно, сколько лишних деталей автор нафигачил в конструкцию просто потому, что не нашел ремень нужной длинны. :ROFLMAO:
И конструкция получилась довольно хлипкая, видно как гуляет и качается. Туда на поворот по идее хороший редуктор нужен - и точность повысит, и плавность хода.

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

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
274
23
Москва. Щукино
Избыточное цитирование
Посмотрел видео - прикольно, сколько лишних деталей автор нафигачил в конструкцию просто потому, что не нашел ремень нужной длинны. :ROFLMAO:
И конструкция получилась довольно хлипкая, видно как гуляет и качается. Туда на поворот по идее хороший редуктор нужен - и точность повысит, и плавность хода.

Поглядел я код автора и библиотеку. Автор использует MultiStepper из библиотеки, там вроде все в порядке (если игнорировать довольно грязный код). В MultiStepper для синхронизации просто вычисляют скорости шаговиков в float, ускорения не учитываются. Скорее всего рассинхрон именно из-за подхода. Во первых float тип с довольно плохой точностью. Во вторых AccelStepper там скорость меняет в зависимости от расстояния, а MultiStepper это не учитывает, он просто тупо рассчитывает, что AccelStepper выдержит нужную скорость точно на всем участке. В общем боюсь с использованием этой библиотеки повысить точность врядли получится.
У меня получилось немного лучше, идею взял автора, но механику немного переделал. Видео ТУТ, кадры начала и конца из его видео взял. Сам так не сниму :) Местность не та :)
И к вопросу по библиотеке, а можно её поменять или это всё нужно перелопачивать ?
 

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
У меня получилось немного лучше, идею взял автора, но механику немного переделал
Ну да, у вас сделано как надо, без лишних деталей. Для улучшения возможно использовать профиль 20x40, но это если есть колебания.
И к вопросу по библиотеке, а можно её поменять или это всё нужно перелопачивать ?
Честно говоря, я не особо в курсе, что там доступно. Быстрый поиск показал, что библиотек не так много, вернее почти вообще нет. Нашел видео где управляет несколькими из прерывания, но он просто выложил код, в библиотеку он не оформлял:

Сильное расхождение? Если очень надо, могу поробовать написать с прерыванием, надо только экранчик найти такой или подобный...
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
274
23
Москва. Щукино
А сильно изменилось кол-во шагов ? не может быть , что расхождение с этим как то связано ?
У меня бОлее длинный, его родной скетч (он для короткого) у меня работает так же. Это не связано с изменением общей длинны (кол-ва шагов) .
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
274
23
Москва. Щукино
Избыточное цитирование
Ну да, у вас сделано как надо, без лишних деталей. Для улучшения возможно использовать профиль 20x40, но это если есть колебания.

Честно говоря, я не особо в курсе, что там доступно. Быстрый поиск показал, что библиотек не так много, вернее почти вообще нет. Нашел видео где управляет несколькими из прерывания, но он просто выложил код, в библиотеку он не оформлял:

Сильное расхождение? Если очень надо, могу попробовать написать с прерыванием, надо только экранчик найти такой или подобный...
Спасибо за попытку помочь, я попробую ещё что то поискать, может кто то сделал без ошибок. А если уж все переделывать, то я ещё хотел попытаться сделать промежуточный стоп, по нажатию на энкодер во время движения по установкам, и (или) возврат к началу движения с теми настройками что были ранее... В общем мыслей много, но влезет ли все в ардуинку ??? а то все хотелки только в мегу придется запихивать...
Ещё раз спасибо.
По поводу профиля, этого бОлее чем достаточно. Фотик весит 1-2кг, расстояние до 1.5 метра. В общем стоит мертво.
А мониторчик обычный для ардуинок.
 

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
А если уж все переделывать, то я ещё хотел попытаться сделать промежуточный стоп, по нажатию на энкодер во время движения по установкам, и (или) возврат к началу движения с теми настройками что были ранее... В общем мыслей много, но влезет ли все в ардуинку ??? а то все хотелки только в мегу придется запихивать...
Да там дофига чего влезет, можно даже проезды в EEPROM записывать, только тогда придется концевик и на поворотник поставить. В общем если что, обращайтесь...
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
274
23
Москва. Щукино
Да там дофига чего влезет, можно даже проезды в EEPROM записывать, только тогда придется концевик и на поворотник поставить. В общем если что, обращайтесь...
Концевик на поворот нельзя, должен быть поворот без ограничений.
Мне не удобно вас просить, хотя очень хочется. Если не очень вас затруднит, я конечно хотел бы иметь нормальный скетч. К имеющемуся функционалу хотелось добавить паузу с меню, или просто пауза и повторное нажатие продолжить , по нажатию кн. энкодера во время рабочего движения. А в меню выбор типа play (продолжить), и return (вернуться в исходную) но без сброса настроек. Работа движений зациклена туда-сюда . Если вы из Москвы, могу дисплейчиком поделиться, для отладки.
 

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
Концевик на поворот нельзя, должен быть поворот без ограничений.
Ну концевик не обязательно ставить так, чтобы он ограничивал движение. Он просто должен срабатывать в одной точке.
Если не очень вас затруднит, я конечно хотел бы иметь нормальный скетч. К имеющемуся функционалу хотелось добавить паузу с меню, или просто пауза и повторное нажатие продолжить , по нажатию кн. энкодера во время рабочего движения. А в меню выбор типа play (продолжить), и return (вернуться в исходную) но без сброса настроек. Работа движений зациклена туда-сюда
Ничего, погляжу - на удаленке будет чем заняться для разнообразия.
Если вы из Москвы, могу дисплейчиком поделиться, для отладки.
Не, я довольно далеко от Москвы...
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
274
23
Москва. Щукино
Избыточное цитирование
Ну концевик не обязательно ставить так, чтобы он ограничивал движение. Он просто должен срабатывать в одной точке.

Ничего, погляжу - на удаленке будет чем заняться для разнообразия.

Не, я довольно далеко от Москвы...
По концевику, я пока не до конца понимаю его назначение. Заход у разных камер, для приворачивания на резьбу в разных местах, по этому начальная точка будет у каждой камеры в своем месте. Я полагаю, если можно обойтись без него, то лучше исключить этот момент.
По тому, что вам это представляет в некотором смысле момент отвлечения от рутины, и вы согласны не спеша помочь, огромное спасибо.
А то, что вы далеко от столицы не очень здорово, но т.к. других вариантов нет, будем общаться посредством инета.
Если будут уточняющие вопросы по работе, готов изложить.
Спасибо.
 

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
По концевику, я пока не до конца понимаю его назначение. Заход у разных камер, для приворачивания на резьбу в разных местах, по этому начальная точка будет у каждой камеры в своем месте. Я полагаю, если можно обойтись без него, то лучше исключить этот момент.
Идея была сохранять варианты проездов в EEPROM, чтобы просто потом их оттуда вытаскивать. Но без привязки к начальной точке, это особого смысла не имеет. Хотя можно сделать ручную привязку к нулевой точке. Да обойтись, конечно, можно.
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
274
23
Москва. Щукино
Идея была сохранять варианты проездов в EEPROM, чтобы просто потом их оттуда вытаскивать. Но без привязки к начальной точке, это особого смысла не имеет. Хотя можно сделать ручную привязку к нулевой точке. Да обойтись, конечно, можно.
Или я что то не понимаю, или вы просто супер!!! Я в ардуинку это с трудом впихнул, когда добавлял меню (предыдущий вариант ) и то, благодаря помощи этого сайта, а вы хотите ещё и что то сохранить.... куда ??? Надеюсь мы говорим про обычную ардуинку а не МЕГА.
А от второго микрика пока откажемся.
 

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
а вы хотите ещё и что то сохранить.... куда ???
EEPROM - энергонезависимая память, в смысле при сбросе питания она будет их хранить. В ATmega328 ее 1024 байта, для хранения одного прохода нужно примерно нач позиция 4 + конечная 4 + скорость 2 + 2 скажем количество проходов итого 12 байт. То есть можно хранить 1024/12 примерно 85 различный проходов, но это на вскидку, скорее всего надо памяти будет больше. Но я думаю хватит по любому.

Теперь очень сложный и весьма отвественный вопрос - как назовем проект?
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
274
23
Москва. Щукино
Избыточное цитирование
EEPROM - энергонезависимая память, в смысле при сбросе питания она будет их хранить. В ATmega328 ее 1024 байта, для хранения одного прохода нужно примерно нач позиция 4 + конечная 4 + скорость 2 + 2 скажем количество проходов итого 12 байт. То есть можно хранить 1024/12 примерно 85 различный проходов, но это на вскидку, скорее всего надо памяти будет больше. Но я думаю хватит по любому.

Теперь очень сложный и весьма отвественный вопрос - как назовем проект?
Да, памяти там 1024, а скетч куда ? Он разве не там сидит ?
Вы автор, вам и карты в руки. То, что я сам писал, никак не называл :), у меня и мыслей не возникало :) Я в эти моменты думал, как бы написать ... мне не до придумок было :)
 

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
Да, памяти там 1024, а скетч куда ? Он разве не там сидит ?
Нет, скетч сидит во флеш - ее там 32 килобайта, или 32768 байт.
Кстати там картинки довольно много занимают во флеш, если что подвинем.
Вы автор, вам и карты в руки. То, что я сам писал, никак не называл :), у меня и мыслей не возникало
Э нет, как сложности, так сразу в кусты? Как вы лодку назовете, так она и поплывет. Надо что-то со Slider.
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
274
23
Москва. Щукино
Избыточное цитирование
Нет, скетч сидит во флеш - ее там 32 килобайта, или 32768 байт.
Кстати там картинки довольно много занимают во флеш, если что подвинем.

Э нет, как сложности, так сразу в кусты? Как вы лодку назовете, так она и поплывет. Надо что-то со Slider.
Картинка того автора, а у нас будет своё, поэтому можно и удалить совсем... Ради функционала, можно ей пожертвовать.
А коль пошла такая песня, то будем как в "Операции Ы" называть, чем круче, тем лучше. "SuperSlider" а почему супер, чтоб никто не догадался.
Спасибо.
 

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
А коль пошла такая песня, то будем как в "Операции Ы" называть, чем круче, тем лучше. "SuperSlider" а почему супер, чтоб никто не догадался.
Спасибо.
Заметано. Кстати у вас какая ардуино? Нано с ATmega328p или с ATmega168p? А то я подразумевал, что с первым, но китайские клоны и со вторым бывают. Там памяти меньше...
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
274
23
Москва. Щукино
Избыточное цитирование
Заметано. Кстати у вас какая ардуино? Нано с ATmega328p или с ATmega168p? А то я подразумевал, что с первым, но китайские клоны и со вторым бывают. Там памяти меньше...
Я обычно всё собираю на ардуино НАНО с ATmega328p или на ПРО мини 168р или 328р. На классике в общем..
 

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
Пришлось поковырятся с разными библиотеками для реализации энкодера и меню. Меню пришлось в итоге написать самому, стандартная ардуиновская во первых заняла неимоверно много места, во вторых глючит на этом дисплее. Попробуйте вытащить и скомпилировать проект - https://gitlab.com/rglory/super-slider/ - Tortoise-GIT стоит на компе?

Там пока просто симуляция меню, просто чтобы проверить компилируется ли на вашем компе и правильно ли работает на вашем железе. Сейчас возьмусь за шаговики, нужно будет тоже потестировать.


Инструкция там есть, но если что-то непонятно, обращайтесь. Вообще надо бы найти какой канал для более быстрого общения.
 
Изменено:

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
274
23
Москва. Щукино
Избыточное цитирование
Пришлось поковырятся с разными библиотеками для реализации энкодера и меню. Меню пришлось в итоге написать самому, стандартная ардуиновская во первых заняла неимоверно много места, во вторых глючит на этом дисплее. Попробуйте вытащить и скомпилировать проект - https://gitlab.com/rglory/super-slider/ - Tortoise-GIT стоит на компе?

Там пока просто симуляция меню, просто чтобы проверить компилируется ли на вашем компе и правильно ли работает на вашем железе. Сейчас возьмусь за шаговики, нужно будет тоже потестировать.


Инструкция там есть, но если что-то непонятно, обращайтесь. Вообще надо бы найти какой канал для более быстрого общения.
Привет. зашел по ссылке, скачал, распаковал. Открыл в Ардуино иде, но там кроме текста ничего нет. А общаться можно и по почте и по скайпу и по вотсапу.... По поводу вытащить и скомпилировать не понял... Я гетхабом в общем никогда не пользовался, возможно что то не так делаю.
 

bort707

★★★★★★✩
21 Сен 2020
2,921
868
Открыл в Ардуино иде, но там кроме текста ничего нет.
смотрите внимательнее, там есть каталог firmware, внутри 4 файла с расширениями .cpp и hpp
Если переименовать файл main.cpp в menu.ino. думаю все соберется в стандартном ИДЕ
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
274
23
Москва. Щукино
смотрите внимательнее, там есть каталог firmware, внутри 4 файла с расширениями .cpp и hpp
Если переименовать файл main.cpp в menu.ino. думаю все соберется в стандартном ИДЕ
Понял. Сейчас не на долго убегаю... чуть позже. И вопрос, на сколько упростит и уменьшит размер программы, если вместо энкодера использовать кнопки. 3шт. влево-ОК-вправо. Подумал, может кнопки поставить ????
 

bort707

★★★★★★✩
21 Сен 2020
2,921
868
вопрос, на сколько упростит и уменьшит размер программы, если вместо энкодера использовать кнопки. 3шт. влево-ОК-вправо.
уменьшит - вряд ли, а упростит наверняка. Для надежной работы энкодера крайне важен быстрый опрос - а это означает, что вся остальная программа должна быть написана с учетом этого. С кнопками проще.
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
274
23
Москва. Щукино
уменьшит - вряд ли, а упростит наверняка. Для надежной работы энкодера крайне важен быстрый опрос - а это означает, что вся остальная программа должна быть написана с учетом этого. С кнопками проще.
Давай тогда сделаем на кнопках. 3 штуки. Энкодер круто, но не удобно. Когда слайдер длинный, то устаешь крутить его... нужно или шаг делать большой, что не всегда хорошо, или долго крутить. Единственное что можно к кнопке добавить, это если нажатие больше 3сек, то менять шаг перемещения оси. Типа грубая и тонкая настройка положения. Сначала едет медленно, а потом быстро (быстрее).

А скетч собрался но ошибка, нет твоей библиотеки для энкодера. Но мы от неё отказались.
 
Изменено:

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
Привет. зашел по ссылке, скачал, распаковал. Открыл в Ардуино иде, но там кроме текста ничего нет.
Так и должно быть просто компилируйте и заливайте, он сам найдет все файлы в src директории.
По поводу вытащить и скомпилировать не понял...
Удобнее будет, если поставите себе Tortoise-GIT, тогда не надо будет каждый раз распаковывать, она будет вытаскивать последнии изменения и синхронизировать. Но если не хотите разбираться, можно конечно и каждый раз архив качать и распаковывать.

сли переименовать файл main.cpp в menu.ino. думаю все соберется в стандартном ИДЕ
Не обязательно ничего переименовыать Arduino IDE сама цепляет все из директории src, поэтому я просто оставил пустышку с комментарием. Коряво она сделана. Я понимаю, что для уменьшения порога вхождения, ну уж очень неудобно. Шаг вправо, шаг влево...

А скетч собрался но ошибка, нет твоей библиотеки для энкодера. Но мы от неё отказались.
Там в README таписано, какие библиотеки надо поставить. Скопирую потом в firmware.ino -

  • RotaryEncoder by Matthias Hertel
  • OneButton by Matthias Hertel
  • Adafruit GFX by Adafruit
  • Adafruit SSD1306 by Adafruit
Чем и удобна платформио - там в файле указаны настройки, и какая плата используется, и какие библиотеки нужны. И она их автоматически вытаскивает с репозиториев. Но вам придется вручную их поставить,