İçindekiler:

PAB: Kişisel Ses Kutusu: 5 Adım
PAB: Kişisel Ses Kutusu: 5 Adım

Video: PAB: Kişisel Ses Kutusu: 5 Adım

Video: PAB: Kişisel Ses Kutusu: 5 Adım
Video: 6 milyon TL’lik Yemek Sepeti siparişi 🤣 2024, Kasım
Anonim
PAB: Kişisel Ses Kutusu
PAB: Kişisel Ses Kutusu

Bu proje fikri, artık ömrünün sonuna gelmiş olan HiFi sisteminin üç büyük bileşenini kazıma ihtiyacından doğdu. Ek olarak, diğer nesneler için rafta daha fazla alana ihtiyacım vardı, bu yüzden üç eski "devin" tüm işlevlerini değiştirmek için bir Kişisel Ses Kutusunda çalışmaya başlama fırsatını yakaladım.

Raspberry Pi3B+, şu nedenlerle en iyi seçim gibi görünüyordu:

  • Küçük form faktörü ve düşük güç tüketimi;
  • Kabul edilebilir kalitede bir ses PCM çıkışı;
  • mpd protokolünü uygulayan genişletilebilir bir müzik sunucusu olan mopidy'nin kullanılabilirliği;
  • Kaynakların yüksek entegrasyonu: yerel müzik, CDROM, radyo akışları, Spotify, Tunein, vb.

Diğer birkaç bileşenle entegre ederek, CD'lerden, yerel dosyalardan, çevrimiçi radyodan, Spotify çalma listelerinden, podcast'lerden müzik çalabilen eksiksiz ve kafasız bir sistem oluşturabildim. Ve bir ön uç kullanarak, artık tüm işlemlerini LAN'a bağlı herhangi bir cihazdan (akıllı telefon, bilgisayar, tablet) yönetebiliyorum.

Gereçler

  • Ahududu PI3B+
  • Eski bir DVD kutusu
  • CDROM okuyucu
  • 5v-5A güç kaynağı
  • süper kapasitörler
  • Çeşitli bileşenler (transistörler, LED, röle, Op-Amp): proje ayrıntılarına bakın

Adım 1: Bileşenlerin Durumu ve Düzeni

Bileşenlerin Kasası ve Düzeni
Bileşenlerin Kasası ve Düzeni
Bileşenlerin Kasası ve Düzeni
Bileşenlerin Kasası ve Düzeni
Bileşenlerin Kasası ve Düzeni
Bileşenlerin Kasası ve Düzeni
Bileşenlerin Kasası ve Düzeni
Bileşenlerin Kasası ve Düzeni

Karşılaştığım ilk sorun, uygun bir vaka seçip bulmaktı. Evde hiçbir şey bulamayınca Amazon'da bu ucuz DVD oynatıcıyı birkaç dolara buldum, ama benzer bir şey yeterince iyi olacak. Kasanın boyutları şu şekilde: 27cm x 20cm x 3.5cm.

Tüm içeriği tamamen kaldırdım, ön LED'i, güç düğmesini ve USB girişini yönetmek için yalnızca küçük panoyu tuttum. Sonra yeni bileşenler için iç düzeni planladım (resme bakın).

2. Adım: Ses Stereo Algılama Anahtarı

Ses Stereo Algılama Anahtarı
Ses Stereo Algılama Anahtarı
Ses Stereo Algılama Anahtarı
Ses Stereo Algılama Anahtarı
Ses Stereo Algılama Anahtarı
Ses Stereo Algılama Anahtarı

Neden otomatik bir ses anahtarı? Bu ihtiyaç, TV'yi sıklıkla HiFi amplifikatör üzerinden dinlememden kaynaklanıyor, ancak her seferinde amplifikatördeki kaynak anahtarını seçmek istemedim. Bu devre ile amplifikatör girişi her zaman aynıdır ve kaynak Audio Stereo Algılama Anahtarı tarafından otomatik olarak seçilir.

Şematik düz ileridir. PAB çalmıyorken, HiFi'nin ses kaynağı TV'den geliyor. PAB çalarsa, röle Raspberry'den sesi seçer.

Adım 3: Süper Kapasitör Kutusu

Süper Kapasitör Kutusu
Süper Kapasitör Kutusu
Süper Kapasitör Kutusu
Süper Kapasitör Kutusu

Bilindiği gibi, Raspberry'ye giden güç kaynağının aniden kesilmesi, kapatma prosedürü uygulanmadan anında kapanmaya neden olarak işletim sistemini ve dolayısıyla toplam işlevselliğini tehlikeye atma riski taşır. Bir süper kapasitör, geleneksel bir kapasitörden iki temel özellik bakımından farklıdır: plakaları aslında daha geniş bir alana sahiptir ve araya giren yalıtkan geleneksel bir dielektrikten farklı çalıştığı için aralarındaki mesafe çok daha küçüktür. Bu tekniklerle, küçük boyutlar korunurken çok yüksek kapasiteli (birkaç on Farad mertebesinde) kapasitörler yapılabilir. Bu nedenle fikir, süper kapasitörler aracılığıyla 5v'lik bir "tampon" oluşturmak ve besleme voltajının olmadığı algılandığında kapatmayı etkinleştirmektir. Bu şekilde, kapatmayı başlatmak için artık manuel olarak müdahale etmeye gerek kalmayacak, güvenli bir kapatma sağlamak için fişi çıkarmanız (veya bir anahtarı etkinleştirmeniz) yeterli olacaktır.

Şemaya istinaden, güç kaynağı sol terminale uygulanır ve Schottky diyot, akımın güç kaynağına geri dönmesini önler. Paralel olarak iki 1.2Ω 5W güç direnci, güç kaynağını korumak için süper kapasitörlerin şarj akımını sınırlar. Bu dirençler olmadan, deşarj olmuş iki süper kapasitör tarafından ihtiyaç duyulan tepe akımı neredeyse kesinlikle güç kaynağına zarar verebilir. 5V bar ile seri olarak minimum voltaj düşüşü eklemek için güç diyotu mutlaka Schottky tipinde olmalıdır.

İki süper kapasitör, uçlarında maksimum 5,4 volt voltaj sağlamak için seri olarak bağlanır (her süper kapasitör 10F, 2,7V'dir) ve kapasitanslara paralel iki direnç, şarj akımlarını dengeler ve Ahududu açıldığında yavaş deşarjı garanti eder. kapalı. Girişe paralel iki 1KΩ direnç, güç kesintisini algılamak için gerekli sinyali almak için güç kaynağının 5V'sini ikiye böler (Raspberry GPIO 7'ye bağlı). Modern lityum hücrelerin aksine, süper kapasitörler, herhangi bir özellik kaybetmeden neredeyse sonsuz sayıda şarj ve deşarj döngüsünü garanti eder.

Bu nedenle devre, Raspberry'yi düzenli bir kapatma gerçekleştirmek için gereken süre boyunca çalışır durumda tutabilecektir. Kapatma işleminin başlangıcı, güç seviyesinin bağlı olduğu GPIO 7'nin durumunu izleyecek olan Raspberry üzerinde çalışan bir program tarafından tespit edilecektir. Güç kesildiğinde, GPIO pimi 7 düşük bir seviyede geçer ve kapanmayı tetikler. Bu kod:

#!/usr/bin/env piton

RPi. GPIO'yu GPIO olarak içe aktar alt işlemi içe aktar GPIO.setmode(GPIO. BCM) # GPIO numaralandırmasını kullan GPIO.setwarnings(False) INT = 7 # pin 26 monitör Güç Kaynağı # yüksek bir GPIO.setup(INT, GPIO. IN, pull_up_down=GPIO. PUD_UP) def main(): while True: # düşen kenarda bir kesme ayarlayın ve bunun olmasını bekleyin GPIO.wait_for_edge(INT, GPIO. FALLING) # GPIO ise pin seviyesini tekrar kontrol edin.input(INT) == 0: # hala düşük, kapatma Pi subprocess.call(['poweroff'], shell=True, / stdout=subprocess. PIPE, stderr=subprocess. PIPE) eğer _name_ == '_main_': ana()

Program /usr/local/bin/.py içine kaydedilmeli ve Raspberry başladığında çalışacak şekilde yapılandırılmalıdır. Gerçekleştirilen testlerden, iki süper kapasitör kapasitesinin Raspberry'nin kapanma süresini sağlamak için yeterli olduğu kanıtlanmıştır. Daha fazla zamana ihtiyaç duyulursa, mevcut olanlara paralel olarak iki başka süperkapasitör eklemek veya bunları daha büyük kapasiteli iki süperkapasitörle değiştirmek yeterli olacaktır.

Adım 4: USB Bağlantı Noktalarının Montajı ve Kullanımı

USB Bağlantı Noktalarının Montajı ve Kullanımı
USB Bağlantı Noktalarının Montajı ve Kullanımı

Blok Şeması, ana 3 veriyolunda (+5v, USB ve ses stereo) PAB için çeşitli cihazların nasıl bağlanacağını gösterir.

Ses girişi Raspberry'ye giderken CD okuyucu güç kaynağının bir "Y" kablosuyla doğrudan ana Güç Kaynağına bağlandığını unutmayın. Dört USB Raspberry bağlantı noktası şunlar için kullanılmıştır:

  • CD okuyucu;
  • yerel müzik dosyalarını (mp3, m4a, wma, flac, vb.) depolamak için 250 GB'lık bir pendrive;
  • ana Raspi SD'nin tam yedeğini saklamak için bir 16GB mikro SD kart (USB adaptörlü) (aşağıya bakın);
  • kasadaki harici USB bağlantı noktasına bağlantı.

Harici USB bağlantı noktası, harici müzik çalmak veya harici aygıtlara güç sağlamak için kullanılabilir. Benim durumumda, düşük menzil ve kararsızlık nedeniyle Raspi'nin dahili vericisini attığım için harici bir Bluetooth vericisine güç veriyorum. Harici bluetooth ile evde 2 farklı stereo hoparlör kullanıyorum.

16GB mikro SD kart (USB adaptörlü) tam bir Raspberry yedeği tutuyor. Dahili SD'yi çıkarmaya gerek kalmadan Raspberry'nin tam çalışan bir yedeğine sahip olmayı sağlayan çok iyi bir proje olduğu ortaya çıkan rpi-clone kullanıyorum. Bu SD'yi birçok kez dahili olanla sorunsuz bir şekilde değiştirdim. Bu yüzden kök kullanıcı için bir cronjob ayarladım:

#sda'da yedekleme - her Çarşamba gecesi

15 2 * * 3 /usr/sbin/rpi-clone sda -u | mail -s "SD'de PAB yedekleme - tamamlandı"

Daha sonra, şu kılavuzu izleyerek Raspberry'yi kapatıp yeniden başlatmak için kasadaki orijinal güç düğmesini yeniden kullandım:

Adım 5: Yazılım ve İşletim Sistemi

Yazılım ve İşletim Sistemi
Yazılım ve İşletim Sistemi
Yazılım ve İşletim Sistemi
Yazılım ve İşletim Sistemi
Yazılım ve İşletim Sistemi
Yazılım ve İşletim Sistemi

PAB'nin ana işletim sistemi, birkaç özel ekleme ile sade bir Raspbian minimaldir (Debian Buster):

  • ana yedekleme için rpi-klonu;
  • ssmtp, sistemden posta almak için basit bir MTA;
  • udevil, USB sürücülerinin otomatik montajına izin vermek için;
  • abcde, CD koleksiyonumu alıp herhangi bir ses formatına sıkıştırmak için;
  • mopidy, bir sürü eklentiye sahip tam bir Music Player Daemon.

Daha sonra kodu bu makalenin kapsamı dışında olan python3 ve tornado kullanarak tam bir PAB Zamanlayıcı sunucu uygulaması yazdım, ancak istek üzerine talimat verebilirim. Zamanlayıcı ile, hafta içi günlerini hafta sonlarını ayırt ederek, günün herhangi bir saati için çalma listeleri oluşturabilirsiniz.

PAB'yi çalıştıran ana yazılım mopidy'dir. Mopidy'nin (oldukça kapsamlı) kurulumu ve yapılandırması için lütfen buradaki belgelerine bakın:

Bunlar yüklü eklentiler:

  • Mopidy-Alsamixer
  • Mopidy-İnternet Arşivi
  • Mopidy-Local-Sqlite
  • Mopidy-Podcast
  • Mopidy-Scrobbler
  • Mopidy-Soundcloud
  • Mopidy-Spotify
  • Mopidy-Spotify-Tunigo
  • Mopidy-Cd
  • Mopidy-İris
  • Mopidy-Yerel-Görüntüler
  • Mopidy-TuneIn

PAB'nin tam kontrolünü elde etmek için Iris ön uç uzantısını seçtim (resimlere bakın). Bu, aşağıdaki özelliklere sahip çok güçlü bir web uygulamasıdır:

  • Mopidy için tam web tabanlı arayüz kontrolleri
  • Yerel kitaplıklar için geliştirilmiş destek (Mopidy-Local-Sqlite tarafından desteklenmektedir)
  • Çalma listelerine ve parçalara göz atın ve yönetin
  • Yeni, popüler ve ilgili müzikleri keşfedin (Spotify tarafından desteklenmektedir)
  • Serbestçe barındırılan
  • Şunlarla entegrasyon:

    • Spotify
    • SonFM
    • Dahi
    • anlık yayın
    • buz dökümü

Bu sayede müziğimi neredeyse her yerden (bilgisayar, tablet, akıllı telefon) kontrol etmekte özgürüm.

Önerilen: