תוכן עניינים:
וִידֵאוֹ: מנתח ספקטרום CRAZY L.O.L: 6 שלבים (עם תמונות)
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
היום ברצוני לשתף כיצד להכין מנתח ספקטרום אודיו - 36 להקות על ידי שילוב 4 מגני LoL יחד. הפרויקט המטורף הזה משתמש בספריית FFT כדי לנתח אות שמע סטריאו, להמיר אותו לתדרי תדרים ולהציג משרעת של להקות תדרים אלה על 4 x LoL Shields.
לפני שתתחיל, צפה בסרטון שלהלן:
שלב 1: דברים שאנחנו צריכים
הרכיבים האלקטרוניים העיקריים הם כדלקמן:
- 4 יחידות x Arduino Uno R3.
- 4 יחידות x PCB LoLShield. PCBWay (שירות אב טיפוס מותאם אישית מלא של תכונה מלאה) תמך בי במעגלים מודפסים אלה של LoLShield.
- 504 יחידות x LED, 3 מ"מ. כל LoLShield צריך 126 נוריות LED ואנו יכולים לבחור 4 צבעים וסוגים שונים של לד (מפוזרים או לא מפוזרים).
- 1 יחידות x סוללת בנק כוח מטען נייד 10000/20000mAh.
- 4 יחידות x כותרת זכר 40 פינים 2.54 מ"מ.
- 2 יחידות x כבל USB מסוג A/B. האחד משמש לתכנות ארדואינו, השני להפעלת הארדואינו מבנק כוח.
- 1 יחידות x 3.5 מ"מ שקע אודיו סטריאו נשי.
- 1 יחידות x 3.5 מ"מ 1 מתאם אודיו מפצל אודיו או מפצל אודיו רב אוזניות.
- 1 יחידות x 3.5 מ"מ שקע אודיו סטריאו זכר-זכר.
- 1 מ 'x 8P כבל סרט קשת.
- 1 מ 'x כבל חשמל בעל שתי ליבות.
- 1 יחידות x אקריליק שקוף, גודל A4.
שלב 2: סכמטי
LoLShield היא מטריצת LED בעלת שילוב 9x14 עבור Arduino ועיצוב זה אינו כולל נגדים מגבילים זרם. נוריות ה- LED ניתנות להתייחסות בנפרד, כך שנוכל להשתמש בה להצגת מידע במטריצת LED בגודל 9 × 14.
מגן LoL משאיר את D0 (Rx), D1 (Tx) והסיכות האנלוגיות A0 עד A5 בחינם ליישומים אחרים. התמונה למטה מציגה את השימוש בסיכות Arduino Uno לפרויקט זה:
מנתח ספקטרום האודיו שלי כולל 4 x (Arduino Uno + LoLShield). ספק הכוח ושקע אודיו הסטריאו 3.5 מ מ מחוברים לפי סכמטי להלן:
שלב 3: LOL SHIELD PCB & LED SOLDERING
1. לוח PCB SHIELD
. אתה יכול להתייחס לעיצוב PCB בכתובת: https://github.com/jprodgers/LoLshield מאת Jimmie P. Rodgers.
Ѽ. PCBWay תמך בי במעגלים המודפסים האלה של LoLShield עם אספקה מהירה ו- PCB באיכות גבוהה.
2. מכירת LED
. כל LoLShield צריך 126 נוריות ואני השתמשתי בסוגים וצבעים שונים עבור 4x LoLShields כדלקמן:
- 1 x LoLShield: לד מפוזר, צבע אדום, 3 מ"מ.
- 1 x LoLShield: לד מפוזר, צבע ירוק, 3 מ"מ.
- 2 x LoLShield: LED לא מפוזר (ברור), צבע כחול, 3 מ"מ.
. הכנת PCB ו- LED של LoLShield
Ѽ. הלחמה 126 LED על הלוח PCB של LoLShield. עלינו לבדוק את הנורות על ידי סוללה לאחר הלחמה בכל שורה - 14 נוריות
LoLSHIELD העליון
תחתון LoLSHIELD
Ѽ. מסיימים LoLShield אחד וממשיכים להלחם 3 LoLShield שנותרו.
שלב 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:" HIGH "(5V)," LOW "(0V) ו-" INPUT ". מצב "INPUT" מכניס את סיכת הארדואינו למצב עכבה גבוהה. הפניה ב:
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).
for (int x = 0; x <14; x ++) {for (int y = 0; y <9; y ++) {if (x <Real_Number [y]) // הצג רצועות תדרים 01 עד 09 {LedSign:: Set (13-x, 8-y, 1); // LED ON} else {LedSign:: Set (13-x, 8-y, 0); // הוביל את } } }
. Arduino 2 - הצגת רצועות תדר משרעת 10 ~ 18 של הערוץ הימני (A5).
for (int x = 0; x <14; x ++) {for (int y = 0; y <9; y ++) {if (x <Real_Number [9+y]) // הצג רצועות תדרים 10 עד 18 {LedSign:: סט (13-x, 8-y, 1); // LED ON} else {LedSign:: Set (13-x, 8-y, 0); // הוביל את } } }
. Arduino 3 - הצגת להקות תדר משרעת 01 ~ 09 של הערוץ השמאלי (A4).
הקוד זהה ל- Arduino 1 ואות השמע של הערוץ השמאלי מתחברים ל- Arduino בפין אנלוגי A4.
. Arduino 4 - הצגת להקות תדר משרעת 10 ~ 18 של הערוץ השמאלי.
הקוד זהה ל- Arduino 2 ואות השמע של הערוץ השמאלי מתחברים ל- Arduino בפין אנלוגי A4.
שלב 6: סיום
מנתח ספקטרום נייד זה יכול להתחבר ישירות למחשב נייד/ שולחן עבודה, טלפון נייד, טאבלט או נגני מוזיקה אחרים באמצעות שקע שמע סטריאו 3.5 מ מ. הפרויקט נראה מטורף, אני מקווה שתאהבו אותו!
תודה שקראתם !!!