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

PAB: ένα προσωπικό κουτί ήχου: 5 βήματα
PAB: ένα προσωπικό κουτί ήχου: 5 βήματα

Βίντεο: PAB: ένα προσωπικό κουτί ήχου: 5 βήματα

Βίντεο: PAB: ένα προσωπικό κουτί ήχου: 5 βήματα
Βίντεο: ΜΟΥ ΕΠΕΣΕ ΤΟ ΣΑΓΟΝΙ ΜΟΛΙΣ ΕΙΔΑ ΤΗ JOSEPHINE 2024, Νοέμβριος
Anonim
PAB: ένα προσωπικό κουτί ήχου
PAB: ένα προσωπικό κουτί ήχου

Η ιδέα για αυτό το έργο γεννήθηκε από την ανάγκη να γδάρουν τα τρία μεγάλα στοιχεία του συστήματος HiFi, τα οποία είχαν φτάσει πλέον στο τέλος της ζωής τους. Επιπλέον, χρειαζόμουν περισσότερο χώρο στο ράφι για άλλα αντικείμενα, οπότε βρήκα την ευκαιρία να αρχίσω να σπουδάζω σε ένα Personal Audio Box για να αντικαταστήσω όλες τις λειτουργίες των τριών vintage «γίγαντες».

Ένα Raspberry Pi3B+ φάνηκε να είναι η καλύτερη επιλογή για αυτούς τους λόγους:

  • Μικρός συντελεστής μορφής και χαμηλή κατανάλωση ενέργειας.
  • Έξοδος PCM ήχου με αποδεκτή ποιότητα.
  • Διαθεσιμότητα του mopidy, ενός επεκτάσιμου διακομιστή μουσικής που εφαρμόζει πρωτόκολλο mpd.
  • Υψηλή ενσωμάτωση πηγών: τοπική μουσική, CDROM, ραδιοφωνικές ροές, Spotify, Tunein κ.λπ.

Ενσωματώνοντάς το με λίγα άλλα στοιχεία, μπόρεσα να δημιουργήσω ένα πλήρες και ακέφαλο σύστημα, ικανό να παίζει μουσική από CD, τοπικά αρχεία, διαδικτυακό ραδιόφωνο, λίστες αναπαραγωγής Spotify, podcast. Και με τη χρήση ενός προσώπου, μπορώ τώρα να διαχειριστώ όλη τη λειτουργία του από οποιαδήποτε συσκευή συνδεδεμένη στο LAN (smartphone, υπολογιστής, tablet).

Προμήθειες

  • Βατόμουρο PI3B+
  • Μια παλιά θήκη DVD
  • CDROM αναγνώστη
  • Τροφοδοτικό 5v-5A
  • Υπερπυκνωτές
  • Διάφορα εξαρτήματα (τρανζίστορ, LED, ρελέ, Op-Amp): δείτε λεπτομέρειες έργου

Βήμα 1: Περίπτωση και διάταξη στοιχείων

Περίπτωση και διάταξη στοιχείων
Περίπτωση και διάταξη στοιχείων
Περίπτωση και διάταξη στοιχείων
Περίπτωση και διάταξη στοιχείων
Περίπτωση και διάταξη στοιχείων
Περίπτωση και διάταξη στοιχείων
Περίπτωση και διάταξη στοιχείων
Περίπτωση και διάταξη στοιχείων

Το πρώτο πρόβλημα που αντιμετώπισα ήταν η επιλογή και η εύρεση μιας κατάλληλης θήκης. Βρίσκοντας τίποτα στο σπίτι, βρήκα αυτό το φτηνό DVD player στο Amazon για μερικά δολάρια, αλλά οτιδήποτε παρόμοιο θα είναι αρκετά καλό. Η θήκη έχει αυτές τις διαστάσεις: 27cm x 20cm x 3.5cm.

Αφαίρεσα εντελώς όλο το περιεχόμενο, διατηρώντας μόνο τη μικρή πλακέτα για τη διαχείριση της μπροστινής λυχνίας LED, το κουμπί λειτουργίας και την είσοδο USB. Στη συνέχεια, σχεδίασα την εσωτερική διάταξη για τα νέα εξαρτήματα (βλέπε εικόνα).

Βήμα 2: Ο διακόπτης Audio Stereo Sensing

Διακόπτης στερεοφωνικής ανίχνευσης ήχου
Διακόπτης στερεοφωνικής ανίχνευσης ήχου
Διακόπτης στερεοφωνικής ανίχνευσης ήχου
Διακόπτης στερεοφωνικής ανίχνευσης ήχου
Διακόπτης στερεοφωνικής ανίχνευσης ήχου
Διακόπτης στερεοφωνικής ανίχνευσης ήχου

Γιατί ένας αυτόματος διακόπτης ήχου; Η ανάγκη προκύπτει από το γεγονός ότι ακούω συχνά τηλεόραση μέσω του ενισχυτή HiFi, αλλά δεν ήθελα να επιλέγω κάθε φορά τον διακόπτη πηγής στον ενισχυτή. Με αυτό το κύκλωμα, η είσοδος του ενισχυτή είναι πάντα η ίδια και η πηγή επιλέγεται αυτόματα από το διακόπτη στερεοφωνικής ανίχνευσης ήχου.

Το σχήμα είναι απλό. Όταν το PAB δεν παίζει, η πηγή ήχου στο HiFi προέρχεται από την τηλεόραση. Εάν το PAB παίζει, το ρελέ επιλέγει ήχο από το Raspberry.

Βήμα 3: Το κουτί υπερ-πυκνωτών

Το κουτί υπερ-πυκνωτών
Το κουτί υπερ-πυκνωτών
Το κουτί υπερπυκνωτών
Το κουτί υπερπυκνωτών

Όπως είναι γνωστό, μια ξαφνική διακοπή της τροφοδοσίας στο Raspberry προκαλεί την άμεση διακοπή λειτουργίας χωρίς την εκτέλεση της διαδικασίας τερματισμού, κινδυνεύοντας να θέσει σε κίνδυνο το λειτουργικό σύστημα και συνεπώς τη συνολική λειτουργικότητά του. Ένας υπερπυκνωτής διαφέρει από έναν παραδοσιακό πυκνωτή σε δύο βασικά χαρακτηριστικά: οι πλάκες του έχουν πραγματικά μεγαλύτερη επιφάνεια και η απόσταση μεταξύ τους είναι πολύ μικρότερη, καθώς ο παρεμβαλλόμενος μονωτής λειτουργεί διαφορετικά από ένα συμβατικό διηλεκτρικό. Με αυτές τις τεχνικές, μπορούν να κατασκευαστούν πυκνωτές πολύ υψηλής χωρητικότητας (της τάξης αρκετών δεκάδων Farads) διατηρώντας παράλληλα μικρές διαστάσεις. Η ιδέα είναι συνεπώς να δημιουργηθεί ένα "buffer" 5v μέσω υπερπυκνωτών και να ενεργοποιηθεί ο τερματισμός λειτουργίας όταν ανιχνευθεί η απουσία τάσης τροφοδοσίας. Με αυτόν τον τρόπο, δεν θα είναι πλέον απαραίτητη η χειροκίνητη επέμβαση για την εκκίνηση του τερματισμού λειτουργίας, αλλά απλώς αφαιρέστε το βύσμα (ή ενεργοποιήστε έναν διακόπτη) για να εξασφαλίσετε μια ασφαλή απενεργοποίηση.

Αναφερόμενοι στο σχηματικό, η τροφοδοσία εφαρμόζεται στον αριστερό ακροδέκτη και η δίοδος Schottky εμποδίζει κάθε επιστροφή ρεύματος στην τροφοδοσία. Οι δύο αντιστάσεις ισχύος 1,2Ω 5W παράλληλα περιορίζουν το ρεύμα φόρτισης των υπερπυκνωτών, για την προστασία του τροφοδοτικού. Χωρίς αυτές τις αντιστάσεις, το μέγιστο ρεύμα που απαιτείται από τους δύο υπερπυκνωτές που εκφορτίζονται θα ήταν σχεδόν βέβαιο ότι θα μπορούσε να βλάψει την τροφοδοσία. Η δίοδος ισχύος πρέπει απαραιτήτως να είναι τύπου Schottky για να εισαγάγει μια ελάχιστη πτώση τάσης σε σειρά με τη ράβδο 5V.

Οι δύο υπερπυκνωτές συνδέονται σε σειρά για να εξασφαλίσουν μέγιστη τάση 5,4 βολτ στα άκρα τους (κάθε υπερπυκνωτής είναι 10F, 2,7V) και οι δύο αντιστάσεις παράλληλα με τις χωρητικότητες εξισορροπούν τα ρεύματα φόρτισης και εγγυώνται αργή εκφόρτιση όταν γυρίζει το σμέουρο μακριά από. Οι δύο αντιστάσεις 1KΩ παράλληλες με την είσοδο χωρίζουν τα 5V της παροχής ρεύματος στο μισό για να πάρουν το απαραίτητο σήμα για τον εντοπισμό διακοπής ρεύματος (συνδεδεμένο στο Raspberry GPIO 7). Σε αντίθεση με τις σύγχρονες κυψέλες λιθίου, οι υπερπυκνωτές εγγυώνται έναν σχεδόν άπειρο αριθμό κύκλων φόρτισης και εκφόρτισης, χωρίς να χάνουν κανένα χαρακτηριστικό.

Το κύκλωμα θα είναι συνεπώς σε θέση να διατηρεί το Raspberry σε λειτουργία και να λειτουργεί για το χρόνο που απαιτείται για την κανονική απενεργοποίηση. Η έναρξη της διαδικασίας τερματισμού λειτουργίας θα εντοπιστεί από ένα πρόγραμμα που εκτελείται στο Raspberry, το οποίο θα παρακολουθεί την κατάσταση του GPIO 7, στο οποίο είναι συνδεδεμένο το επίπεδο ισχύος. Όταν αποσυνδέεται η τροφοδοσία, ο ακροδέκτης GPIO 7 περνά σε χαμηλό επίπεδο και ενεργοποιεί τον τερματισμό λειτουργίας. Αυτός είναι ο κωδικός:

#!/usr/bin/env python

εισαγωγή RPi. GPIO ως GPIO εισαγωγή υποεπεξεργασίας GPIO.setmode (GPIO. BCM) # χρήση αρίθμησης GPIO GPIO.setwarnings (False) INT = 7 # pin 26 οθόνες τροφοδοσίας # χρήση αδύναμου pull_up για δημιουργία υψηλού GPIO.setup (INT, GPIO. IN, pull_up_down = GPIO. PUD_UP) def main (): while True: # ορίστε μια διακοπή σε μια άκρη που πέφτει και περιμένετε να συμβεί GPIO.wait_for_edge (INT, GPIO. FALLING) # ελέγξτε ξανά το επίπεδο καρφιτσών αν GPIO.input (INT) == 0: # ακόμα χαμηλό, κλείσιμο Pi subprocess.call (['poweroff'], shell = True, / stdout = subprocess. PIPE, stderr = subprocess. PIPE) if _name_ == '_main_': κύριος()

Το πρόγραμμα πρέπει να αποθηκευτεί στο/usr/local/bin/.py και να διαμορφωθεί για να λειτουργεί όταν ξεκινά το Raspberry. Από τις δοκιμές που πραγματοποιήθηκαν, οι χωρητικότητες των δύο υπερπυκνωτών αποδείχθηκαν επαρκείς για να εξασφαλίσουν τον χρόνο διακοπής λειτουργίας του Raspberry. Εάν απαιτείται περισσότερος χρόνος, θα αρκεί η εισαγωγή δύο άλλων υπερπυκνωτών παράλληλα με τους υπάρχοντες ή η αντικατάστασή τους με δύο μεγαλύτερης χωρητικότητας.

Βήμα 4: Συναρμολόγηση και χρήση θυρών USB

Συναρμολόγηση και χρήση θυρών USB
Συναρμολόγηση και χρήση θυρών USB

Το Block Schematic δείχνει πώς μπορείτε να συνδέσετε τις διάφορες συσκευές για PAB στον κύριο διαύλο 3 (+5v, USB και στερεοφωνικό ήχου).

Σημειώστε ότι το τροφοδοτικό του προγράμματος ανάγνωσης CD έχει συνδεθεί απευθείας στο κύριο τροφοδοτικό μέσω καλωδίου "Y", ενώ η είσοδος ήχου πηγαίνει στο Raspberry. Οι τέσσερις θύρες Raspberry USB έχουν χρησιμοποιηθεί για:

  • CD reader?
  • Μια μνήμη 250 GB για αποθήκευση τοπικών αρχείων μουσικής (mp3, m4a, wma, flac, κ.λπ.).
  • μια κάρτα micro SD 16 GB (με προσαρμογέα USB) για να αποθηκεύσετε το πλήρες αντίγραφο ασφαλείας του κύριου Raspi SD (δείτε παρακάτω).
  • σύνδεση με την εξωτερική θύρα USB στη θήκη.

Η εξωτερική θύρα USB μπορεί να χρησιμοποιηθεί για αναπαραγωγή εξωτερικής μουσικής ή τροφοδοσία εξωτερικών συσκευών. Στην περίπτωσή μου, τροφοδοτώ έναν εξωτερικό πομπό Bluetooth καθώς έχω απορρίψει τον εσωτερικό του Raspi λόγω χαμηλού εύρους και αστάθειας. Με το εξωτερικό bluetooth οδηγώ 2 διαφορετικά στερεοφωνικά ηχεία στο σπίτι.

Η κάρτα micro SD 16 GB (με προσαρμογέα USB) διαθέτει πλήρες αντίγραφο ασφαλείας Raspberry. Χρησιμοποιώ τον κλώνο rpi, ο οποίος αποδείχθηκε ότι είναι ένα πολύ καλό έργο που επιτρέπει την πλήρη δημιουργία αντιγράφων ασφαλείας του Raspberry χωρίς την ανάγκη αφαίρεσης του εσωτερικού SD. Έχω αλλάξει πολλές φορές αυτό το SD με το εσωτερικό, χωρίς κανένα πρόβλημα. Έτσι, έχω ρυθμίσει ένα cronjob για root χρήστη:

#Δημιουργία αντιγράφων ασφαλείας στο sda - κάθε Τετάρτη βράδυ

15 2 * * 3/usr/sbin/rpi -κλώνος sda -u | mail -s "Δημιουργία αντιγράφων ασφαλείας PAB στο SD - ολοκληρωμένο"

Στη συνέχεια, χρησιμοποίησα ξανά το αρχικό κουμπί λειτουργίας στη θήκη για να κλείσω και να επανεκκινήσω το Raspberry, ακολουθώντας αυτόν τον οδηγό:

Βήμα 5: Λογισμικό και λειτουργικό σύστημα

Λογισμικό και λειτουργικό σύστημα
Λογισμικό και λειτουργικό σύστημα
Λογισμικό και λειτουργικό σύστημα
Λογισμικό και λειτουργικό σύστημα
Λογισμικό και λειτουργικό σύστημα
Λογισμικό και λειτουργικό σύστημα

Το κύριο λειτουργικό σύστημα του PAB είναι ένα απλό Raspbian minimal (Debian Buster) με αρκετές συγκεκριμένες προσθήκες:

  • rpi-κλώνος για κύριο αντίγραφο ασφαλείας.
  • ssmtp, ένα απλό MTA για να απομακρύνετε την αλληλογραφία από το σύστημα.
  • udevil, για να επιτρέπεται η αυτόματη ρύθμιση μονάδων USB.
  • abcde, για να πιάσω τη συλλογή CD μου και να τη συμπιέσω σε οποιαδήποτε μορφή ήχου.
  • mopidy, ένα πλήρες πρόγραμμα αναπαραγωγής μουσικής Daemon με ένα σωρό πρόσθετα.

Έχω γράψει στη συνέχεια μια πλήρη εφαρμογή διακομιστή PAB Scheduler χρησιμοποιώντας python3 και tornado, των οποίων ο κώδικας δεν εμπίπτει στο πεδίο αυτού του άρθρου, αλλά μπορώ να παράσχω οδηγίες κατόπιν αιτήματος. Με το Scheduler μπορείτε να ρυθμίσετε λίστες αναπαραγωγής για οποιαδήποτε ώρα της ημέρας σας, διαφοροποιώντας τις καθημερινές από τα Σαββατοκύριακα.

Το κύριο λογισμικό που τρέχει το PAB είναι το mopidy. Για εγκατάσταση και διαμόρφωση του mopidy (αρκετά εκτεταμένο) ανατρέξτε στην τεκμηρίωσή του εδώ:

Αυτές είναι οι εγκατεστημένες προσθήκες:

  • Mopidy-Alsamixer
  • Mopidy-Internetarchive
  • Mopidy-Local-Sqlite
  • Mopidy-Podcast
  • Mopidy-Scrobbler
  • Mopidy-Soundcloud
  • Mopidy-Spotify
  • Mopidy-Spotify-Tunigo
  • Mopidy-Cd
  • Μόπιντι-risρις
  • Mopidy-Local-Images
  • Mopidy-TuneIn

Προκειμένου να αποκτήσω τον πλήρη έλεγχο του PAB, επέλεξα την επέκταση προσώπου Iris (δείτε εικόνες). Αυτή είναι μια πολύ ισχυρή εφαρμογή ιστού με τις ακόλουθες δυνατότητες:

  • Πλήρη χειριστήρια διεπαφής μέσω διαδικτύου για το Mopidy
  • Βελτιωμένη υποστήριξη για τοπικές βιβλιοθήκες (τροφοδοτείται από Mopidy-Local-Sqlite)
  • Περιηγηθείτε και διαχειριστείτε λίστες αναπαραγωγής και κομμάτια
  • Ανακαλύψτε νέα, δημοφιλή και σχετική μουσική (υποστηρίζεται από το Spotify)
  • Φιλοξενείται ελεύθερα
  • Ενσωμάτωση με:

    • Spotify
    • LastFM
    • Ιδιοφυία
    • Snapcast
    • Icecast

Με αυτόν τον τρόπο, είμαι ελεύθερος να ελέγξω τη μουσική μου σχεδόν από οπουδήποτε (υπολογιστή, tablet, smartphone).

Συνιστάται: