Обсуждаем контроллеры компании Atmel.
Ответить

Re: Плейер световых эффектов - помогите стать лучше

Сб дек 28, 2019 22:04:46

У меня генератор намного проще, пробелов в диапазоне нет, излишних повторяемых чисел минимум. Псевдо рамдомность меня вполне устраивает. Если включить несколько гирлянд одновременное, то все эффекты, цвета и т.д. будут разными.

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

Пример на асме:
Код:
Random:
        mov rnd_a,rnd_b       ;A=B
        mov rnd_b,rnd_c       ;B=C
        lsl rnd_b                   ;B<<1
        brcs rnd01
        sbr rnd_b,1               ;добавляем 1 если 7 бит был 1
  rnd01:
        mov rnd_c,rnd_a       ;С=B+A
        add rnd_c,rnd_b
ret

Re: Плейер световых эффектов - помогите стать лучше

Сб дек 28, 2019 22:13:15

Можно ссылку на фотку, если не затруднит

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

Добавлено after 6 minutes 25 seconds:
На счёт рандома: я применяю стандартный rand из libc, не думаю, что самописные алгоритмы дадут лучшие результаты.
Не забывайте, что практически в каждом цикле случайное число запрашивается не один раз, поэтому тестирование только на именах файлов без учёта вызовов изнутри файла, некорректно.
К тому же если нет повторов, это скорее отсутствие случайности, ибо позволяет предугадывать следующий скрипт.
Если вас так волнует отсутствие повторов, просто отключите случайный выбор файлов: при последовательном воспроизведении повтора не будет 100%, пока весь список не воспроизведется :)))

Re: Плейер световых эффектов - помогите стать лучше

Сб дек 28, 2019 22:22:54

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

У меня также несколько раз запрашивается функция рандома за цикл.

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

Спасибо! Не увидел из-за спойлера

Re: Плейер световых эффектов - помогите стать лучше

Вс дек 29, 2019 13:14:30

помечтаем? ;)

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

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

1. сделать "нормальную" матричную адресацию пикселов по паре X:Y (вместо выбора строки/столбца, а потом номера пиксела в нем)
2. отказаться полностью от задания цвета RGB и оставить только индексный цвет (это поможет почти в 3 раза увеличить количество пикселов)
3. перейти к индексной модели цвета к модели типа "палитра", т.е. в каждом скрипте задавать свою палитру из 16 цветов (тут уже в формате RGB), а потом использовать индекс по этой палитре (плюс этого варианта - опять увеличение количества пикселов и, главное, возможность индексом выбирать черный и белый цвет)
4. отказаться от параметра "яркость", т.к. при "палитровом" цвете можно сразу задать нужную яркость цвета для нужных индексов (снова поможет увеличить количество пикселов еще примерно на 30)
5. ввести режим "нормальной" арифметики с переполнением (сохранив текущую "с насыщением"), т.е. 255+1=0, 255+2=1 и т.д. вместо 255+1=255, 255+2=255, 255*125=255 (это будет более привычно для Си-шников)
6. ввести переключение свойства FADE в режим "просто параметр", т.е. когда значение FADE для пиксела является по сути просто дополнительной переменной, привязанной к пикселу. это даст возможность реализовать эффекты, связанные с цветом каждого пиксела независимо (сейчас это в принципе невозможно, т.к. количество пикселов превышает количество переменных).
7. добавить команду управления длительностью скрипта, чтобы можно было прямо в скрипте "отменить" время принудительного прерывания и установить для этого скрипта другое время (позволит избавиться от ситуации, когда эффект застывает на "не красивом" месте перед сменой на новый)

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

по моим прикидкам можно будет добиться количества пикселов в 254, а если изменить язык скриптов, то и до 400 (язык менять придется потому, что 1-байтной переменной для номера пиксела при этом будет не хватать, а значит, надо будет как-то переходить на 2-байтные переменные, что ломает всю концепию скрипта "любые данные только 2 символа"). эта последняя (8-я) идея мне нравится меньше всего...

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

теперь пару слов о том, что может помешать сбыче мечт.
лично свои собственные запросы я реализовал полностью, и просто так ради своих хотелок смысла продолжать что-то делать смысла не вижу. тем более что тема AVR как-то теряет популярность, все кивают на 32-битные, с WiFi и блекджеком, то есть блютузом... то есть я не скрываю: если тема усохнет в 2020 году, то и мой интерес к ней усохнет вместе с общим интересом. как нынче говорят, ваши лайки решают всё :)))

Re: Плейер световых эффектов - помогите стать лучше

Вс дек 29, 2019 18:16:08

Вернемся к рандому, самый простой способ
Спойлер
Код:
uint16_t max_i 25 или сколько там параметр TF передал

uint16_t rnd5 (void) {
static uint16_t  increment=3;
static uint16_t x=1;
   
   return x = (x + increment)% max_i;
}

rang = rnd5();
в принципе этого достаточно, но есть одно но картинка, количество скриптов не должно быть 3 33 63 93 и тп.

Re: Плейер световых эффектов - помогите стать лучше

Вс дек 29, 2019 19:02:27

Снова повторяю: проверять раундом надо вживую с учётом скриптов

Re: Плейер световых эффектов - помогите стать лучше

Вс дек 29, 2019 19:04:02

жаль телефон не может передать всей красоты гирлянды :( мои домочадцы в восторге от нее :)))
https://www.youtube.com/watch?v=TkFxkJFnefQ
огромный лайк ВАМ :beer: :)))

Re: Плейер световых эффектов - помогите стать лучше

Вс дек 29, 2019 19:14:38

Serzh2000, некоторые эффекты явно вашего производства меня сильно порадовали! даже, пожалуй, если успею, сделаю себе такие же :)

Re: Плейер световых эффектов - помогите стать лучше

Вс дек 29, 2019 19:22:51

Снова повторяю: проверять раундом надо вживую с учётом скриптов
И опять я с вами не согласен, для перебора использовать свой рандом, а скрипты пусть используют стандартный.

Re: Плейер световых эффектов - помогите стать лучше

Вс дек 29, 2019 19:25:23

ну, ежели раздельно... то возможно. хотя в чем цимес, не пойму

Re: Плейер световых эффектов - помогите стать лучше

Вс дек 29, 2019 20:07:25

Смысл что бы перебрать все файлы.
Наверное по тому что у меня идут первые 100 скриптов обычных, а за ними 100 скриптов матричных.
А последовательно перебирать как-то не айс.

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

Re: Плейер световых эффектов - помогите стать лучше

Вс дек 29, 2019 20:36:29

Dimon456, изобилие скриптов ведь не означает, что все нужно воспроизводить!
и потом, рано или поздно воспроизведутся все скрипты с любым рандомом, так о чем вы переживаете? у меня вот иной раз даже азарт какой-то возникает: ну когда же появится тот или иной скрипт?! :)))

поскольку елка светит почти круглосуточно, меня ничуть не смущает, что некоторые скрипты мне на глаза постоянно попадаются, а некоторых ждать приходится подолгу :)

Добавлено after 3 minutes 48 seconds:
хоть я и наделал под две сотни скриптов, реально на флешку я записал 34... после просмотра видоса от Serzh2000, пожалуй, допишу еще два :) и хорош

Добавлено after 1 minute 5 seconds:
Dimon456, вам зачем матричные скрипты, например, если у вас три полоски треугольником?

Re: Плейер световых эффектов - помогите стать лучше

Вс дек 29, 2019 20:52:46

ARV писал(а):вам зачем матричные скрипты
а вы посмотрите из этого сообщения видео, матричные крутятся, вроде красиво смотрится.
Тем более я могу задать режим матрицы 4*15 5*12 15*4 12*5 и тп, и один и тот же скрипт будет по разному смотреться.

Re: Плейер световых эффектов - помогите стать лучше

Вс дек 29, 2019 20:58:09

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

Re: Плейер световых эффектов - помогите стать лучше

Пн дек 30, 2019 19:28:34

ARV писал(а):только предварительно перенумеровать
батничек готовый использовал, маленько подкорректировал. Сначала random потом ваш renum.
bat_file.zip
(874 байт) Скачиваний: 192

Re: Плейер световых эффектов - помогите стать лучше

Ср янв 01, 2020 04:02:24

Изображение

Re: Плейер световых эффектов - помогите стать лучше

Ср янв 01, 2020 13:58:30

Последняя картинка, видимо, ошиблась адресом, но все равно спасибо :)))

Re: Плейер световых эффектов - помогите стать лучше

Ср янв 01, 2020 15:46:43

ARV, не ошибся, а целенаправленно поздравил автора и участников хорошей темы.
Тема интересная.

Купил, кстати, матрицу распаянных светодиодов 16*16 на гибкой подложке...

Попробую на ней что то сделать.

Re: Плейер световых эффектов - помогите стать лучше

Ср янв 01, 2020 16:34:16

Увы, плейер концептуально не может поддерживать 256 светодиодов... не говоря уж о аппаратной платформе. Если эту матрицу разделить на 2 или 4 части, соединённые "параллельно", то можно неплохие эффекты реализовать, и DSM такой режим поддерживает (см. Клоны)

Re: Плейер световых эффектов - помогите стать лучше

Ср янв 01, 2020 17:38:22

ARV, ну увы, резать матрицу я не буду.
Я купил вот такую
СпойлерИзображение

Ваш плеер - хорошая штука. Я его даже думал повторить. Но остановило отсутствие толпы светодиодов... И большой облом в их пайке.
А матрицу купил "по случаю" - коллега себе хочет лампу сделать от Алекса ГАйвера. Ну вот я с покупкой на хвост и упал.
Да и честно скажу, я люблю делать что то свое. Я могу подсмотреть идею, алгоритм, реализацию алгоритма. Но в основном я стараюсь сделать что то свое. Из вашего плеера я почерпнул идею управления адреской не ногодрыгом, а модулем SPI. Идея отложилась и лежит где то в подсознании.
Данная матрица - очередной повод поупражняться в изучении СТМ32. Там и памяти хватает, и DMA есть для выплевывания данных в адреску. Кстати, через SPI. Я еще не знаю, может повторю идею вышеупомянутой лампы Алекса Гайвера....
Ответить