Innholdsfortegnelse:

PAB: en personlig lydboks: 5 trinn
PAB: en personlig lydboks: 5 trinn

Video: PAB: en personlig lydboks: 5 trinn

Video: PAB: en personlig lydboks: 5 trinn
Video: Inside a $48,000,000 Beverly Hills "MODERN BARNHOUSE" Filled with Expensive Art 2024, Juli
Anonim
PAB: en personlig lydboks
PAB: en personlig lydboks

Ideen til dette prosjektet ble født på grunn av behovet for å skrape de tre store komponentene i HiFi -systemet, som nå hadde nådd slutten av livet. I tillegg trengte jeg mer plass i hyllen for andre gjenstander, så jeg benyttet anledningen til å begynne å studere på en personlig lydboks for å erstatte alle funksjonene til de tre vintage "gigantene".

En Raspberry Pi3B+ syntes å være det beste valget av disse grunnene:

  • Liten formfaktor og lavt strømforbruk;
  • En lyd -PCM -utgang med akseptabel kvalitet;
  • Tilgjengelighet av mopidy, en utvidbar musikkserver som implementerer mpd -protokoll;
  • Høy integrering av kilder: lokal musikk, CDROM, radiostrømmer, Spotify, Tunein, etc.

Når jeg integrerte den med få andre komponenter, klarte jeg å lage et komplett og hodeløst system som var i stand til å spille musikk fra CDer, lokale filer, nettradio, Spotify -spillelister, podcaster. Og gjennom bruk av en frontend kan jeg nå administrere all drift fra en hvilken som helst enhet som er koblet til LAN (smarttelefon, datamaskin, nettbrett).

Rekvisita

  • Bringebær PI3B+
  • En gammel DVD -veske
  • CDROM -leser
  • 5v-5A strømforsyning
  • Superkondensatorer
  • Ulike komponenter (transistorer, LED, relé, Op-Amp): se prosjektdetaljer

Trinn 1: Sak og oppsett av komponenter

Sak og oppsett av komponenter
Sak og oppsett av komponenter
Sak og oppsett av komponenter
Sak og oppsett av komponenter
Sak og oppsett av komponenter
Sak og oppsett av komponenter
Sak og oppsett av komponenter
Sak og oppsett av komponenter

Det første problemet jeg sto overfor var å velge og finne en passende sak. Jeg fant ingenting hjemme, og jeg fant denne billige DVD -spilleren på Amazon for noen få dollar, men noe lignende vil være bra nok. Etuiet har disse dimensjonene: 27cm x 20cm x 3,5cm.

Jeg fjernet alt innholdet helt, og beholdt bare det lille brettet for å styre front -LED, strømknappen og USB -inngangen. Deretter planla jeg det interne oppsettet for de nye komponentene (se bilde).

Trinn 2: Audio Stereo Sensing Switch

Audio Stereo Sensing -bryteren
Audio Stereo Sensing -bryteren
Audio Stereo Sensing -bryteren
Audio Stereo Sensing -bryteren
Audio Stereo Sensing -bryteren
Audio Stereo Sensing -bryteren

Hvorfor en automatisk lydbryter? Behovet oppstår ved at jeg ofte hører på TV gjennom HiFi -forsterkeren, men jeg ville ikke velge kildebryter på forsterkeren hver gang. Med denne kretsen er forsterkerinngangen alltid den samme, og kilden velges automatisk av Audio Stereo Sensing Switch.

Skjematikken er rett frem. Når PAB ikke spiller, kommer lydkilden til HiFi fra TV -en. Hvis PAB spiller, velger reléet lyd fra bringebær.

Trinn 3: Super-kondensatorboksen

Super-kondensatorboksen
Super-kondensatorboksen
Super-kondensatorboksen
Super-kondensatorboksen

Som kjent forårsaker en plutselig avbrudd av strømtilførselen til bringebæret den umiddelbare strømmen uten at kjøreprosedyren utføres, og det risikerer å kompromittere operativsystemet og dermed dets totale funksjonalitet. En superkondensator skiller seg fra en tradisjonell kondensator med to viktige egenskaper: platene har faktisk et større område og avstanden mellom dem er mye mindre, ettersom den mellomliggende isolatoren fungerer annerledes enn en konvensjonell dielektrikum. Med disse teknikkene kan det produseres meget høy kapasitet (i størrelsesorden flere titalls Farads), samtidig som små dimensjoner opprettholdes. Tanken er derfor å lage en 5v "buffer" via superkapasitorer og aktivere avstengning når fraværet av forsyningsspenningen oppdages. På denne måten vil det ikke lenger være nødvendig å gripe inn manuelt for å starte avstengningen, men bare ta ut pluggen (eller aktivere en bryter) for å sikre en sikker avstengning.

Med henvisning til skjemaet, blir strømforsyningen tilført den venstre terminalen og Schottky -dioden forhindrer enhver tilbakeføring av strøm til strømforsyningen. De to 1,2Ω 5W effektmotstandene parallelt begrenser ladestrømmen til superkondensatorene, for å beskytte strømforsyningen. Uten disse motstandene ville toppstrømmen som kreves av de to utladede superkondensatorene nesten helt sikkert kunne skade strømforsyningen. Strømdioden må nødvendigvis være av Schottky -typen for å sette inn et minimum spenningsfall i serie med 5V bar.

De to superkondensatorene er seriekoblet for å sikre en maksimal spenning på 5,4 volt i endene (hver superkondensator er 10F, 2,7V), og de to motstandene parallelt med kapasitansene balanserer ladestrømmene og garanterer en langsom utladning når bringebæret vendes av. De to 1KΩ -motstandene parallelt med inngangen deler 5V på strømforsyningen i to for å ta det nødvendige signalet for å oppdage strømbrudd (koblet til Raspberry GPIO 7). I motsetning til moderne litiumceller garanterer superkapasitorer et nesten uendelig antall ladnings- og utladningssykluser, uten å miste noen egenskaper.

Kretsen vil derfor kunne holde bringebæret drevet og fungere i den tiden det tar å utføre en vanlig avstengning. Starten av avslutningsprosessen vil bli oppdaget av et program som kjører på bringebæret som vil overvåke statusen til GPIO 7, som strømnivået er koblet til. Når strømmen kobles fra, passerer GPIO -pinnen 7 på et lavt nivå og utløser avstengning. Dette er koden:

#!/usr/bin/env python

importer RPi. GPIO som GPIO import delprosess GPIO.setmode (GPIO. BCM) # bruk GPIO nummerering GPIO.setwarnings (False) INT = 7 # pin 26 monitorer Strømforsyning # bruk en svak pull_up for å lage en høy GPIO.setup (INT, GPIO. IN, pull_up_down = GPIO. PUD_UP) def main (): while True: # sett en avbrudd på en fallende kant og vent til det skjer GPIO.wait_for_edge (INT, GPIO. FALLING) # sjekk pinnivået igjen hvis GPIO.input (INT) == 0: # fortsatt lav, nedleggelse av Pi -delprosess.kall (['poweroff'], shell = True, / stdout = subprocess. PIPE, stderr = subprocess. PIPE) hvis _name_ == '_main_': hoved()

Programmet må lagres i/usr/local/bin/.py og konfigureres til å kjøre når bringebæret starter. Fra tester som er utført, har kapasiteten til de to superkondensatorene vist seg å være tilstrekkelig til å sikre nedleggelsestiden for bringebæret. Hvis det trengs mer tid, vil det være tilstrekkelig å introdusere to andre superkondensatorer parallelt med de eksisterende, eller erstatte dem med to med større kapasitet.

Trinn 4: Montering og bruk av USB -porter

Montering og bruk av USB -porter
Montering og bruk av USB -porter

Blokkskjema viser hvordan du kobler til flere enheter for PAB på hovedbussen 3 (+5v, USB og lydstereo).

Vær oppmerksom på at CD -leserens strømforsyning er koblet direkte til hovedstrømforsyningen via en "Y" -kabel, mens lydinngangen går til bringebæret. De fire USB -bringebærportene har blitt brukt til:

  • CD -leser;
  • en 250 GB pendrive for å lagre lokale musikkfiler (mp3, m4a, wma, flac, etc.);
  • et 16 GB micro SD-kort (med USB-adapter) for å lagre full sikkerhetskopi av hoved Raspi SD (se nedenfor);
  • en tilkobling til den eksterne USB -porten på saken.

Den eksterne USB -porten kan brukes til å spille ekstern musikk eller til å drive eksterne enheter. I mitt tilfelle driver jeg en ekstern Bluetooth -sender da jeg har kastet den interne Raspi -enheten på grunn av lav rekkevidde og ustabilitet. Med den eksterne bluetooth kjører jeg 2 forskjellige stereohøyttalere hjemme.

16 GB micro SD -kortet (med USB -adapter) har en full bringebær -sikkerhetskopi. Jeg bruker rpi-klon, som har vist seg å være et veldig godt prosjekt som gjør det mulig å ha en fullstendig fungerende sikkerhetskopi av bringebæret uten å måtte fjerne den interne SD-en. Jeg har byttet mange ganger denne SD -en med den interne, uten problemer. Så jeg har satt opp en cronjob for root -bruker:

#Backup på sda - hver onsdag kveld

15 2 * * 3/usr/sbin/rpi -klon sda -u | mail -s "PAB backup on SD - done"

Jeg har da brukt den originale strømknappen på saken på nytt for å slå av og starte bringebæret på nytt, etter denne veiledningen:

Trinn 5: Programvare og operativsystem

Programvare og operativsystem
Programvare og operativsystem
Programvare og operativsystem
Programvare og operativsystem
Programvare og operativsystem
Programvare og operativsystem

Hovedoperativsystemet til PAB er en vanlig Raspbian minimal (Debian Buster) med flere spesifikke tillegg:

  • rpi-klon for hovedbackup;
  • ssmtp, en enkel MTA for å få post fra systemet;
  • udevil, for å tillate automount av USB -stasjoner;
  • abcde, for å ta tak i CD -samlingen min og komprimere den til et hvilket som helst lydformat;
  • mopidy, en full Music Player Daemon med en haug med plugins.

Jeg har da skrevet en fullstendig PAB Scheduler -serverapplikasjon ved hjelp av python3 og tornado, hvis kode er utenfor denne artikkelen, men jeg kan gi instruksjoner på forespørsel. Med Scheduler kan du sette opp spillelister for alle tider på dagen, og skille hverdager fra helger.

Hovedprogramvaren som kjører PAB er mopidy. For installasjon og konfigurasjon av mopidy (ganske omfattende), se dokumentasjonen her:

Dette er de installerte pluginene:

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

For å få full kontroll over PAB, har jeg valgt Iris frontend -forlengelse (se bilder). Dette er en veldig kraftig webapplikasjon med følgende funksjoner:

  • Fullstendig webbasert grensesnittkontroll for Mopidy
  • Forbedret støtte for lokale biblioteker (drevet av Mopidy-Local-Sqlite)
  • Bla gjennom og administrer spillelister og spor
  • Oppdag ny, populær og relatert musikk (drevet av Spotify)
  • Fritt vert
  • Integrasjon med:

    • Spotify
    • LastFM
    • Geni
    • Snapcast
    • Icecast

På denne måten har jeg frihet til å kontrollere musikken min fra nesten hvor som helst (datamaskin, nettbrett, smarttelefon).

Anbefalt: