Светодиодные фонари и световые приборы. Всё о светотехнике.
Вернуться   Форум FONAREVKA.RU Мастерские светотехников Архив мастерских Мастерская: Lux-RC
Расширенный поиск
Забыли пароль? Регистрация

  • О нашем проекте
  • Светотехника и световые приборы
  • Правила форума
Проект FONAREVKA.RU специализируется на предоставлении всей необходимой информации по светотехнике:

— светодиодные фонари;
— различные источники питания;
— разнообразные зарядные устройства;
— освещение помещений и наружное освещение;
— световые приборы для личного, пассажирского и грузового транспорта;
— специальные световые приборы для медицины, для растений, для аквариумов, для террариумов, а также аварийно-сигнальные световые приборы;
— альтернативные источники света;
— лазеры и лазерная техника.

Если у вас есть вопросы по выбору фонарей, аккумуляторов и зарядных устройств ознакомьтесь с FAQ от наших экспертов:

F.A.Q. по выбору фонарей различных типов;
F.A.Q. по выбору аккумуляторов;
F.A.Q. по выбору зарядных устройств.
Ответ  Создать новую тему
Просмотров в теме 85843   Ответов в теме 437   Подписчиков на тему 18   Добавили в закладки 1
Опции темы Поиск в этой теме
Старый 26.01.2015, 17:34 Автор темы   421
lux-rc.com
закрыто
 
Регистрация: 25.05.2010
Последняя активность: 16.09.2018 23:01
Сообщений: 8906
Сказал(а) спасибо: 576
Поблагодарили: 3969 раз(а) в 1526 сообщениях

Отправить сообщение для lux-rc.com с помощью Skype™
По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Поднимаю старую тему, пора

За год существования NEXUS в сети интерфейсов стало просто дофига. Многие действительно внушают своей монументальностью. Это реально круто. Тут вот такой вопрос возник, я хочу обатиться к тем, кто судя по всему разобрался как это работает и может помочь в решении вот такой задачки

На днях комрад Enn подкинул идею "подключить" цветной индиктор в кнопке фонаря к движку NEXUS. Я пораскинул мозгами и нашел способ как с минимальными переделками в "железе" это реализовать. Но остался самый главый вопрос - что нужно добавить в NEXUS чтобы управлять из его цветным индикатором было удобно.

Допустим есть уже готовый UI на нексусе. И нужно дополнить его логикой работы индикатора на самом простом уровне - в зависимости от уровня аккумулятора включать его разными цветами.

Тут нужно думать. Особенно если вспонить, что кроме просто свечения, есть еще "хотелка" чтобы он все время тлел. А еще он в FL33 мигает красным когда акк сел в ноль. А еще в том же FL33 он не просто мигает, а мерцает с изменением яркости. Включается и отключается плавно.

Надо подумать что перенести в индикатор кнопки чтобы она сама умела это делать, а что оставить себе в NEXUS для управления.
lux-rc.com вне форума   Ответить с цитированием Вверх
Старый 26.01.2015, 18:26 Автор темы   422
lux-rc.com
закрыто
 
Регистрация: 25.05.2010
Последняя активность: 16.09.2018 23:01
Сообщений: 8906
Сказал(а) спасибо: 576
Поблагодарили: 3969 раз(а) в 1526 сообщениях

Отправить сообщение для lux-rc.com с помощью Skype™
По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Озвучу пока свои мысли по этому поводу.

С одной строны можно конечно вынести на уровень диагаммы простую функцию загрузки в RGB 3х8 битного слова. 0-0-0 - черный, т.е. индикатор не горит. FF-FF-FF - белый. Ну и так далее. Все остальное делать в nexus последовательно загружая в регистр разные значения. Тяжко...

Не думаю что это будет правильно. Мне кажется нужно исходить из "стандартной" логики работы индикатора и максимум функций реализовано на уровне "железа". Ну например. Ограничится простым набором базовых цветов и парой уровней яркости (полная яркость - тление). Все это можно уместить в один "байт". Далее по переходу если нужно "поджечь" индикатор мы просто загружаем в него уровень яркости и выбранный цвет. Если указана полная якость, то индикатор плавно загорается, горит сам несколько секунд и плавно гаснет. Если указана минимальная яркость - индикатор просто горит до следующего нажатия на кнопку или до следующей команды.

Пока не знаю как сделать так, чтобы логику работы индикатора в диаграмме отвязать от логики режимов. Думаю...
lux-rc.com вне форума   Ответить с цитированием Вверх
Старый 26.01.2015, 18:34   423
rkromanrk
Фонарёвщик со стажем
 
Аватар для rkromanrk
 
Регистрация: 10.10.2010
Последняя активность: 26.03.2024 15:04
Адрес: Волгоград
Сообщений: 1510
Сказал(а) спасибо: 545
Поблагодарили: 266 раз(а) в 152 сообщениях

По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Цитата:
Посмотреть сообщение Сообщение от lux-rc.com :
Надо подумать что перенести в индикатор кнопки чтобы она сама умела это делать, а что оставить себе в NEXUS для управления.
Минимум первого и максимум второго, чтобы возникающие баги можно было устранять именно в таком порядке по возрастанию:

коррекция кода NEXUS;
замена модуля;
замена индикатора кнопки = замена головы целиком.
__________________
Лучом, карающего тленность фонаря,
Как нитью раны на груди зашила...
Из швов, рубцами выложив слова,
Я светом мрак навек в себе убила!..
rkromanrk вне форума   Ответить с цитированием Вверх
Поблагодарили: 1 раз
lux-rc.com (27.01.2015)
Старый 27.01.2015, 23:58 Автор темы   424
lux-rc.com
закрыто
 
Регистрация: 25.05.2010
Последняя активность: 16.09.2018 23:01
Сообщений: 8906
Сказал(а) спасибо: 576
Поблагодарили: 3969 раз(а) в 1526 сообщениях

Отправить сообщение для lux-rc.com с помощью Skype™
По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Программирование индикатора в первом приближении:

<шаблон 371го модуля с RGB индикатором в кнопке>

Используйте этот шаблон для опытов. 371 совместим с 361 снизу, т.е. если у Вас имеется проект для 361, я его могу переключить на 371 (обратно уже не получится). Одним словом расширять язык можно для любого проекта.

Добавлена всего одна операция - RGB
У операции всего два параметра - цвет и яркость/сигнал
Я предлагаю не усложнять простые вещи и ограничится семью базовыми цветами + черный (отлючено). Для кнопки больше по-моему и не нужно (сейчас FL33 вообще умеет только 3 цвета рисовать)

Кроме цвета можно выбрать 2 значения яркости (100% и 5%) или сигнальные режимы (мерцание или маяк).

По-моему все интуитивно понятно. Симулятор для данной версии пока от 361, т.е. не показывает индикатор кнопку. Но оследить управление можно в симе по тому, как он перескакивает по нодам. Сим для 371 сделаю быстро как только договоримся, что такой подход управлением индикатором всех устраивает.

Ну и "тяжелый" пример - программа FL33 v3.0 c пинкодом, программированием "свелячка" и RGB индикатором.

Пример не дописан, но показывает, как можно "прикрутить" логику работы индикатора к существующему алгоритму с минимальным вмешательством в диаграмму.

Логика индикатора - справа отдельный блочок. Он не связан "нитками" с основной диаграммой, и это главный плюс подхода. Пришлось задействовать свободный флаг, без него ломал голову - не придумал. Идея работает так. "Индикатор" активируется из любого состояния в случае когда флаг 4 установлен. Далее в зависимости от напряжения последовательными исключениями выбираем цвет и гасим 4й флаг. Я не поленился нарисовал логику для одного-двух ICR аккумуляторов. После выбора цвета через ролбек возвращаемся в ноду, из которой сработал вызов на индикатор. По идее это никак не должно отразиться на работе основной программы (через ролбек востанавливается стостояния которое было перед переходом в отдельную диаграмму, кроме таймера - он сбрасывается в ноль от любого перехода). В основной программе нужно только добавить установку флага 4 в тех местах, когда нужно включить (или обновить) индикатор. Обычно таких мест немного.

Далее уже легко придумать, как погасить индикатор по таймеру, или перевести его в режим малой яркости.

Что мне пока не нравится. Допустим если нужно перевести индикатор из 100% в 5% - нужно явно указывать цвет. Т.е. опять рисовать всю "бороду" выбора цвета. Лень и кажется напрасной тратой памяти.

Какие будут мнения?

[Исправлено: lux-rc.com, 28.01.2015 в 01:30]
lux-rc.com вне форума   Ответить с цитированием Вверх
Старый 28.01.2015, 01:43   425
molvinec
Почти не ждун
 
Аватар для molvinec
 
Регистрация: 15.02.2012
Последняя активность: 06.11.2021 14:48
Адрес: СПб
Сообщений: 746
Сказал(а) спасибо: 217
Поблагодарили: 274 раз(а) в 136 сообщениях

По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Цитата:
Посмотреть сообщение Сообщение от lux-rc.com :
(сейчас FL33 вообще умеет только 3 цвета рисовать)
Мне помнится зеленый-желтый-оранжевый красный. Хотелось бы желтый добавить в конфиг.
Далее, включение индикатора будет происходить моментально или плавным увеличением (снижением) яркости, как сейчас? Или это режимы 100% и beacon соответственно?
До появления симулятора вопросов больше нет, на первый взгляд юзабельно.
__________________
Armytek Predator 1.0, 1.2 XP-G R5 5/24; Fenix LD20 XR-E Q5 SMO; ; Lux-RC FL-33 #FL3300239 & #FL3300441; Thrunite 1A XM-L T4 OP, Catapult V3 XM-L T5 SMO Diffuser; Zebra H51w
molvinec вне форума   Ответить с цитированием Вверх
Поблагодарили: 1 раз
lux-rc.com (28.01.2015)
Старый 28.01.2015, 01:55 Автор темы   426
lux-rc.com
закрыто
 
Регистрация: 25.05.2010
Последняя активность: 16.09.2018 23:01
Сообщений: 8906
Сказал(а) спасибо: 576
Поблагодарили: 3969 раз(а) в 1526 сообщениях

Отправить сообщение для lux-rc.com с помощью Skype™
По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Цитата:
Посмотреть сообщение Сообщение от molvinec :
Мне помнится зеленый-желтый-оранжевый красный. Хотелось бы желтый добавить в конфиг.
Далее, включение индикатора будет происходить моментально или плавным увеличением (снижением) яркости, как сейчас? Или это режимы 100% и beacon соответственно?
До появления симулятора вопросов больше нет, на первый взгляд юзабельно.
не хочу плодить сущности. практика показывается, что народ путается в желтом-оранжевом. поэтому хочу вместо этих двух ввести однозначно понятный amber (янтарный). он и выглядит красиво

в базовой прошивке вижу четыре уровня аккумулятора
- зеленый - много
- желтый - прилично
- красный - мало
- мигающий красный - все

а еще можно сделать белый яркий после выключения фонаря в течение нескольких секунд - чтобы полочку подсвечивать, чтобы фонарем мимо не промахнуться

цветов благодаря синему каналу стало много, есть из чего выбрать для собственного кастома

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

[Исправлено: lux-rc.com, 28.01.2015 в 02:00]
lux-rc.com вне форума   Ответить с цитированием Вверх
Старый 28.01.2015, 06:28   427
4ward
Новичок
 
Регистрация: 10.12.2012
Последняя активность: 10.10.2016 04:47
Адрес: Забайкальский край
Сообщений: 48
Сказал(а) спасибо: 7
Поблагодарили: 12 раз(а) в 11 сообщениях

По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

А что если включение-отключение индикатора делать не отдельными операциями в нексусе, а одной. Т.е. зашить включение и полное плавное отключение индикатора в одну операцию, и включение и плавное затухание до тлеющего состояния во вторую операцию. Далее определяем нужный цвет и запускаем уже кому с тлением, кому с полным выключением.
__________________
Жизнь в лучшем свете!
4ward вне форума   Ответить с цитированием Вверх
Старый 28.01.2015, 06:39   428
4ward
Новичок
 
Регистрация: 10.12.2012
Последняя активность: 10.10.2016 04:47
Адрес: Забайкальский край
Сообщений: 48
Сказал(а) спасибо: 7
Поблагодарили: 12 раз(а) в 11 сообщениях

По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Еще не хватает проверки на текущее состояние индикатора. Т.е. каким цветом он горит в данный момент. Это для случая постоянно тлеющего индикатора.
4ward вне форума   Ответить с цитированием Вверх
Старый 28.01.2015, 07:27 Автор темы   429
lux-rc.com
закрыто
 
Регистрация: 25.05.2010
Последняя активность: 16.09.2018 23:01
Сообщений: 8906
Сказал(а) спасибо: 576
Поблагодарили: 3969 раз(а) в 1526 сообщениях

Отправить сообщение для lux-rc.com с помощью Skype™
По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Цитата:
Посмотреть сообщение Сообщение от 4ward :
Еще не хватает проверки на текущее состояние индикатора. Т.е. каким цветом он горит в данный момент. Это для случая постоянно тлеющего индикатора.
можно подробнее? весь юзкейс.
пока не понимаю как это может сработать
lux-rc.com вне форума   Ответить с цитированием Вверх
Старый 28.01.2015, 07:29 Автор темы   430
lux-rc.com
закрыто
 
Регистрация: 25.05.2010
Последняя активность: 16.09.2018 23:01
Сообщений: 8906
Сказал(а) спасибо: 576
Поблагодарили: 3969 раз(а) в 1526 сообщениях

Отправить сообщение для lux-rc.com с помощью Skype™
По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Цитата:
Посмотреть сообщение Сообщение от 4ward :
А что если включение-отключение индикатора делать не отдельными операциями в нексусе, а одной. Т.е. зашить включение и полное плавное отключение индикатора в одну операцию, и включение и плавное затухание до тлеющего состояния во вторую операцию. Далее определяем нужный цвет и запускаем уже кому с тлением, кому с полным выключением.
а если кому приспичит чтобы кнопка всегда тлела?

а если кому-то стандартного времени горения будет мало или много?
lux-rc.com вне форума   Ответить с цитированием Вверх
Старый 28.01.2015, 07:40 Автор темы   431
lux-rc.com
закрыто
 
Регистрация: 25.05.2010
Последняя активность: 16.09.2018 23:01
Сообщений: 8906
Сказал(а) спасибо: 576
Поблагодарили: 3969 раз(а) в 1526 сообщениях

Отправить сообщение для lux-rc.com с помощью Skype™
По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Ок, допустим так, пусть будет "две команды" (на самом деле все-равно одна, две в одном)

Можно независимо менять цвет и менять яркость/паттерн. Можно и то и другое в одной команде. А можно - отдельно одно от другого.

Поэтому обсуждавшаяся логика с тлением выглядит так. Из любого состояния по триггеру выполняются исключения - выбираем цвет и сразу включаем на 100%. Далее по таймеру спустя 5 сек и любого снижаем только яркость до 5%. А полностью гасим явным образом при выключении.

По-моему так все красиво. Меняем метаязык? Если кто-то успел написать что-то свое на 371 - файло может сломаться (я руками смогу поправить если что)

-------------- вечером в газете, утром в куплете -----------------------

Поправил описание языка и шаблон 371 с простеньким примером

В итоге получаем одно действие "RGB"

У действия по-прежнему два параметра, но оба - опциональные, т.е. может быть указан любой или оба сразу.

Первый параметр - цвет:
- черный
- красный
- зеленый
- янтарный
- синий
- маджента
- циан
- белый

Второй параметр - яркость/паттерн:
- выключить
- 100% яркости
- 5% яркости
- мигать

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

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

Если кто-то имеет что-то против такого решения - поднимаем руку. Пару дней на опыты хватит?

[Исправлено: lux-rc.com, 28.01.2015 в 07:57]
lux-rc.com вне форума   Ответить с цитированием Вверх
Старый 28.01.2015, 08:56   432
4ward
Новичок
 
Регистрация: 10.12.2012
Последняя активность: 10.10.2016 04:47
Адрес: Забайкальский край
Сообщений: 48
Сказал(а) спасибо: 7
Поблагодарили: 12 раз(а) в 11 сообщениях

По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

В каких случаях нужно будет устанавливать флаг и, соответственно, запускать индикатор:
- при активации режима
- при длительной работе какого-то из режимов
В первом случае все просто: включаем режим и вместе с ним флаг.
Во втором случае нужно чтобы тлеющий индикатор просыпался (загорал на 100%) только тогда, когда ему нужно цвет поменять. Т.е. каждое энное количество секунд идет проверка состояния и индикатор либо вспыхивает, либо продолжает тлеть таким же цветом. Поэтому и нужна проверка текущего состояния-цвета индикатора.
4ward вне форума   Ответить с цитированием Вверх
Поблагодарили: 1 раз
lux-rc.com (28.01.2015)
Старый 28.01.2015, 16:46 Автор темы   433
lux-rc.com
закрыто
 
Регистрация: 25.05.2010
Последняя активность: 16.09.2018 23:01
Сообщений: 8906
Сказал(а) спасибо: 576
Поблагодарили: 3969 раз(а) в 1526 сообщениях

Отправить сообщение для lux-rc.com с помощью Skype™
По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Цитата:
Посмотреть сообщение Сообщение от 4ward :
В каких случаях нужно будет устанавливать флаг и, соответственно, запускать индикатор:
- при активации режима
- при длительной работе какого-то из режимов
В первом случае все просто: включаем режим и вместе с ним флаг.
Во втором случае нужно чтобы тлеющий индикатор просыпался (загорал на 100%) только тогда, когда ему нужно цвет поменять. Т.е. каждое энное количество секунд идет проверка состояния и индикатор либо вспыхивает, либо продолжает тлеть таким же цветом. Поэтому и нужна проверка текущего состояния-цвета индикатора.
мдя.. подкинули задачку

действительно, было бы правильно чтобы треющий индикатор просыпался в случае когда уровень заряда падает на ступеньку. А если он просто будет раз в 30 сек просыпаться независимо от изменения состояния акка?

тут вот какая дилема. очень не хочется "перегружать" железо. Оно сейчас заточено на одностороннюю передачу от модуля в кнопку. Обратное если и делать - то по очень большой нужде.

Я вот что думаю. А нельзя ли тоже самое устроить с помощью слотов памяти в nexus? На флагах это можно написать хоть сейчас (допустим если уровней индикации четыре - то хватит и двух флажков). Но на флагах получатся "танцы с бубном". Да и мало их, они нужнее в других местах.

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

Предлагается.

1) Добавить новое условие. Значение слота < или > некоторого выбранного значения

2) Добавить действие. Загрузить в слот произвольное значение из списка.

Тогда вместо флажка можно использовать слот и условное значение степени разряда. 0 - это условное начальное значение акка (новый режим). Загрузка нуля означает принудительное включение индикации (при нажатии на кнопку).

Далее по результатам сравнения в слот загружается текущее значение в зависимости от напряжения.

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

Не уверен что смог передать идею, но кажется это должно сработать, нужно нарисовать схемку и допилить сим.

Важное замечание! Все эти "докрутки" не влияют на прошивки, написаные ранее на 361alpha. Если нужно, чтобы в Вашем уже написанном UI появились новые функции - сигнальте, я поправлю в коде на 371alpha. Если вы хотите попробовать 371аlpha с нуля - используйте этот шаблон

[Исправлено: lux-rc.com, 28.01.2015 в 16:58]
lux-rc.com вне форума   Ответить с цитированием Вверх
Старый 29.01.2015, 04:13   434
4ward
Новичок
 
Регистрация: 10.12.2012
Последняя активность: 10.10.2016 04:47
Адрес: Забайкальский край
Сообщений: 48
Сказал(а) спасибо: 7
Поблагодарили: 12 раз(а) в 11 сообщениях

По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Цитата:
Посмотреть сообщение Сообщение от lux-rc.com :
1) Добавить новое условие. Значение слота < или > некоторого выбранного значения

2) Добавить действие. Загрузить в слот произвольное значение из списка.
Идея понятна. Если не ошибаюсь, то такую возможность работы со слотами уже обсуждали. Думаю поможет не только для программирования индикации, но и поможет уменьшить количество нодов и связей в схемах.
4ward вне форума   Ответить с цитированием Вверх
Старый 29.01.2015, 05:02   435
m72
Ветеран Фонарёвки
 
Аватар для m72
 
Регистрация: 11.02.2012
Последняя активность: 21.03.2024 23:02
Сообщений: 3731
Сказал(а) спасибо: 3527
Поблагодарили: 1970 раз(а) в 1049 сообщениях

По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Цитата:
Посмотреть сообщение Сообщение от 4ward :
Т.е. каким цветом он горит в данный момент.
Основной модуль может запомнить какой цвет он задавал в предыдущий раз. Это сильно проще.
Хотя если модуль совсем-совсем отключает собственное питание на время сна и просыпается по отдельному таймеру, то да, может пригодиться.
__________________
Не стреляйте в программиста, он паяет как умеет.

[Исправлено: m72, 29.01.2015 в 05:05]
m72 вне форума   Ответить с цитированием Вверх
Старый 30.01.2015, 03:26   436
m72
Ветеран Фонарёвки
 
Аватар для m72
 
Регистрация: 11.02.2012
Последняя активность: 21.03.2024 23:02
Сообщений: 3731
Сказал(а) спасибо: 3527
Поблагодарили: 1970 раз(а) в 1049 сообщениях

По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Правильно ли я понимаю, что...

Есть два модуля: кнопко и светило (держало и хлебало).

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

Когда индикатор просыпается по нажатию на кнопку, то всё просто и понятно. Нажатие подаёт питание, схема прогружается с нуля, включает подхват питания. Проснулись, замерили, поняли чем именно надо отчитаться, отчитались и баиньки. Без внешнего воздействия всё отключено и изнутри побудке не поддаётся.

А что делать если индикатор "тлеет" (1-5%)? Какой механизм _с малым потреблением_ заставит светильный модуль с Нексусом проснуться раз в минуту (к примеру), замерить батарейку, пробежаться по программе, и если уровень изменился то поменять цвет свечения? Часовой микросхемы и кварца к ней на фотках не видел.

Или в кнопочный модуль можно (и желательно) заложить следующие фишки:
1. Выключиться навечно (т.е. до внешнего воздействия: замена батарейки, нажатие на кнопку).
2. Выставить цвет свечения + яркость.
3. Заставить разбудить модуль с нексусом через Х секунд.
4. Пока кнопочный модуль светится ему можно доверить хранение какой-нибудь переменной, всё равно на кнопочном контроллере напряжение будет.

В общем не зная кто во время сна спит и как крепко (может вообще без питания, зато экономно) давать советы по реализации управления индикатором проблематично.

Кстати, еще вопрос про нексус. Можно ли сделать многозадачность в нескольких графах? Грубо говоря совершенно независимая нитка управления светом, нитка управления индикатором уровня и нитка считающая число нажатий на клавишу. К примеру после каждого 10-го нажатия будет моргать маячок. По идее реализация многозадачности довольно проста. Просто каждая нитка имеет собственную точку входа "подали питание", а дальше уже каждая сама по себе. Интерес еще бы представил механизм доступа к нескольким глобальным флагам и переходам по их изменению, но для двух ниток свет/показ заряда это не обязательно.

[Исправлено: m72, 30.01.2015 в 03:29]
m72 вне форума   Ответить с цитированием Вверх
Старый 31.01.2015, 16:59 Автор темы   437
lux-rc.com
закрыто
 
Регистрация: 25.05.2010
Последняя активность: 16.09.2018 23:01
Сообщений: 8906
Сказал(а) спасибо: 576
Поблагодарили: 3969 раз(а) в 1526 сообщениях

Отправить сообщение для lux-rc.com с помощью Skype™
По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Цитата:
Посмотреть сообщение Сообщение от m72 :
Основной модуль может запомнить какой цвет он задавал в предыдущий раз. Это сильно проще.
Хотя если модуль совсем-совсем отключает собственное питание на время сна и просыпается по отдельному таймеру, то да, может пригодиться.
цвет помнит сам индикатор в кнопке. из 371 может приходить 2 типа команд:

- либо установить цвет, это он отрабатываем мгновенно, независимо от текущей яркости и выбранного режима.

- либо установить яркость или включить режим мигания. эти операции индикатор отрабатывает с плавым переходом.

две команды могут прийти в одном "пакете", тогда будет практически одновременно сделано и то и другое.

----------------

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

Сейчас временем жизни индиатора управляет 334+ модуль. Индикатор просыпается по нажатию, для этого 334+ должен выставить флаг что он хочет чтобы индикатор проснулся. Если 334+ сбрасывает этот флаг, то индикатор в течение еще 10-15 секунд ждет и после этого рвет землю

Новый индикатор я пока не программировал, но хочу изменить логику жизни на более простую. Главная вводная - это тот факт, что в ждущем режиме когда RGB не горят - ток потребления индикатора очень небольшой. В новой версии он вообще равен току ждущего режима контроллера плюс утечки LDO, т.к. делителя напряжения уже нет - индикатор не следит за батареей. Поэтому утечка в индикаторе вредна только если речь идет о большом времени в неактивном режиме. Это грубо говоря ситуация, когда фонарь с аккумулятором валяется без дела больше суток. Поэтому предлагается уже не обращать на флаг из 371, а считать время с последней команды от него. Если 371 не посылает команд в течение допустим суток и если в течении суток никто не нажимает на кнопку, то мы делаем вывод что фонарь на хранении, им не пользуются и гасим полностью индикатор, отрывая его от земли.
lux-rc.com вне форума   Ответить с цитированием Вверх
Старый 01.02.2015, 04:10 Автор темы   438
lux-rc.com
закрыто
 
Регистрация: 25.05.2010
Последняя активность: 16.09.2018 23:01
Сообщений: 8906
Сказал(а) спасибо: 576
Поблагодарили: 3969 раз(а) в 1526 сообщениях

Отправить сообщение для lux-rc.com с помощью Skype™
По умолчанию Re: Nexus - Язык описания алгоритма работы любого фонаря

Цитата:
Посмотреть сообщение Сообщение от m72 :
Правильно ли я понимаю, что...
Есть два модуля: кнопко и светило (держало и хлебало).
Раньше кнопочный модуль сам измерял напряжение и показывал его, то сейчас информацию ему предполагается выдавать со светильного.
Когда индикатор просыпается по нажатию на кнопку, то всё просто и понятно. Нажатие подаёт питание, схема прогружается с нуля, включает подхват питания. Проснулись, замерили, поняли чем именно надо отчитаться, отчитались и баиньки. Без внешнего воздействия всё отключено и изнутри побудке не поддаётся.
все верно. небольшое подолнение - 334 (светило) может вмешиваться в работу кнопко - принудительно ее погасить напимер. или не давать запустить при нажатии. все остальное так как описано

Цитата:
Посмотреть сообщение Сообщение от m72 :
А что делать если индикатор "тлеет" (1-5%)? Какой механизм _с малым потреблением_ заставит светильный модуль с Нексусом проснуться раз в минуту (к примеру), замерить батарейку, пробежаться по программе, и если уровень изменился то поменять цвет свечения? Часовой микросхемы и кварца к ней на фотках не видел.
механизм описан в посте выше. светило не засыпает полностью никогда. жизнь в нем тлеет всегда, но очень экономичная. кнопко же умеет засыпать с концами и без толкача, т.е. без механического нажатия ее не поднять. идея в том, что кнопко будет жить в спящем довольно долго потребляя минимум, на уровне светила в спячке. и когда кнопко не активна в течение некотого длительного времени, ну грубо часа или может суток, и светило ей не отправляет команды, то она решает что больше она не нужна и спокойно засыпает. если же кнопка тлеет, то будет тлеть пока ее не отключит светило из NEXUS.

а таймер и в кнопке и в светиле имеется. да, без кваца, не такой точный, но он там есть.

Цитата:
Посмотреть сообщение Сообщение от m72 :
Или в кнопочный модуль можно (и желательно) заложить следующие фишки:
1. Выключиться навечно (т.е. до внешнего воздействия: замена батарейки, нажатие на кнопку).
2. Выставить цвет свечения + яркость.
3. Заставить разбудить модуль с нексусом через Х секунд.
4. Пока кнопочный модуль светится ему можно доверить хранение какой-нибудь переменной, всё равно на кнопочном контроллере напряжение будет.
1 - такая фича в кнопке будет, но она будет скрыта, т.е. пользователь NEXUS о ней знать не должен. внутенняя кухня.

2 - так оно уже и описано в NEXUS, см примеры выше по ссылка (пока без симулятора)

3 - нексус будить не надо, он всегда активен, даже в стендбае, когда фонарь не горит. мигающий локатор - это тоже NEXUS.

4 - это не нужно. кнопка дожна быть настолько "тупой", насколько это возможно.

Цитата:
Посмотреть сообщение Сообщение от m72 :
Кстати, еще вопрос про нексус. Можно ли сделать многозадачность в нескольких графах? Грубо говоря совершенно независимая нитка управления светом, нитка управления индикатором уровня и нитка считающая число нажатий на клавишу. К примеру после каждого 10-го нажатия будет моргать маячок. По идее реализация многозадачности довольно проста. Просто каждая нитка имеет собственную точку входа "подали питание", а дальше уже каждая сама по себе. Интерес еще бы представил механизм доступа к нескольким глобальным флагам и переходам по их изменению, но для двух ниток свет/показ заряда это не обязательно.
звучит монументально, но по опыту скажу что там где появляется многозадачность - там без проблем не обойтись. уровень понимания кода падает до нуля, все понимает оказывается в голове спеца, котоый эту голову сломал, пока вылавливал баги. Потому как просто независимыми нитками тут не отделаешься. Это действительно не самая сложная задача. Поскольку устройсво одно и "независимые" процессы все-таки зависимы (по нажатию одной и той же кнопки должны переключаться и режимы и подниматься индикатор, при чем его показания могут зависеть от логики режимов), то глядишь потебуются семафоры, мютексы, критические секции. А дальше - изоляция транзакций и ... это конец.

Язык NEXUS задумывался как инстумент вовсе не прогрммиста. В таком качестве ему грош цена. Программист могущий программировать многозадачные приложения и так справится с написанием кода для контроллера - ему и на C нормально пишется.

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

Концепция конечного автомата - штука простая. И если не сыпать умными терминами, то на пальцах объяснить - не проблема. Особенно если есть пример перед глазами.

Я уже накропал пример интерфейса с индикатором на базе алгоритма FL33 v3.0. Графически логика индикатора там выглядит как отдельный "куст", ну т.е. это маленькая самостоятельная диагамка. Интуитивно понятная. Т.е. ее работа заключается в постом правиле, что независимо от текущего состояния при наличии флага выполнить цепочку сравнений, раскрасить кнопку в соотв. цвет и венуться.

по сути это очень похоже на обаботку прерывний. где прерывание описано неким условием.
lux-rc.com вне форума   Ответить с цитированием Вверх
Ответ  Создать новую тему
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск





Copyright ©2007 - 2024, FONAREVKA.RU

Powered by vBulletin®
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot

Правила форума | Отказ от ответственности
Время генерации страницы 0.18528 секунды с 16 запросами