İçindekiler:

Kıdemli Radyo - Raspberry Pi: 8 Adım
Kıdemli Radyo - Raspberry Pi: 8 Adım

Video: Kıdemli Radyo - Raspberry Pi: 8 Adım

Video: Kıdemli Radyo - Raspberry Pi: 8 Adım
Video: Using FLDIGI and FT-8 on a Raspberry Pi Computer 2024, Temmuz
Anonim
Kıdemli Radyo - Raspberry Pi
Kıdemli Radyo - Raspberry Pi

Kıdemli Radyo projesi, hem donanım hem de yazılım bileşenleri ile açık kaynaklı erişilebilir tasarlanmış bir internet radyo cihazıdır. Kadranların ses seviyesini ve seçilen radyo istasyonunu kontrol ettiği bir cep radyosunu kontrol etmeye aşina olan kullanıcılar için kullanılması amaçlanmıştır. Proje, standart bir el telsizi ile benzer boyut ve kontroller isteyen bir kullanıcıya odaklanan, kullanıcı merkezli bir tasarımla yapılmıştır.

Engelli bireylerin genellikle yalnızca bir internet tarayıcısı aracılığıyla erişilebilen binlerce farklı internet akış içeriğini dinlemelerine izin verme ihtiyaçlarını karşılamak için inşa edilmiştir. Birçok kişi böyle bir cihazı kolayca kullanma yeteneğine sahip değildir, bu nedenle bu tasarım modern bir teknoloji için tanıdık bir arayüz oluşturmayı amaçlamaktadır.

Temel işlevsellik, SeniorRadio.py adlı bir python 3.7.3 programında depolanan Github'dadır. Radyonun durumunu saklamak için bir json dosyası okur ve yazar, böylece kapattığınızda mevcut ses seviyesini ve seçilen istasyonu hatırlayacaktır. Ayrıca, değiştirebileceğiniz çevrimiçi barındırılan bir json dosyasını okur! Bu, radyo istasyonlarını başka birine veriyorsanız uzaktan güncellemenizi sağlar.

Şu anda bir bluetooth hoparlöre bağlanmak için yaratılmıştır, ancak yerleşik bir hoparlörü çalmak için de kolayca yapılabilir.

Bu cihazın yaratıcısı muhtemelen kullanıcı değildir ve en azından elektronik ve temel programlama bilgisi konusunda biraz deneyime ihtiyacı vardır. Linux deneyimi de çok faydalıdır.

Kullanıcı için işlevsellik basittir:

Açıldığında, varsayılan ses cihazı üzerinden seçilen son istasyonu çalacaktır. Sol kadran, kadranın birkaç tıklamasının yeni bir URL'ye dönüştüğü istasyonu kontrol eder. Son veya ilk girişten sonra devrilir. Sağ kadran ses seviyesini kontrol eder. LED, programın açık olduğunu gösterir. Ve basma düğmesi radyoyu duraklatır veya "kapatır". Bu nedenle, bir kez açıldığında, bir kullanıcı duraklatmak/oynatmak için düğmeye basabilir veya radyoyu ve onu kontrol etmek için iki kadranı "kapatabilir/açabilir".

Gereçler

Her öğeye bağlı, kullandığım özeldir. Bol miktarda kalan malzemeyle bana toplam 60 dolara mal oldu!

Temel elektronik ve linux bilgisi - montaj ve hata ayıklama için

Raspberry Pi Zero W (Zero WH, önceden lehimlenmiş başlıklara sahiptir ve muhtemelen kullanışlıdır)

MicroSD kart-8 GB+ ve o yeteneği

MicroUSB 5V güç adaptörü - Link ayrıca ihtiyacınız olduğunda kurulum için microHDMI adaptörü ve microUSB OTG - USB A adaptörü içerir

Bluetooth hoparlör

M/F ve M/M atlama kabloları

2 Döner kodlayıcı - yukarıdakiyle aynı bağlantı

Küçük ekmek tahtası

Butona basınız

LED (isteğe bağlı) - satın alınan LED + yukarıdaki düğme

Ambalaj için kutu

Adım 1: Kurulum (başsız) Raspberry Pi W

Kurulum (başsız) Raspberry Pi W
Kurulum (başsız) Raspberry Pi W

Yazılımı çalıştıracak olan ahududu pi üzerinde işletim sistemini kurmamız gerekiyor. Bunların hiçbiri bu projeye özgü değil. Hata ayıklama için, başsız modda da erişebilmeniz için kurmanızı tavsiye ederim. Bu, GUI veya SSH terminali aracılığıyla WiFi ağınız üzerinden pi'ye eriştiğiniz ve her seferinde kullanmak için bir klavye, fare ve monitöre ihtiyacınız olmadığı anlamına gelir. Teknoloji konusunda daha bilgiliyseniz, bunu bir monitöre/fareye/klavyeye bağlanmanıza gerek kalmadan yapabilirsiniz. Burada bazı örnek talimatlar. Bununla birlikte, daha az basittir ve aşağıda onu kurmanın başka bir yolu vardır.

Bu ilk seferde muhtemelen ihtiyacınız olacak:

  • Ahududu Pi K
  • MicroSD - SD kart adaptörü [SD karta işletim sistemi yazmak için]
  • MicroSD kart (~ 8 GB+) [işletim sistemini ve programımızı depolamak için]
  • MikroUSB gücü (5V)
  • MicroUSB'den USB A'ya [fare/klavye için]
  • Mini HDMI - HDMI adaptörü [görüntü çıkışı için]
  • Tuş takımı
  • Fare
  • monitör

İlk olarak, işletim sistemini rPi mikro SD karta flashlamanız gerekir.

Raspian buster kullandım, bunu bir SD kart okuyucu/yazıcı olan bir bilgisayara indiriyorsunuz ve ardından raspian işletim sistemini SD karta flaş ediyorsunuz. BalenaEtcher bunu yapmak için kolay bir yazılımdır

Ardından SD kartı pi yuvasına takın, monitörü, klavyeyi ve gücü bağlayın. WiFi ağınıza bağlamak ve bluetooth hoparlörünüzü GUI aracılığıyla eşleştirmek de dahil olmak üzere, Raspian'ın sizden istediği kurulum adımlarını uygulayın. Aşağıdaki komutları kullanarak güncellemek iyi bir uygulama olacaktır.

sudo apt-get güncellemesi

sudo apt-get yükseltme

Pi'nizi başsız olarak işaretlemek istiyorsanız, önce pi'nin ip adresini almamız gerekecek. Bir terminal aracılığıyla, onu

ifconfig

emretmek. Ardından, aşağıdaki arabirim seçenekleri üzerinden SSH ve VNC'yi etkinleştirmeniz gerekir.

sudo raspi yapılandırması

Yeniden başlattıktan sonra artık pi'ye SSH veya VNC üzerinden erişimi test edebilirsiniz. SSH yalnızca bir terminal arabirimidir ve bir bluetooth hoparlörü eşleştirmek için GUI'yi kullanmayı daha kolay bulabilirsiniz. Ağınızdaki ayrı bir bilgisayarda pi'nize kolayca erişmek için VNC connect gibi bir program kullanabilirsiniz. İçine SSH yapmak için macun gibi bir program kullanabilirsiniz.

Ayrıca, gerekirse ağ dışında cihaza erişebilmek için bir VNC bulut hesabı oluşturabilirsiniz.

2. Adım: Kıdemli Radyo Yazılımını Kurun

Kıdemli Radyo Yazılımını Kurun
Kıdemli Radyo Yazılımını Kurun

Bu, ahududu pi'nin bir terminal penceresinden yapılabilir. İlk önce git'in kurulu olduğundan emin olun

sudo apt-get kurulum git

Hangi işletim sistemini kurduğunuza bağlı olarak, ek paketler kurmanız gerekebileceğinden bu adımlar farklı olabilir, sistem bunu size söyleyecektir. İlk önce github'dan kıdemli radyo kodunu indirmemiz gerekiyor. https://github.com/Bunborn/seniorRadio İdeal olarak, benim yaptığım gibi radyo istasyonlarını kolayca değiştirebilmeniz ve değişiklik yapabilmeniz için kendi repomuzu yapıyorsunuz. Eğer öyleyse repoyu çatalla

Ancak, radyo json dosyanızı başka bir yerde barındırmak istiyorsanız, benimkiyle aynı şeyi sorunsuz kullanabilirsiniz.

Ardından, repoyu olmasını istediğiniz yere kopyalayın. Varsayılan dizin iyidir. Yeşil klon veya indirme düğmesine basarak istediğiniz github deposunun URL'sini alın.

Terminal penceresine geri dönün, git klon

Artık ls kullanarak ararken, SeniorRadio adlı fazladan bir dizin görmelisiniz. Harika!

Kodun kendi kendini belgelemesi amaçlanmıştır, bir göz atmak faydalı olacaktır. Özellikle hata ayıklama amacıyla ve sistemi değiştiriyorsanız.

3. Adım: Ek Yazılım Yükleyin

Ek Yazılım Yükleyin
Ek Yazılım Yükleyin

Devreye geçmeden ve test etmeden önce, bunun için VLC ve python api'yi de indirmemiz gerekiyor. VLC'yi zaten yüklemiş olabilirsiniz. İlk iki komut pi'yi güncelleyecek ve aşağıdaki son iki komut VLC'yi ve ardından python api'yi yükleyecektir.

sudo apt-get güncellemesi

sudo apt-get yükseltme

sudo ek yükleme VLC

sudo apt-get install vlc-python

Ek olarak, pi'nin GPIO pinleriyle arayüz oluşturmak için kullanacağımız gpiozero'yu da kurun. İşletim sisteminize bağlı olarak zaten yüklemiş olabilirsiniz.

sudo apt-get install gpiozero

4. Adım: Radyo İstasyonları Akışlarını Bulun

Radyo İstasyonları Akışlarını Bul
Radyo İstasyonları Akışlarını Bul

Sırada, en eğlenceli kısımlardan biri! İstediğiniz akışları seçme zamanı.

internetStations.json dosyamda, özellikle haber ve müzik için akış bağlantılarımı görebilirsiniz. Ancak orada bir ton barındırılan içerik var. Buradaki anahtar, doğrudan akış URL adresini bulmaktır. Örneğin, BBC haber ve müzik istasyonları burada bu blogda bulunabilir. Bu doğrudan akışlar herhangi bir grafik arayüze sahip olmayacak ve akışı otomatik olarak tarayıcı medya oynatıcınız üzerinden oynatır. VLC'nin okuyabilmesi için ihtiyacımız olan URL'ler bunlar! Pi üzerinde çalışacağından emin olmak için herhangi bir bağlantıyı web tarayıcınızda veya normal bilgisayarınızdaki VLC aracılığıyla hızlı bir şekilde test edebilirsiniz.

Bu istasyonları bulmak için, hizmet barındırıyorsa doğrudan akışı çevrimiçi olarak arayabilirsiniz. Hızlı bir yol, akışı oynatmak, tarayıcıya sağ tıklayıp "öğeyi incele"ye basmak da olabilir. Ağ sekmesine gidin ve 'doğrudan' akış URL'sini göstermelidir. Bu youtube videosu bunu gösteriyor. Sekme açıkken sayfayı yenilemek yardımcı olacaktır.

İstasyonlarınıza sahip olduğunuzda, kıdemliRadio python programınızın onları alabilmesi için onları çevrimiçi duruma getirmek istersiniz. Bunu yapmak için birçok seçenek var, Github, bitbucket ve hatta sourceforge gibi siteleri kullanabilirsiniz. Bu listeyi çevrimiçi olarak barındırmanın temel amacı, onu oluşturan kullanıcının yayın listesini uzaktan çevrimiçi olarak değiştirebilmesidir.

Python programının başlangıcında url adında bir değişken vardır, bunu istasyon URL bağlantılarıyla birlikte json dosyanızın URL'si olarak değiştirmeniz yeterlidir

internetStation.json dosyamla aynı formatı takip edebilirsiniz. Eğer github'u da kullanmak istiyorsanız, kıdemliRadio depomu çatallayabilir ve kendi internetStation.json dosyanızı düzenleyebilir ve bu "ham" URL'ye yönlendirebilirsiniz. Dosyaya tıkladığınızda bunu Github GUI'de aşağıda bulabilirsiniz.

Adım 5: Devreler Oluşturun

Devreler Oluşturun
Devreler Oluşturun

Şimdi devreyi kurmamız gerekiyor. Bu, ekipmanınıza göre değişecektir, ancak benimkini nasıl kurduğum aşağıdadır.

pinout.xyz/ hangi pinlerin hangileri olduğuna dair referans için. gpiozero kütüphanesini kullandığımız için sadece BCM pin numaralandırmasıyla ilgileniyoruz. Hepsinin aynı doğruluğa sahip olmadığı için test etmek için birkaç ekstra KY040 döner kodlayıcı - kadranlar - satın aldığımı unutmayın. Her birinin biraz "sıçrayan" ya da sadece yanlış çıktısı olurdu, bu yüzden sahip olduğum ikisinden en iyisini seçtim. Kodda, bu zıplamayı sınırlamak için bazı adımlar olduğunu da not edeceksiniz.

Basmalı düğmemi BCM pin 17'ye bağladım ve toprağa

LED'im 1k ohm rezistöre, ardından BCM pin 27'ye ve toprağa

KY040 döner kodlayıcılarımda + ucu 5V'a, GND'yi toprağa ve SW bağlantısı kesilmişti. Bunlar mini bir breadboard üzerinden bağlandı

BCM pin 21'e bağlı istasyon döner kodlayıcı dt pini

BCM pin 20'ye bağlı istasyon döner kodlayıcı clk pini

BCM pin 19'a bağlı ses seviyesi döner kodlayıcı dt pini

BCM pin 16'ya bağlı ses seviyesi döner kodlayıcı clk pini

Bu pinleri değiştirirseniz, python programındaki numarayı ve işleyicileri kurduğu yeri güncellemeniz yeterlidir.

Bunu kolaylaştırmak için mini bir breadboard kullandım. Arayüzü kolaylaştırmak için M/M ve M/F jumper kabloları da kullandım. Daha önce satın aldığım buton/LED'in pinlerine bazı jumper kablo uçlarını lehimledim. Lehim yapmamak için, zaten atlama teli uçları olan veya birine kolayca bağlanabilecek basmalı düğmeler ve LED'ler alabilirsiniz.

Adım 6: Test Edin

Şimdi, işleyen bir sisteminiz olmalı! Hadi test edelim. Python programının bulunduğu klasöre gidin, muhtemelen:

cd kıdemliRadyo

python3 kıdemliRadio.py

Şu anda, açılışta bluetooth hoparlörü bulması için programın başlangıcında 45 saniyelik bir gecikme var. Test sırasında ihtiyacınız yoksa bu satırı yorumlayabilirsiniz. Program size ek paketler yüklemeniz gerektiğini söyleyebilir, öyleyse devam edin. Ayrıca Python'un daha yeni bir sürümünü yüklemeniz gerekebilir.

sudo apt-get install python3.7

Program çalışsa bile bazı olası sorunlar:

ses duymuyorum

Ahududu pi'nizde hoparlörün açık ve seçili olduğundan emin olun. GUI aracılığıyla, onu eşleştirebilmeli ve ardından ses çıkış aygıtınız olarak seçebilmelisiniz. Ayrıca, ses sürücülerinizi kontrol edin. Yaygın bir sorun, pulseaudio paketini yeniden yüklemeniz gerekebilir.

Ses dalgalı veya kesiliyor

Cihazı WiFi yönlendiricinize yaklaştırmayı deneyin. Ayrıca bluetooth hoparlörün yakınınızda olduğundan emin olun. Ayrıca bir ses sürücüsü sorunu olabilir

7. Adım: Kalıcı Bir Muhafazaya Yerleştirin

Kalıcı Bir Muhafazaya Yerleştirin
Kalıcı Bir Muhafazaya Yerleştirin

Ardından, kalıcı olarak yaşaması için bir kutuya veya benzeri bir cihaza koyun. Hata ayıklama için daha sonra erişebileceğiniz birine sahip olmanızı öneririm. Bu küçük tahta kutuyu bir zanaat mağazasından 2 dolara aldım ve sarf malzemeleri sayfasına bağladım. Arkadaşlarımdan biri bir puro kutusu önerdi.

Daha sonra basma düğmesi ve döner anahtarlar için ön tarafta delikler açtım ve kutunun arkasına microUSB güç kablosu için bir delik açtım.

Montajı test ettim ve çalıştığından emin oldum ve işte!

Son olarak, basma düğmesini tutmak için süper yapıştırıcı kullandım. Breadboard'umun altında kutunun bir kısmına bağladığım bir yapıştırıcı vardı. Pi'nin arkasını kutuya sabitlemek için küçük bir koli bandı şeridi kullandım, böylece gerekirse daha sonra hareket ettirilebilirdi.

Adım 8: Başlangıçta Çalıştırılacak Programı Kurma

Son olarak, muhtemelen bu python programının ahududu pi'nin başlangıcında çalışmasını isteyeceksiniz, böylece manuel olarak yapmanıza gerek kalmayacak. Bunu yapmanın çevrimiçi bulabileceğiniz birçok yolu vardır.

Şahsen, bu SparkFun eğitiminde ikinci yolu kullanarak kurdum:

Burada programı çalıştırmadan önce sistemin grafiksel masaüstüne girmesini bekler. Ardından, sisteme bluetooth hoparlörüne yeniden bağlanması için zaman vermek için python programı tarafından 45 saniye geciktirilir. Entegre bir hoparlör kullanıyorsanız bu gecikmeyi kaldırabilirsiniz. Bluetooth hoparlörün önce açık olması gerektiğini unutmayın! (bluetooth çözümü için)

Artık pi'nizi kapatıp yeniden açmayı deneyebilirsiniz! Yaklaşık 90 saniye sonra pi'niz bir kez daha radyo akışlarını çalmaya başlamalıdır. Düğmeye basıldığında duraklatılır/oynatılır. Bu yeniden başlatmalarda, internetStations json dosyasını yeniden okuduğunu unutmayın; bu nedenle, istasyonlarınızı değiştirirseniz, çalışabilmeleri için cihazı yeniden başlatmanız gerekir. Tebrikler!

Bunu yaptıysanız veya projede değişiklikler yaptıysanız, lütfen bana bildirin!

Github sayfası:

Önerilen: