Мазмуну:

LoL Shield Audio Spectrum VU Meter: 4 кадам (Сүрөттөр менен)
LoL Shield Audio Spectrum VU Meter: 4 кадам (Сүрөттөр менен)
Anonim
LoL Shield Audio Spectrum VU Meter
LoL Shield Audio Spectrum VU Meter

Бул Arduino үчүн LoL Shieldди колдонгон VU аудио спектри. LoL Shield - бул 14 x 9 LED матрицасы, ал калкан катары Arduinoго туура келет жана Charlieplexing деп аталган эффективдүү ыкма аркылуу башкарылат. Бул Jimmie P. Rodgers тарабынан иштелип чыккан. Бул проект Arduino үчүн Fast Fourier Transform китепканасын колдонуп, аудио сигналды анализдеп, аны жыштык тилкелерине бөлүп, бул маалыматты LoL Shieldде көрсөтөт. Arduino микроконтроллери тез Фурье трансформациясын эсептөө үчүн жетиштүү. Ал өзүнүн атына ылайык келет жана таң калыштуу түрдө тез жана так. Бардык иштер микроконтроллер тарабынан жүргүзүлгөндүктөн, эгерде сиз батарейканы колдонсоңуз, бул долбоор толугу менен портативдүү. Бул долбоордун веб -баракчасы https://andydoro.com/vulol/ & amp; amp; amp; amp; amp; amp; & ampnbsp & ampnbsp; Амп & amp; amp; amp; Бөлүктөр талап кылынат:

  • LoL Shield
  • Arduino (Diavolino сунушталат)
  • аудио джек (мен эркек моно 1/8 "телефон сайгычын колдондум)
  • Arduino коду
  • электр менен камсыздоо (DC электр менен камсыздоо, USB кабели, 9V батарея, ж.

1 -кадам: LoL Shield чогултуу

LoL Shield чогултуу
LoL Shield чогултуу

LoL Shieldди чогултуу үчүн нускамаларды аткарыңыз бул жерде. Көрүңүз, бул көпкө созулган жок!

2 -кадам: Аудио Jackке Solder Wires

Аудио Jack'ке Solder Wires
Аудио Jack'ке Solder Wires

Мен Radioshack деп аталган эркек моно 1/8 дюймдук телефон сайгычын колдонуп жатам, бирок аудио тутумуңузга ылайыктуу аудио кабелди колдонсоңуз болот. Кааласаңыз микрофонду колдонсоңуз болот. Мындай сайгыч үчүн, Мен эки зымды ширеттим Сиз аны ширетүүнүн кажети жок, мен жөн эле зымды салып, ийкем.

3 -кадам: Ардуино программасы

Программа Arduino
Программа Arduino

Эми биз LoL Shieldди башкаруу үчүн Arduino программасын түзүшүбүз керек.

Диаволинону LoL Shieldди башкаруу үчүн LED диоддоруна "арбак" эффекттерин алдын алуу үчүн, жашыл бетине орнотулган LED 13 стандарттуу Arduino пинге туташтырылган, бирок стандарт Arduino жакшы иштейт.

Бул үчүн эки Arduino китепканасы керек: - Arduino форумунда табылган FFT китепканасы - LoL Shield үчүн Charlieplexing китепканасы

Arduino үчүн китепканаларды орнотуу, эгер сиз буга чейин жасабасаңыз, бир аз оор болушу мүмкүн, бирок сиз жакшы кыласыз!

Бул жерде Arduino китепканаларын орнотуу боюнча нускамаларды аткарыңыз:

www.arduino.cc/en/guide/libraries

FFT китепканасы 64 жыштык тилкесиндеги аудио сигналды бузат. LoL Shield 14 x 9 LED болуп саналат. Биз 64 жыштык тилкесин 14 жыштык тилкесине орточо эсеп менен бириктиребиз. Биз кээ бир маалыматтарды ыргытып жатабыз, анткени 14 бирдей 64кө бөлүнбөйт, бирок whatevs. Ар бир жыштык диапазонунун мааниси 0дон 9га чейин алмаштырылат.

Сиз төмөндөгү Arduino кодун көчүрүп, GitHubдан кодду ала аласыз (сунушталат) же китепканалар менен Arduino кодун камтыган. ZIP файлын жүктөп алсаңыз болот.

Бул жерде GitHub шилтемеси:

github.com/andydoro/LoLShield-FFT

Төмөндө Arduino коду:

/* FFT for LoL Shield v0.9 by Andy Doro https://andydoro.com/FFT китепканасына жана Arduino форумдарынын кодуна жана LoL Shield үчүн Charlieplexing китепканасына негизделген. */

#"Charliplexing.h" кошуу

#"fix_fft.h" кошуу

#define AUDIOPIN 5 char im [128], маалыматтар [128]; char data_avgs [14];

int i = 0, val;

void setup () {LedSign:: Init (); // LoL Shield инитилизациясы}

void loop () {

for (i = 0; i <128; i ++) {val = analogRead (AUDIOPIN); маалыматтар = val; im = 0; };

fix_fft (маалыматтар, им, 7, 0);

for (i = 0; i <64; i ++) {data = sqrt (data * data +im * im ); // бул массивдеги маанилердин абсолюттук маанисин алат, ошондуктан биз оң сандар менен гана иштейбиз};

// үчүн орточо тилкелер (i = 0; i <14; i ++) {data_avgs = data [i*4] + data [i*4 + 1] + data [i*4 + 2] + data [i*4 + 3]; // орточо бирге data_avgs = карта (data_avgs , 0, 30, 0, 9); // LoL үчүн кайра баалоо}

// LoLShield орнотуу

for (int x = 0; x <14; x ++) {for (int y = 0; y <9; y ++) {if (y <data_avgs [13-x]) {// 13-x тилкелерди ушунчалык төмөн бурат жогорку жыштыктарга солдон оңго көрсөтүлөт. LedSign:: Set (x, y, 1); // LEDди күйгүзүү} else {LedSign:: Set (x, y, 0); // светодиодду өчүрүү}}}

}

4 -кадам: ырахат алыңыз

Ырахат !!
Ырахат !!

& ampquotАппа & ampquot; amp; amp; amp; amp; amp; amp; amp; amp; Аудио джекти стереоңузга, iPodго, компьютериңизге ж.б. сайыңыз. Arduino-ны DC кубаты менен, компьютериңизден USB же батареяларыңыз менен кубаттаңыз- бул толугу менен портативдүү. Сиз аны шляпага же курга байлап койсоңуз болот. Ак LED диоддору ушунчалык жарык болгондуктан, видеого тартуу кыйын. Булардан кызгылт жалын чыгып жаткан окшойт! Артка отуруп, ырахат алыңыз!

Микроконтроллер конкурсу
Микроконтроллер конкурсу
Микроконтроллер конкурсу
Микроконтроллер конкурсу

Микроконтроллер конкурсунда финалист

Сунушталууда: