สารบัญ:

CRAZY L.O.L SPECTRUM ANALYZER: 6 ขั้นตอน (พร้อมรูปภาพ)
CRAZY L.O.L SPECTRUM ANALYZER: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: CRAZY L.O.L SPECTRUM ANALYZER: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: CRAZY L.O.L SPECTRUM ANALYZER: 6 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: AARONIA SPECTRAN V6 REAL TIME 6GHz USB SPECTRUM ANALYZER OVERVIEW 2024, กรกฎาคม
Anonim
CRAZY L. O. L SPECTRUM ANALYZER
CRAZY L. O. L SPECTRUM ANALYZER
CRAZY L. O. L SPECTRUM ANALYZER
CRAZY L. O. L SPECTRUM ANALYZER

วันนี้ฉันอยากจะแบ่งปันวิธีการสร้างเครื่องวิเคราะห์สเปกตรัมเสียง - 36 แบนด์โดยการรวม 4 LoL Shields เข้าด้วยกัน โครงการบ้าๆ นี้ใช้ไลบรารี FFT เพื่อวิเคราะห์สัญญาณเสียงสเตอริโอ แปลงเป็นย่านความถี่ และแสดงแอมพลิจูดของย่านความถี่เหล่านี้บน 4 x LoL Shields

ก่อนเริ่มต้น โปรดดูวิดีโอด้านล่าง:

ขั้นตอนที่ 1: สิ่งที่เราต้องการ

ส่วนประกอบอิเล็กทรอนิกส์หลักมีดังนี้:

  • 4 ชิ้น x Arduino Uno R3
  • 4 ชิ้น x LoLShield PCB PCBWay (บริการต้นแบบ PCB แบบกำหนดเองแบบเต็มคุณสมบัติ) รองรับแผงวงจรพิมพ์ LoLShield เหล่านี้กับฉัน
  • 504 ชิ้น x LED, 3 มม. LoLShield แต่ละตัวต้องการ LED 126 ดวง และเราสามารถเลือกสีและประเภท LED ได้ 4 สี (แบบกระจายและไม่กระจาย)
  • 1 pcs x แบบพกพา Charger Power Bank แบตเตอรี่ 10000/20000 mAh.
  • 4 ชิ้น x ส่วนหัวชาย 40 พิน 2.54 มม.
  • 2 pcs x USB Type A/B สาย อันหนึ่งใช้สำหรับการเขียนโปรแกรม Arduino อีกอันหนึ่งใช้สำหรับจ่ายไฟ Arduino จากแบตสำรอง
  • 1 pcs x 3.5 มม. แจ็คสเตอริโอเสียงหญิง.
  • 1 pcs x 3.5 มม. 1 ชาย 2 หญิง Audio Splitter Adapter หรือหูฟังหลาย Audio Splitter.
  • 1ชิ้นx 3.5มิลลิเมตรเสียงสเตอริโอแจ็คชาย-ชายเชื่อมต่อสายเคเบิ้ล
ภาพ
ภาพ
  • สายริบบิ้นสายรุ้ง 1 ม. x 8P
  • สายไฟ 1 ม. x สองแกน
  • 1 ชิ้น x อะคริลิคใส ขนาด A4

ขั้นตอนที่ 2: แผนผัง

แผนผัง
แผนผัง

LoLShield เป็นเมทริกซ์ LED แบบชาร์ลีเพล็กซ์ขนาด 9x14 สำหรับ Arduino และการออกแบบนี้ไม่รวมตัวต้านทานจำกัดกระแสใดๆ LED สามารถระบุแอดเดรสแยกกันได้ ดังนั้นเราจึงสามารถใช้เพื่อแสดงข้อมูลในเมทริกซ์ LED ขนาด 9 × 14

LoL Shield ปล่อยให้ D0 (Rx), D1 (Tx) และพินอะนาล็อก A0 ถึง A5 ฟรีสำหรับแอปพลิเคชันอื่น รูปภาพด้านล่างแสดงการใช้งานพิน Arduino Uno สำหรับโครงการนี้:

ภาพ
ภาพ

เครื่องวิเคราะห์สเปกตรัมเสียงของฉันมี 4 x (Arduino Uno + LoLShield) แหล่งจ่ายไฟและแจ็คเสียงสเตอริโอ 3.5 มม. เชื่อมต่อตามแผนผังด้านล่าง:

ภาพ
ภาพ

ขั้นตอนที่ 3: LOL SHIELD PCB & LED SOLDERING

1. LoL SHIELD PCB

. คุณสามารถอ้างถึงการออกแบบ PCB ได้ที่: https://github.com/jprodgers/LoLshield โดย Jimmie P. Rodgers

ภาพ
ภาพ

. PCBWay สนับสนุนแผงวงจรพิมพ์ LoLShield เหล่านี้ให้ฉันด้วยการจัดส่งที่รวดเร็วและ PCB คุณภาพสูง

ภาพ
ภาพ

2. LED SOLDERING

. LoLShield แต่ละตัวต้องการไฟ LED 126 ดวง และฉันใช้ชนิดและสีที่ต่างกันสำหรับ 4x LoLShields ดังนี้:

  • 1 x LoLShield: ไฟ LED กระจาย สีแดง 3 มม.
  • 1 x LoLShield: ไฟ LED กระจาย สีเขียว 3 มม.
  • 2 x LoLShield: ไฟ LED ไม่กระจาย (ใส) สีฟ้า 3 มม.

. การเตรียม LoLShield PCB และ LED

ภาพ
ภาพ

. บัดกรี 126 LED บน LoLShield PCB เราควรตรวจสอบไฟ LED ด้วยแบตเตอรี่หลังจากบัดกรีทุกแถว - 14 LEDs

ท็อป LoLSHIELD

ภาพ
ภาพ

ด้านล่าง LoLSHIELD

ภาพ
ภาพ

. เสร็จสิ้น LoLShield หนึ่งรายการและทำการบัดกรี LoLShield ที่เหลืออีก 3 รายการ

ภาพ
ภาพ

ขั้นตอนที่ 4: การเชื่อมต่อและการประกอบ

. แหล่งจ่ายไฟบัดกรีและสัญญาณเสียงไปยัง 4xLoLShield สัญญาณสเตอริโอใช้ช่องสัญญาณเสียงสองช่อง: ซ้ายและขวาซึ่งเชื่อมต่อกับ Arduino Uno ที่ขาอะนาล็อก A4 & A5

  • A4: ช่องสัญญาณเสียงด้านซ้าย
  • A5: ช่องสัญญาณเสียงด้านขวา
ภาพ
ภาพ

. การจัดตำแหน่งและติดตั้ง 4 x Arduino Uno บนแผ่นอะคริลิก

ภาพ
ภาพ

. เสียบ 4 x LoLShield เข้ากับ 4 x Arduino Uno

ภาพ
ภาพ

. กาวพาวเวอร์แบงค์ที่ชาร์จแบบพกพาและแจ็คเสียงบนแผ่นอะครีลิค

ภาพ
ภาพ

. เสร็จแล้ว!

ภาพ
ภาพ

ขั้นตอนที่ 5: การเขียนโปรแกรม

คุณควรอ้างอิงถึงวิธีการทำงานของ LoLShield ตามวิธี Charlieplexing และ Fast Fourier Transform (FFT) ที่:

en.wikipedia.org/wiki/Charlieplexing

github.com/kosme/fix_fft

สำหรับ Charlieplexing เราให้ความสำคัญกับ "สามสถานะ" ของพินดิจิทัล Arduino: "สูง" (5V), "LOW" (0V) และ "INPUT" โหมด "INPUT" ทำให้พิน Arduino อยู่ในสถานะอิมพีแดนซ์สูง อ้างอิงที่:

www.arduino.cc/en/Tutorial/DigitalPins

ในโครงการของฉัน คลื่นความถี่เสียงจะแสดงบน 4 x LoL Shield และอธิบายไว้ดังแสดงด้านล่าง:

ภาพ
ภาพ

Arduino แต่ละตัวจะอ่านสัญญาณเสียงที่ช่องสัญญาณซ้าย/ขวาและดำเนินการ FFT

สำหรับ (i=0; i < 64; i++) { Audio_Input= analogRead (RIGHT_CHANNEL); // อ่านสัญญาณเสียงที่ช่อง A5 ทางขวา - ARDUINO 1 & 2 //Audio_Input = analogRead (LEFT_CHANNEL); // อ่านสัญญาณเสียงที่ช่อง A4 ด้านซ้าย - ARDUINO 3 & 4 Real_Number = Audio_Input; Imaginary_Number = 0; } fix_fft(Real_Number, Imaginary_Number, 6, 0); // ทำการแปลงฟูริเยร์อย่างรวดเร็วด้วย N_WAVE=6 (2^6=64) สำหรับ (i=0; i< 32;i++) { Real_Number = 2*sqrt(Real_Number * Real_Number + Imaginary_Number * Imaginary_Number); }

. Arduino 1 - แสดงแถบความถี่แอมพลิจูด 01 ~ 09 ของช่องสัญญาณขวา (A5)

สำหรับ (int x=0; x <14; x++) { สำหรับ (int y=0; y <9; y++) { if (x < Real_Number [y]) // แสดงย่านความถี่ 01 ถึง 09 { LedSign:: Set (13-x, 8-y, 1); // LED ON } อื่น { LedSign:: Set (13-x, 8-y, 0); // LED ปิด } } }

. Arduino 2 - แสดงแถบความถี่แอมพลิจูด 10 ~ 18 ของช่องสัญญาณขวา (A5)

สำหรับ (int x=0; x <14; x++) { สำหรับ (int y=0; y <9; y++) { if (x < Real_Number [9 + y]) // แสดงย่านความถี่ 10 ถึง 18 { LedSign::Set(13-x, 8-y, 1); // LED ON } อื่น { LedSign:: Set (13-x, 8-y, 0); // LED ปิด } } }

. Arduino 3 - แสดงแถบความถี่แอมพลิจูด 01 ~ 09 ของช่องสัญญาณด้านซ้าย (A4)

รหัสจะเหมือนกับ Arduino 1 และช่องสัญญาณเสียงด้านซ้ายเชื่อมต่อกับ Arduino ที่ขาอะนาล็อก A4

. Arduino 4 - แสดงแถบความถี่แอมพลิจูด 10 ~ 18 ของช่องสัญญาณด้านซ้าย

รหัสจะเหมือนกับ Arduino 2 และช่องสัญญาณเสียงด้านซ้ายเชื่อมต่อกับ Arduino ที่ขาอะนาล็อก A4

ขั้นตอนที่ 6: เสร็จสิ้น

เสร็จสิ้น
เสร็จสิ้น
เสร็จสิ้น
เสร็จสิ้น
เสร็จสิ้น
เสร็จสิ้น
เสร็จสิ้น
เสร็จสิ้น

เครื่องวิเคราะห์สเปกตรัมแบบพกพานี้สามารถเชื่อมต่อโดยตรงกับแล็ปท็อป/เดสก์ท็อป โทรศัพท์มือถือ แท็บเล็ต หรือเครื่องเล่นเพลงอื่นๆ ผ่านแจ็คเสียงสเตอริโอ 3.5 มม. โครงการนี้ดูบ้า หวังว่าคุณจะชอบมัน!

ขอบคุณสำหรับการอ่านของคุณ !!!

แนะนำ: