Πίνακας περιεχομένων:
Βίντεο: CRAZY L.O.L SPECTRUM ANALYZER: 6 βήματα (με εικόνες)
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Σήμερα θα ήθελα να μοιραστώ πώς να φτιάξετε έναν αναλυτή φάσματος ήχου - 36 μπάντες συνδυάζοντας 4 LoL Shields μαζί. Αυτό το τρελό έργο χρησιμοποιεί μια βιβλιοθήκη FFT για να αναλύσει ένα στερεοφωνικό σήμα ήχου, να το μετατρέψει σε ζώνες συχνοτήτων και να εμφανίσει το εύρος αυτών των ζωνών συχνοτήτων σε 4 x LoL Shields.
Πριν ξεκινήσετε, δείτε το παρακάτω βίντεο:
Βήμα 1: ΠΡΑΓΜΑΤΑ ΠΟΥ ΧΡΕΙΑΖΟΜΑΣΤΕ
Τα κύρια ηλεκτρονικά εξαρτήματα είναι τα παρακάτω:
- 4 τεμ x Arduino Uno R3.
- 4 τεμάχια PCB LoLShield. Το PCBWay (πλήρης λειτουργία προσαρμοσμένης υπηρεσίας πρωτότυπου PCB) με υποστήριξε αυτούς τους πίνακες τυπωμένων κυκλωμάτων LoLShield.
- 504τεμ x LED, 3mm. Κάθε LoLShield χρειάζεται 126 LED και μπορούμε να επιλέξουμε 4 διαφορετικά χρώματα και τύπους led (διάχυτα ή μη).
- 1τεμ x Φορητός φορτιστής Power Bank Μπαταρία 10000/20000mAh.
- 4τεμ x Ανδρική κεφαλίδα 40pin 2,54mm.
- 2 τεμάχια καλώδιο USB τύπου A/B. Το ένα χρησιμοποιείται για προγραμματισμό Arduino, το άλλο είναι για τροφοδοσία του Arduino από μια τράπεζα ισχύος.
- Στερεοφωνικό βύσμα ήχου 1 τεμ x 3.5mm.
- 1τεμ x 3,5mm 1 ανδρικός έως 2 θηλυκός προσαρμογέας ήχου ή διαχωριστής ήχου πολλαπλών ακουστικών.
- Καλώδιο σύνδεσης στερεοφωνικού βύσματος στερεοφωνικού ήχου 3,5 x 3,5 mm.
- Καλώδιο κορδέλας Rainbow 1m x 8P.
- 1m x Καλώδιο τροφοδοσίας δύο πυρήνων.
- 1 τεμ x Διαφανές ακρυλικό, μέγεθος Α4.
Βήμα 2: ΣΧΗΜΑΤΙΚΟ
Το LoLShield είναι μια μήτρα LED 9x14 charlieplexing για το Arduino και αυτός ο σχεδιασμός ΔΕΝ περιλαμβάνει καμία αντίσταση περιορισμού ρεύματος. Οι λυχνίες LED μπορούν να διευθυνσιοδοτηθούν ξεχωριστά, οπότε μπορούμε να τις χρησιμοποιήσουμε για να εμφανίσουμε πληροφορίες σε έναν πίνακα led 9 × 14.
Το LoL Shield αφήνει D0 (Rx), D1 (Tx) και αναλογικούς πείρους A0 έως A5 δωρεάν για άλλες εφαρμογές. Η παρακάτω εικόνα δείχνει τη χρήση καρφιτσών Arduino Uno για αυτό το έργο:
Ο αναλυτής φάσματος ήχου μου έχει 4 x (Arduino Uno + LoLShield). Το τροφοδοτικό και η στερεοφωνική υποδοχή ήχου 3,5 mm συνδέονται όπως παρακάτω:
Βήμα 3: LOL SHIELD PCB & LED SOLDERING
1. LoL SHIELD PCB
. Μπορείτε να ανατρέξετε στον σχεδιασμό PCB στη διεύθυνση: https://github.com/jprodgers/LoLshield από τον Jimmie P. Rodgers.
. Το PCBWay με υποστήριξε αυτούς τους πίνακες τυπωμένων κυκλωμάτων LoLShield με γρήγορη παράδοση και υψηλής ποιότητας PCB.
2. ΣΥΛΛΟΓΗ LED
. Κάθε LoLShield χρειάζεται 126 led και χρησιμοποίησα διαφορετικά είδη & χρώματα για 4x LoLShields ως εξής:
- 1 x LoLShield: διάχυτο led, κόκκινο χρώμα, 3mm.
- 1 x LoLShield: διάχυτο led, πράσινο χρώμα, 3mm.
- 2 x LoLShield: μη διάχυτο (διαυγές) led, μπλε χρώμα, 3mm.
. Προετοιμασία LoLShield PCB και LED
. Συγκόλληση 126 LED σε PCB LoLShield. Πρέπει να ελέγξουμε τα LED με μπαταρία μετά τη συγκόλληση κάθε σειράς - 14 LED
TOP 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". Η λειτουργία "ΕΙΣΟΔΟΣ" θέτει τον πείρο 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; Φανταστικός_αριθμός = 0; } fix_fft (Real_Number, Imaginary_Number, 6, 0); // Εκτέλεση γρήγορου μετασχηματισμού Fourier με 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} else {LedSign:: Set (13-x, 8-y, 0); // LED OFF}}}
. 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:: Σετ (13-x, 8-y, 1); // LED ON} else {LedSign:: Set (13-x, 8-y, 0); // LED OFF}}}
. Arduino 3 - Εμφάνιση ζωνών συχνοτήτων εύρους 01 ~ 09 του αριστερού καναλιού (Α4).
Ο κωδικός είναι ίδιος με το Arduino 1 και το ηχητικό σήμα αφήνει το αριστερό κανάλι να συνδεθεί με το Arduino στην αναλογική ακίδα A4.
. Arduino 4 - Εμφάνιση ζωνών συχνοτήτων πλάτους 10 ~ 18 του αριστερού καναλιού.
Ο κώδικας είναι ίδιος με το Arduino 2 και το σήμα ήχου αφήνει το αριστερό κανάλι να συνδεθεί στο Arduino στην αναλογική ακίδα Α4.
Βήμα 6: ΤΕΛΟΣ
Αυτός ο φορητός αναλυτής φάσματος μπορεί να συνδεθεί απευθείας σε φορητό υπολογιστή/ επιτραπέζιο υπολογιστή, κινητό τηλέφωνο, tablet ή άλλη συσκευή αναπαραγωγής μουσικής μέσω της στερεοφωνικής υποδοχής ήχου 3,5 mm. Αυτό το έργο φαίνεται τρελό, ελπίζω να σας αρέσει!
Ευχαριστώ για την ανάγνωση !!!