Паттерны стробов (для визуализации величины из интервала)
От: VladCore  
Дата: 02.08.16 16:52
Оценка:
есть вещественная велечина V из диапазона (From, To).
Нужна типа функция — от V, которая возвращает паттерн стробов.

горит n1 milli-sec | потом моргает с частотой 30гц n2 milli-sec | потом не горит n2 milli-sec | .... | потом сначала

Паттернов нужно МНОГО

желательно с предпросмотром в браузере.

Речь про диодики.

В отличии от новогодних гирлянд надобы обойтись одним диодиком на одну величину

Гугл выдаёт только готовые девайсы или высшую математику.
Отредактировано 02.08.2016 17:03 VladCore . Предыдущая версия . Еще …
Отредактировано 02.08.2016 17:02 VladCore . Предыдущая версия .
Отредактировано 02.08.2016 17:01 VladCore . Предыдущая версия .
Re: Паттерны стробов (для визуализации величины из интервала)
От: kov_serg Россия  
Дата: 07.08.16 18:46
Оценка:
Здравствуйте, VladCore, Вы писали:

VC>есть вещественная велечина V из диапазона (From, To).

VC>Нужна типа функция — от V, которая возвращает паттерн стробов.

VC>горит n1 milli-sec | потом моргает с частотой 30гц n2 milli-sec | потом не горит n2 milli-sec | .... | потом сначала


VC>Паттернов нужно МНОГО


Нефиг делать
enum { N=много };
StrobePattern patterns[N];
double From, To;

StrobePattern get_pattern(double V) {
    int i=N*(V-From)/(To-From);
    if (i<0) i=0;
    if (i>=N) i=N-1;
    return patterns[i];
}

Re: Паттерны стробов (для визуализации величины из интервала)
От: Sinclair Россия https://github.com/evilguest/
Дата: 25.08.16 07:34
Оценка:
Здравствуйте, VladCore, Вы писали:
VC>Паттернов нужно МНОГО
VC>желательно с предпросмотром в браузере.
Вам надо отображать значения величины при помощи 1го светодиода?
Попробуйте строить паттерны примерно по такому принципу:
|........|........|........
|......|......|......|......
|....|....|....|....|....
|..|..|..|..|..|..|..|..|..
||.......||.......||.......
||.....||.....||.....||.....
||...||...||...||...||...
||.||.||.||.||.||.||.||.||.
|||......|||......|||......
|||....|||....|||....|||....
|||..|||..|||..|||..|||..
|||.|||.|||.|||.|||.|||.|||.
||||||||||||||||||||||||||||

Под | подразумевается "моргание" типа 20мс включено, 20мс — выключено.
Т.е. идея "чем чаще моргает — тем выше" и "чем больше блинков в серии — тем выше".
Реализуется путём выбора максимального количества слотов в паттерне — например, 25. Максимум в 25 слотов дадут нам 24 паттерна для одного блинка, 23 для двух блинков, 22 для трёх блинков, 21 для четырёх блинков. Длиннее 4х я бы делать поостерёгся — не уверен, что легко будет считываться. Но вы проверьте — может уже и 4 будет перебором. Итого у нас есть как минимум 24+23+22 = 69 паттернов, плюс ещё один "panic pattern", когда мы мигаем вообще без пауз. Итого — 70 паттернов с периодом не более 1 секунды. Можно, конечно, задрать длину максимального интервала, но тогда потеряется различимость — я уверен, что на глаз период мигания в 1.2 и 1.3 секунды не отличишь.
Может оказаться, что слот в 40мс слишком короткий, и соседние мигания сливаются. Тогда можно попробовать покрутить и скважность (типа 10мс горим, 30 не горим), и длительность (30+30 вместо 20+20).
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Паттерны стробов (для визуализации величины из интервала)
От: VladCore  
Дата: 25.08.16 10:36
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, VladCore, Вы писали:

VC>>Паттернов нужно МНОГО
VC>>желательно с предпросмотром в браузере.
S>Вам надо отображать значения величины при помощи 1го светодиода?
S>Попробуйте строить паттерны примерно по такому принципу:
S>
S>|........|........|........
S>|......|......|......|......
S>|....|....|....|....|....
S>|..|..|..|..|..|..|..|..|..
S>||.......||.......||.......
S>||.....||.....||.....||.....
S>||...||...||...||...||...
S>||.||.||.||.||.||.||.||.||.
S>|||......|||......|||......
S>|||....|||....|||....|||....
S>|||..|||..|||..|||..|||..
S>|||.|||.|||.|||.|||.|||.|||.
S>||||||||||||||||||||||||||||
S>

S>Под | подразумевается "моргание" типа 20мс включено, 20мс — выключено.
S>Т.е. идея "чем чаще моргает — тем выше" и "чем больше блинков в серии — тем выше".
S>Реализуется путём выбора максимального количества слотов в паттерне — например, 25. Максимум в 25 слотов дадут нам 24 паттерна для одного блинка, 23 для двух блинков, 22 для трёх блинков, 21 для четырёх блинков. Длиннее 4х я бы делать поостерёгся — не уверен, что легко будет считываться. Но вы проверьте — может уже и 4 будет перебором. Итого у нас есть как минимум 24+23+22 = 69 паттернов, плюс ещё один "panic pattern", когда мы мигаем вообще без пауз. Итого — 70 паттернов с периодом не более 1 секунды. Можно, конечно, задрать длину максимального интервала, но тогда потеряется различимость — я уверен, что на глаз период мигания в 1.2 и 1.3 секунды не отличишь.
S>Может оказаться, что слот в 40мс слишком короткий, и соседние мигания сливаются. Тогда можно попробовать покрутить и скважность (типа 10мс горим, 30 не горим), и длительность (30+30 вместо 20+20).

Пишу чтоб не забыть
Количество коротких блинков в серии: чем больше блинков в серии тем больше величина.
Интервал между сериями: чем больше интервал между сериями, тем.... Но если интервал между сериями 0 — то величина максимальная.

Если в паттерне выше перевернуть горит/не-горит местами то можно две разные величины показывать диодами одного цвета. не перепутаешь.
Re[3]: Паттерны стробов (для визуализации величины из интервала)
От: Sinclair Россия https://github.com/evilguest/
Дата: 25.08.16 17:49
Оценка:
Здравствуйте, VladCore, Вы писали:

VC>Пишу чтоб не забыть

VC>Количество коротких блинков в серии: чем больше блинков в серии тем больше величина.
VC>Интервал между сериями: чем больше интервал между сериями, тем.... Но если интервал между сериями 0 — то величина максимальная.
Чем больше интервал — тем меньше величина. См. фильм Чужие — там биперы очень наглядно показывают "степень опасности" = 1/расстояние.
Не знаю вашу задачу, но рассмотрите замену света (блинков) на звук (бипы).
Наш преподаватель в клубе юных техников говорил, что человек хорошо различает звуки от 20гц до 20кгц, а вот глазом частоты выше 30 герц ему недоступны.

VC>Если в паттерне выше перевернуть горит/не-горит местами то можно две разные величины показывать диодами одного цвета. не перепутаешь.

Лучше всё же разными цветами. Их гораздо больше, чем два, и гораздо проще различить.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.