Агуулгын хүснэгт:

LoL Shield аудио спектрийн VU тоолуур: 4 алхам (зурагтай)
LoL Shield аудио спектрийн VU тоолуур: 4 алхам (зурагтай)
Anonim
LoL Shield аудио спектрийн VU тоолуур
LoL Shield аудио спектрийн VU тоолуур

Энэ бол Arduino -д зориулсан LoL Shield ашигладаг аудио спектрийн VU тоолуур юм. LoL Shield бол Arduino дээр бамбай болгон суулгасан 14 x 9 хэмжээтэй LED матриц бөгөөд Charlieplexing гэж нэрлэгддэг үр ашигтай аргаар хянагддаг. Үүнийг Жимми П. Роджерс зохион бүтээжээ. Энэхүү төсөл нь аудио дохиог шинжлэх, давтамжийн зурваст хуваах, LoL Shield дээр харуулах зорилгоор Arduino -д зориулсан Fast Fourier Transform номын санг ашигладаг. Arduino микроконтроллер нь хурдан Фурье хувиргалтыг тооцоолоход хангалттай хурдан юм. Энэ нь нэрэндээ нийцсэн бөгөөд гайхалтай хурдан бөгөөд үнэн зөв байдаг. Бүх ажлыг микроконтроллер хийдэг тул хэрэв та батерей ашигладаг бол энэ төсөл бүрэн зөөврийн болно. Энэхүү төслийн вэб хуудас нь https://andydoro.com/vulol/ & amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; Шаардлагатай эд ангиуд:

  • LoL Shield
  • Ардуино (Диаволино зөвлөж байна)
  • аудио залгуур (би эрэгтэй моно 1/8 "утасны залгуур ашигласан)
  • Arduino код
  • цахилгаан хангамж (DC цахилгаан хангамж, USB кабель, 9V зай гэх мэт)

Алхам 1: LoL Shield -ийг угсарна уу

LoL Shield -ийг угсарна уу
LoL Shield -ийг угсарна уу

LoL Shield -ийг угсрах зааврыг дагана уу. Харагтун, энэ нь тийм ч их удсангүй!

Алхам 2: Аудио Жак руу гагнуурын утас

Аудио үүрэнд гагнуурын утас
Аудио үүрэнд гагнуурын утас

Би Radioshack гэж нэрлэдэг моно 1/8 эрэгтэй моно утасны залгуурыг ашиглаж байгаа боловч та аудио системийнхээ тохиргоонд тохирох аудио кабелийг ашиглаж болно. Хэрэв та хүсвэл микрофон ашиглаж болно. Энэ төрлийн залгуурын хувьд Би хоёр утас гагнасан. Би улаан, хар өнгийг ашигласан. LoL Shield нь аналог 4 болон 5 -р оролтыг үнэгүй оруулдаг. Миний код 5 -р зүү ашигладаг. Та улаан утсыг LoL Shield -ийн аналог 5 -р зүү, хар утсыг GND -д холбож болно… Та үүнийг гагнах шаардлагагүй, би утсыг нь зүүгээд нугалав.

Алхам 3: Arduino програм

Arduino програм
Arduino програм

Одоо бид LoL Shield -ийг хянахын тулд Arduino програмчлах хэрэгтэй.

Стандарт Arduino дээрх 13 -р зүүтэй холбогдсон ногоон гадаргуутай LED -ийн улмаас LED дээр "хий үзэгдэх" нөлөөллөөс урьдчилан сэргийлэхийн тулд LoL Shield -ийг хянахын тулд Diavolino -ийг ашиглахыг зөвлөж байна, гэхдээ стандарт Arduino сайн ажиллах болно.

Үүнд хоёр Arduino номын сан шаардлагатай: - Arduino форумаас олдсон FFT номын сан - LoL Shield -ийн Charlieplexing номын сан

Arduino -д зориулсан номын сан суулгах нь урьд өмнө хийгээгүй байсан ч бага зэрэг хэцүү байж болох ч та сайн хийх болно!

Arduino номын санг суулгах зааварчилгааг эндээс авна уу.

www.arduino.cc/en/guide/libraries

FFT номын сан нь 64 давтамжийн зурваст аудио дохиог эвддэг. LoL Shield нь 14х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" оруулах

#deudine AUDIOPIN 5 char im [128], өгөгдөл [128]; char data_avgs [14];

int i = 0, вал;

void setup () {LedSign:: Init (); // LoL Shield -ийг идэвхжүүлнэ}

void loop () {

for (i = 0; i <128; i ++) {val = analogRead (AUDIOPIN); өгөгдөл = үнэ; im = 0; };

fix_fft (өгөгдөл, im, 7, 0);

for (i = 0; i <64; i ++) {data = sqrt (өгөгдөл * өгөгдөл +im * im ); // энэ нь массив дахь утгуудын үнэмлэхүй утгыг авдаг тул бид зөвхөн эерэг тоонуудтай харьцдаг};

// (i = 0; i <14; i ++) {data_avgs = өгөгдөл [i*4] + өгөгдөл [i*4 + 1] + өгөгдөл [i*4 + 2] + өгөгдөл [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 асаах} өөр {LedSign:: Set (x, y, 0); // LED -ийг унтраах}}}

}

Алхам 4: сайхан өнгөрүүлээрэй

Сайхан амраарай !!
Сайхан амраарай !!

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

Микроконтроллерийн тэмцээн
Микроконтроллерийн тэмцээн
Микроконтроллерийн тэмцээн
Микроконтроллерийн тэмцээн

Микроконтроллерийн тэмцээний эцсийн оролцогч

Зөвлөмж болгож буй: