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

rGlory

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

Насчет энкодера, попробуйте изменить количество шагов - параметр encoderSTEPS попробуйте 3 или 2. Может в этом проблема.


Запись при перепрошивке не стирается.
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
287
23
Москва. Щукино
@rGlory,
Энкодер нужно вероятно менять. Это я понимаю. Не понятно почему он то влево работает то в право... в разных пунктах меню. Цифры менял, у меня при 1, за 1 клик делает проход на 2 пункта (2 импульса)... Другое не помогает. На неделе куплю новый энкодер. Хотя в той прошивке (от того автора) подглючивает, но работает почти нормально....
.
Ещё, можно ли отключить изменение скорости ввода при повороте энкодера ? Из-за тормозов по Y , начинаешь крутить и Ж*****а полная... как на видео, улетаешь черти куда. Не нужно было вообще эту опцию делать !!! Тут она только все портит. Вращение должно быть в реальном времени а не через паузу... она всё портит... оно едет не по координатам, а по тому как нам видится... В общем с У осью нужно что то делать... эти цифры нужны только ардуине, а из-за них нет нормальной настройки...

Призываю, убрать все цифры.!!! Меню можно оставить, двойной клик тоже.

Залил прошивку в другой слайдер, так же не пускает... Причем тестовый на ПРО мини, а другой на НАНО... Почему не знаю.
 

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
Ещё, можно ли отключить изменение скорости ввода при повороте энкодера ?
Да, закоментировать 56 строку в main.cpp - encoder.setAccelerationEnabled( true );
Могу сделать это параметром.

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

эти цифры нужны только ардуине, а из-за них нет нормальной настройки...
Так не смотрите на цифры, смотрите на ось Y. Цифры там больше для отладки.
Залил прошивку в другой слайдер, так же не пускает... Причем тестовый на ПРО мини, а другой на НАНО... Почему не знаю.
Очень интересно, разберусь. Может из-за того, что я после прошивки не отключаю питание...

Да нет, выключил питание, включил, сразу зашел в меню speed

Может и тут энкодер сразу два нажатия подряд хреначит?

Можете загрузить тест энкодира из библиотеки, и с подключенныи монитором на 9600 посмотреть, что там творится?


У вас какой энкодер, просто голый? Не такой с платой? https://www.amazon.com/gp/product/B06XQTHDRR/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

А Ардуино IDE какой процессор выбран?
 
Изменено:

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
287
23
Москва. Щукино
@rGlory,
1- акселератор вообще отключить. Как параметр он не нужен.
2-в режиме настройки начало и конец, разгон не нужен. Если можно то его вообще в этом режиме исключить. Разгон может быть актуален только при работе слайдера, чтоб камера не тряслась при трогании и остановках, . А пока идет настройка позиций, тряска не страшна.
3-Когда настраиваешь картинку, смотришь не на цифры а в дисплей камеры. Вы писали, что идет медленное обновление экрана, и поэтому есть задержка на срабатывание мотора. Поэтому я и призывал их (цифры) отключить. По Х оси это не так актуально, а вот по У оси, это очень важно, чтоб ручка энкодера была одним целым с осью камеры. Никаких задержек... только реалтайм.
4- Энкодер простой, голый. Подтяжку добавил ещё и сопротивлениями, сейчас попробую емкостями зашунтировать. С энкодером буду разбираться.... пока вопрос открыт.
Это ещё одна тема, почему хотел от него уйти на кнопки.

По ардуино
Если НАНО то

Без имени-1.jpg

Если Про мини то

Без имени-2.jpg
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
287
23
Москва. Щукино
Взял другие энкодеры, на платке как у вас... Бред полнейший... одни работают без глюка вправо, другие влево... Похоже весь брак у нас !!!
Причем они даже на моем скетче черти как работают.... Нужно уходить на кнопки...
Загрузил програмку для энкодера, не кажет порт... Вероятно там пины не те что у меня... Что там заменить не знаю... Я до сих пор не представляю как сие работает.
 
Изменено:

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
Энкодер нужно ловить прерываниями, тогда и глюков не будет.
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
287
23
Москва. Щукино
@kostyamat,
А как объяснить то, что в одном и том же скетче, на одной и той же ардуино, 4 энкодера работают по разному... причем один нормально....
Это что, теперь под каждый энкодер программу писать ?
Бред, иначе не скажешь...

@rGlory,
Нашел ошибочку, мы на неё не раз натыкались, но пока не обращали внимания... При команде Вернуться в начальное положение, после настройки конечной точки, он едет в начало, а вот ось У крутит не в ту сторону... И соответственно все разъезжается.
 

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
Это что, теперь под каждый энкодер программу писать ?
По идее идеальнее всего было бы спаять вот эту схему -
микросхема там дешевая - инверторы в одном корпусе и немного рассыпухи. Либо уж совсем круто, это контроллер енкодера на I2C - https://www.tindie.com/products/saimon/i2cencoder-v21-connect-rotary-encoder-on-i2c-bus/

Кстате у алекса есть видео про энкодеры
и он там тоже говорит про очень большой процент брака у этих энкодеров и рекомендует брать более новые, с круглой платой. А здесь вся статья https://alexgyver.ru/encoder/

При команде Вернуться в начальное положение, после настройки конечной точки
Чуть позже исправлю, сейчас занят строительным проектом, делаю катио - это патио для котов. Просто если не сделать, совсем жизни не дадут.
 

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
@rGlory, берете новую библу Гайвера encButton из видео про самопальный DSP с энкодером (вышло недавно) подвешиваете энкодер на прерывания и горя не знаете. Я вот недавно энкодер в наш проект FireLamp_JeeUI вмастерил, - работает просто изумительно.

Реализация тут https://github.com/DmytroKorniienko/FireLamp_JeeUI/blob/dev/src/enc.cpp
 

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
берете новую библу Гайвера encButton из видео про самопальный DSP с энкодером
К сожалению эти библиотеки проблематично подключать в platformio, поскольку они все лежат в одном репозитории github. Да и сомневаюсь я, что битый энкодер хорошо заработает с любой библиотекой. Библиотека, которую использую сейчас, основана на прерывании таймера, должна работать нормально. (с моим китайским энкодером с прямоугольной платой она работает на ура). Кроме того она фильтрует дребезг и мусор. Тот факт, что при вращении ничего не происходит, говорит о том, что дребезг там неимоверный. Можно, конечно, осцилографом посмотреть, но не думаю, что увидим там что-то хорошее.

Кстати, если у этой библиотеки есть примеры, то Андрей может загрузить один из них и проверить, как работают его энкодеры с этой библиотекой. Или можно собрать отдельный стенд. Андрей, у вас есть же отдельная нано или микро? Загрузите пожалуйста примеры из гайвероской библиотеки и потестируйте свои энкодеры. Если они заработают, я перенесу как нибудь, хотя это не очень удобно. А так просто не вижу смысла, если железо битое, это никакая библиотека не исправит.
 
Изменено:

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
К сожалению эти библиотеки проблематично подключать в platformio, поскольку они все лежат в одном репозитории github
В смысле? А я разве не в платформио ею пользуюсь? Я ее просто в папку include вбросил, и к проекту подключил.
 

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
В том смысле, что библиотеки по нормальному подключаются в platformio.ini и вытаскиваются скриптом из репозитория. И при появлении новых версий, а тем более исправлений вытаскиваются автоматически. Или полуавтоматически (версию поменять в ини файле). Тупо скопировать исходники конечно можно, но это коряво.
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
287
23
Москва. Щукино
Избыточное цитирование
@kostyamat,
К сожалению я не умею. А вот если автор, который мне помогает, сможет это прикрутить, то это должен он решать.
А я в свою очередь заказал энкодеров как у Алекса. Кругленькие, с RC элементами.

К сожалению эти библиотеки проблематично подключать в platformio, поскольку они все лежат в одном репозитории github. Да и сомневаюсь я, что битый энкодер хорошо заработает с любой библиотекой. Библиотека, которую использую сейчас, основана на прерывании таймера, должна работать нормально. (с моим китайским энкодером с прямоугольной платой она работает на ура). Кроме того она фильтрует дребезг и мусор. Тот факт, что при вращении ничего не происходит, говорит о том, что дребезг там неимоверный. Можно, конечно, осцилографом посмотреть, но не думаю, что увидим там что-то хорошее.

Кстати, если у этой библиотеки есть примеры, то Андрей может загрузить один из них и проверить, как работают его энкодеры с этой библиотекой. Или можно собрать отдельный стенд. Андрей, у вас есть же отдельная нано или микро? Загрузите пожалуйста примеры из гайвероской библиотеки и потестируйте свои энкодеры. Если они заработают, я перенесу как нибудь, хотя это не очень удобно. А так просто не вижу смысла, если железо битое, это никакая библиотека не исправит.
Я не всегда улавливаю где и что искать. Если б носом ткнуть... Я понимаю что речь про библиотеку, у Алекса много и разных...
А ардуинок и прочего у меня в достатке.
 

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
И при появлении новых версий, а тем более исправлений вытаскиваются автоматически.
Это не про Гайвера. Он всегда идет только вперед. :). Но на данный момент в обсуждаемой библиотеке я недочётов не увидел.
*** Скажу по секрету - часто новее не означает лучше. В том числе и в библиотеках. Не вижу ничего крамольного в фиксировании версии библиотеки, если версия полностью устраивает.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,266
1,303
Москва
Не вижу ничего крамольного в фиксировании версии библиотеки
Мало того новая версия может не работать в программе, созданной на старой версии. Примеры - новый микролед, и еще такое было с версией RTC, которая стала "толще" и программа не корректно отрабатывала кучу.
 
  • Лойс +1
Реакции: kostyamat

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
Кстати, если у этой библиотеки есть примеры, то
С прерываниями, увы примера нет. А энкодер, имхо, всегда нужно обслуживать именно в прерываниях, без вариантов. Но это чисто мое мнение. Я ненавижу тормозящие интерфейсы, или фризы в работе.
 

rGlory

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

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

Я не всегда улавливаю где и что искать. Если б носом ткнуть...
Да похоже проехали, примера с прерываниями, похоже, что нет. Да и кнопку так подключить не получится, у 328p только два пина могут прерывания давать.

Кстати, вы так и не сказали, какие сейчас энкодеры стоят у вас? Которые в статье https://alexgyver.ru/encoder/ указаны как Type1 или Type2? Они у вас на плате стоят или голые? Или вы свою схему подавления дребезга подключали?
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
287
23
Москва. Щукино
@rGlory,
Я писал выше.
Стоят простые, голые. Есть 1 шт как у вас, на плате, работает так же хреново... влево отрабатывает идеально, а вправо практически не работает... при вращении вправо, каретка едет влево, иногда дергаясь вправо... В общем куда не крути едем в одну сторону... Помимо подтяжки в ардуино через пулап, я ещё сам сопротивления по 7ком на плюс зацепил. Стало работать лучше... но все равно криво. А вот схему от дребезга я не знаю. Подскажите...
У меня несколько слайдеров, все однотипные, когда то покупал десяток энкодеров, там энкодеры нормально рулят... а эти оставшиеся пляшут...
Энкодеры 2ух кликовые за 1 щелчек. При этом они тонкие ТИП-1
 
Изменено:

kostyamat

★★★★★★✩
29 Окт 2019
1,098
632
Да и кнопку так подключить не получится, у 328p только два пина могут прерывания давать.
От когда? FALING/RISING только два, да. А CHANGE все цифровые. Енкодеру именно CHANGE и нужны. Я же давал пример реализации выше.
Кнопку вешаете на d2 или d3, а каналы энкодера на любые.
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
287
23
Москва. Щукино
Оформи код соответствующим тэгом
Из ролика Алекса, написал его програмку

#define CLK 3
#define DT 8
#define SW 3

#include <GyverEncoder.h>
Encoder enc(CLK, DT, SW);

void setup(){
Serial.begin(9600);
enc.setType(TYPE2);
}

void loop(){
enc.tick();
if (enc.isRight()) Serial.println ("right");
if (enc.isLeft()) Serial.println ("Left");
}
Энкодеры работают нормально. В режиме ТИП2 просто идеально, причем каждый шаг энкодера появляется надпись. Что вроде как говорит что он 2ух импульсный, при этом он тонкий... ???,
А указывая ТИП-1, он так же работает 1 щелчек, одна надпись.... но за 1 оборот раз так 5 происходит сбой. Как при вращении в одну сторону, так и при вращении в другую. А в режиме ТИП-2 ни одного сбоя не зависимо от скорости вращения.

Потестил другие примеры из библиотеки, какие то работают четко, какие то нет...
 
Изменено:

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
Помимо подтяжки в ардуино через пулап, я ещё сам сопротивления по 7ком на плюс зацепил. Стало работать лучше... но все равно криво. А вот схему от дребезга я не знаю.
Простейшая указана в той же статье в схематике "круголого", там просто ставите 100 нано конденсаторы, кроме подтягивающих резисторов.

Энкодеры работают нормально. В режиме ТИП2 просто идеально, причем каждый шаг энкодера появляется надпись.
Хорошо, завтра прикручу эту библиотеку, посмотрим, что получится.
 

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
287
23
Москва. Щукино
@rGlory,
Купил с круглой платой энкодеры, всё как часы !!! Крутит идеально в моем скетче.
И в вашем в принципе нормально, иногда перескакивает на 2 позиции. Но в основном по шагу делает.
Теоретически можно и не прикручивать его библиотеку. Тут вам решать
 
Изменено:

rGlory

★✩✩✩✩✩✩
11 Май 2021
200
20
Так убрал паузу в разгоне. Обнаружил, почему не заходит в speed и loops, исправил. Исправил проблему с неправильным вращением в Y. Обновитесь и попробуйте. Жду результатов.

Кстати теперь с нормальным энкодером можете попробовать включить акселерацию. По моему с нормальным энкодером оно неплохо работает, но хозяин, конечно, барин. Библиотеку энкодера пока не менял.
 
Изменено:

Андрей К.

★✩✩✩✩✩✩
25 Май 2019
287
23
Москва. Щукино
@rGlory,
Залил видео там 2 видео. - https://dropmefiles.com/X5sD1

@rGlory,
В догонку, ещё момент для коррекции...
В режиме работы у нас есть пауза. Но! Она работает не совсем так как нужно. При нажатии на паузу, сейчас, происходит продолжение выполнения действия, и для того, чтоб остановить, нужно проделать ненужные действия..... А в это время камера уже уехала... Нужно сделать мгновенное СТОП. Нажал-остановилось... именно в тот момент когда было нажато!!! А дальше при повторном клике, поехало... теоретически можно оставить и движение по меню. Главное чтоб нажал -стоп, ещё нажал, даже не смотря в меню, поехали дальше. Рабочий, он же творческий, процесс не должен тормозиться хождением по меню... Нужный кадр никогда не стоит на месте... тут все бежит... Еслиб можно было остановить кадр и сказать подожди... я сейчас настрою... а потом будем двигаться дальше...
 

Александр Симонов

★★★★✩✩✩
2 Авг 2018
727
208