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

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

Ср янв 01, 2020 17:49:30

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

На STM32 лучше выплевать через таймер + DMA, просто шимишь, а DMA периодически пишет в CCRx.

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

Ср янв 01, 2020 18:03:35

Reflector, Синхронизируя DMA с периодом таймера ? (Я ж не волшебник, я только учусь...)

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

Ср янв 01, 2020 18:12:30

Reflector, Синхронизируя DMA с периодом таймера ? (Я ж не волшебник, я только учусь...)

Один канал таймера пинает DMA(хотя можно и по Update), второй канал того-же таймера шимит, соответственно ничего синхронизировать не нужно.

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

Ср янв 01, 2020 21:05:40

Пожалуйста, не засоряйте тему: здесь речь идёт о плейере DIGISCRIPT и программе DSM.

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

Чт янв 02, 2020 17:48:50

goldenandy писал(а):Но остановило отсутствие толпы светодиодов...
А в чем проблема, немного выше архив под Atmega128, а это +лишних 2К памяти, грубо на вскидку 2048/5= 409 светодиодов (это еще не учел текущие 160). Хватит ?
Спойлер#define PIXEL_CNT 160
Код:
AVR Memory Usage
----------
Device: atmega128

Program:   17486 bytes (13.3% Full)
(.text + .data + .bootloader)

Data:       1668 bytes (40.7% Full)
(.data + .bss + .noinit)

Без переделки кода
#define PIXEL_CNT 255
Код:
AVR Memory Usage
----------
Device: atmega128

Program:   17478 bytes (13.3% Full)
(.text + .data + .bootloader)

Data:       2143 bytes (52.3% Full)
(.data + .bss + .noinit)
Этот код портируется и под Atmega64х и даже под Atmega256x.

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

Чт янв 02, 2020 19:35:26

Если делать много светодиодов в нынешней концепции, то следует учитывать и время, требуемое на обновление их всех. Сейчас гарантируется 100 обновлений в секунду, а с увеличением количества скорее всего соблюсти это не выйдет...

Добавлено after 1 minute 13 seconds:
И главное: в нынешней концепции больше 254 светодиода быть не может принципиально.

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

Чт янв 02, 2020 19:41:03

Атмеги (16) с легкостью гонятся до 27МГц, а не которые экземпляры и больше.

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

Чт янв 02, 2020 22:32:16

Вообще-то ARV прав, не делают контроллеры на большое кол-во светодиодов. Их разделяют на панели, панели собирают в кабинеты, а кабинеты собирают в уже отдельные мониторы. В каждой панели есть свой контроллер или регистры для RGB светодиодов. Каждым кабинетом управляет отдельный суб-контроллер, который в свою очередь является ведомым и управляется от общего видео-контроллера, который по настройкам делит видео на блоки и передает каждому ведомому свою информацию. Вот такая запутанная, но последовательная логика работы цветных мониторов на панелях.
Если хотите больше светодиодов, то надо двигаться в эту сторону.

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

Чт янв 02, 2020 23:48:16

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

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

Пт янв 03, 2020 09:05:25

ARV писал(а):Сейчас гарантируется 100 обновлений в секунду, а с увеличением количества скорее всего соблюсти это не выйдет...
Я подсчитал, 160 пикселей выводится за ~6,6мс. До 30 кадров можно смело упускать.
Пусть даже WT=01 будет не 10, а 15, 20мс надо пробовать, смотреть что из этого получится.
Riniy писал(а):не делают контроллеры на большое кол-во светодиодов.
А как же эти?
Riniy писал(а):Если хотите больше светодиодов, то надо двигаться в эту сторону.
Если бы было, я бы попробовал. Может быть и на stm32 переписал, только из-за 48МГц против 27МГц у Атмеги.

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

Пт янв 03, 2020 11:34:43

уважаемые, умные и мудрые Вы определитесь на какую категории людей
плейер DIGISCRIPT и программа DSM рассчитана.

ежели на начинающих радиолюбителей, вроде меня, то в в свете последних обновлений
где появились ХХ...
становится трудно, мутно и не понятно ( к примеру эффект флаг я так и не смог сделать сам
без помощи ARV )
да и вообще кроме меня больше никто не выложил свои эффекты ( не считая, конечно, АВТОРА)

если для профи ... тогда , да, совершенству нет придела...

одна просьба не поломайте то что есть.
делал я на 140 светиков гирлянду. не понравилось очень ярко, много их.
нужно яркость уменьшать, тогда цвета блеклые, не сочные
или светики какие нибудь маленькие нужны, но таких у меня нет
а 100 штук на елку метр восемьдесят самое то!

Добавлено after 1 hour 47 minutes 4 seconds:
ели мы начали мечтать ...
мои друзья, кому показывал гирлянду, все от восторга прыгали, но как только показывал схему щурили нос типа карта памяти дорого...
а что если взять готовую ардуино плату
в ней есть светик, кнопка, кварц, атмеега море ножек... прописать ее программой DSM, а еепрмом эффекты какие наделывать будем в плейере DIGISCRIPT (что то на подобие Riniy гирлянды) . на верно интерес возрастет!

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

Пт янв 03, 2020 12:30:17

коллеги, вот мои пояснения, возможно, отвечающие на ряд ваших вопросов:
1. плейер задумывался, как простое устройство, подходящее для всего на свете. т.е. в первую очередь простое, а во вторую многофункциональное. схема вышла элементарная, сравните с "крутизной": https://cxem.net/sound/light/light132.php , а возможности почти такие же. думаю, цель достигнута.
2. концептуально было установлено ограничение в 254 светодиода - из-за формата языка скриптов, в котором любые данные отображаются только двумя символами (данные - это и переменные, и функции и числа). при помощи двух символов невозможно записать число больше 255 (в 16-ричной системе), а так как требуется обеспечить контроль "границ" (т.е. надо отличать последний существующий пиксел от уже недоступного, не существующего), то предел количества пикселов 254, и перешагнуть его без кардинальной переделки всего алгоритма (или без кардинального геморроя в языке по типу "страниц" пикселов) невозможно. поэтому DIGISCRIPT никогда не сможет работать с бОльшим количеством светодиодов, даже если взять "большую" мегу и даже если ее разогнать вдвое. можно лишь реализовать "мозаичное" управление, т.е. тупо повторять 5 раз содержимое 160 пикселов, и тем самым засвечивать 800 штук светодиодов... в некоторых случаях это может быть даже красиво.
3. по поводу карты. Serzh2000, спросите своих друзей: как бы они себе представляли без карты изменять количество и виды эффектов? карта сейчас есть у каждого, причем явно не в единственном экземпляре (плейеров море, фотиков, в смартфоне есть 100%) - на день-другой переставить её в плейер, а потом юзай, как раньше - чего дорого-то? посмотрите на ссылку, которую я дал выше - там, не смотря на крутизну, тоже применяется карта, но там вы все равно связаны по рукам и ногам теми эффектами, которые за вас придумал автор, ибо создать что-то свое даже при помощи "настоящих" программ (которые даже видео умеют конвертировать в эффекты) получится у одного из тысячи... слишком там все круто, вряд ли кто ради одной новогодней ночи станет заморачиватьсяя так сильно.
4. по поводу карты еще. поскольку даже в 32-й меге почти половина памяти остается незанятой, можно немного подкорректировать код и сделать воспроизведение набора скриптов, записанных жестко во flash контроллера. в среднем эффект занимает порядка 600 байт, поэтому штук 15 эффектов влезет запросто в "остатки памяти". это превратит DIGISCRIPT в обычный автомат световых эффектов с "жестким" алгоритмом, по принципу устройства ув. Riniy. наконец, при минимальных переделках можно применить внешнюю SPI-память, но вот с "удобством" её прошивки эффектами придется бороться самостоятельно... встроенная в AVR EEPROM слишком мала даже в "больших" мегах, чтобы туда прописывать эффекты - влезет слишком мало.

Добавлено after 12 minutes 57 seconds:
Serzh2000 писал(а):в свете последних обновлений
где появились ХХ...
становится трудно, мутно и не понятно ( к примеру эффект флаг я так и не смог сделать сам
без помощи ARV )
Serzh2000, во флаге нет XX... поддержка XX появилась совсем недавно, и множество эффектов, которые всем нравились, были без этого реализованы. все новшества не отменяют ранее привычного, так что не можете разобраться - да и не напрягайтесь, у вас салют и без XX получился весьма неплохим.

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

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

Добавлено after 16 minutes 23 seconds:
кстати, хоть и не в тему: исходный код - это практически код готового программного автомата управления чем угодно: код интерпретирования команд построен так, что изменить поведение имеющихся или добавить собственные команды элементарно, и в итоге можно получить контроллер, который "скриптом" будет управлять любыми исполнительными механизмами, например, поливом растений, механизацией инкубатора, небольшим прессом или чем-то еще. ничего сложного в том, чтобы добавить, например, по образу и подобию команды PM еще команду JM (Jet Map), которая будет выводить на внешние порты сигналы управления электроклапанами и насосом - и вот вам готов "прыгающий фонтан" :))

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

Пт янв 03, 2020 13:13:12

если что то глобальное, большое типа гирлянды то да без карты не возможно и не жалко
ну если звездочка, снежинка, или сосулька... то карту памяти жалко, деталей много и всевото нужно 5-6 эффектов зашить и забыть
ведь Вашим скриптом я МОГУ НАПИСАТЬ ЛЮБОЙ ЭФФЕКТ!!! :)))

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

можно попросить ссылку на программу в которой пишите код в личку сбросить хоца поковыряться в нем :beer:

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

Пт янв 03, 2020 13:46:05

код можно писать в любой IDE, поддерживающей avr-gcc, даже в AVR Studio 4.18, не говоря про более современные версии. лично я пишу в Eclipse с дополнением AVR plugin, но, боюсь, Serzh2000, вам ковыряться в коде пока не стоит (без обид) ...

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

Пт янв 03, 2020 14:07:07

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

а про это что думаете? :shock:

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

Пт янв 03, 2020 14:21:02

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

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

Пт янв 03, 2020 14:36:03

я могу сделать версию исходников для работы с "фиксированными" эффектами прямо из flash, но кто будет заниматься сборкой, т.к. укомплектованием прошивки эффектами?


CodeVisionAVR 3.12 эта программа никак не подойдет для исходников?

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

Пт янв 03, 2020 14:47:34

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

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

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

Пт янв 03, 2020 14:49:10

Serzh2000 писал(а):а про это что думаете?
У меня была мысля присобачить W25Q32, 200 эффектов занимают ~100 кБайт.

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

Пт янв 03, 2020 14:59:21

Serzh2000 писал(а):CodeVisionAVR 3.12 эта программа никак не подойдет для исходников?
не подойдет
Reflector писал(а):Нужна утилитка которая зашивает в мк выбранный набор скриптов, причем не обязательно в мк, можно через него во внешнюю флеш. И я бы на ПК компилировал скрипты в байткод, это ускорит выполнение да и сам скриптовый язык в таком случае можно сделать значительно более продвинутым
байт-код - да, это наиболее разумный вариант, и, в принципе, для существующего языка он практически готов: во второй версии DSM происходит именно компиляция в байт-код, а потом этот байт-код исполняется симулятором, т.е. остается только экспортировать байт-код в МК (ну и переделать интерпретатор в МК под этот байт-код). только, опять же, лично я в этом смысла не вижу: это перечеркивает основную фишку проекта - простота применения. ведь набрать в текстовом редакторе скрипт намного проще, чем испольовать для того какие-то утилитки... делать скриптовый язык другим тоже смысла не вижу по той же причине: простоты уже в нем немного, а делать еще более сложный, значит, сужать круг тех, кто его осилит.
Dimon456 писал(а):У меня была мысля присобачить W25Q32
вот это самое простое, если придумать, как в неё легко записывать скрипты. все-таки даже через USART это уже немножко геморнее, чем через карту...
Ответить