Прошивка MegaD-328 (релизы, обсуждения, предложения)

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Andrey_B
Администратор
Сообщения: 4081
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 10 фев 2016, 19:55

http://ab-log.ru/files/File/ip_manager3 ... a4-hex.zip

Теперь управление диммируемым каналом с помощью двух входов работает примерно так, как предлагалось.
Одно нажатие (канал включения) - свет включается на ту яркость, на которой был включен в последний раз.
Одно нажатие (канал выключения) - свет выключается.
Удержание той или иной кнопки - яркость плавно увеличивается или уменьшается (скорость изменения уменьшил примерно в 3 раза).

Входы должны быть настроены в режим P&R

Длительность "длинного" нажатия уменьшена до 1 секунды для удобства использования.

В принципе это то, что просили. Но на 2 клавиши. Можно сделать и для одной, но тогда придется еще найти где-то байт 12 или 13.
Однако я думаю, что двумя клавишами пользоваться будет куда удобнее, чем одной. У меня тоже есть такие диммеры с одной кнопкой. На мой вкус не очень то удобно.

Что касается двойного нажатия. А что вообще имеется ввиду? Это предполагается отправлять информацию на сервер или как?

d.v.ermakov
Сообщения: 869
Зарегистрирован: 29 май 2015, 21:23
Откуда: Екатеринбург, Нижний Тагил

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение d.v.ermakov » 10 фев 2016, 21:13

to Prokol: конечно, на каком-то этапе прошивка для 328, видимо, прекратит своё развитие (она и так уже давно достигла своих целей, а для остального есть сервер), и дальше будет развиваться 2561.

Про диммирование "аппаратно". ИМХО, должно управляться одной кнопкой. Алгоритм вчера описывал Prokol. У меня так же работает, в каком-то knx блоке когда-то подсмотрел и повторил. Так что этот алгоритм похоже, стандартный. Дело не в том, что проводов не хватает (хотя провода тоже лишними не бывают), дело в том, что функционал всех кнопок давно расписан и лишних нет. Тройной выключатель же неудобен, даже от ABB.

P.S. Кстати, мне так и не удалось тройной выключатель ABB basic 55 нормально работать с пружинками и скобой (то есть стать кнопкой). Оригинальных тройных кнопок не бывает, хотя гнезда под пружинки в нем есть. А для одно и двухклавишных прекрасно подходят широко известные пружинки. Скобы сделал по фотографии в интернете из жести ножницами, работают второй год прекрасно. Так что смысла долго искать и переплачивать в 2 раза за оригинальные кнопки не вижу. Могу фото выложить.

Prokol
Сообщения: 188
Зарегистрирован: 25 янв 2015, 21:43

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Prokol » 10 фев 2016, 22:08

d.v.ermakov, так я и пишу, что развиваться дальше прошивка уже будет на 2561, на 328 останется уже старая. Именно поэтому и пишу, что лучше 2561 использовать по максимуму, а не останавливаться на 14 портах. А сколько и каких управляемых моделей будет подключено к базовому блоку уже решать пользователю. А то получается "купили компьютер, у которого мощный проц, а есть только 2 usb порта для мышки и клавы, 1 слот PCI-E и больше никакой возможности нет, хотя возможности компа с таким процом значительно шире". :)
d.v.ermakov писал(а):У меня так же работает, в каком-то knx блоке когда-то подсмотрел и повторил.
Как я понимаю вы повторили это на сервере для MegaD? Если так, то могли бы поделиться кодом?

Andrey_B, вы пишите о 12-13 байтах, а как я заметил последние прошивки уменьшились больше чем на 2 кбайта. Их почему использовать нельзя?

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

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение kod.begemot » 10 фев 2016, 23:09

Наверное, речь об ОЗУ?
Насчет нескольких исполнительных блоках - поддерживаю, т.к. тоже считаю новый кристалл в старой формации - расточительно :) Особенно с учетом концепции Андрея - когда автономный режим и сценарии внутри МегаД / между нескольчими устройствами МегаД - вторично. Если от этой концепции отойти - то можно много "серверных" функций перетащить в новы кристалл. но будет это совсем другое устройство, ИМХО )
P.S. признаю, идея с несколькими ветками не выдерживает критики, и более того - это бессмысленно ввиду грядущего перехода на новый мозг )

d.v.ermakov
Сообщения: 869
Зарегистрирован: 29 май 2015, 21:23
Откуда: Екатеринбург, Нижний Тагил

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение d.v.ermakov » 10 фев 2016, 23:19

Извините, конечно, ребята, но мысли в стиле "если есть порты, надо обязательно их все использовать" - это тупиковый путь, ИМХО. Важно еще подумать, а сколько их нужно, зачем, и что они должны делать. Иначе франкенштейн получится. А не бытовое устройство.

to Prokol про диммер: у меня openhab. В ветке про него даже пример кода есть, правда, не полный. А я, как всегда, далеко и с телефона. Если еще будет для вас актуально, свой пример кода на следующей неделе вышлю.

d.v.ermakov
Сообщения: 869
Зарегистрирован: 29 май 2015, 21:23
Откуда: Екатеринбург, Нижний Тагил

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение d.v.ermakov » 10 фев 2016, 23:28

Как вариант конструктива: второй разьем для исполнительного модуля может быть спрятан под крышку корпуса и расположен параллельно первому. Щели должно хватить на кабель. И будет для гиков, которым вскрыть устройство не лень. Оттрассировать без многослойки правда, скорее всего не получится. Стоит ли овчинка выделки?

alexsis_76
Сообщения: 1071
Зарегистрирован: 26 авг 2011, 05:09
Откуда: Забайкальский край п Оловянная

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение alexsis_76 » 11 фев 2016, 04:51

Мне тоже не нравится раздвоение прошивки.
зачем раздвоение? ведь есть директивы условной компиляции
фрагмент кода модуля Tich.h
#define tick_system_reqest TIMSK=1;// разрешаем прерывания таймера
#define GetPeripheralClock_7() //7000000ul
//#define GetPeripheralClock_8() //8000000ul
//#define GetPeripheralClock_12() // 12000000ul
//#define GetPeripheralClock_16() //16000000ul
#define tick_system_stop TCCR0=(0<<0)|(0<<1)|(0<<2)
#ifdef GetPeripheralClock_7()
#define tick_system_start TCCR0=(1<<0)|(0<<1)|(0<<2)//no
#define Isr_Counter TCNT0=42;
#endif
#ifdef GetPeripheralClock_8()
#define tick_system_start TCCR0=(1<<0)|(0<<1)|(0<<2) //no
#define Isr_Counter TCNT0=13;
#endif
#ifdef GetPeripheralClock_12()
#define tick_system_start TCCR0=(0<<0)|(1<<1)|(0<<2) //1:8
#define Isr_Counter TCNT0=210;
#endif
#ifdef GetPeripheralClock_16()
#define tick_system_start TCCR0=(1<<0)|(1<<1)|(0<<2) //1:64
#define Isr_Counter TCNT0=248;
#endif
//#define TICKS_PER_SECOND ((GetPeripheralClock()+128ull)/256ull)
#define TICK_SECOND 32768 // 32kHz crystal drives timer with no scalar
void TickInit(void);
unsigned long int TickGet(void);
в зависимости от тактовой частоты контроллера меняем настройки таймера
можно сделать еще радикальнее
#define mega328
#define mega2560
#ifdef mega328
код для 328
#endif
#ifdef mega2560
код для 2560
#endif
А зачем упираться в паралельные порты и пытаться впялить паралельный разъем в и без того тесный размер модуля, может быть завести последовательный интерфейс? вы можете разместить в корпусе все что угодно, это уже давно поняли производители техники

dimonix
Сообщения: 366
Зарегистрирован: 19 фев 2012, 22:01
Откуда: Сколково

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение dimonix » 11 фев 2016, 10:50

Полностью согласен с предыдущим оратором :)
Условная компиляция также даёт возможность сделать прошивку модульной. Т.е. включать или не включать в прошивку код поддержки, например, датчика DHT11 (у которого точность +/- километр), i2c или ds1820. У меги 2561 память ведь тоже конечна.
Пример удачной реализации модульности - http://www.wifi-iot.ru. Я насчитал 93 функции. Использую эту прошивку и считаю такой подход очень удобным.

p.s. Вдогонку, может Ув. Андрею_Б имеет смысл сделать подобный сайт для сборки прошивок (см.выше). При этом исходники остаются открытыми, кто может - тот собирает прошивку себе самостоятельно. А кто не может - платит Андрею рубль (условно), и пользуется его сайтом для сборки прошивки под свои нужды.

vtec
Сообщения: 458
Зарегистрирован: 19 сен 2011, 09:28

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение vtec » 11 фев 2016, 12:40

Andrey_B писал(а):Что касается двойного нажатия. А что вообще имеется ввиду? Это предполагается отправлять информацию на сервер или как?
Ну либо переключаем порт (пример 7:2) или отправляем другой меге. Пример использования: по двойному нажатию выключить свет и включить подсветку или по двойному нажатию включить вытяжку

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

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 11 фев 2016, 13:30

vtec, где это может использоваться понятно. Вопрос в другом. Как именно отличать одинарное от двойного нажатия. Очевидный вариант: когда происходит первое нажатие, нужно подождать, не произойдет ли второго. Но в этом случае, если все ограничилось только одним нажатием, свет включится не сразу по замыканию, а спустя какое-то время, когда контроллер поймет, что второго нажатия не последовало.
Делать так на все входы по умолчанию нельзя. Значит это должна быть настройка входа, что невозможно в рамках 328. А если это не настройка входа, то в этом нет никакого смысла, так как сервер и сам может проделать тоже самое для определения двойного нажатия.

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

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение kod.begemot » 11 фев 2016, 15:33

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

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

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 11 фев 2016, 17:47

http://ab-log.ru/files/File/ip_manager3 ... a5-hex.zip

Теперь управлять диммируемым каналом можно одной кнопкой без сервера.
Пример Act: 10:~
Напомню, что режим работы входа должен быть P&R

serssh
Сообщения: 4
Зарегистрирован: 11 фев 2016, 17:52
Откуда: Александров
Контактная информация:

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение serssh » 11 фев 2016, 18:36

Ну здравствуйте друзья теперь и я один из вас.
В программировании я не селен (пока но учусь ...)
я тоже за переход на проц 2561
но у многих уже есть и работает 328 а так как 328 уже исчерпана а хочется наворотов все больше и больше приходится урезать что-то удалят и тд
я предлагаю разделить прошивку на две по функционалу например кто использует релейные блоки без семисторов зачем в той прошивке димирование шим
в 328 полно функций и я уверен что на все 100% по функционалу один модуль не используется да и один он врятли у кого стоит как минимум пара
так вот и выбрали например из 4х да зашили нужную
прошу сильно не пинать это всего лишь мое личное мнение

Prokol
Сообщения: 188
Зарегистрирован: 25 янв 2015, 21:43

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Prokol » 11 фев 2016, 18:58

Andrey_B, спасибо за такую новость. Давно ждал.

vtec
Сообщения: 458
Зарегистрирован: 19 сен 2011, 09:28

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение vtec » 12 фев 2016, 12:28

Andrey_B писал(а):vtec, где это может использоваться понятно. Вопрос в другом. Как именно отличать одинарное от двойного нажатия. Очевидный вариант: когда происходит первое нажатие, нужно подождать, не произойдет ли второго. Но в этом случае, если все ограничилось только одним нажатием, свет включится не сразу по замыканию, а спустя какое-то время, когда контроллер поймет, что второго нажатия не последовало.
Делать так на все входы по умолчанию нельзя. Значит это должна быть настройка входа, что невозможно в рамках 328. А если это не настройка входа, то в этом нет никакого смысла, так как сервер и сам может проделать тоже самое для определения двойного нажатия.
Да, все верно это реализуется с помощью задержки. Да это доп. настройка порта. Если это не в пихнуть, то тогда отказываемся, лучше тогда длительное нажатие. Значит эта затея для другого камня.
А по поводу сервера, что длительно, что двойное это все может делать сервер. Например в драйвере iobroker это делается установкой галочки и работает как двойное, так и удержание.

vtec
Сообщения: 458
Зарегистрирован: 19 сен 2011, 09:28

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение vtec » 12 фев 2016, 12:32

Andrey_B писал(а):http://ab-log.ru/files/File/ip_manager3 ... a5-hex.zip

Теперь управлять диммируемым каналом можно одной кнопкой без сервера.
Пример Act: 10:~
Напомню, что режим работы входа должен быть P&R
Я так понимаю, что диммирование происходит от 0, то для некоторых светодиодных ламп это будет проблемой, т.к. есть светодиодные лампы которые начинают диммироваться например от 50.

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

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 12 фев 2016, 13:12

Если мы говорим о MegaD-7I7O-SD, то в нем на каждый диммируемый канал есть подстроечный потенциометр, позволяющий отрегулировать электронику под нужное значением ШИМ, при котором начинает светиться лампа.
А если у вас какие-то собственные реализации, то, как говорится, все в ваших руках, и сервер в помощь.

alexsis_76
Сообщения: 1071
Зарегистрирован: 26 авг 2011, 05:09
Откуда: Забайкальский край п Оловянная

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение alexsis_76 » 12 фев 2016, 14:59

Пример использования: по двойному нажатию выключить свет и включить подсветку
а можно сделать так
нажимаем кнопку
у нас есть окно пределов нажатия допустим 1 сек если в течении этого окна кнопка будет опущена включится свет, если кнопка будет отпущена за пределами окна, произойдет включение, как подсветки как правило за 1 сек можно без проблем осуществить нажатие-отпускание, задежка будет минимальной
или со светодиодами
допустим имеется трехцветный светодиод , мы должны регулировать одной кнопкой яркость трех цветов по раздельности
создаем многоступенчатый обработчик нажатия , 1 окно от 0 до 0,5 сек, второе от 1 до 3 с, третье от 3 до 5 с и если клавиша нажата более 5 сек производим увеличение или уменьшение счетчика шим
1 окну соответствует например красный
2 зеленый
3 синий
регулируем синий,нажимаем и удерживаем клавишу в диапазоне от 3 до 5 сек, затем отпускаем(в диапазоне от 3 до 5 с) ,ждем 0,5-1 сек нажимаем и удерживаем более 5 с , начинается регулировка синего, после отпускания клавиши все в исходное, остальные аналогично

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

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение kod.begemot » 12 фев 2016, 15:27

Вы правда думаете что домочадцы это всё запомнят? или памятку печетать возле каждого выключателя и вешать секундомер?
Тут двойное нажатие и длинное уже вызывает возмущение...

alexsis_76
Сообщения: 1071
Зарегистрирован: 26 авг 2011, 05:09
Откуда: Забайкальский край п Оловянная

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение alexsis_76 » 12 фев 2016, 15:39

ну тогда надо все увешать кнопками :)
если имеется много свободных ног, то проблем с кнопками не возникает, по 1 на ногу, у меня например есть девайс к которому более 3 кнопок подключить нельзя(выводов нет), так вот сколько я ни старался(может плохо старался )так и не смог сделать вменяемое меню на 3 кнопках, а если повесить по 3 состояния на кнопку, что то начинает получаться,кстати пауза между нажатиями 1 сек вполне комфортная

Ответить