MegaD-328 и энкодер

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
vgolinsky
Сообщения: 81
Зарегистрирован: 21 дек 2011, 14:29
Откуда: Украина, Черкассы

MegaD-328 и энкодер

Сообщение vgolinsky » 17 дек 2014, 22:31

Всем привет. А кто-то пробовал прикрутить енкодер к МегаД? я так понимаю нужен скрипт, сам в программировании не очень силен, может кто поможет реализовать. Идея в том что бы при вращении енкодера можно было плавно менять ШИМ (соответственно димировать светодиоды) Это удобнее, чем нажимать кнопочки.

vgolinsky
Сообщения: 81
Зарегистрирован: 21 дек 2011, 14:29
Откуда: Украина, Черкассы

Re: MegaD и енкодер

Сообщение vgolinsky » 18 янв 2015, 18:22

Неужели никто еще не прикрутил энкодер к МегаД? удобнее же крутить ручку, чем давить на кнопки. В Ардуине я знаю как сделать, а вот в PHP не силен. Скажите, это хоть реально сделать?

aurodionov
Сообщения: 213
Зарегистрирован: 16 авг 2011, 14:07
Откуда: Россия,Тюмень
Контактная информация:

Re: MegaD и енкодер

Сообщение aurodionov » 18 янв 2015, 21:08

Есть вариант у ТНК. На форуме посмотрите

vgolinsky
Сообщения: 81
Зарегистрирован: 21 дек 2011, 14:29
Откуда: Украина, Черкассы

Re: MegaD и енкодер

Сообщение vgolinsky » 18 янв 2015, 23:43

Тот вариант видел, но дело не в том, как подключить энкодер. У ТНК прошивка другая. Дело в том чтоб прицепить энкодер на два входа in MegaD, которые будут запускать скрипт на сервере, а он будет управлять ШИМом. У меня проблема в написании скрипта... Вот я и подумал, может кто-то уже реализовал что-то подобное.

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: MegaD и енкодер

Сообщение Andrey_B » 19 янв 2015, 00:08

vgolinsky, какой энкодер вы используете? Каков принцип его работы? Они разные бывают.
Крутим в одну сторону - выдает импульсы в один канал, крутим в другую - в другой? Или как?

vgolinsky
Сообщения: 81
Зарегистрирован: 21 дек 2011, 14:29
Откуда: Украина, Черкассы

Re: MegaD и енкодер

Сообщение vgolinsky » 19 янв 2015, 00:17

Энкодер подключается на два входа. при вращении почередно срабатывют входы как на прикрепленной картинке
Вложения
enc.GIF
enc.GIF (2.05 КБ) 12975 просмотров

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: MegaD и енкодер

Сообщение Andrey_B » 19 янв 2015, 00:42

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

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: MegaD и енкодер

Сообщение Andrey_B » 19 янв 2015, 17:06

vgolinsky, зашел в ларек, взял ECW1J-R19-AC0024L.
Самая главная проблема для данной модели в том, что время контакта очень маленькое и программная защита от дребезга просто "режет" эти срабатывания.
Чтобы работал энкодер, нужен изменять параметры защиты от дребезга в сторону уменьшения минимального времени контакта, причем существенно (более чем в 2 раза). А это влечет за собой серьезные последствия ввиду того, что к используемому таймеру, привязана другая функциональность. Ну и, кроме того, это значительно ухудшит ситуацию собственно с дребезгом контактов. Вот даже не знаю что тут можно предпринять.
Для ECW1J-R19-AC0024L время контакта, насколько я понимаю, 5 мс. Нужен энкодер с бОльшим временем контакта.

vgolinsky
Сообщения: 81
Зарегистрирован: 21 дек 2011, 14:29
Откуда: Украина, Черкассы

Re: MegaD и енкодер

Сообщение vgolinsky » 20 янв 2015, 01:12

Я использую EC11-1B-18T (купленый на ebay) По даташиту 10 мс и меньше... а какое нужно время контакта, что бы фильтр дребезга пропускал сигнал?

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: MegaD и енкодер

Сообщение Andrey_B » 20 янв 2015, 11:05

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

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: MegaD и енкодер

Сообщение Andrey_B » 20 янв 2015, 13:25

vgolinsky, попробовал написать такой скрипт (с модифицированной прошивкой).
Если крутить ручку энкодера медленно, то все работает. А вот если быстро - получается мягко говоря не очень. Связка "защита от дребезга - отправка запроса на сервер - вызов скрипта - обработка параметров - отправка команды на устройство" не успевает отрабатывать за те миллисекунды, которые дает ей энкодер при активном кручении ручки. Поэтому вопрос пока остается.

kod.begemot
Сообщения: 400
Зарегистрирован: 21 сен 2013, 00:38

Re: MegaD и енкодер

Сообщение kod.begemot » 20 янв 2015, 15:11

Вот я тоже давно "хожу вокруг да около" энкодеров, и хочется использовать, и сложно совместить с имеющимися устройствами.
Думаю что хорошо бы энкодер нажимной поставить в корпус от диммера, а для обработки - отдельный МК в тот же корпус... и туда хорошо бы или экранчик небольшой, или светодиодное колечко (из синего в красный например переходящее, или с двумя светодиодами - чтобы оттенок сделать), в качестве обратной связи. Покрутил ручку, установил примерно (по кольцу) или точно (по экрану) значение, скажем, температуры. Отпустил ручку - оно через несколько секунд передалось на сервер. Или по нажатию "на голову".. Или нажать и повернуть (защита от детей?).. Тут никаких портов Меги не хватит, да и жалко железку на это тратить. Можно это всё сваять на радиоканале, но не сторонник я беспроводных технологий, когда дело идёт о автоматизации жилища. Если речь идет о новой проводке то можно заложить UTP провод, и как-то передавать. Может даже Ethernet,
P.S. сорри за оффтоп. Может тему отддельную? или есть уже?

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: MegaD и енкодер

Сообщение Andrey_B » 20 янв 2015, 17:15

В общем я написал PHP-скрипт, который прекрасно работает с моим энкодером. Просто замечательно.
Но обязательным условием работы этого скрипта является отсутствие защиты от дребезга.
Таким образом (может быть) необходимо предусмотреть настройку входа, которая бы эту защиту для определенных портов отключала.

kod.begemot
Сообщения: 400
Зарегистрирован: 21 сен 2013, 00:38

Re: MegaD и енкодер

Сообщение kod.begemot » 20 янв 2015, 17:26

Режим "E"? В добавление к P,R,P&R?

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: MegaD и енкодер

Сообщение Andrey_B » 20 янв 2015, 18:34

Почему "Ы"? Что б никто не догадался! ;)
E - от слова энкодер?
Можно попробовать и E. Только надеюсь не понадобиться режим E&R... ;)

zelevova
Сообщения: 90
Зарегистрирован: 30 авг 2013, 12:03
Откуда: Краснодарский край

Re: MegaD и енкодер

Сообщение zelevova » 20 янв 2015, 18:50

Как это не понадобиться. Е - энкодер. R - нажали выключить. :)

vgolinsky
Сообщения: 81
Зарегистрирован: 21 дек 2011, 14:29
Откуда: Украина, Черкассы

Re: MegaD и енкодер

Сообщение vgolinsky » 20 янв 2015, 19:18

zelevova писал(а):Как это не понадобиться. Е - энкодер. R - нажали выключить. :)
Для выключения в энкодере придется использовать 3-ий вход, который можно и P&R настроить

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: MegaD-328 и энкодер

Сообщение Andrey_B » 20 янв 2015, 21:54

Собственно, вот.
viewtopic.php?f=1&t=635&start=560#p16197

vgolinsky
Сообщения: 81
Зарегистрирован: 21 дек 2011, 14:29
Откуда: Украина, Черкассы

Re: MegaD-328 и энкодер

Сообщение vgolinsky » 24 янв 2015, 17:04

Что-то не заработал у меня скрипт. Точнее некоректно заработал. При вращении энкодера ШИМ меняется произвольно в любую сторону. Еще заметил у себя глюк - работает только тот скрипт, что прописан в главном меню настройки, а тот что пишется в Net Action входа не срабатывает, не знаю почему. Еще подскажите, пожалуйста, правильные фьюзы при тактировании от 16 МГц кварца?
А вот плавное включение ШИМа просто бомба. Спасибо огромное за реализацию этого, очень упростило жизнь. ))))

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: MegaD-328 и энкодер

Сообщение Andrey_B » 24 янв 2015, 21:59

vgolinsky, давайте восстановим условия, при которых у меня работает.
Оба порта, которые подключены к энекодеру сконфигурированы так: Raw включен, Action пусто, NetAction пусто (это важно)
PWM порты - Smooth отключено.
Скрипт прописан только основной. В NetAction портов энкодера ничего нет.

Компьютер, который выполняет скрипт энкодера, должен быть относительно производительным.
То есть на моем древнем тестовом Celeron 2.2Ггц работает. На мини-ПК не тестировал.

Если вы говорите о NetAction на "энкодерных" портах, то это скорее всего нормально. Слишком много формируется пакетов за единицу времени, а у стэка нет очереди. Но как-нибудь проверю.
Фьюзы, наверное, те же самые:
Low: 0x60
High: 0xD8 (если есть загрузчик)

В тестовом скрипте есть два параметра, которые могут влиять на работоспособность. Это "0.05" в строчках 43 и 45 и "10000" в строчке 74. Можно пробовать изменять эти значения в ту или иную сторону и смотреть что получается.

Ответить