Daftar Isi:

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: Raspberry Pi 4 - Software defined radio - SDR Install guide - 2022 2024, Juli
Anonim
Radio Senior - Raspberry Pi
Radio Senior - Raspberry Pi

Proyek Senior Radio adalah perangkat radio internet yang dirancang dan dapat diakses sumber terbuka dengan komponen perangkat keras dan perangkat lunak. Ini dimaksudkan untuk digunakan bagi pengguna yang terbiasa mengendalikan radio saku di mana tombol mengontrol volume dan stasiun radio yang dipilih. Proyek ini dibuat dengan desain yang berpusat pada pengguna, berfokus pada pengguna yang menginginkan ukuran dan kontrol yang sama seperti radio genggam standar.

Itu dibangun untuk memenuhi kebutuhan yang memungkinkan individu dengan gangguan dapat mendengarkan ribuan konten streaming internet berbeda yang biasanya hanya tersedia melalui browser internet. Banyak orang tidak memiliki kemampuan untuk menggunakan perangkat seperti itu dengan mudah, jadi desain ini bertujuan untuk membuat antarmuka yang akrab untuk teknologi modern.

Fungsionalitas inti ada di Github, disimpan dalam program python 3.7.3 yang disebut seniorRadio.py. Ia membaca dan menulis file json untuk menyimpan status radio, jadi ketika Anda mematikannya, ia akan mengingat level audio saat ini dan stasiun yang dipilih. Selain itu, ia membaca file json yang dihosting online yang dapat Anda ubah! Ini memungkinkan Anda untuk memperbarui stasiun radio dari jarak jauh jika Anda memberikan ini kepada orang lain.

Saat ini dibuat untuk terhubung ke speaker bluetooth, tetapi dapat dengan mudah dibuat untuk memutar speaker onboard juga.

Pembuat perangkat ini kemungkinan bukan pengguna, dan membutuhkan setidaknya beberapa pengalaman dengan elektronik dan pengetahuan pemrograman dasar. Pengalaman Linux juga sangat berguna.

Bagi pengguna, fungsinya sederhana:

Saat dinyalakan, itu akan memutar stasiun terakhir yang dipilih melalui perangkat audio default. Tombol kiri mengontrol stasiun, di mana beberapa klik tombol berubah ke URL baru. Ini akan berguling setelah entri terakhir atau pertama. Dial kanan mengontrol level audio. LED menunjukkan program menyala. Dan tombol berhenti atau "mematikan" radio. Jadi begitu dinyalakan, pengguna cukup menekan tombol untuk menjeda/memutar, atau "mematikan/menghidupkan", radio dan dua tombol untuk mengontrolnya.

Perlengkapan

Tertaut pada setiap item adalah yang spesifik yang saya gunakan. Biaya saya sekitar $60 total dengan banyak sisa persediaan!

Pengetahuan dasar elektronik dan linux - untuk perakitan dan debugging

Raspberry Pi Zero W (Zero WH memiliki header yang sudah disolder sebelumnya dan mungkin berguna)

Kartu MicroSD-8 GB+ dan kemampuan o

Adaptor daya MicroUSB 5V - Tautan juga menyertakan adaptor microHDMI dan adaptor microUSB OTG ke USB A untuk pengaturan jika Anda membutuhkannya

Pembicara Bluetooth

Kabel jumper M/F dan M/M

2 Rotary encoder - tautan yang sama seperti di atas

papan tempat memotong roti kecil

Tekan tombol

LED (opsional) - beli LED + tombol tekan di atas

Kotak untuk kemasan

Langkah 1: Setup (tanpa kepala) Raspberry Pi W

Pengaturan (tanpa kepala) Raspberry Pi W
Pengaturan (tanpa kepala) Raspberry Pi W

Kita perlu mengatur sistem operasi pada raspberry pi yang akan menjalankan perangkat lunak. Tak satu pun dari ini unik untuk proyek ini. Untuk debugging, saya sarankan untuk mengaturnya sehingga Anda juga dapat mengaksesnya dalam mode tanpa kepala. Ini berarti Anda mengakses pi melalui jaringan WiFi Anda melalui GUI atau terminal SSH dan tidak memerlukan keyboard, mouse, dan monitor untuk menggunakannya setiap saat. Anda dapat melakukan ini tanpa perlu terhubung ke monitor/mouse/keyboard jika Anda lebih paham teknologi. Beberapa contoh instruksi di sini. Namun itu kurang lurus ke depan, dan di bawah ini adalah cara lain untuk mengaturnya.

Ini pertama kali Anda mungkin akan membutuhkan:

  • Raspberry Pi W
  • Adaptor kartu MicroSD ke SD [untuk menulis OS ke kartu SD]
  • Kartu MicroSD (~ 8 GB+) [untuk menyimpan OS dan program kami]
  • Daya MicroUSB (5V)
  • MicroUSB ke USB A [untuk mouse/keyboard]
  • Adaptor Mini HDMI ke HDMI [untuk output tampilan]
  • Papan ketik
  • Mouse
  • Memantau

Pertama, Anda harus mem-flash sistem operasi ke kartu micro SD rPi.

Saya menggunakan buster raspian, Anda mengunduh ini ke komputer dengan membaca/menulis kartu SD dan kemudian mem-flash OS raspian ke kartu SD. BalenaEtcher adalah perangkat lunak yang mudah untuk melakukan ini

Selanjutnya masukkan kartu SD ke dalam slot pi, sambungkan monitor, keyboard, dan daya. Lanjutkan melalui langkah-langkah penyiapan yang diminta raspian, termasuk menghubungkannya ke jaringan WiFi Anda dan memasangkan speaker bluetooth Anda melalui GUI. Praktik yang baik adalah memperbaruinya menggunakan perintah berikut

sudo apt-get update

sudo apt-get upgrade

Jika Anda ingin menyertakan penandaan pi tanpa kepala, kita perlu mengambil alamat ip pi terlebih dahulu. Melalui terminal Anda dapat menemukannya melalui

ifconfig

memerintah. Anda kemudian perlu mengaktifkan SSH dan VNC melalui opsi antarmuka di

sudo raspi-config

Setelah restart, Anda sekarang dapat menguji mengakses pi melalui SSH atau VNC. SSH hanyalah antarmuka terminal, dan Anda mungkin merasa lebih mudah menggunakan GUI untuk memasangkan speaker bluetooth. Anda dapat menggunakan program seperti VNC connect untuk mengakses pi Anda dengan mudah di komputer terpisah di jaringan Anda. Anda dapat menggunakan program seperti dempul untuk SSH ke dalamnya.

Selanjutnya, Anda dapat mengatur akun cloud VNC sehingga Anda dapat mengakses perangkat di luar jaringan jika diperlukan

Langkah 2: Instal Perangkat Lunak Radio Senior

Instal Perangkat Lunak Radio Senior
Instal Perangkat Lunak Radio Senior

Ini dapat dilakukan dari jendela terminal raspberry pi. Pertama pastikan Anda telah menginstal git

sudo apt-get install git

Tergantung pada sistem operasi yang Anda instal, langkah-langkah ini mungkin berbeda karena Anda mungkin perlu menginstal paket tambahan, sistem akan memberi tahu Anda jika demikian. Pertama kita perlu mengunduh kode radio senior dari github. https://github.com/Bunborn/seniorRadio Idealnya, Anda membuat repo kami sendiri sehingga Anda dapat membuat perubahan dan dengan mudah mengubah stasiun radio dengan cara yang sama seperti yang saya lakukan. Garpu repo jika demikian

Namun, Anda dapat menggunakan yang sama dengan milik saya tanpa masalah jika Anda ingin meng-host file json radio Anda di tempat lain

Kemudian kloning repo di lokasi apa pun yang Anda inginkan. Direktori default baik-baik saja. Dapatkan URL repo github yang Anda inginkan dengan menekan tombol klon hijau atau unduh.

Kembali ke jendela terminal, git clone

Anda sekarang akan melihat direktori tambahan bernama seniorRadio saat mencari menggunakan ls. Fantastis!

Kode ini dimaksudkan untuk mendokumentasikan diri sendiri, melihatnya akan berguna. Terutama untuk keperluan debugging dan jika Anda mengubah sistem.

Langkah 3: Instal Perangkat Lunak Tambahan

Instal Perangkat Lunak Tambahan
Instal Perangkat Lunak Tambahan

Sebelum kita melanjutkan ke sirkuit dan mengujinya, kita juga perlu mengunduh VLC dan python api untuk itu. Anda mungkin sudah menginstal VLC. Dua perintah pertama akan memperbarui pi, dan dua perintah terakhir di bawah ini akan menginstal VLC dan kemudian python api

sudo apt-get update

sudo apt-get upgrade

sudo snap instal VLC

sudo apt-get install vlc-python

Selain itu, instal juga gpiozero, yang akan kita gunakan untuk berinteraksi dengan pin GPIO pi. Anda mungkin sudah menginstalnya tergantung pada sistem operasi Anda.

sudo apt-get install gpiozero

Langkah 4: Temukan Aliran Stasiun Radio

Temukan Aliran Stasiun Radio
Temukan Aliran Stasiun Radio

Selanjutnya, salah satu bagian yang paling menyenangkan! Saatnya memilih aliran apa pun yang Anda inginkan.

Dalam file internetStation.json saya, Anda dapat melihat tautan streaming saya, terutama untuk berita dan musik. Tetapi ada banyak sekali konten yang dihosting di luar sana. Kuncinya di sini adalah menemukan alamat URL streaming langsung. Misalnya, stasiun berita dan musik BBC dapat ditemukan di blog ini. Streaming langsung ini tidak akan memiliki antarmuka grafis dan akan memutar streaming secara otomatis melalui pemutar media browser Anda. Ini adalah URL yang kami butuhkan agar VLC dapat membacanya! Anda dapat menguji tautan apa pun dengan cepat di browser web Anda, atau melalui VLC di komputer normal Anda untuk memastikannya berfungsi di pi.

Untuk menemukan stasiun-stasiun ini, Anda dapat mencari streaming langsung secara online jika layanan tersebut menyelenggarakannya. Cara cepat juga bisa dengan memutar streaming, klik kanan pada browser dan tekan "inspect element". Arahkan ke tab jaringan dan itu akan menunjukkan URL aliran 'langsung'. Video youtube ini menunjukkan hal ini. Menyegarkan halaman dengan tab terbuka akan membantu.

Setelah Anda memiliki stasiun Anda, Anda ingin menempatkannya secara online sehingga program python seniorRadio Anda dapat mengambilnya. Ada banyak opsi untuk melakukan ini, Anda dapat menggunakan situs seperti Github, bitbucket, atau bahkan sourceforge. Tujuan utama dari menghosting daftar ini secara online adalah agar pengguna yang mengaturnya dapat mengubah daftar streaming secara online dari jarak jauh.

Di awal program python ada variabel yang disebut url, cukup ubah ini menjadi URL file json Anda dengan tautan URL stasiun

Anda dapat mengikuti format yang sama dengan file internetStation.json saya. Jika Anda juga ingin menggunakan github, Anda cukup mem-fork repositori seniorRadio saya, dan mengedit file internetStation.json Anda sendiri dan mengarahkannya ke URL "mentah" itu. Anda dapat menemukannya di bawah di Github GUI setelah Anda mengklik file.

Langkah 5: Buat Sirkuit

Buat Sirkuit
Buat Sirkuit

Sekarang kita perlu mengatur sirkuit. Ini akan berubah berdasarkan peralatan Anda, tetapi di bawah ini adalah cara saya mengatur milik saya.

pinout.xyz/ untuk referensi pin mana. Karena kami menggunakan pustaka gpozero, kami hanya memperhatikan penomoran pin BCM. Perhatikan bahwa saya membeli beberapa rotary encoder KY040 tambahan - dial - untuk mengujinya karena tidak semuanya memiliki akurasi yang sama. Masing-masing akan memiliki beberapa "memantul", atau output yang salah, jadi saya memilih yang terbaik dari dua yang saya miliki. Dalam kode, Anda akan mencatat ada beberapa langkah untuk membatasi pemantulan ini juga.

Saya menghubungkan tombol tekan saya ke BCM pin 17 dan ground

LED saya ke resistor 1k ohm kemudian BCM pin 27 dan ground

Rotary encoder KY040 saya memiliki + lead ke 5V, GND ke ground dan SW terputus. Ini terhubung melalui papan tempat memotong roti mini

Stasiun rotary encoder dt pin terhubung ke BCM pin 21

Stasiun rotary encoder clk pin terhubung ke BCM pin 20

Audio level rotary encoder dt pin terhubung ke BCM pin 19

Pin clk rotary encoder level audio terhubung ke pin BCM 16

Jika Anda mengubah pin ini, cukup perbarui nomor di program python juga di mana ia mengatur penangan

Saya menggunakan papan tempat memotong roti mini untuk membuatnya lebih mudah. Saya menggunakan kabel jumper M/M dan M/F juga untuk memfasilitasi antarmuka. Saya menyolder beberapa kabel jumper ke pin tombol tekan/LED yang saya beli sebelumnya. Untuk tidak menyolder, Anda bisa mendapatkan tombol tekan dan LED yang sudah memiliki kabel jumper atau akan dengan mudah terhubung ke satu.

Langkah 6: Uji

Sekarang, Anda harus memiliki sistem yang berfungsi! Mari kita mengujinya. Arahkan ke folder dengan program python, kemungkinan:

cd seniorRadio

python3 seniorRadio.py

Saat ini, ada penundaan 45 detik di awal program untuk memberikan waktu untuk menemukan speaker bluetooth menyala. Anda dapat mengomentari baris ini jika Anda tidak membutuhkannya selama pengujian. Program mungkin memberi tahu Anda bahwa Anda perlu menginstal paket tambahan, silakan jika demikian. Mungkin juga perlu menginstal versi Python yang lebih baru.

sudo apt-get install python3.7

Beberapa kemungkinan masalah meskipun program berjalan:

Saya tidak mendengar suara

Pastikan speaker aktif dan dipilih di raspberry pi Anda. Melalui GUI Anda harus dapat memasangkannya dan kemudian memilihnya sebagai perangkat output audio Anda. Selanjutnya, periksa driver audio Anda. Masalah umum adalah Anda mungkin perlu menginstal ulang paket pulseaudio

Audio terputus-putus atau terputus-putus

Coba pindahkan perangkat lebih dekat ke router WiFi Anda. Selain itu, pastikan speaker bluetooth dekat. Bisa juga menjadi masalah driver audio

Langkah 7: Masukkan Ke Dalam Kandang Permanen

Dimasukkan ke Kandang Permanen
Dimasukkan ke Kandang Permanen

Selanjutnya, memasukkannya ke dalam kotak atau perangkat serupa untuk ditinggali secara permanen. Saya sarankan memiliki satu yang dapat Anda akses nanti untuk debugging. Saya mendapatkan kotak kayu kecil ini di toko kerajinan seharga $2, dan menautkannya di halaman persediaan. Salah satu teman saya merekomendasikan kotak cerutu.

Saya kemudian membuat lubang di bagian depan untuk tombol tekan dan sakelar putar, dan mengebor lubang di bagian belakang kotak untuk kabel daya microUSB.

Saya menguji mount dan memastikannya berfungsi, dan voila!

Akhirnya, saya menggunakan lem super untuk menahan tombol tekan. Papan tempat memotong roti saya memiliki perekat di bagian bawah yang saya sambungkan ke bagian kotak. Saya menggunakan selotip kecil untuk mengamankan bagian belakang pi ke kotak, sehingga bisa dipindahkan nanti jika diperlukan.

Langkah 8: Atur Program untuk Dijalankan saat Startup

Terakhir, Anda mungkin ingin program python ini berjalan pada saat startup raspberry pi sehingga Anda tidak perlu melakukannya secara manual. Ada banyak cara untuk melakukan ini yang dapat Anda temukan secara online.

Secara pribadi, saya mengaturnya menggunakan cara kedua pada tutorial SparkFun ini:

Di sini, menunggu sistem masuk ke desktop grafis sebelum menjalankan program. Kemudian ditunda oleh program python selama 45 detik untuk memberi waktu sistem untuk menyambung kembali ke speaker bluetooth. Jika Anda menggunakan speaker terintegrasi, Anda dapat menghapus penundaan ini. Perhatikan bahwa speaker bluetooth harus menyala terlebih dahulu! (untuk solusi bluetooth)

Sekarang Anda dapat mencoba mematikan dan menyalakan kembali pi Anda! Setelah sekitar 90 detik, pi Anda akan mulai memutar aliran radio sekali lagi. Saat menekan tombol itu akan berhenti/bermain. Catatan pada reboot ini, ia membaca kembali file json internetStations itu jadi jika Anda mengubah stasiun Anda, Anda perlu me-restart perangkat agar mereka berfungsi. Selamat!

Jika Anda membuat ini, atau membuat modifikasi pada proyek, beri tahu saya!

Halaman Github:

Direkomendasikan: