Πίνακας περιεχομένων:

Οπτικοποιητής ήχου RGB LED χωρίς δυνατότητα διεύθυνσης: 6 βήματα (με εικόνες)
Οπτικοποιητής ήχου RGB LED χωρίς δυνατότητα διεύθυνσης: 6 βήματα (με εικόνες)

Βίντεο: Οπτικοποιητής ήχου RGB LED χωρίς δυνατότητα διεύθυνσης: 6 βήματα (με εικόνες)

Βίντεο: Οπτικοποιητής ήχου RGB LED χωρίς δυνατότητα διεύθυνσης: 6 βήματα (με εικόνες)
Βίντεο: GOOGLE NEST HUB - L'ORECCHIO-MAGGIORDOMO PER INTERNET AMATO DAGLI AMANTI DEL DIVANO ....E NON ;) 2024, Ιούλιος
Anonim
Image
Image

Είχα μια ταινία 12v RGB LED γύρω από το ντουλάπι της τηλεόρασής μου για λίγο και ελέγχεται από ένα βαρετό πρόγραμμα οδήγησης LED που μου επιτρέπει να επιλέξω ένα από τα 16 προ-προγραμματισμένα χρώματα!

Ακούω πολλή μουσική που μου δίνει κίνητρο αλλά ο φωτισμός απλά δεν μου φτιάχνει τη διάθεση. Για να το διορθώσω, αποφάσισα να πάρω το ηχητικό σήμα που δόθηκε στο ηχείο μου μέσω AUX (υποδοχή 3,5 mm), επεξεργαστείτε το και ελέγξτε ανάλογα τη λωρίδα RGB.

Οι λυχνίες LED αντιδρούν στη μουσική με βάση το μέγεθος των συχνοτήτων μπάσου (χαμηλή), πρίμα (μεσαία) και υψηλή.

Το εύρος συχνοτήτων - το χρώμα έχει ως εξής:

Χαμηλό - Κόκκινο

Μεσαίο - πράσινο

Υψηλό - Μπλε

Αυτό το έργο περιλαμβάνει πολλά πράγματα DIY επειδή ολόκληρο το κύκλωμα χτίστηκε από την αρχή. Αυτό θα πρέπει να είναι πολύ εύκολο εάν το τοποθετείτε σε ένα breadboard, αλλά είναι δύσκολο να το κολλήσετε σε ένα PCB.

Προμήθειες

(x1) Λωρίδα LED RGB

(x1) Arduino Uno/Nano (συνιστάται Mega)

(x1) TL072 ή TL082 (τα TL081/TL071 είναι επίσης καλά)

(x3) TIP120 NPN Transistor (TIP121, TIP122 ή N-Channel MOSFET όπως IRF540, IRF 530 είναι επίσης καλά)

(x1) γραμμικό ποτενσιόμετρο 10kOhm

(x3) 100kOhm αντιστάσεις 1/4watt

(x1) ηλεκτρολυτικός πυκνωτής 10uF

(x1) κεραμικός πυκνωτής 47nF

(x2) Υποδοχή ήχου 3,5 mm - Γυναικείο

(x2) μπαταρία 9V

(x2) Υποδοχή ασφάλισης μπαταρίας 9V

Βήμα 1: Κατανόηση των τύπων λωρίδων LED RGB

Κατανόηση των τύπων λωρίδων LED RGB
Κατανόηση των τύπων λωρίδων LED RGB

Υπάρχουν δύο βασικά είδη λωρίδων LED, το είδος "αναλογικού" και "ψηφιακού".

Οι ταινίες αναλογικού τύπου (εικ. 1) έχουν όλα τα LED συνδεδεμένα παράλληλα και έτσι λειτουργεί σαν ένα τεράστιο LED τριών χρωμάτων. Μπορείτε να ρυθμίσετε ολόκληρη τη λωρίδα σε οποιοδήποτε χρώμα θέλετε, αλλά δεν μπορείτε να ελέγξετε τα χρώματα των μεμονωμένων LED. Είναι πολύ εύχρηστα και αρκετά φθηνά.

Οι λωρίδες ψηφιακού τύπου (εικ. 2) λειτουργούν με διαφορετικό τρόπο. Έχουν ένα τσιπ για κάθε LED, για να χρησιμοποιήσετε τη λωρίδα πρέπει να στείλετε ψηφιακά κωδικοποιημένα δεδομένα στα τσιπ. Ωστόσο, αυτό σημαίνει ότι μπορείτε να ελέγχετε κάθε LED ξεχωριστά! Λόγω της επιπλέον πολυπλοκότητας του τσιπ, είναι πιο ακριβά.

Εάν δυσκολεύεστε να προσδιορίσετε φυσικά τις διαφορές μεταξύ των ταινιών αναλογικού και ψηφιακού τύπου,

  1. Χρησιμοποιήστε τύπο Anolog 4 ακίδες, 1 κοινή θετική και 3 αρνητικές, δηλαδή μία για κάθε χρώμα RGB.
  2. Digitalηφιακού τύπου χρήση 3 ακίδων, θετικών, δεδομένων και γείωσης.

Θα χρησιμοποιήσω λωρίδες αναλογικού τύπου, γιατί

  1. Υπάρχουν πολύ λίγα έως καθόλου Instructables που διδάσκουν πώς να φτιάχνετε μια μουσική αντιδραστική λωρίδα τύπου. Η πλειοψηφία τους επικεντρώνεται στον ψηφιακό τύπο και είναι ευκολότερο να τους κάνει να αντιδρούν στη μουσική.
  2. Είχα μερικές λωρίδες αναλογικού τύπου ξαπλωμένες.

Βήμα 2: Ενίσχυση του ηχητικού σήματος

Ενίσχυση του ηχητικού σήματος
Ενίσχυση του ηχητικού σήματος
Ενίσχυση του ηχητικού σήματος
Ενίσχυση του ηχητικού σήματος
Ενίσχυση του ηχητικού σήματος
Ενίσχυση του ηχητικού σήματος

Το ηχητικό σήμα που αποστέλλεται μέσω της υποδοχής ήχου είναι

ένα αναλογικό σήμα που ταλαντεύεται εντός +200mV και -200mV. Τώρα αυτό είναι ένα πρόβλημα, επειδή θέλουμε να μετρήσουμε το ηχητικό σήμα με μία από τις αναλογικές εισόδους του Arduino, επειδή οι αναλογικές εισόδους του Arduino μπορούν να μετρήσουν μόνο τάσεις μεταξύ 0 και 5V. Αν προσπαθούσαμε να μετρήσουμε τις αρνητικές τάσεις στο ηχητικό σήμα από, το Arduino θα διάβαζε μόνο 0V και θα καταλήγαμε να κόβουμε το κάτω μέρος του σήματος.

Για να το λύσουμε πρέπει να ενισχύσουμε και να αντισταθμίσουμε τα ηχητικά σήματα έτσι ώστε να εμπίπτουν σε μια περιοχή 0-5V. Ιδανικά, το σήμα πρέπει να έχει πλάτος 2,5V που ταλαντεύεται γύρω στα 2,5V έτσι ώστε η ελάχιστη τάση του να είναι 0V και η μέγιστη τάση του να είναι 5V.

Ενίσχυση

Ο ενισχυτής είναι το πρώτο βήμα στο κύκλωμα, αυξάνει το πλάτος του σήματος από περίπου + ή - 200mV σε + ή - 2,5V (ιδανικά). Η άλλη λειτουργία του ενισχυτή είναι να προστατεύει την πηγή ήχου (το πράγμα που δημιουργεί το ηχητικό σήμα στην πρώτη θέση) από το υπόλοιπο κύκλωμα. Το εξερχόμενο ενισχυμένο σήμα θα εξάγει όλο το ρεύμα από τον ενισχυτή, οπότε τυχόν φορτίο που θα τεθεί σε αυτό αργότερα στο κύκλωμα δεν θα "γίνει αισθητό" από την πηγή ήχου (το τηλέφωνο/iPod/laptop στην περίπτωσή μου). Κάντε αυτό ρυθμίζοντας έναν από τους ενισχυτές στο πακέτο TL072 ή TL082 (εικ. 2) σε διαμόρφωση ενισχυτή που δεν αντιστρέφεται.

Το φύλλο δεδομένων του TL072 ή του TL082 λέει ότι πρέπει να τροφοδοτείται με +15 και -15V, αλλά δεδομένου ότι το σήμα δεν θα ενισχυθεί ποτέ πάνω από + ή -2,5V, είναι καλό να τρέχετε το op -amp με κάτι χαμηλότερο. Χρησιμοποίησα δύο ενσύρματες μπαταρίες εννέα βολτ για να δημιουργήσω ένα τροφοδοτικό + ή - 9V.

Συνδέστε το +V (pin 8) και –V (pin 4) στο op-amp. Συνδέστε το σήμα από τη μονοφωνική υποδοχή στη μη αναστρέψιμη είσοδο (ακροδέκτης 3) και συνδέστε τη γείωση του βύσματος στην αναφορά 0V στην παροχή τάσης (για μένα αυτή ήταν η διασταύρωση μεταξύ των δύο μπαταριών 9V σε σειρά). Συνδέστε μια αντίσταση 100kOhm μεταξύ της εξόδου (ακίδα 1) και της αναστροφής εισόδου (ακίδα 2) του op-amp. Σε αυτό το κύκλωμα, χρησιμοποίησα ένα ποτενσιόμετρο 10kOhm ενσύρματο ως μεταβλητή αντίσταση για να προσαρμόσω το κέρδος (το ποσό που ενισχύει ο ενισχυτής) του μη αναστρέψιμου ενισχυτή μου. Συνδέστε αυτό το γραμμικό κωνικό δοχείο 10Κ μεταξύ της αναστροφής εισόδου και της αναφοράς 0V.

DC Offset

Το κύκλωμα μετατόπισης DC έχει δύο κύρια στοιχεία: ένα διαχωριστή τάσης και έναν πυκνωτή. Ο διαχωριστής τάσης είναι κατασκευασμένος από δύο αντιστάσεις 100k ενσύρματες σε σειρά από την τροφοδοσία 5V του Arduino στη γείωση. Δεδομένου ότι οι αντιστάσεις έχουν την ίδια αντίσταση, η τάση στη διασταύρωση μεταξύ τους είναι 2,5V. Αυτός ο σύνδεσμος 2,5V συνδέεται με την έξοδο του ενισχυτή μέσω ενός πυκνωτή 10uF. Καθώς η τάση στην πλευρά του ενισχυτή του πυκνωτή ανεβαίνει και πέφτει, προκαλεί στιγμιαία συσσώρευση φορτίου και απόκρουση από την πλευρά του πυκνωτή που συνδέεται με τη διασταύρωση 2.5V. Αυτό αναγκάζει την τάση στη διασταύρωση 2,5V να ταλαντεύεται πάνω και κάτω, με κέντρο περίπου 2,5V.

Όπως φαίνεται στο σχήμα, συνδέστε το αρνητικό καλώδιο ενός πυκνωτή 10uF στην έξοδο από τον ενισχυτή. Συνδέστε την άλλη πλευρά του καλύμματος στη διασταύρωση μεταξύ δύο αντιστάσεων 100k ενσύρματων σε σειρά μεταξύ 5V και γείωσης. Επίσης, προσθέστε έναν πυκνωτή 47nF από 2,5V στη γείωση.

Βήμα 3: Αποσύνθεση του σήματος σε άθροισμα στατικών ημιτονοειδών - Θεωρία

Αποσύνθεση του σήματος σε άθροισμα στατικών ημιτονοειδών - Θεωρία
Αποσύνθεση του σήματος σε άθροισμα στατικών ημιτονοειδών - Θεωρία

Το ηχητικό σήμα που αποστέλλεται μέσω οποιασδήποτε υποδοχής 3,5 mm βρίσκεται στο

εύρος 20 Hz έως 20 kHz. Δειγματοληψία στα 44,1 kHz και κάθε δείγμα κωδικοποιείται σε 16 bits.

Για να αποδομήσουμε τις βασικές στοιχειακές συχνότητες που απαρτίζουν το ηχητικό σήμα, εφαρμόζουμε Fourier Transform στο σήμα, το οποίο αποσυνθέτει το σήμα σε άθροισμα ακίνητων ημιτονοειδών. Με άλλα λόγια, η ανάλυση Fourier μετατρέπει ένα σήμα από τον αρχικό τομέα (συχνά χρόνο ή χώρο) σε αναπαράσταση στον τομέα συχνοτήτων και αντίστροφα. Αλλά ο υπολογισμός του απευθείας από τον ορισμό είναι συχνά πολύ αργός για να είναι πρακτικός.

Τα σχήματα δείχνουν πώς φαίνεται το σήμα στον τομέα του χρόνου και της συχνότητας.

Αυτό είναι όπου ο αλγόριθμος Fast Fourier Transform (FFT) είναι αρκετά χρήσιμος!

Εξ ορισμού, Ένα FFT υπολογίζει γρήγορα τέτοιους μετασχηματισμούς παραγοντοποιώντας τη μήτρα DFT σε προϊόν αραιών (κυρίως μηδενικών) παραγόντων. Ως αποτέλεσμα, καταφέρνει να μειώσει την πολυπλοκότητα του υπολογισμού του DFT από το O (N2), το οποίο προκύπτει εάν κάποιος απλώς εφαρμόσει τον ορισμό του DFT, στο O (N log N), όπου N είναι το μέγεθος των δεδομένων. Η διαφορά στην ταχύτητα μπορεί να είναι τεράστια, ειδικά για μεγάλα σύνολα δεδομένων όπου το Ν μπορεί να είναι χιλιάδες ή εκατομμύρια. Παρουσία σφάλματος στρογγυλοποίησης, πολλοί αλγόριθμοι FFT είναι πολύ πιο ακριβείς από την αξιολόγηση του ορισμού DFT άμεσα ή έμμεσα.

Με απλά λόγια, σημαίνει απλώς ότι ο αλγόριθμος FFT είναι ένας γρηγορότερος τρόπος υπολογισμού του μετασχηματισμού Fourier οποιουδήποτε σήματος. Αυτό χρησιμοποιείται γενικά σε συσκευές με χαμηλή υπολογιστική ισχύ.

Συνιστάται: