Isi kandungan:

Radio Senior - Raspberry Pi: 8 Langkah
Radio Senior - Raspberry Pi: 8 Langkah

Video: Radio Senior - Raspberry Pi: 8 Langkah

Video: Radio Senior - Raspberry Pi: 8 Langkah
Video: SHARI Pi HAT - ALLSTAR SA818 Radio Module For Raspberry Pi 2024, Julai
Anonim
Radio Senior - Raspberry Pi
Radio Senior - Raspberry Pi

Projek Senior Radio adalah peranti radio internet yang direka sumber terbuka yang boleh diakses dengan komponen perkakasan dan perisian. Ini ditujukan untuk digunakan bagi pengguna yang biasa dengan mengendalikan radio saku di mana panggilan mengawal kelantangan dan stesen radio yang dipilih. Projek ini dibuat dengan reka bentuk yang berpusat pada pengguna, tertumpu pada pengguna yang menginginkan ukuran dan kawalan yang serupa dengan radio genggam standard.

Ia dibina untuk memenuhi keperluan membolehkan individu yang cacat dapat mendengar ribuan kandungan streaming internet yang berbeza yang biasanya hanya tersedia melalui penyemak imbas internet. Ramai orang tidak mempunyai kemampuan untuk menggunakan peranti sedemikian dengan mudah, jadi reka bentuk ini bertujuan untuk membuat antara muka yang tidak asing lagi untuk teknologi moden.

Fungsi terasnya ada di Github, disimpan dalam program python 3.7.3 yang disebut seniorRadio.py. Ia membaca dan menulis fail json untuk menyimpan keadaan radio, jadi apabila anda mematikannya, ia akan mengingat tahap audio dan stesen yang dipilih sekarang. Di samping itu, ia membaca fail json yang dihoskan dalam talian yang boleh anda ubah! Ini membolehkan anda mengemas kini stesen radio dari jauh jika anda memberikannya kepada orang lain.

Saat ini dibuat untuk menyambung ke pembesar suara bluetooth, tetapi dapat dibuat dengan mudah untuk memainkan pembesar suara onboard juga.

Pencipta peranti ini kemungkinan bukan pengguna, dan memerlukan sekurang-kurangnya sedikit pengalaman dengan pengetahuan elektronik dan pengaturcaraan asas. Pengalaman Linux juga sangat berguna.

Bagi pengguna, fungsinya mudah:

Apabila dihidupkan, ia akan memainkan stesen terakhir yang dipilih melalui peranti audio lalai. Dail kiri mengawal stesen, di mana beberapa klik dail berubah menjadi URL baru. Ia akan digulung selepas entri terakhir atau pertama. Dail kanan mengawal tahap audio. LED menunjukkan bahawa program dihidupkan. Butang tekan berhenti atau "mematikan" radio. Oleh itu, setelah dihidupkan, pengguna hanya boleh menekan butang untuk menjeda / bermain, atau "mematikan / menghidupkan", radio dan dua dail untuk mengawalnya.

Bekalan

Terpaut pada setiap item adalah item khusus yang saya gunakan. Kos saya kira-kira $ 60 dengan banyak bekalan yang tinggal!

Pengetahuan asas elektronik dan linux - untuk pemasangan dan penyahpepijatan

Raspberry Pi Zero W (Zero WH mempunyai tajuk yang disolder sebelumnya dan mungkin berguna)

Kad MicroSD-8 GB + dan kemampuan o

Penyesuai kuasa MicroUSB 5V - Pautan juga menyertakan penyesuai microHDMI dan penyesuai microUSB OTG ke USB A untuk persediaan jika anda memerlukannya

Pembesar suara Bluetooth

Kabel pelompat M / F dan M / M

2 Pengekod putar - pautan yang sama seperti di atas

Papan roti kecil

Tekan butang

LED (pilihan) - beli butang LED + di atas

Kotak untuk pembungkusan

Langkah 1: Persediaan (tanpa kepala) Raspberry Pi W

Persediaan (tanpa kepala) Raspberry Pi W
Persediaan (tanpa kepala) Raspberry Pi W

Kita perlu mengatur sistem operasi pada raspberry pi yang akan menjalankan perisian. Tiada satu pun yang unik untuk projek ini. Untuk penyahpepijatan, saya mengesyorkan menyiapkannya supaya anda juga dapat mengaksesnya dalam mod tanpa kepala. Ini bermaksud anda mengakses pi melalui rangkaian WiFi anda melalui GUI atau terminal SSH dan tidak memerlukan papan kekunci, tetikus, dan monitor untuk menggunakannya setiap saat. Anda boleh melakukan ini tanpa perlu menyambung ke monitor / tetikus / papan kekunci sekiranya anda lebih mahir teknologi. Beberapa contoh arahan di sini. Walau bagaimanapun, ia kurang lurus ke depan, dan di bawah ini adalah cara lain untuk menyiapkannya.

Kali pertama ini anda mungkin memerlukan:

  • Raspberry Pi W
  • Penyesuai kad MicroSD ke SD [untuk menulis OS ke kad SD]
  • Kad MicroSD (~ 8 GB +) [untuk menyimpan OS dan program kami]
  • Kuasa MicroUSB (5V)
  • MicroUSB ke USB A [untuk tetikus / papan kekunci]
  • Penyesuai Mini HDMI ke HDMI [untuk output paparan]
  • Papan Kekunci
  • Tetikus
  • Pantau

Pertama, anda perlu memasukkan sistem operasi ke kad SD mikro rPi.

Saya menggunakan raspian buster, anda memuat turunnya ke komputer dengan kad / pembaca kad SD dan kemudian flash OS raspian ke kad SD. BalenaEtcher adalah perisian yang mudah untuk melakukan ini

Seterusnya masukkan kad SD ke dalam slot pi, sambungkan monitor, papan kekunci dan kuasa. Teruskan melalui langkah-langkah penyediaan yang diminta oleh raspian, termasuk menyambungkannya ke rangkaian WiFi anda dan memasangkan pembesar suara bluetooth anda melalui GUI. Amalan yang baik adalah memperbaruinya dengan menggunakan perintah berikut

sudo apt-get kemas kini

sudo apt-get peningkatan

Sekiranya anda ingin memasukkan tanda pi anda tanpa kepala, kita perlu mengambil alamat ip pi terlebih dahulu. Melalui terminal anda boleh mencarinya melalui

ifconfig

arahan. Anda kemudian perlu mengaktifkan SSH dan VNC melalui pilihan antara muka di

sudo raspi-config

Setelah dimulakan semula, anda kini boleh menguji mengakses pi melalui SSH atau VNC. SSH hanyalah antara muka terminal, dan anda mungkin lebih mudah menggunakan GUI untuk memasangkan pembesar suara bluetooth. Anda boleh menggunakan program seperti penyambungan VNC untuk mengakses pi anda dengan mudah pada komputer berasingan di rangkaian anda. Anda boleh menggunakan program seperti dempul ke SSH ke dalamnya.

Selanjutnya, anda boleh menyediakan akaun awan VNC sehingga anda dapat mengakses peranti dari rangkaian jika diperlukan

Langkah 2: Pasang Perisian Radio Senior

Pasang Perisian Radio Senior
Pasang Perisian Radio Senior

Ini boleh dilakukan dari tetingkap terminal pi raspberry. Mula-mula pastikan anda telah memasang git

sudo apt-get install git

Bergantung pada sistem operasi yang anda pasang, langkah-langkah ini mungkin berbeza kerana anda mungkin perlu memasang pakej tambahan, sistem akan memberitahu anda jika ya. Mula-mula kita perlu memuat turun kod radio senior dari github. https://github.com/Bunborn/seniorRadio Sebaik-baiknya, anda membuat repo kami sendiri supaya anda dapat membuat perubahan dan menukar stesen radio dengan mudah seperti yang saya lakukan. Garpu repo jika ya

Walau bagaimanapun, anda boleh menggunakan yang sama dengan saya tanpa masalah jika anda mahu menghoskan fail radio json anda di tempat lain

Kemudian kloning repo di lokasi apa sahaja yang anda mahukan. Direktori lalai baik-baik saja. Dapatkan URL yang mana github repo anda mahukan dengan menekan butang klon hijau atau muat turun.

Kembali ke tetingkap terminal, git klon

Anda kini harus melihat direktori tambahan bernama seniorRadio ketika melihat menggunakan ls. Hebat!

Kod ini dimaksudkan untuk mendokumentasikan diri, melihatnya akan berguna. Terutama untuk tujuan penyahpepijatan dan jika anda mengubah sistem.

Langkah 3: Pasang Perisian Tambahan

Pasang Perisian Tambahan
Pasang Perisian Tambahan

Sebelum kita beralih ke litar dan mengujinya, kita juga perlu memuat turun VLC dan api python untuknya. Anda mungkin sudah memasang VLC. Dua perintah pertama akan mengemas kini pi, dan dua perintah terakhir di bawah ini akan memasang VLC dan kemudian api python

sudo apt-get kemas kini

sudo apt-get peningkatan

sudo snap pasang VLC

sudo apt-get install vlc-python

Selain itu, pasang juga gpiozero, yang akan kami gunakan untuk berinteraksi dengan pin GPIO pi. Anda mungkin sudah memasangnya bergantung pada sistem operasi anda.

sudo apt-get install gpiozero

Langkah 4: Cari Aliran Stesen Radio

Cari Aliran Stesen Radio
Cari Aliran Stesen Radio

Seterusnya, salah satu bahagian yang paling menyeronokkan! Masa untuk memilih aliran apa sahaja yang anda mahukan.

Dalam fail internetStations.json saya, anda dapat melihat pautan aliran saya, terutamanya untuk berita dan muzik. Tetapi terdapat banyak kandungan yang dihoskan di luar sana. Kuncinya di sini adalah mencari alamat URL aliran langsung. Contohnya, stesen berita dan muzik BBC boleh didapati di blog ini. Aliran langsung ini tidak akan mempunyai antara muka grafik dan secara automatik akan memainkan aliran melalui pemain media penyemak imbas anda. Ini adalah URL yang kami perlukan supaya VLC dapat membacanya! Anda boleh menguji sebarang pautan dengan cepat di broswer web anda, atau melalui VLC pada komputer biasa anda untuk memastikan bahawa ia akan berfungsi pada pi.

Untuk mencari stesen ini, anda boleh mencari aliran langsung dalam talian jika perkhidmatan menghoskannya. Cara cepat juga ialah dengan memainkan aliran, klik kanan pada penyemak imbas dan tekan "periksa elemen". Navigasi ke tab rangkaian dan ini harus menunjukkan URL langsung 'langsung'. Video youtube ini menunjukkan ini. Menyegarkan halaman dengan tab terbuka akan membantu.

Sebaik sahaja anda mempunyai stesen anda, anda ingin meletakkannya dalam talian supaya program python seniorRadio anda dapat merebutnya. Terdapat banyak pilihan untuk melakukan ini, anda boleh menggunakan laman web seperti Github, bitbucket, atau bahkan sourceforge. Tujuan utama menghoskan senarai ini secara dalam talian adalah agar pengguna menyiapkannya dapat mengubah senarai aliran dalam talian dari jauh.

Pada permulaan program python terdapat pemboleh ubah yang disebut url, cukup ubah ini menjadi URL fail json anda dengan pautan URL stesen

Anda boleh mengikuti format yang sama dengan fail internetStation.json saya. Sekiranya anda ingin menggunakan github, anda hanya boleh menggunakan repositori seniorRadio saya dan mengedit fail internetStation.json anda sendiri dan mengarahkannya ke URL "mentah" itu. Anda boleh mendapatkannya di GUI Github setelah anda mengklik fail tersebut.

Langkah 5: Buat Litar

Buat Litar
Buat Litar

Sekarang kita perlu mengatur litar. Ini akan berubah berdasarkan peralatan anda, tetapi di bawah ini adalah cara saya menyediakannya.

pinout.xyz/ untuk rujukan mengenai pin mana. Oleh kerana kami menggunakan pustaka gpiozero, kami hanya memperhatikan penomboran pin BCM sahaja. Perhatikan bahawa saya membeli beberapa pengekod putar KY040 tambahan - dail - untuk mengujinya kerana semuanya tidak mempunyai ketepatan yang sama. Masing-masing mempunyai beberapa "memantul", atau hanya output yang salah, jadi saya memilih yang terbaik dari dua yang saya ada. Dalam kod yang anda akan perhatikan ada beberapa langkah untuk membataskan pantulan ini juga.

Saya menyambungkan butang tekan ke pin BCM 17 dan tanah

LED saya ke perintang 1k ohm kemudian pin 27 BCM dan tanah

Pengekod putar KY040 saya mempunyai + memimpin ke 5V, GND ke tanah dan SW terputus. Ini dihubungkan melalui papan roti mini

Pin dtod pengekod putar disambungkan ke pin BCM 21

Pin clk encoder putar stesen disambungkan ke pin BCM 20

Pin dt pengekod putar tahap audio yang disambungkan ke pin BCM 19

Pin clk encoder tahap audio yang disambungkan ke pin BCM 16

Sekiranya anda menukar pin ini, cukup kemas kini nombor dalam program python di mana ia menyediakan pengendali

Saya menggunakan papan roti mini untuk menjadikannya lebih mudah. Saya menggunakan wayar jumper M / M dan M / F juga untuk memudahkan antara muka. Saya menyolder beberapa wayar pelompat ke pin butang tekan / LED yang saya beli tadi. Untuk tidak menyolder, anda boleh mendapatkan butang tekan dan LED yang sudah mempunyai plumbum wayar jumper atau mudah tersambung ke satu.

Langkah 6: Uji

Sekarang, anda semestinya mempunyai sistem yang berfungsi! Mari kita mengujinya. Navigasi ke folder dengan program python, kemungkinan:

cd seniorRadio

python3 seniorRadio.py

Pada masa ini, terdapat kelewatan 45 saat pada permulaan program untuk memberi masa untuk mencari pembesar suara bluetooth dihidupkan. Anda boleh mengulas baris ini jika anda tidak memerlukannya semasa ujian. Program ini mungkin memberitahu anda bahawa anda perlu memasang pakej tambahan, teruskan jika ya. Mungkin juga perlu memasang versi Python yang lebih baru.

sudo apt-get install python3.7

Beberapa masalah yang mungkin berlaku walaupun program berjalan:

Saya tidak mendengar suara

Pastikan pembesar suara dihidupkan dan dipilih dalam pi raspberry anda. Melalui GUI, anda seharusnya dapat memasangkannya dan kemudian memilihnya sebagai peranti output audio anda. Selanjutnya, periksa pemacu audio anda. Masalah biasa ialah anda mungkin perlu memasang semula pakej pulseaudio

Audio berombak atau memotong masuk dan keluar

Cuba pindahkan peranti lebih dekat ke penghala WiFi anda. Selain itu, pastikan pembesar suara bluetooth berada dekat. Juga boleh menjadi masalah pemacu audio

Langkah 7: Masukkan ke dalam Kandang Tetap

Letakkan Ke Kandang Tetap
Letakkan Ke Kandang Tetap

Seterusnya, memasukkannya ke dalam kotak atau peranti serupa agar ia boleh hidup secara kekal. Saya mengesyorkan mempunyai satu yang boleh anda akses kemudian untuk debug. Saya mendapat kotak kayu kecil ini di kedai kraf dengan harga $ 2, dan memautkannya di halaman bekalan. Salah seorang rakan saya mengesyorkan kotak cerut.

Saya kemudian memotong lubang di bahagian depan untuk menekan butang dan suis putar, dan menggerudi lubang di bahagian belakang kotak untuk kabel kuasa microUSB.

Saya menguji pemasangan dan memastikan ia berfungsi, dan voilà!

Akhirnya, saya menggunakan gam super untuk menahan butang tekan. Papan roti saya mempunyai pelekat di bahagian bawah yang saya sambungkan ke bahagian kotak. Saya menggunakan jalur pita saluran kecil untuk mengikat bahagian belakang pi ke dalam kotak, sehingga boleh dipindahkan kemudian jika diperlukan.

Langkah 8: Persediaan Program untuk Dijalankan pada Permulaan

Akhirnya, anda mungkin mahu program python ini dijalankan pada permulaan pi raspberry sehingga anda tidak perlu melakukannya secara manual. Terdapat banyak cara untuk melakukan ini yang anda dapati dalam talian.

Secara peribadi, saya menyiapkannya menggunakan cara kedua pada tutorial SparkFun ini:

Di sini, menunggu sistem memasuki desktop grafik sebelum menjalankan program. Ia kemudian ditunda oleh program python selama 45 saat untuk memberi masa sistem untuk menyambung semula ke speaker bluetooth. Sekiranya anda menggunakan pembesar suara bersepadu, anda boleh menghilangkan kelewatan ini. Perhatikan bahawa pembesar suara bluetooth harus dihidupkan terlebih dahulu! (untuk penyelesaian bluetooth)

Kini anda boleh mencuba mematikan dan menghidupkan semula pi anda! Selepas kira-kira 90 saat, pi anda akan mula memainkan aliran radio sekali lagi. Apabila menekan butang tekan akan berhenti / bermain. Perhatikan pada but semula ini, ia membaca semula fail json internetStations, jadi jika anda menukar stesen anda, anda perlu menghidupkan semula peranti untuk berfungsi. Tahniah!

Sekiranya anda membuat ini, atau membuat pengubahsuaian pada projek, beritahu saya!

Halaman Github:

Disyorkan: