Inhoudsopgave:

PAB: een persoonlijke audiobox: 5 stappen
PAB: een persoonlijke audiobox: 5 stappen

Video: PAB: een persoonlijke audiobox: 5 stappen

Video: PAB: een persoonlijke audiobox: 5 stappen
Video: Getuigenis gezin Persoonlijk assistentiebudget 2024, Juli-
Anonim
PAB: een persoonlijke audiobox
PAB: een persoonlijke audiobox

Het idee voor dit project is ontstaan uit de noodzaak om de drie grote componenten van het hifi-systeem, die nu aan het einde van hun levensduur waren, te schrapen. Bovendien had ik meer ruimte in de plank nodig voor andere objecten, dus maakte ik van de gelegenheid gebruik om te gaan studeren aan een Personal Audio Box om alle functies van de drie vintage "reuzen" te vervangen.

Een Raspberry Pi3B+ leek om deze redenen de beste keuze:

  • Kleine vormfactor en laag stroomverbruik;
  • Een audio PCM-uitgang met acceptabele kwaliteit;
  • Beschikbaarheid van mopidy, een uitbreidbare muziekserver die het mpd-protocol implementeert;
  • Hoge integratie van bronnen: lokale muziek, cd-rom, radiostreams, Spotify, Tunein, enz.

Door het te integreren met een paar andere componenten, kon ik een compleet en headless systeem creëren dat in staat is om muziek af te spelen van cd's, lokale bestanden, online radio, Spotify-afspeellijsten, podcasts. En door het gebruik van een frontend kan ik nu alle activiteiten beheren vanaf elk apparaat dat is aangesloten op het LAN (smartphone, computer, tablet).

Benodigdheden

  • Framboos PI3B+
  • Een oud dvd-doosje
  • CDROM-lezer
  • 5v-5A voeding
  • Supercondensatoren
  • Diverse componenten (transistoren, LED, relais, Op-Amp): zie projectdetails

Stap 1: Case en lay-out van componenten

Behuizing en lay-out van componenten
Behuizing en lay-out van componenten
Behuizing en lay-out van componenten
Behuizing en lay-out van componenten
Behuizing en lay-out van componenten
Behuizing en lay-out van componenten
Behuizing en lay-out van componenten
Behuizing en lay-out van componenten

Het eerste probleem dat ik tegenkwam, was het selecteren en vinden van een geschikte zaak. Ik vond thuis niets en vond deze goedkope dvd-speler op Amazon voor een paar dollar, maar iets dergelijks is goed genoeg. De koffer heeft deze afmetingen: 27cm x 20cm x 3,5cm.

Ik heb alle inhoud volledig verwijderd en heb alleen het kleine bord behouden om de LED aan de voorkant, de aan / uit-knop en de USB-ingang te beheren. Daarna plande ik de interne lay-out voor de nieuwe componenten (zie foto).

Stap 2: De Audio Stereo Sensing Switch

De Audio Stereo Sensing Switch
De Audio Stereo Sensing Switch
De Audio Stereo Sensing Switch
De Audio Stereo Sensing Switch
De Audio Stereo Sensing Switch
De Audio Stereo Sensing Switch

Waarom een automatische audioschakelaar? De behoefte komt voort uit het feit dat ik vaak tv luister via de HiFi-versterker, maar ik wilde niet elke keer de bronschakelaar op de versterker selecteren. Met dit circuit is de ingang van de versterker altijd hetzelfde en wordt de bron automatisch geselecteerd door de Audio Stereo Sensing Switch.

Het schema is rechttoe rechtaan. Als de PAB niet speelt, komt de audiobron naar de HiFi van de tv. Als de PAB speelt, selecteert het relais audio van Raspberry.

Stap 3: De doos met supercondensatoren

De doos met supercondensatoren
De doos met supercondensatoren
De doos met supercondensatoren
De doos met supercondensatoren

Zoals bekend veroorzaakt een plotselinge onderbreking van de stroomtoevoer naar de Raspberry de onmiddellijke uitschakeling zonder de uitvoering van de afsluitprocedure, met het risico het besturingssysteem en dus de totale functionaliteit in gevaar te brengen. Een supercondensator verschilt van een traditionele condensator in twee essentiële kenmerken: de platen hebben eigenlijk een groter oppervlak en de afstand ertussen is veel kleiner, omdat de tussenliggende isolator anders werkt dan een conventioneel diëlektricum. Met deze technieken kunnen condensatoren met een zeer hoge capaciteit (in de orde van enkele tientallen Farads) worden gemaakt met behoud van kleine afmetingen. Het idee is daarom om via supercondensatoren een 5v "buffer" te creëren en uitschakeling te activeren wanneer de afwezigheid van de voedingsspanning wordt gedetecteerd. Op deze manier is het niet langer nodig om handmatig in te grijpen om de uitschakeling te starten, maar gewoon de stekker verwijderen (of een schakelaar activeren) om een veilige uitschakeling te garanderen.

Verwijzend naar het schema, wordt de voeding aangesloten op de linker klem en de Schottky-diode voorkomt dat er stroom naar de voeding terugkeert. De twee 1,2Ω 5W vermogensweerstanden in parallel beperken de laadstroom van de supercondensatoren om de voeding te beschermen. Zonder deze weerstanden zou de piekstroom die nodig is voor de twee ontladen supercondensatoren vrijwel zeker de voeding kunnen beschadigen. De vermogensdiode moet noodzakelijkerwijs van het Schottky-type zijn om een minimale spanningsval in serie met de 5V-balk in te voegen.

De twee supercondensatoren zijn in serie geschakeld om een maximale spanning van 5,4 volt aan hun uiteinden te garanderen (elke supercondensator is 10F, 2,7V) en de twee weerstanden parallel aan de capaciteiten balanceren de laadstromen en garanderen een langzame ontlading wanneer de Raspberry wordt gedraaid uit. De twee 1KΩ-weerstanden parallel aan de ingang verdelen de 5V van de voeding in tweeën om het benodigde signaal te ontvangen om een stroomstoring te detecteren (aangesloten op Raspberry GPIO 7). In tegenstelling tot moderne lithiumcellen garanderen supercondensatoren een bijna oneindig aantal laad- en ontlaadcycli, zonder dat er eigenschappen verloren gaan.

Het circuit zal daarom in staat zijn om de Raspberry gevoed te houden en te laten werken gedurende de tijd die nodig is om een normale uitschakeling uit te voeren. De start van het uitschakelproces wordt gedetecteerd door een programma dat op de Raspberry draait en dat de status van de GPIO 7, waarop het vermogensniveau is aangesloten, in de gaten houdt. Wanneer de stroom wordt losgekoppeld, passeert de GPIO-pin 7 op een laag niveau en activeert de uitschakeling. Dit is de code:

#!/usr/bin/env python

importeer RPi. GPIO als GPIO importeer subproces GPIO.setmode(GPIO. BCM) # gebruik GPIO-nummering GPIO.setwarnings(False) INT = 7 # pin 26 monitoren Voeding # gebruik een zwakke pull_up om een hoge GPIO.setup(INT, GPIO. IN, pull_up_down=GPIO. PUD_UP) def main(): while True: # stel een interrupt in op een dalende flank en wacht tot het gebeurt GPIO.wait_for_edge(INT, GPIO. FALLING) # controleer het pinniveau opnieuw als GPIO.input(INT) == 0: # nog steeds laag, afsluiten Pi subprocess.call(['poweroff'], shell=True, / stdout=subprocess. PIPE, stderr=subprocess. PIPE) if _name_ == '_main_': hoofd()

Het programma moet worden opgeslagen in /usr/local/bin/.py en geconfigureerd om te draaien wanneer de Raspberry start. Uit uitgevoerde tests is gebleken dat de capaciteiten van de twee supercondensatoren voldoende zijn om de uitschakeltijd voor de Raspberry te garanderen. Als er meer tijd nodig is, is het voldoende om twee andere supercondensatoren parallel aan de bestaande te introduceren, of ze te vervangen door twee met een grotere capaciteit.

Stap 4: Montage en gebruik van USB-poorten

Montage en gebruik van USB-poorten
Montage en gebruik van USB-poorten

Het blokschema laat zien hoe u de verschillende apparaten voor PAB aansluit op de hoofd 3-bus (+5v, USB en audio-stereo).

Merk op dat de voeding van de CD-lezer rechtstreeks is aangesloten op de hoofdvoeding via een "Y"-kabel, terwijl de audio-ingang naar de Raspberry gaat. De vier USB Raspberry-poorten zijn gebruikt voor:

  • cd-lezer;
  • een pendrive van 250 GB om lokale muziekbestanden op te slaan (mp3, m4a, wma, flac, enz.);
  • een 16GB micro SD-kaart (met USB-adapter) om de volledige back-up van de belangrijkste Raspi SD op te slaan (zie hieronder);
  • een aansluiting op de externe USB-poort op de behuizing.

De externe USB-poort kan worden gebruikt om externe muziek af te spelen of om externe apparaten van stroom te voorzien. In mijn geval voed ik een externe Bluetooth-zender omdat ik de interne van de Raspi heb weggegooid vanwege een laag bereik en instabiliteit. Met de externe bluetooth stuur ik 2 verschillende stereo speakers in huis.

De 16 GB micro SD-kaart (met USB-adapter) bevat een volledige Raspberry-back-up. Ik gebruik rpi-clone, waarvan is gebleken dat het een zeer goed project is waarmee een volledig werkende back-up van de Raspberry kan worden gemaakt zonder de interne SD te hoeven verwijderen. Ik heb deze SD vele malen verwisseld met de interne, zonder enig probleem. Dus ik heb een cronjob ingesteld voor root-gebruiker:

#Backup op sda - elke woensdagavond

15 2 * * 3 /usr/sbin/rpi-kloon sda -u | mail -s "PAB-back-up op SD - klaar"

Ik heb vervolgens de originele aan / uit-knop op de behuizing opnieuw gebruikt om de Raspberry uit te schakelen en opnieuw te starten, volgens deze handleiding:

Stap 5: Software en besturingssysteem

Software en besturingssysteem
Software en besturingssysteem
Software en besturingssysteem
Software en besturingssysteem
Software en besturingssysteem
Software en besturingssysteem

Het belangrijkste besturingssysteem van PAB is een eenvoudig Raspbian-minimaal (Debian Buster) met verschillende specifieke toevoegingen:

  • rpi-kloon voor hoofdback-up;
  • ssmtp, een simpele MTA om mail van het systeem te krijgen;
  • udevil, om automount van USB-drives mogelijk te maken;
  • abcde, om mijn cd-verzameling te pakken en te comprimeren naar elk audioformaat;
  • mopidy, een volledige Music Player Daemon met een heleboel plug-ins.

Ik heb toen een volledige PAB Scheduler-servertoepassing geschreven met python3 en tornado, waarvan de code buiten het bestek van dit artikel valt, maar ik kan op verzoek instructies geven. Met de Scheduler kun je afspeellijsten instellen voor elk moment van de dag, door weekdagen te onderscheiden van weekenden.

De belangrijkste software waarop PAB draait, is mopidy. Raadpleeg de documentatie hier voor de installatie en configuratie van mopidy (vrij uitgebreid):

Dit zijn de geïnstalleerde plug-ins:

  • Mopidy-Alsamixer
  • Mopidy-Internetarchief
  • Mopidy-Local-Sqlite
  • Mopidy-Podcast
  • Mopidy-Scrobbler
  • Mopidy-Soundcloud
  • Mopidy-Spotify
  • Mopidy-Spotify-Tunigo
  • Mopidy-Cd
  • Mopidy-Iris
  • Mopidy-Local-Images
  • Mopidy-TuneIn

Om volledige controle over PAB te krijgen, heb ik gekozen voor de Iris frontend extensie (zie foto's). Dit is een zeer krachtige webapplicatie met de volgende kenmerken:

  • Volledige webgebaseerde interfacebesturing voor Mopidy
  • Verbeterde ondersteuning voor lokale bibliotheken (aangedreven door Mopidy-Local-Sqlite)
  • Door afspeellijsten en nummers bladeren en ze beheren
  • Ontdek nieuwe, populaire en gerelateerde muziek (powered by Spotify)
  • gratis gehost
  • Integratie met:

    • Spotify
    • LastFM
    • Genie
    • Snapcast
    • Icecast

Zo kan ik mijn muziek bijna overal (computer, tablet, smartphone) bedienen.

Aanbevolen: