Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
https://ab-log.ru/files/File/megad-2561 ... a7-hex.zip
- Добавлена поддержка датчика освещенности OPT3001
OPT3001 - это высокоточный датчик, измеряющий интенсивность света в видимом человеку спектре. Заявлены хорошие характеристики.
Отличаются ли его показания от показаний MAX44009, покажет тестирование.
С точки зрения работы в паре с MegaD-2561 датчик OPT3001 лучше тем, что немного быстрее отдает результат, но хуже тем, что требует инициализации, а значит обязательного выбора "Dev: OPT3001" в настройках порта. И, кроме того, он дороже.
- Добавлена поддержка датчика освещенности OPT3001
OPT3001 - это высокоточный датчик, измеряющий интенсивность света в видимом человеку спектре. Заявлены хорошие характеристики.
Отличаются ли его показания от показаний MAX44009, покажет тестирование.
С точки зрения работы в паре с MegaD-2561 датчик OPT3001 лучше тем, что немного быстрее отдает результат, но хуже тем, что требует инициализации, а значит обязательного выбора "Dev: OPT3001" в настройках порта. И, кроме того, он дороже.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Краткое сравнительное тестирование датчиков освещенности OPT3001 и MAX44009.
Красный график - OPT3001, зеленый - MAX44009.
На большом временном отрезке в целом форма графиков идентична. Но люксов у сенсора OPT3001 получается больше.
За неимением эталонного прибора трудно сказать, какие значения более правильные.
Но вот в условиях низкой освещенности (0-0.2 люкса) хорошо видно, что график OPT3001 плавнее, совсем нет ступенек. Похоже, этот датчик чувствительнее и с более высокой разрешающей способностью. Где-то в узких задачах, где требуется высокая чувствительность при сверхнизком освещении, OPT3001 будет более полезен. В остальном же и в разрезе практического применения в системах домашней автоматизации оба датчика будут работать хорошо.
Красный график - OPT3001, зеленый - MAX44009.
На большом временном отрезке в целом форма графиков идентична. Но люксов у сенсора OPT3001 получается больше.
За неимением эталонного прибора трудно сказать, какие значения более правильные.
Но вот в условиях низкой освещенности (0-0.2 люкса) хорошо видно, что график OPT3001 плавнее, совсем нет ступенек. Похоже, этот датчик чувствительнее и с более высокой разрешающей способностью. Где-то в узких задачах, где требуется высокая чувствительность при сверхнизком освещении, OPT3001 будет более полезен. В остальном же и в разрезе практического применения в системах домашней автоматизации оба датчика будут работать хорошо.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Драйверов на 7 сегментные дисплее с I2C я не нашел. Все делают на MAX7219/MAX7221, а это SPI/Microwire или TM1637, а это "two-wire serial interface (CLK, DIO)".
Т.е. без поддержки со стороны контроллера не обойтись.
Андрей реально добавить протокол для TM1637 в прошивку?
Даташит на TM1637
Т.е. без поддержки со стороны контроллера не обойтись.
Андрей реально добавить протокол для TM1637 в прошивку?
Даташит на TM1637
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
"Two-wire serial interface" - это тот же I2C, прозванный так из-за некогда существующих лицензионных сложностей.
Вопрос в другом. Если вы собираетесь выводить просто цифры, контроллер, наверное, сможет чем-то помочь. А если произвольные символы, то будет проще взять библиотеку I2C-PHP и управлять отдельными сегментами дисплея через I2C-API. Получится немногим медленнее. В данном случае передается мало информации. Я бы сказал, что это тот случай, когда использование I2C-API оправдано.
Вопрос в другом. Если вы собираетесь выводить просто цифры, контроллер, наверное, сможет чем-то помочь. А если произвольные символы, то будет проще взять библиотеку I2C-PHP и управлять отдельными сегментами дисплея через I2C-API. Получится немногим медленнее. В данном случае передается мало информации. Я бы сказал, что это тот случай, когда использование I2C-API оправдано.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
тут вопрос в другом, эти индикаторы позволяют реализовать только динамическую индикацию, если использовать один контроллер то он должен очень шустро шевелить ногами что бы избежать мигания символов. Должно поддерживаться местное управление индикатором, не о каком управлении скриптом не может быть и речи.В данном случае передается мало информации
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Рассвет.
OPT3001 - красный, MAX44009 - зеленый.
OPT3001 - красный, MAX44009 - зеленый.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Возможно добавить в get запрос параметр addr, чтобы на один порт несколько модулей подключить?Andrey_B писал(а): ↑11 апр 2019, 19:55// Компенсированная и скорректированная температура термопары
http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=mcp9600
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
https://ab-log.ru/files/File/megad-2561 ... a8-hex.zip
pppkadaf, попробуйте
http://192.168.0.14/sec/?pt=31&scl=30&i ... 00&addr=ce
"addr" - 8-битный адрес в HEX! 7-бит адреса [7:1] и бит записи "0" [0].
Именно в таком формате устройства исторически отображаются по команде "scan". Чтобы не возникло путаницы.
Адресация пока работает только для MCP9600.
pppkadaf, попробуйте
http://192.168.0.14/sec/?pt=31&scl=30&i ... 00&addr=ce
"addr" - 8-битный адрес в HEX! 7-бит адреса [7:1] и бит записи "0" [0].
Именно в таком формате устройства исторически отображаются по команде "scan". Чтобы не возникло путаницы.
Адресация пока работает только для MCP9600.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Все же 8-битная адресация - это неправильно. Бит направления не должен по замыслу создателей I2C фигурировать как часть адреса.
Думаю, это нужно исправить.
Думаю, это нужно исправить.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
https://ab-log.ru/files/File/megad-2561 ... a9-hex.zip
Теперь I2C-адресация соответствует общим представлениям и спецификации.
Адрес 7-битный [7:1] или иначе A6-A0 без бита направления (R/W).
http://192.168.0.14/sec/?pt=31&scl=30&i ... 00&addr=67
0x67 => 1100 111
Теперь I2C-адресация соответствует общим представлениям и спецификации.
Адрес 7-битный [7:1] или иначе A6-A0 без бита направления (R/W).
http://192.168.0.14/sec/?pt=31&scl=30&i ... 00&addr=67
0x67 => 1100 111
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Отлично. Спасибо.
На выходных соберу вместе 5 модулей и попробую. У этих модулей не удобно адрес задавать, нужно внешний делитель напряжения делать, могли бы на плате развести сразу.
На выходных соберу вместе 5 модулей и попробую. У этих модулей не удобно адрес задавать, нужно внешний делитель напряжения делать, могли бы на плате развести сразу.
-
- Сообщения: 528
- Зарегистрирован: 09 авг 2016, 15:09
- Откуда: Сочи
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Andrey_B, посмотрите пожалуйста видео, такое мерцание прошивкой возможно победить?
Снял на айфон в ЗАМЕДЛЕННОМ режиме, это вроде 120 кадров в сек.
https://www.dropbox.com/s/u8j0oi0r5uho5 ... 1.mp4?dl=0
Лампа ИКЕЯ LEDARE LED GU10 600lm, обзор делали на lamptest.ru
Снял на айфон в ЗАМЕДЛЕННОМ режиме, это вроде 120 кадров в сек.
https://www.dropbox.com/s/u8j0oi0r5uho5 ... 1.mp4?dl=0
Лампа ИКЕЯ LEDARE LED GU10 600lm, обзор делали на lamptest.ru
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Прошивка контроллера сама ничего не регулирует. Она только формирует сигнал ШИМ с определенной частотой.
Если речь идет о модуле MegaD-8I7O-SD, то принимает управляющий ШИМ-сигнал и регулирует нагрузку микросхема К1182ПМ1Р. Как-то повлиять на этот процесс прошивка не может.
С помощью прошивки основного микроконтроллера можно только менять частоту ШИМ.
Если речь идет о модуле MegaD-8I7O-SD, то принимает управляющий ШИМ-сигнал и регулирует нагрузку микросхема К1182ПМ1Р. Как-то повлиять на этот процесс прошивка не может.
С помощью прошивки основного микроконтроллера можно только менять частоту ШИМ.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Андрей, а как правильно настроить Мегу, чтобы управлять освещением только через сервер, также как RGB подсветкой энкодера?
И еще заметил такую вещь, если отправить на Мегу команду типа ...?pt=8&scl=9&i2c_dev=encoder&rgb=0000FF (включить синий на максимум), получаю от Меги ответ 0000F , т.е. куда-то пропадает последняя F, да и горит синий не очень ярко...
Прошивка MegaD-2561 by ab-log.ru (fw: 4.35b9)
С уважением, Игорь
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Поправил.
https://ab-log.ru/files/File/megad-2561 ... a1-hex.zip
Что касается управления через сервер. Изначально я хотел предусмотреть такую возможность. Но выяснилось, что работает это не очень. Энкодер слишком быстро генерирует прерывания. Связка контроллер-сервер-ПО не успевает.
Контроллер отправляет сообщение о событии, сервер запрашивает состояние счетчика, контроллер отправляет состояние счетчика, сервер отправляет команду выходу, сервер отправляет команду на изменение подсветки. Вот это все не успевает за вращением ручки. Порт регулируется не плавно. Я не стал анонсировать этот режим и убрал из прошивки функцию запроса состояния счетчика. Ее можно вернуть, но вам вряд ли понравится.
https://ab-log.ru/files/File/megad-2561 ... a1-hex.zip
Что касается управления через сервер. Изначально я хотел предусмотреть такую возможность. Но выяснилось, что работает это не очень. Энкодер слишком быстро генерирует прерывания. Связка контроллер-сервер-ПО не успевает.
Контроллер отправляет сообщение о событии, сервер запрашивает состояние счетчика, контроллер отправляет состояние счетчика, сервер отправляет команду выходу, сервер отправляет команду на изменение подсветки. Вот это все не успевает за вращением ручки. Порт регулируется не плавно. Я не стал анонсировать этот режим и убрал из прошивки функцию запроса состояния счетчика. Ее можно вернуть, но вам вряд ли понравится.
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Спасибо.
Попробую протестировать работу через сервер (у меня большенство диммируемого света на PCA9685), указав какой-нибудь PWM порт в качестве балласта..
Попробую протестировать работу через сервер (у меня большенство диммируемого света на PCA9685), указав какой-нибудь PWM порт в качестве балласта..
С уважением, Игорь
Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)
Как оказалось, функцию считывания значения счетчика я из прошивки не убирал.
Алгоритм примерно такой:
Но здесь нет обработки "нажатия" на ручку энкодера.
Нажатие можно кодировать звездочкой, предшествующей значению счетчика, но я бы на вашем месте сперва оценил работоспособность такого режима.
Дело в том, что весьма велика вероятность "затыка". Почти 100%. Энкодер работает по такому принципу. Он дергает порт прерывания (в примерах P35) и не отпускает его, пока контроллер не считает регистр ESTATUS. Когда энкодером управляет сервер, при резком вращении ручки достаточно потеряться какому-нибудь пакету (а их генерируется огромное количество, и возникает что-то вроде коллизии на уровне сетевого стэка), чтобы P35 остался в ON. Это похоже на зависание энкодера, но зависанием не является. Пока не знаю, что с этим можно сделать, как эффективно компенсировать. Понятно, что когда мастером выступает сам контроллер, то ничего такого быть не может, и все работает стабильно.
Алгоритм примерно такой:
Код: Выделить всё
if ( $_GET['pt'] == 35 )
{
$cnt = file_get_contents("http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=encoder");
file_get_contents("http://192.168.0.14/sec/?cmd=13:$cnt");
}
Нажатие можно кодировать звездочкой, предшествующей значению счетчика, но я бы на вашем месте сперва оценил работоспособность такого режима.
Дело в том, что весьма велика вероятность "затыка". Почти 100%. Энкодер работает по такому принципу. Он дергает порт прерывания (в примерах P35) и не отпускает его, пока контроллер не считает регистр ESTATUS. Когда энкодером управляет сервер, при резком вращении ручки достаточно потеряться какому-нибудь пакету (а их генерируется огромное количество, и возникает что-то вроде коллизии на уровне сетевого стэка), чтобы P35 остался в ON. Это похоже на зависание энкодера, но зависанием не является. Пока не знаю, что с этим можно сделать, как эффективно компенсировать. Понятно, что когда мастером выступает сам контроллер, то ничего такого быть не может, и все работает стабильно.