สารบัญ:

LoL Shield Audio Spectrum VU Meter: 4 ขั้นตอน (พร้อมรูปภาพ)
LoL Shield Audio Spectrum VU Meter: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: LoL Shield Audio Spectrum VU Meter: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: LoL Shield Audio Spectrum VU Meter: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: arduino with oled vu meter 2024, พฤศจิกายน
Anonim
LoL Shield Audio Spectrum VU Meter
LoL Shield Audio Spectrum VU Meter

นี่คือเครื่องวัด VU สเปกตรัมเสียงโดยใช้ LoL Shield สำหรับ Arduino LoL Shield เป็นเมทริกซ์ LED ขนาด 14 x 9 ซึ่งพอดีกับ Arduino เป็นโล่และควบคุมผ่านวิธีการที่มีประสิทธิภาพที่เรียกว่า Charlieplexing ออกแบบโดย Jimmie P. Rodgers โปรเจ็กต์นี้ใช้ไลบรารี Fast Fourier Transform สำหรับ Arduino เพื่อวิเคราะห์สัญญาณเสียง แยกออกเป็นย่านความถี่ และแสดงข้อมูลนั้นบน LoL Shield ไมโครคอนโทรลเลอร์ Arduino นั้นเร็วพอที่จะคำนวณการแปลงฟูริเยร์อย่างรวดเร็ว มันใช้งานได้จริงตามชื่อของมันและรวดเร็วและแม่นยำอย่างน่าประหลาดใจ เนื่องจากไมโครคอนโทรลเลอร์ทำงานทั้งหมด โปรเจ็กต์นี้จึงพกพาสะดวกหากคุณใช้แบตเตอรี่ หน้าเว็บสำหรับโครงการนี้อยู่ที่ https://andydoro.com/vulol/ & amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;br /&แอมป์ แอมป์;แอมป์;แอมป์;แอมป์;แอมป์;แอมป์;แอมป์;แอมป์;แอมป์;แอมป์;แอมป์;แอมป์;แอมป์;แอมป์;แอมป์;gt; ชิ้นส่วนที่จำเป็น:

  • LoL Shield
  • Arduino (แนะนำ Diavolino)
  • แจ็คเสียง (ฉันใช้ปลั๊กโทรศัพท์โมโน 1/8 "ตัวผู้)
  • รหัส Arduino
  • แหล่งจ่ายไฟ (แหล่งจ่ายไฟ DC, สาย USB, แบตเตอรี่ 9V เป็นต้น)

ขั้นตอนที่ 1: ประกอบ LoL Shield

ประกอบ LoL Shield
ประกอบ LoL Shield

ทำตามคำแนะนำเพื่อประกอบ LoL Shield ที่นี่ ดูนั่นใช้เวลาไม่นานเลย!

ขั้นตอนที่ 2: บัดกรีสายไฟเข้ากับแจ็คเสียง

บัดกรีสายไฟเข้ากับแจ็คเสียง
บัดกรีสายไฟเข้ากับแจ็คเสียง

ฉันใช้ปลั๊กโทรศัพท์โมโน 1/8 ตัวผู้ ตามชื่อที่ Radioshack แต่คุณสามารถใช้สายสัญญาณเสียงใดก็ได้ที่เหมาะกับการตั้งค่าระบบเสียงของคุณ คุณสามารถใช้ไมโครโฟนได้หากต้องการ สำหรับปลั๊กประเภทนี้ ฉันบัดกรีสายไฟสองเส้น ฉันใช้สีแดงและสีดำ LoL Shield ปล่อยให้พินอะนาล็อก 4 และ 5 ว่างสำหรับอินพุต รหัสของฉันใช้พิน 5 คุณสามารถต่อสายสีแดงกับพินอะนาล็อก 5 ของ LoL Shield และสายสีดำกับ GND คุณไม่จำเป็นต้องบัดกรีฉันแค่ใส่ลวดเข้าไปแล้วงอ

ขั้นตอนที่ 3: โปรแกรม Arduino

โปรแกรม Arduino
โปรแกรม Arduino

ตอนนี้เราต้องตั้งโปรแกรม Arduino เพื่อควบคุม LoL Shield

ขอแนะนำให้ใช้ Diavolino เพื่อควบคุม LoL Shield เพื่อป้องกันผลกระทบ "ghosting" บน LED เนื่องจาก LED สีเขียวติดบนพื้นผิวที่เชื่อมต่อกับพิน 13 บน Arduino มาตรฐาน แต่ Arduino มาตรฐานจะทำงานได้ดี

ต้องใช้ไลบรารี Arduino สองไลบรารี: - ไลบรารี FFT ที่พบในฟอรัม Arduino - ไลบรารี Charlieplexing สำหรับ LoL Shield

การติดตั้งไลบรารี่สำหรับ Arduino อาจเป็นเรื่องยุ่งยากเล็กน้อย หากคุณไม่เคยทำมาก่อน แต่คุณก็ทำได้ดี!

ทำตามคำแนะนำในการติดตั้งไลบรารี Arduino ที่นี่:

www.arduino.cc/en/guide/libraries

ไลบรารี FFT แบ่งสัญญาณเสียงออกเป็น 64 ย่านความถี่ LoL Shield คือไฟ LED 14 x 9 เราเฉลี่ยคลื่นความถี่ 64 แถบเข้าด้วยกันเป็น 14 แถบความถี่ เรากำลังทิ้งข้อมูลบางส่วนเพราะ 14 ไม่ได้แบ่งออกเป็น 64 อย่างเท่าๆ กัน แต่อะไรก็ตาม ค่าของแต่ละช่วงความถี่จะทำการรีแมปจาก 0 ถึง 9

คุณสามารถคัดลอกโค้ด Arduino ด้านล่าง รับโค้ดจาก GitHub (แนะนำ) หรือดาวน์โหลดไฟล์. ZIP ซึ่งรวมถึงไลบรารีและโค้ด Arduino

นี่คือลิงค์ GitHub:

github.com/andydoro/LoLShield-FFT

ด้านล่างเป็นรหัส Arduino:

/* FFT สำหรับ LoL Shield v0.9 โดย Andy Doro https://andydoro.com/ ตามไลบรารี FFT และโค้ดจากฟอรัม Arduino และไลบรารี Charlieplexing สำหรับ LoL Shield */

#รวม "Charliplexing.h"

#รวม "fix_fft.h"

#define AUDIOPIN 5 ตัวอักษร [128], data[128]; ถ่าน data_avgs[14];

int i=0, วาล;

การตั้งค่าเป็นโมฆะ () { LedSign:: Init (); // เริ่มต้น LoL Shield }

วงเป็นโมฆะ () {

สำหรับ (i=0; i < 128; i++) { val = analogRead (AUDIOPIN); data = วาล; ฉัน = 0; };

fix_fft(ข้อมูล, im, 7, 0);

สำหรับ (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[ผม*4 + 3]; // เฉลี่ยร่วมกัน data_avgs = map(data_avgs, 0, 30, 0, 9); // ทำการแมปค่าสำหรับ LoL }

// ตั้งค่า LoLShield

สำหรับ (int x=0; x <14; x++) { สำหรับ (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); // ปิดไฟ LED } } }

}

ขั้นตอนที่ 4: สนุก !

สนุก!!
สนุก!!

&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;แอมป์ แอมป์;แอมป์;แอมป์;แอมป์;แอมป์;แอมป์;แอมป์;แอมป์;แอมป์;แอมป์;gt; เสียบแจ็คเสียงเข้ากับสเตอริโอ iPod คอมพิวเตอร์ ฯลฯ จ่ายไฟให้กับ Arduino ด้วยแหล่งจ่ายไฟ DC, USB จากคอมพิวเตอร์หรือแบตเตอรี่ - นี่เป็นอุปกรณ์พกพาได้อย่างสมบูรณ์ ใส่หมวกหรือหัวเข็มขัดก็ได้ ไฟ LED สีขาวสว่างมากจนถ่ายวิดีโอได้ยาก ดูเหมือนว่ามีเปลวไฟสีม่วงออกมาจากพวกมัน! เอนหลังและเพลิดเพลิน!

การประกวดไมโครคอนโทรลเลอร์
การประกวดไมโครคอนโทรลเลอร์
การประกวดไมโครคอนโทรลเลอร์
การประกวดไมโครคอนโทรลเลอร์

ผู้เข้ารอบสุดท้ายในการประกวดไมโครคอนโทรลเลอร์

แนะนำ: