Daftar Isi:
- Langkah 1: Prasyarat:
- Langkah 2: Instal Python dan Pip
- Langkah 3: Instal MPG123 dan Adafruit Blinka
- Langkah 4: Sesuaikan Volume menjadi 50% di Alsamixer
- Langkah 5: Beberapa Pekerjaan Rumah: Temukan 5 Stasiun Radio yang Layak Didengarkan
- Langkah 6: Opsional: Mengikis URL Menggunakan Vtuner
- Langkah 7: Atur Tombol Kami
- Langkah 8: Identifikasi Pin GPIO Kami
- Langkah 9: Kode
- Langkah 10: Uji di Kotak Pasir Kami
- Langkah 11: Siapkan Kode Kami untuk Berjalan Secara Otomatis saat Boot
- Langkah 12: Uji Lagi
- Langkah 13: Kotakkan, dan Selesai
Video: Menjaga Radio Internet Sederhana Tetap Tenang: KISSIR: 13 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:53
Terkadang itu hanya harus taktil. Tidak ada Antarmuka dalam bentuk apa pun. Hanya Tombol.
Raspberry Pi sebagai pemutar radio internet bukanlah hal baru, dan ada banyak petunjuk tentang cara membuat pemutar radio internet menggunakan raspberry pi dengan atau tanpa monitor untuk mengalirkan stasiun internet dari seluruh dunia. Jika Anda memilih untuk pergi tanpa kepala (tanpa monitor), Anda masih memerlukan sarana untuk menghubungkan pemutar pi, biasanya antarmuka web jika bukan sarana langsung untuk berkomunikasi dengan host, seperti ssh. Instruksi ini akan sedikit berbeda; kita akan menggunakan penekanan tombol sederhana untuk mengirim perintah ke pi, sehingga menghilangkan kebutuhan akan antarmuka web dan layar LCD. Kedengarannya cukup mudah, bukan (?)
Kami akan memulai dengan desain yang sangat dasar menggunakan tombol kode warna, setiap warna akan mewakili stasiun radio internet. Kami akan memperkenalkan beberapa kode python untuk menangani penekanan tombol: Pers akan menjalankan perintah untuk memutar stasiun radio internet pra-kode menggunakan MPG123, alat baris perintah yang bagus untuk memutar audio di pi kami.
Keterampilan python Anda tidak perlu ditingkatkan. Sebenarnya saya benar-benar beralih dari "Hello World" untuk menulis ini, dan seperti yang akan Anda lihat, saya meminjam banyak kode - jadi jika saya bisa melakukannya dan mendokumentasikannya, orang lain seharusnya tidak memiliki masalah.
Ayo pergi!
Perlengkapan:
Bahan yang dibutuhkan
- Raspberry pi/ pi zero w dengan segala kelengkapannya: Power supply, SD card dan Raspbian atau Raspbian lite.
- Wifi dan akses internet
- PC lain untuk melakukan beberapa penelusuran web dan kemampuan untuk SSH ke raspberry pi
- Digital to Analog Converter (DAC) - opsional tetapi Anda akan berterima kasih.
- penguat
- Pembicara
- Kawat pengait dan Jumper
- Besi solder dan solder
- Papan Perf untuk tombol
- Tombol taktil: Biasanya Terbuka- satu untuk setiap genre musik, tombol daya, dan tombol bisu opsional (disarankan 7 tombol)
- Unit perumahan untuk semua hal di atas (opsional tapi rapi)
Langkah 1: Prasyarat:
Kami akan mulai dengan asumsi Anda telah menyiapkan raspberry pi, DAC, dan amplifier Anda, dan juga akan menganggap Anda memiliki akses ke internet. Karena banyaknya pilihan peralatan audio, preferensi, dan opsi untuk mendengarkan audio, kami akan menganggap pengaturan Anda sudah selesai: Anda seharusnya sudah memiliki suara yang keluar dari speaker Anda sebelum memulai proyek ini. Kita juga perlu ssh ke raspberry pi, jadi menggunakan konfigurasi pi, pastikan antarmuka telah mengaktifkan ssh. Saya akan menggunakan Raspbian lite, dan menyarankan Anda menginstal salinan terbaru pada kartu sd baru yang didedikasikan untuk proyek ini. Jika berhasil, kami akan membangun perlengkapan yang berdiri sendiri yang dapat dibiarkan menyala 24/7 sebagai perangkat pendengar khusus.
Langkah 2: Instal Python dan Pip
Saya lebih suka ssh ke pi menggunakan pc yang berbeda, dan melakukan semua fungsi yang diperlukan menggunakan sesi ssh, tapi saya kira mungkin untuk awalnya mengatur pi ke monitor, keyboard dan mouse dan bekerja langsung pada pi sampai selesai. bekerja dan kemudian menyebarkan sebagai mandiri.
Pertama mari kita lakukan pemeriksaan pemeliharaan rutin sistem dan versi python kami:
sudo apt-get update
sudo apt-get upgrade
Pastikan Python diinstal. Dalam sesi terminal ketik berikut ini di command prompt:
python --versi
Jika Anda melihat python 2.7.13 (atau sebelumnya) mari kita instal python 3.+:
sudo apt-get install python3
sudo apt-get install python-pip
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip
Langkah 3: Instal MPG123 dan Adafruit Blinka
Sekarang fondasi telah diletakkan, hanya beberapa pemasangan lagi:
MPG123 adalah software audio yang akan memutar musik kita. Instalasi sangat sederhana:
sudo apt-get install mpg123
Saya melakukan banyak riset, dan menemukan template yang bagus di situs web Adafruit tentang memutar file suara menggunakan penekanan tombol, jadi daripada memulai dari awal, mari lanjutkan jejak yang telah dikembangkan oleh orang-orang di Adafruit untuk kita. Program mereka meminta kami menginstal Adafruit Blinka:
$ sudo pip3 instal adafruit-blinka
Sebelum kita melangkah lebih jauh, mari kita lakukan pemeriksaan cepat untuk memastikan kita memiliki pengaturan Alsa:
mainkan --versi
hasil kami harus dibaca: versi 1.1.3 oleh Jaroslav Kysela
Langkah 4: Sesuaikan Volume menjadi 50% di Alsamixer
Sekarang mari kita ambil tindakan pencegahan dan sesuaikan volume kita menjadi 50% untuk menghindari kejutan yang memekakkan telinga:
Pada prompt perintah, ketik alsamixer:
alsamixer
Jika kita melihat layar berwarna merah putih dan hijau, atau volume maksimal 100%, ada baiknya untuk menurunkan volume hingga 50% untuk menyelamatkan gendang telinga kita. Kami selalu dapat menyesuaikan nanti (naik atau turun) jika diperlukan.
Langkah 5: Beberapa Pekerjaan Rumah: Temukan 5 Stasiun Radio yang Layak Didengarkan
Kita membutuhkan satu stasiun untuk setiap tombol. Sebenarnya, kita akan membutuhkan url untuk stasiun. Menekan tombol akan memanggil url stasiun radio internet dalam satu baris kode yang sederhana. Namun kami semakin maju sehingga kami memiliki beberapa pekerjaan rumah yang harus dilakukan; temukan 5 stasiun radio dan urlnya. Menemukan 5 stasiun radio tidak sulit, tetapi menemukan urlnya bisa jadi rumit. Saya akan menjelaskan mengapa dalam satu menit.
SomaFm * adalah sumber yang bagus untuk memulai, terutama jika Anda belum memiliki ide tentang apa yang ingin Anda dengarkan dulu. Mereka memiliki berbagai macam pilihan musik eklektik, tidak ada yang menurut saya menyinggung, tidak ada iklan, dan bagian terbaiknya: Mereka secara terbuka membagikan url mereka. Untuk mengambil url, klik gambar stasiun yang Anda minati, dan di bilah navigasi sisi kiri, klik "Tautan Aliran Langsung". Dari sana, temukan bagian MP3, dan gesek url dengan tingkat pemutaran tertinggi (yaitu 128 ketukan 64). Rekatkan url ke editor teks atau notepad untuk saat ini.
Sebagai contoh, untuk mengikis Batu Natal, urlnya adalah: (kita tidak memerlukan deskripsi server)
ice4.somafm.com/xmasrocks-128-mp3
Ini menjadi sedikit lebih sulit di luar dunia SomaFm. Banyak stasiun menggunakan perantara antara pendengar dan stasiun, apakah itu untuk iklan, pemasaran atau mungkin pelacakan - dan saya biasanya mencoba untuk menghindari jenis stasiun. Karena perantara lebih suka Anda mendengarkan stasiun melalui mereka, biasanya cukup sulit untuk menemukan urlnya; dan di situlah Vtuner masuk.
*Saya akan lalai jika saya tidak meminta Anda untuk mempertimbangkan untuk memberikan donasi ke stasiun radio favorit Anda, karena banyak stasiun hanya mengandalkan dukungan pendengar.
Langkah 6: Opsional: Mengikis URL Menggunakan Vtuner
Sekarang tiba bagian yang menyenangkan …. Di halaman beranda Vtuner, lihat tautan daftar stasiun besar mereka di sudut kanan atas. Pilih genre musik yang Anda minati, lalu urutkan dengan kecepatan tercepat, di mana Anda akan melihat daftar stasiun. Pilih stasiun yang menurut Anda mungkin Anda sukai, klik tautan atau tombol putar dan cicipi musiknya. Jika bukan karena Anda, jangan khawatir, ulangi prosesnya sampai kami menemukan yang cocok untuk kesenangan jangka panjang. Dalam tangkapan layar saya, saya memilih versi impuls digital dari musik Country dan di layar berikutnya, saya perhatikan itu diputar di luar Kroasia. Musik Country dari Kroasia terdengar agak menarik.
Saya suka itu. Tapi bagaimana cara mendapatkan urlnya? Cukup lakukan klik kanan pada ruang putih di sebelah kanan gambar stasiun, di bawah nama Stasiun, dan pilih "Lihat Sumber Halaman" dan gulir ke bawah ke sekitar baris 150. Kami sedang mencari baris yang mengatakan "// Coba untuk menangani icecast". Dan urlnya langsung ditemukan di bawahnya!
orion.shoutca.st:8110/stream
Cukup licin!
Ulangi langkah ini sampai kami memiliki setidaknya 5 stasiun di daftar kami.
Opsional Ganda: Untuk ukuran ekstra, jika Anda dapat menemukan 5 genre musik yang Anda minati (berlawanan dengan 5 stasiun), buat daftar stasiun radio untuk setiap genre dan simpan daftar tersebut sebagai file teks. Kami akan kembali ke ini nanti.
Langkah 7: Atur Tombol Kami
Bagian terpenting! Bersihkan besi solder lama atau setidaknya colokkan dan panggang debunya. Saatnya untuk Solder. Saya menggunakan tombol push sesaat 4 cabang, biasanya dibuka. Saya akan membuat serangkaian tombol (foto kiri), dan mengikatnya ke papan kinerja. Sulit untuk mengatakannya di foto, tetapi arah cabang kancing semuanya mengarah ke Utara-Selatan. Di sisi kanan, Anda dapat melihat di mana saya menjalankan rel ground untuk kabel ground saya dan memasang beberapa kabel jumper ujung pria ke sisi berlawanan dari setiap tombol. Daripada memiliki 7 koneksi ground, rel akan memungkinkan kita untuk berbagi satu koneksi ground ke pi untuk semua. Hasil akhirnya adalah papan wafer halus yang akan dipasang di bawah ke bagian atas radio menggunakan beberapa sekrup melalui lubang pilot yang disediakan. Hanya bagian atas kancing yang akan muncul melalui alur yang telah saya potong dari bagian atas. Karena permukaan atas saya hanya setebal 1/4 , saya ingin berhati-hati agar tidak terlalu kencang. Lem mungkin berguna untuk menjaga papan kinerja tetap terpasang ke radio.
Langkah 8: Identifikasi Pin GPIO Kami
Dalam satu-satunya instruksi saya yang lain, saya menyajikan penggunaan baru untuk topi suara Google AIY versi 1 yang lama. Dalam instruksi yang sangat tidak populer (atau sangat populer) ini, saya menyebutkan betapa terkesannya saya dengan desain topi itu sendiri. Saya memiliki beberapa peletakan di sekitar, jadi saya akan membuat prototipe menggunakan topi karena memiliki dac dan amplifier di dalamnya.
Sekarang mari kita kenali enam pin yang akan menampung penekanan tombol kita. Saya akan meminta Anda untuk fokus pada sisi kiri topi Google AIY, di mana tertulis "servos". Ada kolom 6 lubang untuk Pin di mana saya akan memasang dan menyolder ujung kancing pria saya dari langkah kami sebelumnya. Jika Anda bekerja tanpa topi suara google aiy, jangan khawatir, - foto di sebelah kanan akan memandu Anda. Dalam kedua kasus kita akan bekerja dengan gpio (BCM)pin 26, 06, 13, 05, 12, dan 24 dari atas ke bawah (atau 0-5). GPIO #24 akan dicadangkan untuk tombol jeda opsional.
Jangan lupa juga untuk memasang sambungan ground.
Langkah 9: Kode
Saya ragu kodenya akan banyak berubah dari sini, namun untuk kode python versi terbaru, silakan kunjungi github saya. Saya telah melampirkan salinan pada 2019-12-18 yang disebut pytiful3.py.
Ini bukan kode paling efisien yang pernah Anda lihat, dan itu cukup bertele-tele, tetapi menyelesaikan pekerjaan.
Mari kita mulai dengan membuat kotak pasir untuk dimainkan. Dari direktori home, buat direktori di raspberry pi bernama kissir:
mkdir ciuman/
dan salin konten file pytiful3.py ke direktori dengan membuka file sampel di editor teks, dan menggunakan
sudo nano kissir/pytiful3.py
salin / tempel konten file ke skrip python yang baru kami buat. Jangan lupa untuk menyimpan pekerjaan kita dengan menggunakan Ctrl-x, Y dan enter.
Jika Anda ingin tur singkat skrip, kami mengimpor modul python yang akan kami perlukan, dan kemudian kami mendefinisikan tombol kami dan menetapkan pin gpio ke masing-masing dari 7 tombol. Akan ada 5 stasiun radio (jangan ragu untuk mengedit preferensi stasiun Anda), tombol berhenti, dan tombol mati. Loop while true berjalan dan berjalan hingga tombol ditekan, yang dalam banyak kasus akan menghentikan pemutaran mpg123 yang ada dan mulai memutar stasiun yang ditetapkan ke tombol yang ditekan. Tombol pause/halt sebenarnya bukan tombol pause tetapi lebih sebagai tombol pemutus karena kita tidak dapat menjeda radio internet. Radio internet tidak menunggu siapa pun.
Langkah 10: Uji di Kotak Pasir Kami
Sebelum kita menyebarkan radio kita, saat masih dalam sesi ssh kita, navigasikan ke folder kissir tempat skrip kita disimpan. Kita cukup menjalankan skrip dari baris perintah secara manual dengan mengetik:
python3 pytiful3.py
Jika Anda mengintip kodenya terlebih dahulu, Anda mungkin memperhatikan bahwa saya meninggalkan beberapa pernyataan cetak sehingga kami dapat mengetahui apa yang terjadi. Jika semuanya bekerja dengan baik, kami akan memiliki prompt yang berbunyi "Tekan Tombol". Itu memberi tahu kami bahwa skrip kami sedang berjalan dan melewati pemeriksaan kode awal. Upaya awal saya memiliki loop tak terbatas "musik dijeda - tekan tombol untuk melanjutkan", dan saya menemukan bahwa tombol jeda saya terhubung untuk selalu ditutup, alih-alih terbuka secara normal. Semoga Anda lebih beruntung dengan langkah menyolder.
Ctrl-C akan menghentikan skrip jika Anda perlu membatalkan.
Jadi jika Anda melihat "Tekan tombol", tunggu apa lagi? Pilih salah satu dari lima tombol stasiun radio kami.
Kemungkinan Anda akan mendengar suara speaker untuk memulai pemutaran musik, dan saya tidak dapat membantu untuk saat ini. Mpg123 memungkinkan untuk sufiks "--preload 1" setelah alamat stasiun di perintah os.system, namun saya tidak tahu apakah itu membuat perbedaan. Ini harus memungkinkan sedikit buffer.
Sedikit kode lain yang mungkin membuat Anda bertanya-tanya: ada tanda " -f 7000" setelah panggilan mpg123. Ini mengurangi volume ke jarak jauh dari volume maksimal. Volume Penuh akan menjadi 32K. Seperti yang saya pahami, skala volume bukan skala linier, jadi saya tidak bisa mengatakan itu hanya seperlima dari volume maksimal, tetapi masih cukup keras. Saya harus melakukan ini karena kartu suara saya - kartu suara suara Google AIY, terkadang tidak cocok dengan Alsamixer.
Lanjutkan untuk memilih tombol yang Anda pilih, duduk, rileks, dan nikmati kenyamanan mendengarkan Anda untuk saat ini.
Langkah 11: Siapkan Kode Kami untuk Berjalan Secara Otomatis saat Boot
Jadi jika semuanya berjalan dengan baik, dan Anda telah menikmati usaha command prompt sandbox kami, sekarang adalah saat yang tepat untuk mengotomatiskan pemuatan skrip. Pastikan Anda masih berada di direktori kissir, dan letakkan kode skrip di bin pengguna:
sudo cp pytiful3.py /usr/local/bin/
Jadikan itu dapat dieksekusi:
sudo chmod +x /usr/local/bin/pytiful3.py
Tulis skrip shell untuk menjalankannya saat startup:
sudo nano pytiful3.sh
Dan masukkan teks berikut:
#! /bin/sh ### BEGIN INFO INIT # Menyediakan: pytiful3.py # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 ### AKHIR INFO INIT # pastikan level volume tidak keras TODO # Jalankan fungsi tertentu ketika diminta oleh kasus sistem "$1" di awal) echo "Starting pytiful3.py" /usr/local/bin/pytiful3.py &;; stop) echo "Menghentikan pytiful3.py" pkill -f /usr/local/bin/pytiful3.py;; *) echo "Penggunaan: /etc/init.d/pytiful3.sh {start|stop}" exit 1;; esac keluar 0
Pindahkan ke init.d:
sudo mv pytiful3.sh /etc/init.d/
Jadikan itu dapat dieksekusi:
sudo chmod +x /etc/init.d/pytiful3.sh
Daftarkan skrip untuk dijalankan saat startup:
sudo update-rc.d pytiful3.sh default
Langkah 12: Uji Lagi
Sekarang setelah skrip kami dimuat untuk dijalankan saat startup, ingatlah bahwa setiap perubahan yang kami buat harus dibawa ke bin pengguna, dan skrip kissir/pytiful3.py kami yang indah hanyalah yatim piatu sekarang. Tapi sisi baiknya, kami masih memiliki kotak pasir untuk dimainkan. Saya mungkin akan terus bermain dengan skrip, membuat perubahan, dan menyimpannya sebagai versi baru dalam waktu dekat. Ini masih proyek kerja.
Mari kita lakukan reboot, tunggu pi untuk memulai kembali, dan setelah sekitar satu menit, tekan tombol lagi.
Jika volume audio Anda sangat rendah, ingatlah bahwa kami memiliki volume alsamixer sebesar 50%, sehingga kami dapat menaikkannya sesuai dari command prompt.
Sebagai permulaan, satu hal yang diperlukan adalah nilai volume global, daripada harus mengubah level volume 5 waktu yang berbeda.
Hei, bagaimana dengan daftar stasiun radio yang kita buat di langkah #6? Nah, ternyata MPG123 memiliki perintah pemilihan acak. Ini semudah membuat daftar url stasiun, dan alih-alih memanggil satu url stasiun radio, cukup gunakan
"btn1234_choice = random.choice(btn1234)", segera setelah mengidentifikasi daftar stasiun kami, di mana btn1234_choice adalah daftar kami. Jangan lupa untuk menggunakan tanda kurung siku di sekitar daftar stasiun kami yang dipisahkan dengan koma. Panggilan perintah subproses kemudian memainkan pilihan acak kami:
subprocess.call(['mpg123', '-q', btn1234_choice, " --preload 1"])
Langkah 13: Kotakkan, dan Selesai
Jika Anda sudah sampai ke langkah ini, pekerjaan selesai! Selamat - Anda baru saja membuat pemutar radio internet mandiri.
Tergantung pada peralatan yang Anda miliki (speaker, dac dan amplifier), Anda mungkin bertanya-tanya bagaimana cara menyembunyikan beberapa kabel yang tergeletak. Mungkin instruksi lain untuk hari lain, tetapi jika Anda berencana membuat unit perumahan untuk memasukkan beberapa kabel, saya sarankan memberi diri Anda banyak ruang ekstra.
Seperti yang Anda lihat di foto di atas - saya benar-benar membuat dua ciuman, satu menggunakan sisa-sisa lem pada upaya pertama saya (dari humor yang melengkung muncul papan yang melengkung). Unit kedua menggunakan penguat suara daripada speaker konvensional, dan jika Anda mengambil nama perangkat di salah satu tangkapan layar saya, saya menamakannya slimbox.
Saya menemukan proyek ini cukup menyenangkan. Kedua waktu. Tentu saja bukan proyek yang sulit, mungkin sedikit memakan waktu tetapi sangat bermanfaat. Saya harap Anda menikmati mendengarkan Anda juga.
Direkomendasikan:
Talos, Menjaga Anda Tetap Aman Selama Perjalanan: 5 Langkah
Talos, Menjaga Anda Aman Selama Perjalanan: Menjadi korban pelecehan saat bepergian adalah hal yang cukup umum bagi banyak orang, terutama wanita. Apa pun negaranya, naik transportasi umum sering kali sama dengan mengetahui bahwa Anda dapat dilecehkan secara seksual, atau bahkan diikuti saat berjalan pulang. Dalam
Menjaga Bayi Anda Tetap Sejuk Musim Panas Ini - Mengontrol Penggemar Bodoh Dengan Hal-Hal Cerdas!: 6 Langkah (dengan Gambar)
Menjaga Bayi Anda Tetap Sejuk Musim Panas Ini - Mengontrol Penggemar Bodoh Dengan Hal-Hal Cerdas !: Sejak dua minggu yang lalu pada saat menulis ini, saya menjadi ayah dari bayi laki-laki yang luar biasa! Dengan musim yang berubah, hari-hari yang semakin panjang dan suhu yang semakin hangat, saya pikir akan lebih baik untuk memiliki semacam monitor di
Penyimpan Kata Sandi di Aruino Pro Micro atau Mengapa Tetap Sederhana Saat Ada Cara Rumit!: 15 Langkah (dengan Gambar)
Penyimpan Kata Sandi di Aruino Pro Micro atau Mengapa Tetap Sederhana Saat Ada Cara Rumit!: Tampaknya, masalah utama mikrokontroler untuk penggemar elektronik (terutama pemula) adalah mencari tahu di mana menerapkannya :) Saat ini elektronik, terutama yang digital , semakin terlihat seperti ilmu hitam. Hanya wisard 80-Lvl yang
Mod PC Tenang, Saluran Knalpot Belakang: 3 Langkah
Mod PC Tenang, Saluran Knalpot Belakang: Turunkan desibel dan bersihkan kekacauan di bagian belakang menara Anda dengan mod murah dan mudah ini. Anda dapat membeli saluran catu daya dan saluran kipas belakang, tetapi seringkali mereka menggunakan busa tipis dan menghalangi lebih banyak udara daripada ini. Anda juga dapat menggunakan ini untuk menyalurkan
Kuat & Kipas USB Tenang: 6 Langkah
Kuat & Kipas USB yang Tenang: Anda pernah ingin memiliki kipas yang bagus di meja Anda, tetapi Anda tidak punya uang untuk dibelanjakan dalam hal ini dan Anda tidak perlu melakukan apa pun di hari hujan yang membosankan. Aku punya sesuatu untukmu. Temukan PSU lama yang sudah tidak berfungsi, bawa kipas ke dalam dan ikuti instruksi saya