Программа Сервисный Центр
0

Анализатор спектра аудиосигнала на базе Arduino с видеовыходом


Paul Bishop Основной целью проекта является использование ЖК дисплея от неисправного портативного DVD плеера совместно с платформой Arduino в качестве модуля визуального отображения данных и информации. Разработанное устройство представляет собой анализатор спектра реального времени, источником сигнала является электретный микрофон, подключенный к микроконтроллеру. Автор использовал портативный DVD плеер с неисправной механической частью, однако сам ЖК дисплей и обслуживающая его электроника была исправна, что позволяет подавать на дисплей стандартный NTSC композитный видеосигнал. Источником питания выступала встроенная в плеер аккумуляторная батарея, но возможно использовать питание с платформы Arduino.
Анализатор спектра аудиосигнала на базе Arduino с видеовыходом
Автор не дает гарантии и не несет ответственности за поврежденное оборудование в ходе повторения конструкции, т.к. это опытный образец, собранный любителем. Однако устройство должно работать с любым ТВ или устройством, позволяющим подавать видеосигнал NTSC. Основой устройства, как было отмечено выше, является платформа Arduino. Была примененная 5 В версия Adafruit Boarduino (DC Boarduino). Плата представляет собой компактный модуль с установленным микроконтроллером Atmel ATMega328P с рабочей частотой 16 МГц. Дополнительно установлен регулятор напряжения LM7805, коннекторы с сигналами линий ввода/вывода, коннектор интерфейса внутрисхемного программирования, кнопка «Сброс». Внешний вид контроллера Arduino (DC Boarduino)
Анализатор спектра аудиосигнала на базе Arduino с видеовыходом
Следует обратить внимание, что установлен именно микроконтроллер ATmega328, который имеет в 2 раза больший объем памяти программ, ОЗУ и EEPROM по сравнению с ATmega168 (более ранние версии платформы выполнены на ATmega168), объема памяти которого не хватит для запуска данного приложения. Принципиальная схема Adafruit Boarduino
Анализатор спектра аудиосигнала на базе Arduino с видеовыходом
Кликните для увеличения В качестве источника аудиосигнала применен электретный микрофон. Однако величина сигнала с микрофона недостаточна, чтобы подключить его непосредственно к микроконтроллеру. Для усиления сигнала был собран простейший предварительный усилитель на NPN транзисторе 2N3904. Принципиальная схема подключения дискретных элементов и микрофона к Arduino
Анализатор спектра аудиосигнала на базе Arduino с видеовыходом
Кликните для увеличения Сигнал с предварительного усилителя подается на вывод Analog 0 платы Arduino, что соответствует каналу 0 АЦП микроконтроллера. Для генерации видеосигнала используется два вывода микроконтроллера и два резистора. Программное обеспечение микроконтроллера Для генерации монохромного композитного видеосигнала NTSC используется готовая программная библиотека TVout для Arduino. По умолчанию рабочее разрешение устанавливается 128×96 точек. Стоит отметить также, что не гарантируется корректная работа данной библиотеки при ее применении в другой интегрированной среде разработки. Следующий момент в программном обеспечении – сбор и обработка данных для дальнейшего отображения на дисплее. Сбор данных – стандартная процедура получения данных от аналого-цифрового преобразователя микроконтроллера. Далее, для проведения спектрального анализа, нам необходимо делать выборки сигнала во времени и затем выполнить преобразование Фурье, благодаря которому получается замечательная картина сигнала. Если выполнение данной процедуры зациклить, то получится визуальный анализатор спектра звукового сигнала. Для реализации алгоритма быстрого преобразования Фурье (FFT, Fast Fourier transform) в проекте был использован код представленный пользователем на форуме Arduino. Данный программный код представляет собой библиотеку, которая выполняет выборки сигнала и 8-разрядное быстрое преобразование Фурье, причем написана полностью на Си с применением некоторых программных приемов оптимизации по размеру кода. Данные файлы можно сохранить в качестве библиотеки для использования в своих проектах и разработках. Благодаря небольшому размеру кода (а это решающий фактор для приложения, где используется визуализация и генерация видеосигнала) эти библиотеки применимы для нашего проекта. Конечно, пользователи могут оптимизировать алгоритм преобразования и вывода на дисплей, а также доработать аппаратную аналоговую часть. Внешний вид макетной платы
Анализатор спектра аудиосигнала на базе Arduino с видеовыходом
Листинг (Arduino) #include
Анализатор спектра аудиосигнала на базе Arduino с видеовыходом
TVout.h
Анализатор спектра аудиосигнала на базе Arduino с видеовыходом
#include
Анализатор спектра аудиосигнала на базе Arduino с видеовыходом
fix_fft.h
Анализатор спектра аудиосигнала на базе Arduino с видеовыходом
TVout TV; char im[128], data[128], lastpass[64]; char x=32, ylim=90; int i=0,val; void setup() { TV.begin(_NTSC,128,96); // Initialize TV output, 128x96. TV.print_str(2,2," Realtime Arduino"); // TVout lib uses x,y for print TV.print_str(2,11," Spectrum Analyzer"); // statements. 8x8 default font. analogReference(DEFAULT); // Use default (5v) aref voltage. for (int z=0; z<64; z++) {lastpass[z]=80;}; // fill the lastpass[] array with dummy data }; void loop() { for (i=0; i < 128; i++){ // We don't go for clean timing here, it's val = analogRead(0); // better to get somewhat dirty data fast data[i] = val/4 -128; // than to get data that's lab-accurate im[i] = 0; // but too slow, for this application. }; fix_fft(data,im,7,0); for (i=1; i< 64;i++){ // In the current design, 60Hz and noise data[i] = sqrt(data[i] * data[i] + im[i] * im[i]); // in general are a problem. Future designs TV.draw_line(i+x,lastpass[i],i+x,ylim,0); // and code may fix this, but for now, I TV.draw_line(i+x,ylim,i+x,ylim-data[i],1); // skip displaying the 0-500hz band completely. lastpass[i]=ylim-data[i]; // if you insist, initialize the loop with 0 }; // rather than 1. };

 
 
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
 
Обратная связь

Наши партнеры

 

Опросы

Есть ли справедливость в жизни?
Конечно есть, уверен!
Вроде как должна быть, но...
Затрудняюсь ответить...
Какая справедливость? О чем Вы?
Эх.., нет правды на свете!

 

Облако тегов

Требуется для просмотраFlash Player 9 или выше.

Показать все теги
 

Календарь публикаций

«    Декабрь 2016    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
 

Архив новостей

Декабрь 2016 (5)
Ноябрь 2016 (42)
Октябрь 2016 (34)
Сентябрь 2016 (38)
Август 2016 (34)
Июль 2016 (36)
 
Наверх Сервисные мануалы Даташиты Ремонт LCD, ЖК телевизоров LG Samsung Скрипт программы "Сервисный центр"