Raspberry pi'den internet radyo alıcısı. Raspberry Pi'de FM radyo yayın istasyonu. Adım #3: Yapılandırma dosyasını düzenleyin


Bu internet radyosu ve MP3 çalar, çalışmak için 3,5 HDMI LCD dokunmatik ekran kullanır. Orijinal proje Adafruit tarafından yayınlandı ve proje MPC, MPD ve Pygame kullanıyor.

Raspberry pi 3'te internet radyosu ve mp3 oynatıcının bileşenleri

Raspberry pi 3'e internet radyosu ve mp3 oynatıcı kurulumu

  • Raspbian'ı indirin, görüntüyü microSD 8GB veya daha fazlasına yazın. Ayrıca Raspberry Pi'ye SSH aracılığıyla nasıl bağlanacağınızı da bilmeniz gerekir. Klavye ve fareyi bağlayın
  • LCD ekranı Raspberry Pi'ye takın.
  • Bir terminal penceresi açın ve girin

sudo raspi-config

  • saat ve giriş dili için başlangıç ​​ayarlarını yapın
  • Gelişmiş Seçenekler'e gidin ve VNC, SSH'yi etkinleştirin ve çözünürlüğü 640x480 olarak ayarlayın
  • Raspberry pi'yi yeniden başlatın
  • Görüntü, müzik depolamak için gereken alanı kaplayan, proje için gereksiz programlar içeriyor, bu nedenle Pi'deki fareyi kullanarak Wolfram ve Libreoffice'i kaldırıyoruz ve ekle / kaldır veya SSH aracılığıyla seçiyoruz

sudo apt-get purge wolfram-engine libreoffice* -y

sudo apt-temiz ol

sudo apt-get otomatik kaldırma

sudo apt-get güncellemesi

sudo apt-get yükseltme

  • Güncellemeden sonra ihtiyacınız olanı yüklemeye hazırsınız. Şimdi LCD sürücülerini yükleyin.

git klonu https://github.com/goodtft/LCD-show.git

chmod -R 755 LCD gösterisi

sudo ./MPI3508_600_400-show

  • Pi radyoda kullanılan çözünürlük 640x480 olduğundan config.txt dosyasını değiştirmeniz gerekir

sudo nano /boot/config.txt

  • ve dosyanın altındaki çözünürlüğü 640x480 olarak değiştirin. Kaydet, çık ve yeniden başlat.
  • Bu noktada Pi'nin masaüstüne ve dokunmatik ekrana önyükleme yapması gerekir. Şimdi Pi-radyo dosyalarını yükleyin.

sudo apt-get mpc mpd'yi yükle

git klonu https://github.com/granpino/Pi-Radio-mp3-.git

chmod -R 755 Pi-Radyo-mp3-

cd Pi-Radyo-mp3-

sudo ./install.sh

  • Kurulum dosyası mp3 ve İnternet radyosu için gerekli çalma listelerini oluşturacaktır. Raspberry masaüstünde bir simge bulunmalıdır. Pi-radyo'yu açmak için radyo kısayoluna iki kez dokunun. Masaüstünü tek tıklamayla değiştirmek için dosya yöneticisine gidin, düzenle'ye tıklayın ve en alttaki özellikleri seçin. "Dosyaları tek tıklamayla aç" seçeneğini seçin.
  • Uygulamayı masaüstünden çalıştırmaya karar verdim çünkü aynı Pi üzerinde LCD ekranı kullanan diğer uygulamaları da çalıştırmak istiyorum. Test etmeniz için bazı örnek mp3'ler ve radyo istasyonlarını ekledim. Çalma listesine başka radyo istasyonlarını eklemek için http://www.radiosure.com/stations/ adresine gidin ve M3U bağlantılarını kopyalayın.

mpc çalma listesini kaydet

  • veya dosyayı düzenleyin

sudo nano ~/var/lib/mpd/playlists/playlist

  • mp3 dosyaları ekleyin, bunları müzik klasörüne taşıyın

sudo ls -1 /home/pi/Music/*.mp3 > /var/lib/mpd/playlists/mp3.m3u

Bu projede Raspberry Pi'nizi güçlü bir FM radyoya dönüştüreceğiz! Evinizi, ev yapımı bir arabalı sinema salonunu, bir lise beyzbol sahasını ve hatta bir motosiklet geçit törenini kapsayacak kadar yeterli menzile sahiptir.

Proje için Pi'nizin yeteneklerini büyük ölçüde artıracak bir PiFM programına ve ayrıca belirli uzunlukta bir tel parçasına ihtiyacınız olacak. Başka bir deyişle, Raspberry Pi - SD kartını, güç kaynağını ve kartın kendisini kontrol etmek için mutlak minimum sayıda bileşene ihtiyacınız olacak Raspberry Pi (AliExpress'ten satın alın)- peki, bir parça tel ekleyin. Sonuç, yalnızca birkaç bileşenden oluşan en havalı Pi cihazı olmalıdır.

PiFM ilk olarak Oliver Mattos ve Oskar Weigl tarafından yaratıldı, ardından Ryan Grassel tarafından yeniden tasarlandı. Sağlanan tavsiyeler için tüm PiFM topluluğuna özel teşekkürlerimi sunmak isterim. MAKE laboratuvarı projeye katkıda bulundu - senaryo Korsan Radyo.py müzik dosyalarını komut satırını kullanmadan çalmanıza olanak tanıyan ve aynı zamanda otomatik işleme ve yönetim sağlayan. Senaryo, genç bir MAKE Labs uzmanı Wynter Woods tarafından oluşturuldu. Kaynak kodu bulunabilir.

NOT: Raspberry Pi'nin yayın bandı frekansı 1MHz ile 250MHz arasında değişir ve hükümet bantlarıyla örtüşebilir. Yayınlarınızı standart FM bandı 87,5MHz - 108,0MHz ile sınırlandırmanızı (bkz. Adım 3) ve lisanslı yayıncılarla frekans çakışmasını önlemek için her zaman halihazırda kullanımda olmayan bir frekansı seçmenizi öneririz.

Adım #1: Bir Anten Yapın

  • Anten yapmak için sadece bir parça tele ihtiyacınız var. Bunu yapmak için, pim 4'e 75 cm'lik bir kablo bağlamanız gerekir (Bu, orta FM aralığında 100 MHz'de yarım dalga simetrik vibratör şeklinde bir anteni doğru şekilde oluşturmanıza olanak tanır). 40 cm'lik sağlam 12 AWG (2,053 mm) kablo kullandık çünkü kablo daha uzun olduğunda ünite çalışmaya başladı.
  • Dişi bağlantı kablosunu kesin ve açığa çıkarın. Bunu anteninizin bir ucuna lehimleyin ve lehim bağlantısını ısıyla daralan makaron kullanarak yalıtın.
  • Bağlantının çevresine bir miktar ısınma yapıştırıcısı sürün ve bunu Raspberry Pi'nizin 4 GPIO pinine yerleştirin. Yapıştırıcı anteninizin yapısını daha sağlam hale getirecek ve böylece daha iyi ayağa kalkacaktır.
  • NOT: Raspberry Pi Başlangıç ​​Kitiniz varsa ve aceleniz varsa Cobbler genişletme yükseltici kartına takılan erkek bağlantı kablosunu kullanabilirsiniz! (Her ikisi de pakete dahildir). Bu işe yarayacaktır ancak menzil, 40 cm'lik 12 AWG (2.053 mm) katı bakır tele kıyasla neredeyse yarı yarıya değişecektir.

Adım #2: Disk görüntüsünü SD kartınıza indirin ve müzik ekleyin

  • MAKE Labs, sistemi yapılandırırken zaman kazanmak için bir disk görüntüsü oluşturdu. Buradan indirin (Yalnızca kaynak koduna ihtiyaç duyan ileri düzey kullanıcılar, indirme dipnotunu bu belgenin üçüncü paragrafında bulabilirler).
  • Orijinal PiFM kodu etkileyici sonuçlar gösterdi. MAKE görüntüsü, bir sistem bölümü ve bir veri bölümü oluşturarak kartı bölümlere ayırır. Ayrıca veri bölümünüzü otomatik olarak bağlamanıza da olanak tanır. Görüntü orijinal kodun bir kısmını kullanır ve MP3, FLAC ve diğer formatları oynatmanıza olanak tanır. Komut dosyası başlangıçta yürütülür Korsan Radyo. py Böylece radyo vericisini indirdikten sonra müziğiniz anında yayınlanacaktır. Sonuçta bu bize çok zaman kazandıracak. Ancak dosyaları yalnızca SD kartınıza kopyalayamazsınız; kart işe hazırlanmalıdır.
  • Görseli SD kartınıza indirin. Bunu nasıl yapacağınızı bilmiyorsanız endişelenmeyin, çok basit. Windows'ta Win32DiskImager'ı veya OSX bilgisayar kullanıyorsanız komut satırı talimatlarını (1) kullanabilirsiniz. Linux kullanıcılarının komut satırına daha aşina olduğunu tahmin ediyorum.
  • OSX ve Linux kullanıcıları için PirateRadio bölümünü açıp başlamanız yeterli. Windows işletim sistemi kullanıcıları, WinSCP kullanarak Pi'nizi SSH üzerinden bağlamak için talimatlarımızı izlemelidir.
  • Müzik eklemek için sanatçı veya albüm klasörünüzü SD karttaki “Pirate Radio” kök dizinine kopyalamanız yeterlidir. Müzik dosyalarınız bu klasörlerin içinde yer alacaktır, bu nedenle tüm müzik parçalarınızı ana dizine birlikte dökmenize gerek kalmayacaktır.

Adım #3: Yapılandırma dosyasını düzenleyin

Dosyada yayın için gerekli frekansı ayarlayabilirsiniz. korsan radyo. yapılandırma. Dosyayı bir metin düzenleyicide açın. Aşağıdakileri görmelisiniz:

Frekans = 108,2 karıştırma = Doğru tekrar_hepsi = Doğru

  • Radyoda yayınlamak istediğiniz istasyonun frekansını ayarlayın. Standart FM frekansları tipik olarak 87,5 MHz ila 108,0 MHz arasındadır (108,2, test radyomuzun diğer istasyonlarla herhangi bir çakışma olmadan ulaşabileceği en yüksek frekanstır).
  • Bunları alfabetik sırayla oynatmak için rastgele oynatma seçeneğini Doğru veya Yanlış olarak ayarlayın.
  • Çalma listesinin döngü halinde oynatılmasını istiyorsanız Repeat_all'ı True olarak ayarlayın.

Adım #4: Başlatın!

FM radyonuzu istediğiniz frekansa ayarlayın ve Raspberry Pi'yi başlatın. Mikrobilgisayarın başlatılması yaklaşık 15 saniye sürer. Daha sonra müziğinizi yüksek ve net bir şekilde duyabilmelisiniz.

Adım #5: PiFM Nasıl Çalışır?


  • PiFM wiki'sinden alıntı: "Program Raspberry Pi donanımını kullanıyor; bu, güçlü bir FM radyo için GPIO pinleri üzerinde geniş bant saat sinyalleri üretmek anlamına gelir. Bu, Raspberry Pi'yi yalnızca bir kablo parçasıyla (yaklaşık 20 cm uzunluğunda) bağlamanız gerektiği anlamına gelir ) GPIO pin 4'e takın ve program kodunu çalıştırın."
  • Frekans modülasyonu "kesirli bir bölücü kullanılarak frekansın ayarlanmasıyla gerçekleştirilir." Örneğin, 100 MHz'lik bir hedef frekansı elde etmek için sinyal 100,025 MHz ile 99,975 MHz arasında değiştirilir ve sonuçta bir ses sinyali elde edilir.
  • Python kodunda, varsayılan frekans 87,9 FM'dir ve karışık çalma ve müzik listesi döngüsü devre dışıdır. Program, SD kartı müzik dosyaları için tarar ve belirtilen seçeneklere göre bir liste derler. yapılandırma dosya. Daha sonra her dosya türüne bağlı olarak kod çözücüye aktarılır. Bundan sonra her dosya PiFM için anlaşılır bir mono formatta yeniden kodlanır. Bu, yalnızca WAV dosyalarını değil aynı zamanda MP3, FLAC, M4A, AAC veya WMA dosyalarını da oynatmanıza olanak tanır.

Adım #6: Son Aşama

Bildiğiniz gibi mükemmelliğin sınırı yoktur. Kullanıcı kitlesi yalnızca bir kişiden oluşan ev yapımı taşınabilir akustik için bile. Çok talepkar ve bazen takıntılı derecede ısrarcı bir kişi. Pi-Sonos ile ilgili ilk paylaşımın üzerinden neredeyse 5 ay geçti. Bu süre zarfında bu akustiğin içindeki yazılım iki kez dramatik bir şekilde değişmeyi başardı. Değişikliklerin nedeni hem Habraviyalıların hem de kendi kullanıcı deneyimimizin faydalı tavsiyeleriydi.

Pi-Sonos, Sonos Play 1'den ilham alan ev yapımı kompakt bir hoparlördür. Bu hoparlörün amacı öncelikle İnternet radyo istasyonlarından müzik çalmaktı. Bunu yaratırken minimalizm ve rahatlığa öncelik verdim: elektrik prizine takın ve ardından müziği evin herhangi bir yerindeki akıllı telefonunuzdan/bilgisayarınızdan/tabletinizden kontrol edin.


Bu makale ne hakkında?

Her şeyden önce ideale giden yolda azim ve meraktan bahsediyoruz. Kullanıcı adının kesilmesi altında ne küresel bir soruna çözüm ne de yeni ve benzersiz bir teknolojinin açıklaması yer alacak. Makale, Raspberry Pi için popüler medya merkezlerinin bir karşılaştırmasını özetlemekte, avantajlarını ve dezavantajlarını ve ayrıca bir İnternet radyo alıcısı için en uygun çerçeveye ilişkin kişisel vizyonumu ortaya koymaktadır. Aslında, hoparlör için kendi yazılımımı geliştirirken, Volumio'nun yaratıcılarının yolunu yalnızca kısmen tekrarladım, yalnızca işlevlerinden yalnızca birini sıfırdan uyguladım (okuyun: "başka bir tekerlek icat ettim").
Makalenin yazılım geliştirme konusuna değinmesine rağmen içinde kod yoktur çünkü makalenin amacı uygulama sürecini değil, fikri ve işlevselliği anlatmaktır. Kod konusu Khabra sakinlerinin ilgisini çekiyorsa, geliştirme sürecini anlatan ayrı bir makale doldurmaya çalışacağım.


Başlangıçta, akustiğin yazılım dolgusu OSMC'ydi, ancak yorumlardaki bilge insanlar Kodi'nin (diğer adıyla OSMC) bir İnternet radyo istasyonu için "beyin" kadar şişman olduğuna dikkat çekti. Çok akıllı ve büyük ama Volumio ses projeleri için daha uygun. Aslında öyle çıktı. Volumio daha hafiftir, bir web arayüzü için tasarlanmıştır ve daha gelişmiş ve geliştirilmesi kolay bir API'ye sahiptir. Volumio herhangi bir tarayıcıda tamamen yapılandırılabildiğinden, arkadan çıkan bir HDMI kablosuna da gerek yoktur.

Ancak Volumio'nun beni daha fazla araştırmaya sevk eden birkaç önemli eksikliği de vardı. Bu, öncelikle yükleme süresi ve ikincisi, otomatik oynatmanın olmamasıdır. Resmi belgeleri inceledikten sonra (Volumio'nun mpd (Music Player Daemon) için bir eklenti olduğu anlaşılabilir), bunları çözecek RPi-Radio adlı js'de kendi sarmalayıcımı yazma zamanının geldiğine karar verdim. sorunlar. Sunucu kısmı Node.js üzerinde çalışıyor ve React.js kullanan istemci kısmı (GUI), OSMC'nin kullanıldığı günlerden beri hazırdı; sadece biraz ayarlanması gerekiyordu. Şu anda bir akıllı telefon ekranında böyle görünüyor:


Aşağıda her çerçevenin dezavantajlarını ve avantajlarını açıkça gösteren bir tablo bulunmaktadır.
Kriter OSMC Hacim RPi-Radyo
Yüklenme zamanı 35 saniye 45 saniye 20 saniye
Başlangıçta otomatik oynatma HAYIR* HAYIR* Evet
Favori listesinden bir radyo istasyonu seçmek için akıllı telefondaki "yerel" GUI'nin ana ekranından yapılan dokunma sayısı** 5+1 kaydırma 4 1
Monitör, klavye ve fare için gereksinimler*** Evet HAYIR HAYIR
Web kontrolü kısmi tamamlamak kısmi
İstasyon listesini düzenleme şöyle böyle normal şöyle böyle
İlk kurulum kolaylığı şöyle böyle Harika vasat
Akıllı telefondan kontrol için GUI'm ile entegrasyon koltuk değneği ile koltuk değneği ile kutudan
Günlük kullanım kolaylığı ☆☆ ☆☆☆
* aslında evet, ancak bir koltuk değneği yapıp onu otomatik yüklemeli Raspbian'a kaydırmanız gerekiyor; OSMC durumunda, koltuk değneği python ile, Volumio durumunda ise js veya bash ile yazılmıştır. Ancak her iki durumda da hala beklendiği gibi çalışmıyor.
** OSMC ve Volumio için bunlar çok önemli parametrelerdir çünkü tüm bu kaydırma dokunuşlarının hoparlör her açıldığında yapılması gerekir. RPi-Radio için bu parametre minimum düzeyde olmasına rağmen, hoparlör açıldığında kendi kendine çalmaya başladığından hala o kadar önemli değil.
*** Bu, monitörün, klavyenin ve farenin Raspberry Pi'nin kendisine fiziksel olarak bağlanması anlamına gelir; yerleşik web arayüzünü veya ssh bağlantısını kullanmanın mümkün olmadığı durumlar.

Bu spoylerin altında, karşılaştırma noktalarının her birinin ayrıntılı bir açıklaması gizlidir.

Benim görüşüme göre, bu proje için Raspbian optimizasyon ormanına dalmadan elde edilebilecek minimum yükleme süresi 20 saniyedir. Raspberry'nin işletim sistemini yüklemesi ve mpd hizmetini başlatması tam olarak bu kadar sürer. Muhtemelen, microSDHC'yi daha yüksek okuma/yazma hızına sahip microSDXC ile değiştirirsek bu sonuç iyileştirilebilir (mümkün olduğunda kontrol edeceğim). Şaşırtıcı bir şekilde, hafif ve çevik gibi görünen Volumio, OSMC canavar biçerdöverinden daha uzun süre yükleniyor. 45 saniyelik bekleme süresi, konforlu çalışma eşiğinin ötesindeydi ve Volumio'dan ayrılmamızın ana nedeni de buydu.

Otomatik oynatma mpd'de kutudan çıktığı gibi mevcut, etkinleştirmek için hiçbir şey yapmam gerekmedi - kullanışlı! Volumio'da mpd sarmalayıcı olmasına rağmen güzel bir selamlama sesi uğruna bu işlev boğuldu. Daha önce de yazdığım gibi, bir komut dosyası oluşturabilir ve onu başlangıçta çalıştırabilirsiniz. OSMC'de de benzer bir durum var.

OSMC'de kullanıcı etkileşiminin çoğu monitör aracılığıyla gerçekleşir: güzel bir arayüz, video, resim izleme, haberleri okuma ve hava durumunu izleme yeteneği var - köşemin ömrü boyunca asla yapmayacağı birçok şey var.

Ancak OSMC'nin web yönetimi çok sınırlıdır ve Radyo eklentisindeki favori istasyonların listesini uzaktan bile yalnızca monitör aracılığıyla yapılandıramazsınız. Volumio'da ise tam tersine her şey yalnızca web arayüzü üzerinden yapılır. İstasyon listesini masaüstü/dizüstü bilgisayardaki bir tarayıcıda düzenlemek en kullanışlı yöntemdir ancak isterseniz bunu akıllı telefonda da kullanabilirsiniz. RPi-Radio ile web arayüzü üzerinden yalnızca bir istasyon seçebilir ve sesi ayarlayabilirsiniz. İstasyonların listesi ve aslında diğer her şey konsol üzerinden ssh aracılığıyla yapılmalıdır. İstasyon listesi en zor olanıdır: OSMC ve Volumio'nun İnternet radyo istasyonlarından oluşan kendi kapsamlı kütüphaneleri varken, RPi-Radio'da favori istasyonlarımın adreslerini JSON formatında manuel olarak girmek zorunda kaldım. Bu sakıncalıdır, ancak hayatınızda yalnızca bir (veya birkaç) kez.

OSMC, ilk kurulumda en kötü deneyime sahiptir. Öncelikle Raspberry'e bir monitör bağlamanız ve Radyo eklentisini yapılandırmanız gerekir, ardından ses çıkışını konsol veya ssh aracılığıyla harici bir IQAudio DAC'ye (Suptronics X400 kartındaki) yapılandırmanız gerekir. RPi-Radio'nun DAC kurulumu aynı, ancak en azından geri kalan her şey ssh aracılığıyla yapılıyor. Bu kategorinin lideri elbette Volumio'dur - harici bir DAC aracılığıyla ses çıkışı sağlamak için, ayarlar menüsündeki açılır listeden uygun öğeyi seçmeniz yeterlidir. Resmi Suptronics web sitesinde bile bir karşılaştırma var (http://www.suptronics.com/xseries/x400.html)

RPi-Radio'daki GUI, React.js'de uygulanan basit bir web sayfasıdır. İstemci GUI'si ile mpd arasındaki etkileşimden sorumlu olan sunucu kısmı, Node.js üzerinde çalışır ve Socket.io + http + express kombinasyonunu temel alan basit bir HTTP ve WebSocket sunucusudur. Mpd hizmeti başladıktan hemen sonra sistem açıldığında Raspbian üzerinde hizmet olarak çalışır ve mpd'yi yönetmek için mpc-js modülünü kullanır. İstemci GUI'sine ev ağımdaki herhangi bir tarayıcıdan yalnızca "raspberry"nin IP'si veya ana bilgisayar adı aracılığıyla erişilebilir. Mükemmel.


RPi-Radyo kaynakları yayınlandı

Daha önce de birçok kez söylendiği gibi, mini bilgisayarın çok yönlülüğü sınır tanımıyor. Benzersiz projeler yaratmak için temel programlama bilgisine sahip olmak ve bir gün boş gün geçirmek yeterlidir. Ancak herkesin fazladan zamanı yok ama kendi elleriyle bir şeyler yapmak istiyor. Bu nedenle interneti veya eklentileri kullanarak Raspberry'de radyo dinlemenin nasıl yapılacağına dair kısa bir makale hazırladık.

Raspberry Pi'de internet radyosu

Bu yöntemi kullanarak bir radyo istasyonu oluşturmak için uygun modülle donatılmış bir gadget modeline ihtiyacımız var. Daha fazla rahatlık için, birçok gereksiz kabloyu ortadan kaldıracak yerleşik Wi-Fi modülüyle daha eski değişiklikleri kullanabilirsiniz. Daha sonra aşağıdaki talimatları izleyerek Raspberry Pi ile bir İnternet radyo alıcısı yapmaya başlıyoruz:

  1. Karta müziğin çalınacağı bir ses cihazı bağlarız. İstenirse gadget için bir kasa ve küçük bir ekran seçebilirsiniz.
  2. Mini PC'ye radyo yayınları da dahil olmak üzere en yaygın ses dosyası formatlarını çalabilen bir oynatıcı kuracak olan “sudo_apt-get_install_mplayer” komutunu yazıyoruz.
  3. Android işletim sistemine sahip bir akıllı telefon veya tablete, klavyeye bağlanmadan Raspberry üzerinde komutları yürütebilecek bir uygulama yüklüyoruz. Bizim durumumuzda Raspi SSH'dir. Ek olarak, gadget'a ayrı düğmeleri lehimleyebilir ve radyo istasyonlarını açmak ve oynatmayı durdurmak için uygun komutları yazabilirsiniz.
  4. Radyoyu açmak için “mplayer_-playlist_http://radyo istasyonuna doğrudan bağlantı” komutunu yazıyoruz. Yalnızca kayıtlı radyo istasyonunun çalınacağını lütfen unutmayın. Bir başkasına geçmek için komutu tekrar girmeniz gerekecektir. Resmi bağlantılar ilgili sitelerde bulunabilir ve hızlı gezinme için uygun bir yere kaydedilebilir.
  5. Dinledikten sonra radyoyu kapatmak için, gadget'a minimum zarar verme riskiyle uygulamayı sonlandıracak olan "killall_mplayer" komutunu girin ve ardından mini bilgisayarın güç kaynağıyla olan bağlantısını kesin.

Ek olarak, Raspberry'de İnternet radyosunu dinlemek için uygun uygulamaları destekleyen bir işletim sistemi kurabilir veya hazır yardımcı programlarla ürün yazılımını kullanabilirsiniz (Github'da bulunabilir). Şimdi Raspberry'i RTL-SDR alıcıyla kullanmanın özelliklerine bakalım.

Mini bilgisayarı kalıcı bir İnternet bağlantısından ayırmak için, herhangi bir çevrimiçi mağazadan Raspberry Pi için küçük bir SDR alıcısı ve 2,8 inç veya daha fazla diyagonal bir ekran (PiTFT) satın alabilirsiniz. Bundan sonra talimatları izleyin:

  • Ekranı bağlayıp yapılandırıyoruz. Bunu yapmak için, görüntüyü gerekli tüm yazılımlarla birlikte indirin (doğrudan bağlantı adafruit-download.s3.amazonaws.com/2015-02-16-raspbian-pitft28r_150312.zip) ve aygıtın hafıza kartına aktarın. İşletim sistemi Raspberry'de zaten yüklüyse ve önemli verileri kaybetmek istemiyorsanız ayarları manuel olarak yapabilirsiniz (yalnızca deneyimli kullanıcılar için).
  • RTL-SDR kitaplıklarını Raspberry Pi'ye indirin (Github'da ihtiyacınız olan her şeyi içeren hazır bir arşiv bulabilir veya her kitaplığı manuel olarak kaydedebilirsiniz; bu kesinlikle önerilmez).
  • Python için modül sarmalayıcıyı yükleyin. Bunun için “sudo_pip_install_pyrtlsdr” komutunu girin ve hafıza kartına kurulumun tamamlanmasını bekleyin.
  • İleride sinyal alımının izlenmesini ve radyo dinleme olanağını sağlayacak FreqShow uygulamasını kuruyoruz. Bunu yapmak için “cd_~ Paragraph git_clone_https://github.com/adafruit/FreqShow.git Paragraph cd_FreqShow” komutunu yazın.
  • Uygulamayı “sudo_python_freqshow.py” komutuyla başlatıyoruz ve tüm fonksiyonların yüklenmesinin tamamlanmasını bekliyoruz.
  • "rtl_fm_-f_104.7M (herhangi bir frekans olabilir) -M_wbfm_-s 200000_-r_48000_-_|_aplay_-r_48k_-f_S16_LE" komutunu kullanarak radyo sinyali oynatmak için rtl_fm programını kullanıyoruz. Bu yöntem yalnızca resmi radyo istasyonlarının frekanslarını dinlemenize değil, aynı zamanda radyo modülünün yakalama bölgesinden geçen sinyalleri de yakalamanıza olanak tanır.

Ayrıca Raspberry Gqrx üzerinde daha iyi ses sağlayan SDR modüllerini de kullanabilirsiniz. Ancak bu modülleri çalıştırırken, Raspberry kullanıcı topluluğunda daha az yaygın oldukları için istenen sinyali yakalamak ve bir mini bilgisayarda kararlı çalışma kurmak çok daha zordur.

Bu, radyo dinlemek için İnternet'i ve Raspberry'de SDR'yi kullanmayla ilgili tüm yararlı bilgileri sonuçlandırıyor. Kompakt formda favori radyo istasyonlarınızın net sesinin keyfini çıkarın ve küçük bir cihazın yetenekleriyle arkadaşlarınızı şaşırtın.

Büyük bir şehirde yaşıyorsanız ve hatta basit bir radyo alıcısına sahipseniz bile, VHF aralığındaki birkaç düzine radyo istasyonunu çok iyi kalitede dinleyebilirsiniz. Görünüşe göre bu oldukça yeterli ...

Ancak karasal radyo istasyonlarının bazı dezavantajları vardır. Birincisi, bazı bölgelerde sinyal alımı zayıftır ve ikincisi, görünürdeki çeşitliliğe rağmen müzik zevklerine tam olarak uyan bir radyo istasyonu bulmak her zaman kolay değildir. Ek olarak - can sıkıcı reklamlar ve çoğu istasyonun oldukça sınırlı repertuvarı.

Artık birçok kullanıcının World Wide Web'de yayınlanan radyo istasyonlarını dinlemeyi tercih etmesi şaşırtıcı değil. Şu anda internet radyo istasyonlarının sayısı 10 bini aştı. İnternet aracılığıyla dünyanın hemen her ülkesinde bulunan ve çok çeşitli dillerde yayın yapan istasyonlardan program dinleyebilirsiniz. Ancak radyoyu dinlemek için bilgisayarı açmak, en hafif tabirle sakıncalıdır. Her nasılsa daha tanıdık ve kullanışlıydı; düğmeyi çevirdim ve istasyona girdim...

Ve böylece bir İnternet radyo alıcısı yapacağım. Bu fikir aklıma, çok daha güçlü Raspberry Pi 2'yi satın aldıktan sonra kullanım dışı kalan Raspberry Pi model B mikro bilgisayarını bir proje için kullanıp kullanmamaya karar verirken geldi.

Raspberry Pi'de birçok İnternet radyo projesi var. Bulabildiğim en iyi şey Pi Radyo'ydu. Yazar - Bob Rathbone- 2 yıldan fazla bir süredir bu proje üzerinde çalışıyor. Tüm bilgilerin açıklığı ve erişilebilirliğinin yanı sıra donanım ve yazılım yapılandırma yöntemlerinin çok ayrıntılı bir açıklaması özellikle dikkat çekicidir.

Tekrarlamaya karar verdiğim şey bu gelişmeydi. Elbette tasarımı körü körüne kopyalamadım, sürece yaratıcı bir şekilde yaklaştım ve kendime ait bir şeyler ekledim.

Peki Pi Radyo nedir? Bu, çevrimiçi radyo istasyonlarını dinlemenize olanak tanıyan bir İnternet alıcısıdır; ayrıca ev ağınızdaki bir flash sürücüden veya ağ sürücüsünden müzik dosyalarını çalabilir. Program birçok farklı hizmet fonksiyonu içerir - zamanlayıcı, alarm saati, RSS haberleri, podcast'ler...

İnternet bağlantısı kablolu veya WiFi üzerinden yapılabilir. Alıcı, popüler Raspberry Pi mikrobilgisayarını temel alır ve herhangi bir modeli kullanabilirsiniz: B, B+, 2 veya Zero.

Bob Rathbone devrenin ve yazılımın çeşitli varyasyonlarını geliştirdi. Bilgilerin 2 veya 4 satır karakterli LCD ekranda görüntülendiği bir kodlayıcı ve düğmeler kullanılarak kontrol mümkündür. Uzaktan kumandayı kullanarak alıcıyı kontrol edebilirsiniz.

Ekran, doğrudan Raspberry Pi I/O bağlantı noktalarına veya I2C veri yolu aracılığıyla PCF8574 tabanlı bir kart kullanılarak bağlanabilir. Yazar, iki tür ekran daha kullanma olanağı sağlamıştır: I2C arayüzlü AdaFruit LCD ve SPI arayüzlü PiFace CAD.

İki satırlı bir ekranı doğrudan G/Ç bağlantı noktalarına bağlayarak ve kodlayıcıları kontrol ederek seçeneği tekrarladım. Sonuçlar beni tamamen tatmin etti, bu yüzden başka bir alıcıya ihtiyaç duyulduğunda ikinci bir versiyon yaptım, her şey aynıydı ama düğmelerle kontrol ediliyordu. Gelecekte bu iki değişikliği anlatacağım.

İlk önce ekranı bir PCF8574 kartı kullanarak I2C veri yolu üzerinden bağlamayı denediğimi unutmayın. Kurulumu için çok zaman harcadım ama sonunda bu seçenekten vazgeçmek zorunda kaldım. Yazılım oldukça karmaşık ve hacimlidir, açıkçası yazar, radyosunun tüm seçeneklerini kapsamlı bir şekilde test etme gücüne ve fırsatına sahip değildir.

Program, özellikle uzaktan kumandadan komut gönderilirken sürekli donuyordu. Burada neler olduğunu anlamak zor. Ancak ekranın Raspberry Pi'ye doğrudan bağlantısı olan seçenekler güvenilir bir şekilde çalışır. Bu nedenle bu alıcıda I2C veya SPI veriyolunun kullanılmasını önermiyorum.

Bana göre yazar, her türlü yardımcı işleve, asıl işlevlerin zararına çok fazla önem verdi. Sonuçta LCD göstergesinin yetenekleri çok sınırlı ve örneğin onunla ilgili haberleri okumak pek rahat değil. Alıcıyı çalar saat olarak kullanmak çok risklidir; herhangi bir nedenle internet yoksa radyo da olmayacaktır. Ve geceleri elektrik kapatılabiliyor...

Ancak genel olarak her şey yolunda gitti, alıcı kullanılabilir.

Temel olarak radyo alıcısı, bir ekranı ve I/O bağlantı noktalarına bağlı 2 kodlayıcısı olan bir Raspberry Pi kartıdır. Bunlardan birini kullanarak bir istasyon seçersiniz, ikincisini kullanarak ses seviyesini ayarlarsınız. Kullanılan ekran, 16 karakterlik 2 satırdan oluşan HD44780 denetleyiciyi temel alan en yaygın ekrandır. Gezinme için kodlayıcılar yerine 5 düğmeyi kullanabilirsiniz.

Yüksek kaliteli ses sevenler için Raspberry Pi'nin AUDIO çıkışı yerine harici USB ses kartı kullanmak mümkün.

Elbette alıcının bir güç kaynağına ihtiyacı var. Aralarından seçim yapabileceğiniz birçok seçenek var - en az 1,5 A akıma sahip 5 voltluk herhangi bir stabilize güç kaynağı yeterli olacaktır.Telefon şarj cihazının çalışmayacağını, stabilize bir güç kaynağına ihtiyacınız olduğunu, yük altındaki voltajın çalışmayacağını unutmayın. 4,8 V'un altına düşer ve yük olmadan 5,2 V'un üzerine çıkar.

Bir şekilde müzik dinlemelisin, yani. Bir stereo amplifikatör veya aktif hoparlörler gereklidir. Ayrıca her zevke (işitme) ve bütçeye uygun birçok seçenek var.

Bu proje için amatör radyo "çöp kutumdan" en iyi şekilde yararlanmaya karar verdim. Gerekli akım ve voltaj için mükemmel bir ağ transformatörü, bir LM2576-ADJ anahtarlama dengeleyici çipi ve iyi ve oldukça güçlü bir LM1876 stereo düşük frekanslı amplifikatör çipi içeriyordu.

Yazar, alıcının yalnızca güç anahtarını kullanarak açılıp kapatılmasını öneriyor. Bu Raspberry Pi'ye zarar vermese de koşullar kötüyse SD karttaki dosya sistemine zarar verebilir. Bu nedenle sistemi doğru bir şekilde kapatmak ve gücü kapatmak için cihaza bir devre eklemeye karar verdim. Üstelik yazar böyle bir mod sağlamıştır - "Menü" düğmesini 3 saniye basılı tutmanız, ardından yaklaşık 30 saniye daha beklemeniz ve gücü kapatmanız gerekir. Katılıyorum - bu çok sakıncalıdır.

Sonuç aşağıdaki diyagramdır. Bu benim kodlayıcı kontrolüyle ilk seçeneğim. Eklediklerim mavi renkle vurgulanmıştır.

Ayarlama ve ses seviyesi, sırasıyla SA1, SB1 ve SA2, SB2 düğmelerine sahip kodlayıcılar kullanılarak kontrol edilir. SB1 düğmesi – “Menü”ye, SB2 – “Sessiz” moduna girer. Kodlayıcılar 90 derece kaydırılmış bir dizi darbe üretmelidir. ES110501S-HA2 tipi 5 pin kullandım. Mağazanın fiyat listesinde bu etiket altında listeleniyorlardı.

Transistörler VT3...VT7 ve dirençler R11...R23, gösterge için 3,3 - 5 V mantıksal seviye dönüştürücülerdir. Bu öğelerin yüklenmesi gerekli değildir. Uygulamanın gösterdiği gibi, 5 voltluk bir gösterge normal olarak 3,3 V'luk mantıksal seviyelerde çalışır. Bununla birlikte, sorunlar ortaya çıkarsa, seviye dönüştürücü doğrudan göstergenin üzerindeki küçük bir karta monte edilebilir. 3,3 V ile çalışan bir gösterge kullanmak daha da iyidir, ancak bu tür göstergeler oldukça azdır ve maliyeti çok daha yüksektir.

DA1, televizyonlar için uzaktan kumandadan gelen bir alıcıdır; çıkışta, ortak bir yayıcıya sahip bir devrede bir transistöre ve toplayıcı devrede yaklaşık 30 KOhm'luk bir yük direncine sahiptir, bu nedenle seviyelerin eşleştirilmesinde herhangi bir sorun yoktur. HL2 – uzaktan kumanda etkinlik göstergesi.

Bu aslında alıcının tamamıdır ve devrenin solda maviyle vurgulanan kısmı güç devresidir. Normal bir transformatör güç kaynağı kullandım. Kapalı durumda tüm devrelerin enerjisi kesilir, bekleme modu yoktur. SB4 butonuna bastığınızda transformatöre güç sağlanır. Lütfen düğmenin sabit olmadığını ve 220 V anahtarlama için tasarlanmış olması gerektiğini unutmayın. C4, C5, L1, L2 – ağ gürültü filtresi, L1, L2 değerleri kritik değildir.

Dengeleyicinin çıkışından Raspberry Pi'nin microUSB konektörüne ve PIC denetleyicisi DD1'e 5 V voltaj verilir. Kontrolörün pin 7'sinde (GP0) yüksek bir mantıksal seviye ayarlanır, transistör VT1 açılır, K1 rölesi etkinleştirilir ve güç düğmesini kontaklarıyla bloke eder.

Denetleyicinin pin 3'ünde (GP4) sıfır seviyesi ayarlanır; önyükleme işlemi ve sistemin kapatılması sırasında ULF girişine kısa devre yaptırmak için kullanılır. Gerçek şu ki, bir USB ses kartını etkinleştirme işlemine hoş olmayan, oldukça yüksek sesler eşlik ediyor. Raspberry Pi'nin yerleşik AUDIO çıkışını kullanmayı planlıyorsanız, K2 rölesi kurulamaz; bu durumda denetleyicinin GP4 çıkışı hiçbir yere bağlı değildir.

Güç uygulandıktan sonra HL1 LED'i yaklaşık 50 saniye boyunca yanıp sönerek sistemin başlatıldığını gösterir. Bu sürenin sonunda alıcı çalışmaya hazırdır, pin 3'te (GP4) yüksek bir mantıksal seviye ayarlanır, ULF girişinin kilidi açılır, HL1 sürekli yanar. HL1 ve HL2 için ortak katotlu iki renkli bir LED kullandım.

Alıcıyı kapatmak için SB3 tuşuna kısa süreli basmanız gerekmektedir. Bu durumda, kontrol cihazı çıkışı 5 (GP2), SB1 "Menü" düğmesine basmayı simüle ederek düşük bir mantıksal seviyeye ayarlanır. 3 saniye sonra sistem kapanmaya başlar, ULF girişi bloke edilir, HL1 tekrar yanıp sönerek kapanma sinyali verir. Yaklaşık 40 saniye sonra sistem kapatılır, pin 7 (GP0) sıfırlanır, K1 rölesi kapatılır ve sistemin enerjisi kesilir.

Kontrolör PIC12F629 veya PIC12F675 gibi ve programda küçük değişiklikler yapılarak herhangi bir PIC kullanılabilir.

Transformatörün sekonder sargılarındaki voltajlar biraz yüksek ama ben mevcudiyetinden yola çıktım. 5 V'luk bir anahtarlama voltaj regülatörü kullanmak zorunda kaldım, standart bir devreye göre bağlanmış bir LM2576-ADJ üzerine monte edildi. Direnç R1'in değeri, rölenin nominal akımı ve voltajına göre Ohm kanununa göre hesaplanır. L2, C3 – ek darbe gürültüsü filtresi. L1 derecesi, LM2576 veri sayfasında verilen önerilere göre giriş voltajına ve çalışma akımına göre seçilir. L2 değeri kritik değildir.

Devrenin tek teknik bilgisi, 6,8 V stabilizasyon voltajına sahip D815B tipi bir VD3 zener diyottur. Stabilizatörün çalışmasına katılmaz, yükü bir arıza durumunda artan voltajdan korumak için kurulur. stabilizatör arızası. Katılıyorum - devreye 5 V yerine 24 V uygularsanız, sonuçlar çok üzücü olacaktır.

Burada, radyatörsüz bir tahtaya monte edilmiş, somunlu metal bir kasada eski bir zener diyot kullanmanız gerekir. Herhangi bir nedenden dolayı stabilizatörün çıkışındaki voltaj 7 V'un üzerine çıkarsa, zener diyottan büyük bir akım akacak ve bu da transformatör sargı devresinde sigortanın atmasına yol açacaktır.

Sigorta yerine çivi takılırsa zener diyot aşırı ısınacak, içindeki kristal eriyecek ve çıkışa kısa devre yapacaktır. Raspberry Pi kaydedilecek. Düşük akımlı bir zener diyotu cam bir kasada kullanırsanız, aşırı yüklenirse patlayacak ve yükü korumayacaktır.

Düşük frekanslı amplifikatörün özel bir özelliği yoktur, LM1876 üzerindeki standart devreye göre monte edilir. C9...C12 ve R12...R17 Öğeleri – Klasik ve Rock olmak üzere 2 sabit konumlu ton kontrolü. İlk durumda frekans tepkisi doğrusaldır, ikincisinde ise alt ve üst frekanslar yükseltilir. SA1 geçiş anahtarını üç konumlu kullanırsanız, orta konumda tüm kontaklar açıkken yalnızca düşük frekanslar yükseltilecektir. Ton kontrolü SA1 pinlerine monte edilmiştir.

Röle K2'nin normalde kapalı kontakları, sistem başlatılırken ve kapatılırken amplifikatör girişine kısa devre yapar. Diyagramda 24 V sargılı bir rölenin bağlanması gösterilmektedir, ancak kullanılan güç kaynağına bağlı olarak 12 veya 5 V da kullanabilirsiniz. Daha önce de yazdığım gibi bu röle yalnızca USB ses kartı ve yüksek kaliteli akustik için gereklidir.

Kırpma direnci R4 kullanılarak kazanç kanallar arasında eşitlenir (stereo denge). Operasyonel ayarlama için bu direncin çıkarılmasına gerek yoktur. ULF kazancı, R8/(R3+R4) ve R9/R7 dirençlerinin değerlerinin oranıyla belirlenir.

Amplifikatör, transformatörün ayrı bir sargısından güç alır. Alıcının analog ve dijital parçaları için ortak bir güç kaynağı kullanırsanız, Raspberry Pi'nin yarattığı gürültüden - her türlü "havada uçma" ve "gıcırtı"dan kurtulmak daha zor olacaktır. Analog ve dijital topraklama yalnızca tek bir noktaya, ULF giriş konektörüne bağlanmalıdır. Ayrı bir harici bas amplifikatörü veya aktif hoparlörler kullanmak daha da iyidir.

Alıcının düğme kontrollü ikinci versiyonunun şeması aşağıdaki gibidir.

“Sessiz” modu, “Sesi Artırma” ve “Sesi Azaltma” düğmelerine aynı anda basılarak etkinleştirilir. R27-R31 dirençleri yalnızca en eski Raspberry Pi model B rev.1 için gereklidir. Rev için. 2'nin yanı sıra B+, 2 ve Zero modellerinin de kurulmasına gerek yoktur.

Anahtarlamalı güç kaynağı 5 V, 2 A. Dirençler R26, R27, ağ açıldığında akım dalgalanmasını sınırlar ve aynı zamanda sigorta görevi görür. VD2 - VD4 diyotları, 5-3,3 V seviyelerini eşleştirmek için kullanılır. 5 V sargılı Röle K1. İki çift kontaklı böyle bir röle satın alamıyorsanız, her biri bir çift olan iki röleyi paralel olarak bağlayabilirsiniz. Bu durumda daha güçlü bir transistör VT1 kullanmak gerekebilir. ULF yerine 5 V (USB) ile çalışan aktif hoparlörler kullandım. Raspberry Pi'nin AUDIO çıkışına bağlanırlar. Devrenin geri kalan elemanları kodlayıcılı versiyona benzer.

Tüm boardların çizimlerini Sprint Layout'ta sadece “temel alınsınlar” diye yayınlıyorum. Bağlantı sayfanın sonundadır. 1:1'in tekrarlanmasını önermiyorum, panoların boyutları ve konfigürasyonu her şeyden önce duruma göre belirlenir.

İki alıcı seçeneği için PIC donanım yazılımı farklıdır; kodlayıcılı seçenek için bu bir dosyadır picrdo_enc.hex, düğmeli seçenek için - picrdo_but.hex. Ürün yazılımı hem PIC12F629 hem de PIC12F675 için uygundur. Ürün yazılımının bulunduğu arşiv aynı zamanda programın kaynak dosyasını da içerir. Gerekirse, alıcıyı açıp kapatmak için gecikme süresini kolayca değiştirebilirsiniz.

Bileşenleri nereden satın alabilirim? Raspberry Pi'nin Çin'de siparişi hala (2015 sonu) daha ucuz; Aliexpress'de modele bağlı olarak maliyeti 30...40 USD aralığında. Orada gerekirse çok uygun bir fiyata bir güç kaynağı ve bir USB ses kartı alabilirsiniz.

USB ses kartı kullanmak yalnızca akustik yeterince iyiyse mantıklıdır. Hoparlörlerinizin fiyatı 50 USD'nin altındaysa Raspberry Pi'de yerleşik AUDIO çıkışıyla idare edebilirsiniz. Elektronik satan herhangi bir Rus mağazasında hoparlör seçimi oldukça geniştir. Elbette İnternet radyosundan üst düzey ses beklemeyin, ancak tenis topu büyüklüğündeki bipleyiciler en iyi seçim değildir.

Rusça dil desteği gerekiyorsa göstergeyi Rusya'da satın almak daha iyidir. Açık renkli arka planda koyu sembollere sahip modeller tercih edilmelidir. Beyaz sembollere ve mavi arka ışığa sahip popüler göstergeler güzel görünüyor, ancak çok "ataletlidirler". Titreşimi takip etmek zor olacak.

Göstergeniz Rusça harfler yerine hiyeroglif gösteriyorsa sorun değil, bu alıcıda kullanılabilir. Latin karakterleriyle yalnızca Rusça metin görüntülenecektir. Kodlayıcıları bir perakende mağazasından satın almak da daha iyidir; en azından marka bilinecek, bu da veri sayfasını kullanarak parametreleri netleştirebileceğiniz anlamına gelir.

Sorularınız varsa, sormadan önce açıklamanın tüm bölümlerini dikkatlice okuyun ve ayrıca Pi Radyo yazarının belgelerini de okuyun.

Fok
Konunun devamı:
Bilgisayar

Günümüzde internet günlük hayatımızın ayrılmaz bir parçası haline gelmiştir. Küresel ağa sürekli erişime sahip olmak, rahat bir yaşam için gerekli bir koşuldur...