Spisu treści:

PAB: osobista skrzynka audio: 5 kroków
PAB: osobista skrzynka audio: 5 kroków

Wideo: PAB: osobista skrzynka audio: 5 kroków

Wideo: PAB: osobista skrzynka audio: 5 kroków
Wideo: Natsu obczajana przez byłego zawodnika KSW na High League 2024, Lipiec
Anonim
PAB: osobista skrzynka audio
PAB: osobista skrzynka audio

Pomysł na ten projekt zrodził się z potrzeby zeskrobania trzech dużych komponentów systemu HiFi, które dobiegły końca. Ponadto potrzebowałem więcej miejsca w półce na inne przedmioty, więc skorzystałem z okazji, aby rozpocząć naukę w Personal Audio Box, aby wymienić wszystkie funkcje trzech zabytkowych „gigantów”.

Raspberry Pi3B+ wydawał się najlepszym wyborem z tych powodów:

  • Mała obudowa i niskie zużycie energii;
  • Wyjście audio PCM o akceptowalnej jakości;
  • Dostępność mopidy, rozszerzalnego serwera muzycznego implementującego protokół mpd;
  • Wysoka integracja źródeł: muzyka lokalna, CDROM, strumienie radiowe, Spotify, Tunein itp.

Integrując go z kilkoma innymi komponentami, udało mi się stworzyć kompletny i bezgłowy system, zdolny do odtwarzania muzyki z płyt CD, plików lokalnych, radia internetowego, list odtwarzania Spotify, podcastów. A dzięki zastosowaniu frontendu mogę teraz zarządzać całą jego pracą z dowolnego urządzenia podłączonego do sieci LAN (smartfon, komputer, tablet).

Kieszonkowe dzieci

  • Malina PI3B+
  • Stare pudełko na DVD
  • Czytnik CDROM
  • Zasilanie 5v-5A
  • Superkondensatory
  • Różne komponenty (tranzystory, diody LED, przekaźnik, wzmacniacz operacyjny): patrz szczegóły projektu

Krok 1: Obudowa i układ komponentów

Obudowa i układ komponentów
Obudowa i układ komponentów
Obudowa i układ komponentów
Obudowa i układ komponentów
Obudowa i układ komponentów
Obudowa i układ komponentów
Obudowa i układ komponentów
Obudowa i układ komponentów

Pierwszym problemem, z jakim się spotkałem, było wybranie i znalezienie odpowiedniego przypadku. Nie znajdując niczego w domu, znalazłem ten tani odtwarzacz DVD na Amazon za kilka dolarów, ale wszystko podobne będzie wystarczająco dobre. Etui ma te wymiary: 27cm x 20cm x 3,5cm.

Całkowicie usunąłem całą zawartość, zachowując tylko małą płytkę do zarządzania przednią diodą LED, przyciskiem zasilania i wejściem USB. Następnie zaplanowałem układ wewnętrzny dla nowych komponentów (patrz zdjęcie).

Krok 2: Przełącznik wykrywania stereo audio

Przełącznik wykrywania dźwięku stereo
Przełącznik wykrywania dźwięku stereo
Przełącznik wykrywania dźwięku stereo
Przełącznik wykrywania dźwięku stereo
Przełącznik wykrywania dźwięku stereo
Przełącznik wykrywania dźwięku stereo

Dlaczego automatyczny przełącznik audio? Potrzeba wynika z tego, że często słucham telewizji przez wzmacniacz HiFi, ale nie chciałem za każdym razem wybierać przełącznika źródła na wzmacniaczu. W tym obwodzie wejście wzmacniacza jest zawsze takie samo, a źródło jest automatycznie wybierane przez przełącznik Audio Stereo Sensing Switch.

Schemat jest prosty. Gdy PAB nie jest odtwarzany, źródło dźwięku do zestawu HiFi pochodzi z telewizora. Jeśli PAB gra, przekaźnik wybiera dźwięk z Raspberry.

Krok 3: Pudełko superkondensatorów

Pudełko superkondensatorów
Pudełko superkondensatorów
Pudełko superkondensatorów
Pudełko superkondensatorów

Jak wiadomo, nagłe przerwanie zasilania Raspberry powoduje natychmiastowe wyłączenie zasilania bez wykonywania procedury wyłączania, co grozi naruszeniem systemu operacyjnego, a tym samym jego całkowitej funkcjonalności. Superkondensator różni się od tradycyjnego kondensatora dwiema zasadniczymi cechami: jego płytki mają w rzeczywistości większą powierzchnię, a odległość między nimi jest znacznie mniejsza, ponieważ izolator działa inaczej niż konwencjonalny dielektryk. Dzięki tym technikom można wykonać kondensatory o bardzo dużej pojemności (rzędu kilkudziesięciu Faradów) przy zachowaniu niewielkich wymiarów. Pomysł polega zatem na stworzeniu „bufora” 5V za pomocą superkondensatorów i aktywacji wyłączenia, gdy wykryty zostanie brak napięcia zasilania. W ten sposób nie będzie już konieczne ręczna interwencja w celu uruchomienia wyłączania, ale po prostu wyjmij wtyczkę (lub aktywuj przełącznik), aby zapewnić bezpieczne zamknięcie.

Odnosząc się do schematu, zasilacz jest doprowadzony do lewego zacisku, a dioda Schottky'ego zapobiega wszelkim powrotom prądu do zasilacza. Dwa rezystory mocy 1,2 Ω 5 W równolegle ograniczają prąd ładowania superkondensatorów, aby chronić zasilanie. Bez tych rezystorów prąd szczytowy wymagany przez dwa rozładowane superkondensatory prawie na pewno byłby w stanie uszkodzić zasilacz. Dioda mocy musi koniecznie być typu Schottky'ego, aby wstawić szeregowo minimalny spadek napięcia z listwą 5V.

Dwa superkondensatory są połączone szeregowo, aby zapewnić maksymalne napięcie 5,4 V na ich końcach (każdy superkondensator to 10F, 2,7 V), a dwa rezystory równolegle do pojemności równoważą prądy ładowania i gwarantują powolne rozładowanie, gdy Raspberry jest włączony wyłączony. Dwa rezystory 1KΩ równolegle do wejścia dzielą napięcie 5V zasilacza na pół, aby pobrać sygnał niezbędny do wykrycia awarii zasilania (podłączony do Raspberry GPIO 7). W przeciwieństwie do nowoczesnych ogniw litowych superkondensatory gwarantują niemal nieskończoną liczbę cykli ładowania i rozładowania, bez utraty właściwości.

Obwód będzie zatem w stanie utrzymać zasilanie i działanie Raspberry przez czas potrzebny do wykonania regularnego wyłączenia. Rozpoczęcie procesu wyłączania zostanie wykryte przez program uruchomiony na Raspberry, który będzie monitorował stan GPIO 7, do którego podłączony jest poziom mocy. Po odłączeniu zasilania pin 7 GPIO przechodzi na niskim poziomie i powoduje wyłączenie. Oto kod:

#!/usr/bin/env python

import RPi. GPIO jako GPIO import podprocesu GPIO.setmode(GPIO. BCM) # użyj numeracji GPIO GPIO.setwarnings(False) INT = 7 # pin 26 monitorów Zasilanie # użyj słabego pull_up do utworzenia wysokiego GPIO.setup(INT, GPIO. IN, pull_up_down=GPIO. PUD_UP) def main(): while True: # ustaw przerwanie na opadającym zboczu i poczekaj, aż to nastąpi GPIO.wait_for_edge(INT, GPIO. FALLING) # sprawdź ponownie poziom pinów, jeśli GPIO.input(INT) == 0: # nadal niski, zamknij Pi subprocess.call(['poweroff'], shell=True, / stdout=subprocess. PIPE, stderr=subprocess. PIPE) if _name_ == '_main_': Główny()

Program musi być zapisany w /usr/local/bin/.py i skonfigurowany do uruchamiania podczas uruchamiania Raspberry. Przeprowadzone testy wykazały, że pojemności dwóch superkondensatorów są wystarczające do zapewnienia czasu wyłączenia Raspberry. Jeśli potrzeba więcej czasu, wystarczy wprowadzić dwa inne superkondensatory równolegle do istniejących lub zastąpić je dwoma o większej pojemności.

Krok 4: Montaż i korzystanie z portów USB

Montaż i korzystanie z portów USB
Montaż i korzystanie z portów USB

Schemat blokowy pokazuje, jak podłączyć kilka urządzeń do PAB na głównej magistrali 3 (+5V, USB i audio stereo).

Zwróć uwagę, że zasilacz czytnika CD został podłączony bezpośrednio do głównego zasilacza za pomocą kabla "Y", natomiast wejście audio trafia do Raspberry. Cztery porty USB Raspberry zostały wykorzystane do:

  • czytnik CD;
  • pendrive o pojemności 250 GB do przechowywania lokalnych plików muzycznych (mp3, m4a, wma, flac itp.);
  • karta micro SD o pojemności 16 GB (z adapterem USB) do przechowywania pełnej kopii zapasowej głównej karty Raspi SD (patrz poniżej);
  • połączenie z zewnętrznym portem USB na obudowie.

Zewnętrzny port USB może służyć do odtwarzania muzyki z zewnątrz lub do zasilania urządzeń zewnętrznych. W moim przypadku zasilam zewnętrzny nadajnik Bluetooth, ponieważ odrzuciłem wewnętrzny nadajnik Raspi ze względu na niski zasięg i niestabilność. Dzięki zewnętrznemu bluetooth jeżdżę w domu 2 różnymi głośnikami stereo.

Karta micro SD o pojemności 16 GB (z adapterem USB) zawiera pełną kopię zapasową Raspberry. Używam rpi-clone, który okazał się bardzo dobrym projektem, pozwalającym na wykonanie pełnej, działającej kopii zapasowej Raspberry bez konieczności wyjmowania wewnętrznego SD. Wielokrotnie wymieniałem tę SD na wewnętrzną, bez problemu. Więc ustawiłem cronjob dla użytkownika root:

#Backup na sda - w każdą środę wieczorem

15 2 * * 3 /usr/sbin/rpi-clone sda -u | mail -s "Kopia zapasowa PAB na SD - gotowe"

Następnie ponownie użyłem oryginalnego przycisku zasilania na obudowie, aby zamknąć i ponownie uruchomić Raspberry, postępując zgodnie z tym przewodnikiem:

Krok 5: Oprogramowanie i system operacyjny

Oprogramowanie i system operacyjny
Oprogramowanie i system operacyjny
Oprogramowanie i system operacyjny
Oprogramowanie i system operacyjny
Oprogramowanie i system operacyjny
Oprogramowanie i system operacyjny

Główny system operacyjny PAB to zwykły Raspbian minimal (Debian Buster) z kilkoma specyficznymi dodatkami:

  • Rpi-clone do głównej kopii zapasowej;
  • ssmtp, prosty MTA do usuwania poczty z systemu;
  • udevil, aby umożliwić automatyczne montowanie dysków USB;
  • abcde, aby pobrać moją kolekcję płyt CD i skompresować ją do dowolnego formatu audio;
  • mopidy, pełny demon odtwarzacza muzycznego z mnóstwem wtyczek.

Następnie napisałem pełną aplikację serwerową PAB Scheduler przy użyciu python3 i tornado, której kod jest poza zakresem tego artykułu, ale mogę dostarczyć instrukcje na żądanie. Za pomocą Harmonogramu możesz skonfigurować listy odtwarzania na każdą porę dnia, rozróżniając dni powszednie od weekendów.

Głównym oprogramowaniem obsługującym PAB jest mopidy. W celu instalacji i konfiguracji mopidy (dość obszernego) zapoznaj się z jego dokumentacją tutaj:

Oto zainstalowane wtyczki:

  • Mopidy-Alsamixer
  • Mopidy-Internetarchiwum
  • Mopidy-Local-Sqlite
  • Mopidy-Podcast
  • Mopidy-Scrobbler
  • Mopidy-Soundcloud
  • Mopidy-Spotify
  • Mopidy-Spotify-Tunigo
  • Mopidy-Cd
  • Mopidy-Iris
  • Mopidy-Lokalne-Obrazy
  • Mopidy-TuneIn

Aby uzyskać pełną kontrolę nad PAB, wybrałem rozszerzenie frontendu Iris (patrz zdjęcia). Jest to bardzo potężna aplikacja internetowa z następującymi funkcjami:

  • Pełna kontrola interfejsu internetowego dla Mopidy
  • Ulepszona obsługa lokalnych bibliotek (obsługiwana przez Mopidy-Local-Sqlite)
  • Przeglądaj i zarządzaj listami odtwarzania i utworami
  • Odkryj nową, popularną i powiązaną muzykę (obsługiwane przez Spotify)
  • Swobodnie hostowany
  • Integracja z:

    • Spotify
    • Ostatnia stacja FM
    • Geniusz
    • Snapcast
    • Icecast

W ten sposób mogę swobodnie sterować muzyką z niemal dowolnego miejsca (komputer, tablet, smartfon).

Zalecana: