Raspberry Pi’ı FM Radyo Vericisine Dönüştürmek

Raspberry Pi’ı ek herhangi bir donanım kullanmadan bir radyo vericisine dönüştürebilirsiniz. Raspberry Pi ile mikrofonu veya bir ses dosyasını istediğiniz FM frekansında yayın yaparak yakınlardaki bir radyodan duyulmasını sağlayabilir, evinizde, iş yerinizde veya bir spor etkinliğinde radyo yayını yapmak için kullanabilirsiniz. Normalde Raspberry Pi’ın içerisinde bir FM vericisi (FM transmitter) yer almaz; ancak son yılların meşhur konularından birisi olan SDR (Software Defined Radio) yani yazılım tabanlı radyo tekniği sayesinde, ses verisinin PWM sinyalleri ile kodlanarak radyo yayını yapılması sağlanabilir. Benzer şekilde, ses verisinin dışında herhangi bir veri de FM bandı üzerinden gönderilebilir.


Raspberry Pi FM Radyo Anten bağlantısı

Raspberry Pi’a gerekli yazılım araçlarını yükleyip radyo yayını yapmadan önce, yukarıdaki şekildeki gibi GPIO.4 çıkışına anten vazifesi görecek yaklaşık 20cm uzunluğunda bir kablo bağlayın (daha uzun bir kablo da bağlayabilirsiniz). Kablo pin’e lehimlendiği takdirde sinyal aktarım kalitesi açısından daha yüksek bir başarımla çalışacaktır (kartın altından lehimleyebilirsiniz). Bu durumda ek herhangi bir yükselteç kullanmadan yakın çevrenize yayın yapabilirsiniz. Bu uygulamada GPIO.4 pin’inin tercih edilmesinin nedeni sahip olduğu PWM sinyal üreteci ile bu iş için en uygun çıkış olmasıdır.

İlk olarak bir ses dosyasının (wav) istediğimiz bir FM frekansından yayınının nasıl yapılacağına bakalım. Gerekli yazılım araçlarını yüklemek için aşağıdaki komutları çalıştırın:

Yukarıdaki komutlar ile ilk olarak Raspberry Pi depo listesi güncellenmiş ardından git aracı ile gerekli olan libsndfile1-dev kütüphanesi yüklenmiştir. Ardından radyo yayını yapmak için PiFmRds isimli program dosyaları GitHub deposundan indirilmiştir. Şimdi indirdiğimiz PiFmRds aracını derleyip kurmak için aşağıdaki komutları çalıştıralım.

Derlemenin ardından src dizini içerisinde pi_fm_rds adlı program dosyası oluşturulur. Programın kullanım seçenekleri aşağıdaki gibidir:

Örneğin FM 103.3 bandından yayın yapmak için aşağıdaki komutu çalıştırabilirsiniz. Bu uygulamada src dizini içerisinde yer alan test dosyalarından biri olan sound.wav dosyası sürekli olarak yürütülecektir. Radyonuzu 103.3 frekansına ayarlayarak yayını dinleyebilirsiniz. Yayını kesmek için Ctrl+C tuş bileşimine basabilirsiniz.

ANTENLER HAKKINDA

Raspberry Pi’ın besleme adaptörünün DC kablosunu da anten olarak kullanmak mümkündür. Bu durumda DC kablonun uzunluğu kadar bir kabloyu GPIO.4 pin’ine bağlayarak yarım dalga dipol anten (Hertz Anteni) elde edebilirsiniz. En uygun anten kablosu uzunluğunu belirlemek için aşağıdaki formülasyonu kullanabilirsiniz:

Anten Uzunluğu(cm)  = 300 / Yayın Frekansı (MHz) / 16 * 100

Örneğin; 103.3 Mhz frekansında yayın yapmak için kullanılacak en uygun anten boyu 300 / 103.4 / 16 * 100 formülünden 18.13cm olarak bulunur.

PiFmRds aracı RDS, yayınını da desteklemektedir[1]. RDS radyo yayını yapılan frekans bandından zaman ve radyo istasyonu ile ilgili tanıtıcı bilgilerin de yayınlanmasını sağlayan bir protokoldür. RDS desteği olan radyo alıcılarının ekranında, dinlenen radyo istasyonu ya da şarkı adı ile ilgili bilgilerin yayınlandığını fark etmiş olabilirsiniz. PiFmRds aracı ile RDS özelliğini kullanmak için -ps ve -rt seçeneklerinden yararlanılır. -ps ile 8 karaktere kadar istasyon ismi (Program Service Name), -rt ile de 64 karaktere kadar radyo metni (Radio Text) yayınlanabilir. Metinlerin tek tırnak işaretleri arasında yazılması gerekir. Aşağıdaki örneği inceleyin:

mp3 yayını yapmak için; mp3 formatının kodunu çözecek bir araca ihtiyaç vardır. Kodu çözmek için sox adlı araç kullanılabilir. Sox aracının yüklemek için kitabın “SoX (Sound eXchange) ile kayıt yapmak” başlığını, mp3 yayını yapmak için PiFmRds aracının pipe özelliğini kullanabilirsiniz. Aşağıdaki komut ile sox aracı test.mp3 dosyasını wav biçiminde çıktılayarak | (pipe) ile PiFmRds aracına aktarmakta ve dolayısıyla test.mp3 dosyası FM bandından yayınlanmaktadır:

USB mikrofonu ile ortamdaki sesi yayınlamak için arecord aracını aşağıdaki gibi kullanabilirsiniz. arecord aracının kullanımını hakkında daha fazla bilgiyi kitabın “ALSA Mimarisi ve ses işlevleri” başlıklı kısmında bulabilirsiniz.

YASAL UYARI

Çoğu ülkede olduğu gibi ülkemizde de radyo yayını yapmak yetkili kuruluşların iznine tabidir. İzinsiz yapılan yayınlar yasa dışı kabul edilir ve cezai yaptırımı olabilir. Kimin hangi frekans bandından ne kadar güçte (watt) yayın yapacağı yetkili kuruluşlar tarafından belirlenir ve ihlal durumunda çeşitli cezalar uygulanır. Bunun amacı radyo vericisine sahip olan herkesin radyo yayını yaparak diğer yayınların frekanslarını sönümlendirmelerinin önüne geçmektir. Uygulamalarınızı yaparken diğer frekans bantlarına zarar vermemek için Faraday Kafesi kullanmanızı tavsiye ederim.

YAZILIM TABANLI RADYOLAR (SDR) HAKKINDA

SDR en basit hali ile radyo alıcı verici devrelerinin temel işlevleri olan, modülasyon, demodülasyon, karıştırma ve filtreleme gibi işlemlerin yazılım yoluyla programlanabilen çipler ile gerçekleştirilmesidir. Böylece tasarlanması ve üretilmesi oldukça zor olan elektronik RF devrelerinin kullanılmasına gerek kalmaz. Radyo sinyali ile yapılmak istenen işlem herhangi bir programlama dili ile SDR destekli RF cihazının programlanması ile gerçekleştirilebilir. Günümüzde SDR cihazlarında çok yüksek hızlarda çalışabilen FPGA çipleri tercih edilmektedir. FPGA çipleri ortak bir dil olan VHDL dili ile programlanarak yazılım yoluyla elektronik devre oluşturmak için kullanılır. Böylece yazılım ile gerçekleştirilebileceğinden çok daha hızlı ve verimli donanımları kolayca ve hızlıca hayata geçirmek mümkün olur. Bir FPGA çipi aynı flash belleklerde olduğu gibi birçok kereler programlanabilir, yazılım yolu ile çok farklı elektronik devrelerin üretilmesi için kullanılabilir. Örneğin FM, TV, GSM, 4G, GPS, GPRS ve bunun gibi herhangi bir radyo yayını, FPGA tabanlı bir radyo kartı ile alınabilir, yeniden üretilebilir ve çözümlenebilir. Bu konuda ileri araştırma yapmak isteyenler için Blade RF marka kartı önerebilirim.


[1] RDS protokolü – https://en.0wikipedia.org/wiki/Radio_Data_System

Yazar: Özgür Koca

Yazar - Tankado.com

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.