Πίνακας περιεχομένων:
- Βήμα 1: Εξαρτήματα που χρησιμοποιούνται
- Βήμα 2: Παρακολούθηση φακέλου
- Βήμα 3: PWM για τον Αναλογικό μετρητή
- Βήμα 4: Βαθμονόμηση μικροφώνου
- Βήμα 5: Εφαρμογή Android
- Βήμα 6: Περίληψη
Βίντεο: Αναλογικός μετρητής VU με δυνατότητα Bluetooth: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Αυτό ήταν το πρότζεκτ μου για ένα από τα πανεπιστημιακά μου μαθήματα που ονομάζεται SMP. Καθώς χρησιμοποιούσαμε τον πίνακα ανάπτυξης STM32F103RB, έθεσα το έργο μου σε αυτό, ξεκινώντας από έναν απλό μετρητή VU. Στη συνέχεια πρόσθεσα μερικές επιπλέον δυνατότητες, όπως υποστήριξη Bluetooth, για να μεταδώσετε τιμές από το ADC σε μια εφαρμογή Android για να δημιουργήσετε ένα απλό γράφημα dB.
Βήμα 1: Εξαρτήματα που χρησιμοποιούνται
- Πίνακας ανάπτυξης STM32F103RB
- Μονάδα bluetooth HC-05 zs040
- Αναλογικός πίνακας μετρητή VU (σύνδεσμος)
- Ηλεκτρικό μικρόφωνο
- Τετραπλός ενισχυτής LM324N
- 2 τρανζίστορ TIP120
- 3 διόδους 1N4148
- Διάφοροι πυκνωτές και αντιστάσεις
Αν και μπορείτε να απομακρύνετε αυτό το κύκλωμα από τη ράγα 5V του σκάφους, χρησιμοποίησα επίσης μια εξωτερική τροφοδοσία 5V.
Βήμα 2: Παρακολούθηση φακέλου
Το κύριο κομμάτι αυτού του σχεδίου είναι ο ακόλουθος φακέλου που παίρνει το σήμα από το μικρόφωνο ηλεκτρικού και εξάγει μια τάση ανάλογη του πλάτους σήματος του μικροφώνου.
Το ακατέργαστο σήμα από το μικρόφωνο περνάει πρώτα από έναν ενισχυτή με κέρδος 150.
Το σήμα στη συνέχεια περνάει μέσα από τον πραγματικό ακόλουθο φακέλου, ο οποίος πρέπει να εξάγει μόνο τα θετικά μέρη σήματος.
Το τελευταίο μέρος αφαιρεί την τάση μετατόπισης 1,65V από την έξοδο του φακέλου που παρέχει σήμα 0 V χωρίς ήχο, 1,65 V για μεσαίο ήχο και 3,3 V για δυνατό ήχο που θα πρέπει να είναι συμβατό με το ενσωματωμένο ADC του πίνακα.
Αυτός ο ακόλουθος φακέλου υλοποιείται από αυτήν τη μεγάλη απάντηση StackExchange.
Βήμα 3: PWM για τον Αναλογικό μετρητή
Για να ξεκινήσει η βελόνα του μετρητή, έχω ρυθμίσει το χρονόμετρο TIM4 της πλακέτας μικροελεγκτή με συχνότητα περίπου 500 Hz.
Δοκιμάζοντας διαδοχικά διαφορετικούς κύκλους καθηκόντων, τακτοποιήθηκα με μερικές τιμές που ήταν αρκετές για να φτάσει η βελόνα από το 0 στο 100.
Θα αναλύσω λεπτομερώς τη διαδικασία εμφάνισης μιας ακριβούς τιμής στο επόμενο βήμα εφαρμόζοντας κάποια μαθηματικά.
Βήμα 4: Βαθμονόμηση μικροφώνου
Έχοντας κάνει τον ακόλουθο φακέλου, έγραψα στη συνέχεια έναν απλό κώδικα για να χρησιμοποιήσω το ADC και εξακρίβωσα ότι η τιμή ανάγνωσης αλλάζει πράγματι ανάλογα με την ένταση στο δωμάτιο.
Για να "μεταφράσω" αυτήν την τιμή σε πραγματική ανάγνωση dB, χρησιμοποίησα μια ηλεκτρονική γεννήτρια τόνων με συχνότητα 550 Hz και το Android μου για να παράσχω μια ένδειξη αναφοράς.
Έχω σχεδιάσει αυτές τις τιμές και χρησιμοποίησα το Εργαλείο καμπύλης προσαρμογής του MatLAB για να αποκτήσω μια λειτουργία που αντιστοιχίζει τις αναγνώσεις ADC στις πραγματικές προσεγγίσεις των επιπέδων dB (ή τουλάχιστον αρκετά κοντά στις αναγνώσεις του τηλεφώνου μου).
Μπορούμε να δούμε ότι αυτό ακολουθεί τη λογαριθμική κλίμακα του μικροφώνου.
Έκανα επίσης το ίδιο πράγμα για να αντιστοιχίσω τη θέση της βελόνας στις τιμές PWM. Συγκέντρωσα αυτές τις τιμές αυξάνοντας την τιμή PWM κατά 10 διαδοχικά έως ότου η ανάγκη χτύπησε την ανάγνωση στην κλίμακα του.
Συνδυάζοντας αυτές τις δύο λειτουργίες, είχα έναν εύκολο τρόπο να εμφανίσω την ένδειξη από το ADC σε μια πραγματική τιμή στην ένδειξη μετρητή.
Βήμα 5: Εφαρμογή Android
Η εφαρμογή χρησιμοποιεί αυτήν τη δροσερή βιβλιοθήκη για να επικοινωνεί μέσω σειριακού Bluetooth για να ανταλλάσσει πληροφορίες byte.
Η κύρια προειδοποίηση αυτού του συστήματος είναι ότι το μέγιστο μήκος λέξης που αποστέλλεται μέσω Bluetooth είναι 8 bit και η τιμή ADC αντιπροσωπεύεται ως 12 bits. Για να ξεπεράσω αυτό το ζήτημα, χώρισα μία τιμή ADC σε 2 ξεχωριστές τιμές 6 bit (MSB και LSB) με τα υπόλοιπα 2 bits να χρησιμοποιούνται για τον προσδιορισμό του τύπου μηνύματος (MSB, LSB, CHK).
Επομένως, για μια μόνο τιμή ADC που θέλουμε να μεταδώσουμε, χωρίζουμε την πραγματική τιμή σε 2 μηνύματα. Για να ελέγξω την ακεραιότητα αυτών των μηνυμάτων, έστειλα ένα τρίτο μήνυμα με το XOR των 2 πρώτων μηνυμάτων.
Αφού ελεγχθεί η ακεραιότητα της τιμής, μπορούμε να εφαρμόσουμε την ίδια συνάρτηση για να πάρουμε το επίπεδο dB και να το σχεδιάσουμε στο ζωντανό μας γράφημα.
Βήμα 6: Περίληψη
Ενώ εγώ το τμήμα μικρο-ελεγκτή αυτού του έργου λειτουργεί αρκετά καλά εμφανίζοντας την ένταση μέσα σε ένα δωμάτιο, αντιμετώπισα ορισμένα προβλήματα κατά την αποστολή δεδομένων μέσω Bluetooth λόγω απώλειας πακέτων.
Ο πηγαίος κώδικας για αυτό το έργο μπορεί να βρεθεί εδώ:
- Συντροφική εφαρμογή Android - repo
- Κωδικός μικροελεγκτή - repo
Μη διστάσετε να συνεισφέρετε εάν το θεωρείτε χρήσιμο με οποιονδήποτε τρόπο.
Συνιστάται:
TR 808 Bass Drum. Αναλογικός ήχος!: 5 βήματα (με εικόνες)
TR 808 Bass Drum. Αναλογικός oundχος !: Αναλογικός ήχος από την κλασική μηχανή ντραμς. Αυτό το έργο χρονολογείται στα τέλη της δεκαετίας του '90 όταν δούλευα ως τεχνικός ηλεκτρονικών και συνήθως παίρναμε μια ποικιλία σχημάτων για μια τιμή. Το TR 808 ήταν σε αυτά τα σχήματα και σε εκείνο το σημείο όμως
Απλός μετρητής πυκνωτή Autorange / μετρητής χωρητικότητας με Arduino και στο χέρι: 4 βήματα
Απλός μετρητής πυκνωτή Autorange / μετρητής χωρητικότητας με Arduino και στο χέρι: Γεια! Για αυτήν τη μονάδα φυσικής χρειάζεστε:* τροφοδοτικό με 0-12V* έναν ή περισσότερους πυκνωτές* μία ή περισσότερες αντιστάσεις φόρτισης* χρονόμετρο* πολύμετρο τάσης μέτρηση* arduino nano* οθόνη 16x2 I²C* αντιστάσεις 1 / 4W με 220, 10k, 4.7M και
Αναλογικός ενισχυτής 8 καναλιών για υπολογιστή ή οικιακό θέατρο: 12 βήματα (με εικόνες)
Αναλογικός ενισχυτής 8 καναλιών για υπολογιστή ή HomeTheater: Αυτό είναι το πρώτο μου οδηγό. Θα σας μάθω πώς να φτιάχνετε έναν ενισχυτή 8 καναλιών για έναν υπολογιστή ή ένα ηχοσύστημα με ξεχωριστές αναλογικές εξόδους, το έχω χρησιμοποιήσει για τον επιτραπέζιο υπολογιστή μου, για να παρακολουθήσω ταινίες, να ακούσω μουσική HD και να παίξω παιχνίδια, επιπλέον
Πλανητάριο/Orrery με δυνατότητα Bluetooth: 13 βήματα (με εικόνες)
Πλανητάριο/Orrery με Bluetooth Ξεκίνησε ως ένα έργο εξάμηνο για το Makecour
Αναλογικός μετρητής θερμοκρασίας: 4 βήματα
Αναλογικός μετρητής θερμοκρασίας: Αυτή η αναλογική θερμοκρασία δημιουργήθηκε από μένα για να αγαπήσω εκείνες τις μέρες που βλέπαμε μόνο αναλογικά gadgets τις μέρες που ζούσαν οι παππούδες μας. Βλέπουμε μόνο ψηφιακά σήμερα …. γι 'αυτό δημιούργησα αυτήν την αναλογική θερμοκρασία που είναι πολύ καλή για αρχάριους και