Спектрограмма для радио | |
---|---|
Cлесарь 23/12/2014 02:28 |
Здравствуйте!
Сделал спектрограмму на OLED индикаторе с поддержкой графического режима. www.youtube.com/embed/UVnFY9k2_TU Но потом решил переделать на такой индикатор, HD44780 совместимый, без поддержки графики. Как думаете, получится ли выводить спектрограмму радиоэфира на такой индикатор? |
Rom-Zecs 23/12/2014 04:20 |
А он умеет левый шрифт? |
n max 23/12/2014 05:13 |
Можно выводит и на этот-в графическом режиме.По моему там озу(в индикаторе) есть в него можно грузить альтернативный знакогнератор,а потом адресовать при выводе.Т.е в качестве знаков прорисовать столбики разной высоты,а микроконтроллер(управляющий индикатором) будет выдавать на шину в формате знакоместо\знак исходя из картины сигнала.
ДОБАВЛЕНО 23/12/2014 05:19 Только надо юзать 8 битный режим |
Cлесарь 23/12/2014 08:52 |
Там в HD44780 совместимом драйвере ОЗУ под 8 пользовательских знаков.
Спектр шириной в 48 кГц надо нарисовать в нижней строке индикатора, с шагом по 480 Гц соответственно. На 20 знак мест. 100 столбиков. |
Rom-Zecs 23/12/2014 09:40 |
Спросонья не врублюсь, хватит скорости на лету загружать новые символы и возможно ли это вообще в пределах одного кадра?
ДОБАВЛЕНО 23/12/2014 11:01 Небольшая 'идея' рисовать в 2 прохода, сначала заполнять низ знакоместа соответственно минимальному уровню, возможно 8 символов почти всегда будет хватать, а если и нет то не страшно, девайс видимо для красоты и точность не критична, ну а вторым проходом только верхушки, остается не более 4х столбиков, уже проще, тем более если точность не очень важна |
n max 23/12/2014 10:53 |
рисовать по 2 прохода по любому придётся.Хотя можно сразу загружать по месту и рисовать скорости хватит.При выводе сообщений на русском так и делали(англицкий там был прошит изначально).Правда дисплей там был жки тоже 2х строчный |
Rom-Zecs 23/12/2014 12:27 |
Кой какая псевдо графика есть, пробел, подчеркивание и полностью закрашенный, уже хлеб |
Cлесарь 24/12/2014 00:42 |
Ну в принципе получилось. Но будет мерцание, если расширять спектрограмму на всю ширину индикатора 100 столбиков.
Скорее всего это не победить на индикаторе без поддержки графического режима. Есть возможность рисовать не мерцающею спектрограмму только 40 столбиков. Так что в меню можно будет переключить на узкую не мерцающею спектрограмму. 48 кГц / 40 столбцов. |
Rom-Zecs 29/12/2014 02:27 |
http://habrahabr.ru/sandbox/47619/?mobile=no |
Cлесарь 29/12/2014 08:46 |
Значится новый релиз спектрограммы такой:
Индикатор, знак-символьный, 2 строки по 20 символов. Кто бы что не говорил, но моя сегодняшняя стратегия направленна именно на такие HD44780 совместимые индикаторы. Основные преимущества этих индикаторов - легкодоступность и взаимозаменяемость. Плюс еще легкость написания собственного ПО и минимум обмена данными по шине. Как по мне, так еще добавляются свойства - существование индикаторов такого типа со светящимися пикселями. Личное мнение, но для собственных конструкций не очень приветствую ЖК индикаторы/дисплеи, не та видимость, не тот обзор. По этому, сейчас выбор падает на OLED и VFD типы индикаторов. Естественно, для спектрограмм/панорам больше подходят полноценные дисплеи, но в случае самоделки, потребуется много кода, много данных, может потребоваться ОСь (терпеть не могу), сторонние библиотеки, более мощный проц, возможно не кошерной архитектуры/производителя. По этому, рисую панораму на HD44780 совместимом. На OLED WEH001602 рисуется легко, там есть графический режим, видео уже было представлено в теме, но недостаток этих индикаторов - недолговечность, низкая надежность, мелкий пиксель. Благо есть чудо индикатор M202MD15AJ , самый яркий, самый контрастный, самый обзорный, может работать без импульсного преобразователя с минимумом излучаемых собственных помех, HD44780 совместимый. Но нет графического режима. Есть псевдо-графика, запись 8-ми определенных пользователем знак-мест, 5х8 точек. То есть, без каких-либо ухищрений можно рисовать графику в объеме 40х8 точек. Но в случае радио спектрограммы, такое разрешение смотрится очень неказисто. Я пошел дальше и смог таки растянуть спектрограмму на 100х8 точек используя все тот же M202MD15AJ, законно используя штатный функционал индикатора и без какого-либо мерцания как было в первом опыте. Это метод так же подойдет на недорогие WH1602 совместимые индикаторы. Все перечисленные индикаторы легкодоступны, продаются в магазинах радиотоваров, например chip-nn и platan. Алгоритм такой: 1. Спектрограмма рисуется из центра символьной строки, к левому и правым краям. По вертикали уровень сигнала, по горизонтали частотная полоса. 2. Знакместа индикатора заполняются от середины поочередно, сначала левый, потом, правый. Следующий левый, следующий правый. И так до полного заполнений символьной строки. В моем случае это 20 знак мест, по 5х8 точек. 3. Имея всего 8 знакмест определяемых пользователем, а рисунок спектра можно изобразить только нарисовав в этих ячейках памяти, 4 слева от середины строки, 4 справа. применяем первый трюк - если для заполнения 5 столбцов нет сигнала (а у меня это обычное дело, сигналы ниже уровня приема я не отображаю), выдаем код 0x20 пустое знакместо. 4. Трюк второй - сравниваем знакместа которые уже заполнены ранее с новосоздаваемыми знакместами, если полное совпадение, новое знакместо не создавать, а на индикатор вывести ранее созданное знакместо. Не заполнять память знакмест определяемых пользователем дубликатами. А дубликаты бывают часто, ведь спектрограмма это просто всплески огоньков, на разных участках частотного спектра всплески вывают одинаковыми. 5. Трюк третий, "интеллектуальны й". Ну это на случай если рисунок спектрограммы такой сложный, что предыдущих функций и трюков оказалось недостаточно для заполнения всех 20 знакмест индикатора. Вот уже израсходована память индикатора 8 знакмест определяемых пользователем. На индикаторе красуется реальный вид спектрограммы, допустим 5 знак мест слева и 6 знакмест справа. Из за сложности спектра, осталось еще до отобразить слева 5 знак мест, и справа 4 знакместа. Включается в работу "интеллектуальны й" обработчик и подставляет в оставшиеся знакместа, наиболее подходящие фрагменты взятые из реального вида спектрограммы. Да. на краях спектрограмма отображается искаженной, но уровень сигналов видится максимально верным, а спектр максимально соответствующим. Обработчик старается. Оправдания два, в моем случае полоса спектрограммы 48 кГц, по 375 Гц на пиксел, реально отображается в самом худшем редком случае минимальный участок 15 кГц, то есть можно оценить что работает рядом в стороне от полосы приема 2.4 кГц, далее, только для приблизительной оценки, что на диапазоне есть еще станции. Второе. глаз обычно смотрит детально только маленький участок спектра, насколько мозг может усваивать информацию, обычно этот участок в полосе приема. Как это работает в реале, скоро увидим. Остались последние штризи отладки "интеллектуально го" обработчика. |
Rom-Zecs 29/12/2014 16:26 |
Я писал уже, по поводу "интеллектуального" как раз, сначала "подбить" снизу во всю ширину знако места, искренне надеюсь, 8 мест почти хватит, стараясь заполнить максимальное количество пикселей, потом вторым проходом только верхушки, опять же искренне надеюсь а дальше смотреть удовлетворяет точность или нужен 3й проход, можно включать или не включать низ во 2й и 3й проход, надо визуально смотреть как лучше |
Cлесарь 31/12/2014 04:12 |
На звучание прошу не пенять, работает без антенны, без нормального БП, без диапазонного фильтра, без экранировки, еще не доделан DSP полосовой фильтр.
Спектрограмма 48 кГц. Просто тест первой версии. http://www.youtube.com/watch?v=i0h0njYmppc |