Mündəricat:

Böyük Radio - Raspberry Pi: 8 addım
Böyük Radio - Raspberry Pi: 8 addım

Video: Böyük Radio - Raspberry Pi: 8 addım

Video: Böyük Radio - Raspberry Pi: 8 addım
Video: Supervised Home Assistant. Легкая установка на RaspiOS 64 - Raspberry PI 4B в корпусе Argon One M.2 2024, Iyul
Anonim
Böyük Radio - Raspberry Pi
Böyük Radio - Raspberry Pi

Senior Radio layihəsi, həm hardware, həm də proqram komponentləri olan açıq mənbəli əlçatan dizaynlı bir internet radio cihazıdır. Zənglərin səs səviyyəsini və seçilmiş radio stansiyasını idarə etdiyi cib radiosuna nəzarət edən istifadəçilər üçün istifadə üçün nəzərdə tutulmuşdur. Layihə, standart bir əl radiosu kimi oxşar bir ölçü və idarəetmə istəyən bir istifadəçiyə yönəlmiş istifadəçi mərkəzli bir dizaynla hazırlanmışdır.

Əlilliyi olan şəxslərin, adətən yalnız internet brauzeri vasitəsi ilə mövcud olan minlərlə fərqli internet axını məzmununu dinləməsinə icazə vermək ehtiyaclarını ödəmək üçün qurulmuşdur. Bir çox insanın belə bir cihazı asanlıqla istifadə etmək qabiliyyəti yoxdur, buna görə də bu dizayn müasir bir texnologiya üçün tanış bir interfeys yaratmağı hədəfləyir.

Əsas funksiya,iorRadio.py adlı bir python 3.7.3 proqramında saxlanılan Github -dadır. Radionun vəziyyətini saxlamaq üçün bir json faylını oxuyur və yazır, buna görə söndürdüyünüz zaman seçdiyiniz səs səviyyəsini və stansiyanı xatırlayacaq. Əlavə olaraq, dəyişdirə biləcəyiniz bir onlayn ev sahibi json faylını oxuyur! Bu, başqasına verdiyiniz təqdirdə radio stansiyalarını uzaqdan yeniləməyə imkan verir.

Hal -hazırda bir bluetooth dinamikinə qoşulmaq üçün yaradılmışdır, ancaq asanlıqla bortdakı dinamikdən də çalına bilər.

Bu cihazın yaradıcısı, ehtimal ki, istifadəçi deyil və elektronika və əsas proqramlaşdırma bilikləri ilə bağlı ən azından bir az təcrübəyə ehtiyac duyur. Linux təcrübəsi də çox faydalıdır.

İstifadəçi üçün funksionallıq sadədir:

Güc açıldıqda, standart audio cihazı üzərində seçilmiş son stansiya çalınacaq. Sol düymə, bir neçə klik düyməsinin yeni bir URL -ə dəyişdiyi stansiyanı idarə edir. Son və ya ilk girişdən sonra yuvarlanacaq. Sağ düymə səs səviyyəsini idarə edir. LED proqramın aktiv olduğunu göstərir. Və düymə radionu dayandırır və ya "söndürür". Bir dəfə işə salındıqda, bir istifadəçi dayandırmaq/oynatmaq və ya "söndürmək/açmaq" düyməsini, radio və onu idarə etmək üçün iki düyməni basa bilər.

Təchizat

İstifadə etdiyim hər bir maddə əlaqəlidir. Mənə təxminən 60 dollara başa gəldi, bol miqdarda təchizat qaldı!

Əsas elektron və linux bilikləri - montaj və ayıklama üçün

Raspberry Pi Zero W (Zero WH başlıqları əvvəlcədən lehimli və ehtimal ki faydalıdır)

MicroSD kart-8 GB+ və qabiliyyəti o

MicroUSB 5V güc adapteri - Bağlantıya microHDMI adapteri və microUSB OTG -dən USB A adapterinə ehtiyacınız olarsa quraşdırma daxildir.

Bluetooth dinamik

M/F və M/M keçid kabelləri

2 Rotary encoder - yuxarıdakı link

Kiçik çörək taxtası

Düymə

LED (isteğe bağlı) - yuxarıdakı LED + düyməsini satın aldı

Qablaşdırma üçün qutu

Addım 1: Quraşdırma (başsız) Raspberry Pi W

Quraşdırma (başsız) Raspberry Pi W
Quraşdırma (başsız) Raspberry Pi W

Proqramı işləyəcək moruq pi üzərində əməliyyat sistemini qurmalıyıq. Bunların heç biri bu layihəyə xas deyil. Ayıklama üçün, başsız rejimdə də daxil ola biləcəyiniz üçün qurmağı məsləhət görürəm. Bu, WiFi şəbəkəniz üzərindəki pi-yə GUI və ya SSH terminalı vasitəsi ilə daxil olduğunuz deməkdir və hər dəfə istifadə etmək üçün klaviatura, siçan və monitora ehtiyacınız yoxdur. Texnologiyanı daha yaxşı bilirsinizsə, bunu monitor/siçan/klaviatura bağlamadan edə bilərsiniz. Bəzi nümunə təlimatlar burada. Ancaq daha az düzdür və aşağıda onu qurmağın başqa bir yolu var.

İlk dəfə ehtiyacınız olacaq:

  • Raspberry Pi W
  • MicroSD - SD kart adapteri [SD karta OS yazmaq üçün]
  • MicroSD kartı (~ 8 GB+) [OS və proqramımızı saxlamaq üçün]
  • MicroUSB gücü (5V)
  • MicroUSB -dən USB A -a [siçan/klaviatura üçün]
  • Mini HDMI - HDMI adapteri [ekran çıxışı üçün]
  • Klaviatura
  • Siçan
  • Ekran

Əvvəlcə əməliyyat sistemini rPi micro SD kartına yandırmalısınız.

Mən raspian buster istifadə etdim, bunu SD kart oxuyan/yazan bir kompüterə yüklədin və sonra raspian OS -ni SD karta yandırdın. BalenaEtcher bunu etmək üçün asan bir proqramdır

Sonra SD kartı pi yuvasına qoyun, monitoru, klaviaturanı və gücünü qoşun. WiFi şəbəkənizə qoşulmaq və Bluetooth hoparlörünüzü GUI vasitəsi ilə qoşmaq da daxil olmaqla, raspianın sizə təklif etdiyi quraşdırma addımlarına davam edin. Aşağıdakı əmrləri istifadə edərək yeniləmək yaxşı bir təcrübə olardı

sudo apt-get yeniləməsi

sudo apt-get yeniləmə

Başınızı başsız olaraq işarələmək istəsəniz, əvvəlcə pi -nin ip ünvanını tutmalıyıq. Bir terminal vasitəsilə onu

ifconfig

əmr. Daha sonra SSH və VNC -ni interfeys seçimləri üzərində aktivləşdirməlisiniz

sudo raspi-config

Yenidən başladıqdan sonra, SSH və ya VNC üzərindən pi -yə daxil olmağı sınaya bilərsiniz. SSH yalnız bir terminal interfeysidir və bluetooth dinamikini qoşmaq üçün GUI -dən istifadə etmək daha asan ola bilər. Şəbəkənizdəki ayrı bir kompüterdə pi -yə asanlıqla daxil olmaq üçün VNC connect kimi bir proqramdan istifadə edə bilərsiniz. İçərisində SSH üçün macun kimi bir proqramdan istifadə edə bilərsiniz.

Bundan əlavə, VNC bulud hesabını qura bilərsiniz, beləliklə lazım olduqda cihazı şəbəkədən kənarda əldə edə bilərsiniz

Addım 2: Böyük Radio Proqramını Qurun

Böyük Radio Proqramını quraşdırın
Böyük Radio Proqramını quraşdırın

Bu, moruq pi -nin terminal pəncərəsindən edilə bilər. Əvvəlcə git quraşdırdığınızdan əmin olun

sudo apt-get install qurun

Hansı əməliyyat sistemini quraşdırdığınızdan asılı olaraq, bu paketlər fərqli ola bilər, çünki əlavə paketlər quraşdırmanız lazım ola bilər, sistem sizə belə olub olmadığını söyləyəcək. Əvvəlcə github -dan yüksək səviyyəli radio kodunu yükləməliyik. https://github.com/Bunborn/seniorRadio İdeal olaraq, mənim etdiyim kimi radio stansiyalarını dəyişdirə və asanlıqla dəyişdirə biləcəyiniz üçün öz repo edirik. Əgər belədirsə repo bölün

Ancaq radio json faylınızı başqa bir yerdə yerləşdirmək istəyirsinizsə, mənimki kimi eyni problemdən istifadə edə bilərsiniz

Sonra repo -nu istədiyiniz yerdə klonlayın. Varsayılan kataloq yaxşıdır. Yaşıl klon və ya yükləmə düyməsinə basaraq istədiyiniz github repo üçün URL əldə edin.

Terminal pəncərəsinə qayıdın, git klonu

Ls -dən istifadə edərkən artıqiorRadio adlı əlavə bir kataloq görməlisiniz. Fantastik!

Kodun özünü sənədləşdirməsi nəzərdə tutulur, nəzərdən keçirmək faydalı olardı. Xüsusilə ayıklama məqsədləri üçün və sistemi dəyişdirirsinizsə.

Addım 3: Əlavə Proqramı Qurun

Əlavə Proqram Quraşdırın
Əlavə Proqram Quraşdırın

Dövrəyə keçmədən və sınamadan əvvəl bunun üçün VLC və python api də yükləməliyik. VLC quraşdırılmış ola bilər. İlk iki əmr pi -ni yeniləyəcək və son iki əmr VLC və sonra python api quraşdıracaq.

sudo apt-get yeniləməsi

sudo apt-get yeniləmə

sudo snap VLC quraşdırın

sudo apt-get vlc-python quraşdırın

Bundan əlavə, pi -nin GPIO sancaqları ilə əlaqə qurmaq üçün istifadə edəcəyimiz gpiozero da quraşdırın. Əməliyyat sisteminizdən asılı olaraq artıq quraşdırılmış ola bilər.

sudo apt-get gpiozero quraşdırın

Addım 4: Radio Stansiyalarının axınlarını tapın

Radio Stansiyalarını tapın
Radio Stansiyalarını tapın

Sonra ən əyləncəli hissələrdən biri! İstədiyiniz axınları seçmək vaxtıdır.

İnternetStations.json faylımda əsasən xəbərlər və musiqi üçün axın bağlantılarımı görə bilərsiniz. Ancaq orada bir ton ev sahibliyi edən məzmun var. Burada əsas şey birbaşa axın URL ünvanını tapmaqdır. Məsələn, BBC xəbər və musiqi stansiyalarını bu bloqda tapa bilərsiniz. Bu birbaşa axınların heç bir qrafik interfeysi olmayacaq və avtomatik olaraq brauzerinizin media pleyeri vasitəsilə axını oynayacaq. VLC -nin onları oxuya bilməsi üçün ehtiyacımız olan URL -lərdir! İstənilən linki veb brauzerinizdə və ya adi kompüterinizdəki VLC vasitəsi ilə yoxlaya bilərsiniz ki, bu da pi üzərində işləyəcəkdir.

Bu stansiyaları tapmaq üçün, xidmətə ev sahibliyi edirsə, birbaşa onlayn axını axtara bilərsiniz. Tez bir yol da axını oynamaq, brauzerə sağ vurmaq və "elementi yoxlamaq" düyməsini vurmaq ola bilər. Şəbəkə nişanına gedin və axının 'birbaşa' URL'sini göstərməlidir. Bu youtube videosu bunu göstərir. Səhifəni açıq sekmə ilə yeniləmək kömək etməlidir.

Stansiyalarınızı əldə etdikdən sonra, onları sizin radioya yerləşdirmək istəyirsiniz ki,iorRadio python proqramınız onları tuta bilsin. Bunu etmək üçün bir çox variant var, Github, bitbucket və ya hətta sourceforge kimi saytlardan istifadə edə bilərsiniz. Bu siyahını onlayn olaraq yerləşdirməyin əsas məqsədi, onu quran istifadəçinin axın siyahısını uzaqdan onlayn olaraq dəyişdirə bilməsidir.

Python proqramının başlanğıcında url adlı bir dəyişən var, bunu stansiya URL bağlantıları ilə json faylınızın URL'si olaraq dəyişdirin

İnternetStation.json faylımla eyni formatı izləyə bilərsiniz. Githubdan da istifadə etmək istəsəniz,iorRadio deposumdan istifadə edə və öz internetStation.json faylınızı düzəldə və həmin "xam" URL -yə işarə edə bilərsiniz. Dosyaya tıkladığınızda bunu aşağıda Github GUI -də tapa bilərsiniz.

Addım 5: Dövrlər yaradın

Dövrlər yaradın
Dövrlər yaradın

İndi dövrəni qurmalıyıq. Bu, avadanlıqlarınızdan asılı olaraq dəyişəcək, amma aşağıda mənim necə qurduğum göstərilir.

Hansı sancaqlar olduğuna dair istinad üçün https://pinout.xyz/. Gpiozero kitabxanasından istifadə etdiyimiz üçün yalnız BCM pin nömrələməsi ilə maraqlanırıq. Diqqət yetirin ki, hamısı eyni dəqiqliyə malik olmadığı üçün onları sınamaq üçün bir neçə əlavə KY040 fırlanan kodlayıcı - kadrlar aldım. Hər birinin "sıçrayan" və ya sadəcə yanlış bir çıxışı olardı, buna görə də əlimdəki ən yaxşısını seçdim. Kodda qeyd edəcəksiniz ki, bu sıçrayışı məhdudlaşdırmaq üçün bəzi addımlar da var.

Düyməni BCM pin 17 və yerə bağladım

1k ohm rezistora LED, sonra BCM pin 27 və yerə

KY040 fırlanan kodlayıcılarımda + 5V -ə, GND -yə toprağa və SW -yə bağlı idi. Bunlar kiçik bir çörək taxtası ilə birləşdirildi

BCM pin 21 -ə qoşulmuş dt pin stansiyası fırlanan kodlayıcı

BCM pin 20 -yə qoşulmuş stansiya fırlanan kodlayıcı clk pin

BCM pin 19 -a qoşulmuş səs səviyyəli fırlanan kodlayıcı dt pin

BCM pin 16 ilə əlaqəli səs səviyyəli fırlanan kodlayıcı clk pin

Bu pinləri dəyişdirsəniz, python proqramındakı nömrəni və işləyiciləri qurduğu yeri yeniləyin

Bunu asanlaşdırmaq üçün mini çörək taxtasından istifadə etdim. İnterfeysi asanlaşdırmaq üçün M/M və M/F keçid tellərindən də istifadə etdim. Daha əvvəl aldığım düymənin/LEDin pinlərinə bəzi tullanan telləri lehimlədim. Lehimləməmək üçün artıq tullanan telləri olan və ya asanlıqla birinə qoşula bilən düymələr və LEDlər əldə edə bilərsiniz.

Addım 6: Test edin

İndi işləyən bir sistemə sahib olmalısan! Gəlin sınayaq. Python proqramı ilə qovluğa gedin, ehtimal ki:

cd böyük radio

python3 böyük radio.py

Hal -hazırda, proqramın başlanğıcında bluetooth dinamikini açmaq üçün vaxt vermək üçün 45 saniyə gecikmə var. Test zamanı ehtiyacınız yoxdursa bu sətiri şərh edə bilərsiniz. Proqram sizə əlavə paketlər quraşdırmanız lazım olduğunu söyləyə bilər, əgər varsa davam edin. Python -un daha yeni bir versiyasını da quraşdıra bilərsiniz.

sudo apt-get install python3.7

Proqram işləsə də bəzi mümkün problemlər:

Heç bir səs eşitmirəm

Dinamikin pi -də dinamikin açıq və seçilmiş olduğundan əmin olun. GUI vasitəsi ilə onu cütləşdirə və sonra səs çıxış cihazınız olaraq seçə bilərsiniz. Bundan əlavə, audio sürücülərinizi yoxlayın. Ümumi bir problem, pulseaudio paketini yenidən yükləməyinizə ehtiyac ola bilər

Səs kəsilir və ya kəsilir

Cihazı WiFi routerinizə yaxınlaşdırmağa çalışın. Əlavə olaraq, bluetooth dinamikinin yaxın olduğuna əmin olun. Səs sürücü problemi də ola bilər

Addım 7: Daimi bir mühitə qoyun

Daimi Kassaya qoyun
Daimi Kassaya qoyun

Sonra daimi yaşaması üçün bir qutuya və ya bənzər bir cihaza qoyun. Hata ayıklama üçün daha sonra daxil ola biləcəyiniz birini almağı məsləhət görürəm. Bu kiçik taxta qutunu bir sənətkarlıq mağazasında 2 dollara aldım və təchizat səhifəsinə bağladım. Dostlarımdan biri siqar qutusu tövsiyə etdi.

Daha sonra düymə və fırlanan açarlar üçün öndəki delikləri kəsdim və qutunun arxasında microUSB elektrik kabeli üçün bir delik açdım.

Dağı sınadım və işlədiyinə əmin oldum və səslənirəm!

Nəhayət, düyməni basıb saxlamaq üçün super yapışqan istifadə etdim. Çörək taxtamın altındakı qutunun bir hissəsinə bağladığım bir yapışdırıcı var idi. Pi'nin arxasını qutuya bağlamaq üçün kiçik bir bant zolağı istifadə etdim, buna görə lazım olduqda daha sonra köçürülə bilər.

Addım 8: Başlanğıcda Çalışacaq Proqramı Qurun

Nəhayət, bu python proqramının moruq pi -nin başlanğıcında işləməsini istəyəcəksiniz, buna görə əllə etməyinizə ehtiyac yoxdur. İnternetdə tapa biləcəyiniz bir çox yol var.

Şəxsən mən bu SparkFun təlimatında ikinci yolu istifadə edərək qurdum:

Burada proqramı işə salmadan əvvəl sistemin qrafik masaüstünə girməsini gözləyir. Daha sonra, sistemin bluetooth dinamikinə yenidən bağlanması üçün vaxt vermək üçün python proqramı tərəfindən 45 saniyə gecikdirilir. İnteqrasiya edilmiş dinamikdən istifadə edirsinizsə, bu gecikməni aradan qaldıra bilərsiniz. Unutmayın ki, bluetooth dinamik ilk növbədə olmalıdır! (bluetooth həlli üçün)

İndi pi-ni söndürməyə və yenidən işə salmağa cəhd edə bilərsiniz! Təxminən 90 saniyədən sonra pi bir daha radio axınlarını çalmağa başlamalıdır. Düyməni vurduqda fasilə/çalma olacaq. Bu yenidən başlatmalarda internetStations json faylını yenidən oxuduğunu unutmayın, buna görə stansiyalarınızı dəyişdirsəniz, işləmələri üçün cihazı yenidən başlatmalısınız. Təbrik edirik!

Bunu siz və ya layihədə dəyişikliklər etmisinizsə, mənə bildirin!

Github səhifəsi:

Tövsiyə: