Daftar Isi:
- Perlengkapan
- Langkah 1: Deskripsi Bagian Raspberry:
- Langkah 2: Kode Jarak Jauh IR
- Langkah 3: Program Utama
- Langkah 4: Bagian Raspberry: mulai otomatis dan Menambahkan File Baru
- Langkah 5: Manajemen Daya Melalui Arduino Nano
- Langkah 6: Pengkabelan
- Langkah 7: Kotak
Video: Raspitone: Jukebox yang mudah Digunakan: 7 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Halo, proyek saya berikutnya adalah, seperti yang biasa saya lakukan, proyek yang tidak terlalu berguna:
Ini jukebox berdasarkan Raspberry 3 B+
Saya tahu, hal seperti ini dapat dengan mudah dilakukan dengan smartphone dan speaker Bluetooth.
Tetapi untuk proyek saya, saya memiliki dua prasyarat yang sulit:
Saya ingin membuat sesuatu yang "vintage".
Dan secara keseluruhan, mengingat fakta bahwa wanita saya benar-benar putus asa untuk komputer atau bluetooth atau apa pun dari abad ke-21, (dan bahkan ke-20), saya harus melakukan sesuatu yang sangat sederhana untuk digunakan………
Jadi, spesifikasinya adalah sebagai berikut:
Satu tombol tekan untuk memulai mesin
Layar sentuh (sangat sederhana) untuk mengatur musik.
Satu sentuhan pada layar untuk menghentikan mesin.
Dan untuk memiliki suara yang bagus ………
Perlengkapan
Untuk ini saya menggunakan:
1 Raspberry 3 B+
1 bioskop rumah lama yang tidak berguna karena DVD reader OOS (Samsung 2.1 lama dengan woofer dan 2 speaker yang saya modifikasi agar pas dengan kotaknya)
1 papan HIFIBERRY DIGI+ (dengan output optik untuk Power Amp)
1 layar sentuh kapasitif 7 (milik saya Makeasy untuk raspberry dengan input HDMI dan ditenagai melalui USB tetapi layar sentuh HDMI apa pun harus OK)
1 catu daya 5V 5A
1 perisai relai
1 Arduino nano untuk mengelola proses ON/OFF daya
1 IR led untuk menggerakkan home cinema (dipimpin oleh transistor NPN 2N2222)
1 penerima IR (untuk bagian pembelajaran kode IR dari proyek, saya mendapatkan milik saya dari hard disk Multimedia lama dengan perintah jarak jauh)
3 led
1 sakelar untuk mode perawatan
1 saklar untuk bekerja pada arduino (selama upload arduino direset)
beberapa konektor JST dan Dupont
Dan untuk kotaknya
Kayu dan triplek (tapi saya tidak akan menjelaskan secara mendalam pembuatan kotaknya). sekedar untuk mengatakan bahwa, mengenai boomer di dalam kotak, kayu lapis 10 mm dan kayu 18 mm adalah wajib jika Anda tidak ingin melihat Jukebox melintasi ruang tamu sambil bermain !!!!
Langkah 1: Deskripsi Bagian Raspberry:
Raspi harus mengelola berbagai hal:
1) perintah ke bioskop rumah (melalui remote IR)
2) file musik
3) layar sentuh
4) Detak jantung ke Arduino (yang mengelola Wdt (pengatur waktu anjing))
Saya mulai dari distribusi strech Raspbian pada kartu SD 16 G (Karena kami hanya akan membaca file dari kartu SD, penggunaan HDD tidak diperlukan). Saya tidak akan menghabiskan waktu di bagian ini karena web penuh dengan tuto tentang itu..
Mari kita lihat bagian yang berbeda di langkah selanjutnya….
Langkah 2: Kode Jarak Jauh IR
Karena saya tidak dapat menemukan rencana sirkuit bioskop rumah, saya memutuskan untuk mengendarainya melalui perintah jarak jauh
Langkah pertama yang harus saya selesaikan adalah mempelajari Raspi kode perintah jarak jauh Home cinema. Untuk itu saya menggunakan tuto yang sangat bagus dalam Instructables dari Austin Stanton kode IR
Saya memiliki beberapa perbedaan, mungkin karena versi baru karena instruksinya agak lama, file hardware.conf tidak ada lagi (setidaknya saya tidak menemukannya)
Sepertinya transistor yang digunakan pada tuto adalah transistor PNP, untuk bagian saya menggunakan 2N2222 yang NPN tapi hasilnya sama. (kecuali kabel !!!!!!!!)
Penetapan pin diberikan di /boot/config.txt:
#autorisation de lirc file 2019-07-08dtoverlay=lirc-rpi, gpio_out_pin=22, gpio_in_pin=23
LED IR akan terhubung ke pin22 dari Raspi.
Satu catatan penting: ketika mempelajari kode ke Raspi, wajib menggunakan kata kunci yang tercantum dalam perintah
irrecord --list-namespace
Ini file yang saya buat untuk jukebox saya:
pi@raspitone:/etc/lirc $ cat lircd.conf
# Harap luangkan waktu untuk menyelesaikan file ini seperti yang dijelaskan dalam # https://sourceforge.net/p/lirc-remotes/wiki/Check… # dan sediakan untuk orang lain dengan mengirimkannya ke # #
# File konfigurasi ini dibuat secara otomatis
# menggunakan lirc-0.9.4c(default) pada Kamis 9 Mei 17:33:37 2019 # Baris perintah yang digunakan: -d /dev/lirc0 /root/lircd.conf
# Versi kernel (uname -r): 4.14.98-v7+ # # Nama jarak jauh (pada file konfigurasi): jukebox
# Merek perangkat jarak jauh, benda yang Anda pegang di tangan Anda: # Model perangkat jarak jauh nr:
# Url info perangkat jarak jauh:
# Apakah perangkat jarak jauh memiliki perangkat penangkap yang dibundel e. g., a
# dongle usb?:
# Untuk perangkat USB yang dibundel: id vendor usb, id produk
# dan string perangkat (gunakan dmesg atau lsusb):
# Jenis perangkat yang dikendalikan
# (TV, VCR, Audio, DVD, Satelit, Kabel, HTPC, …):
# Perangkat yang dikendalikan oleh remote ini:
mulai jarak jauh
nama jukebox
bit 16
bendera SPACE_ENC|CONST_LENGTH
eps 30
aep 100
tajuk 4470 4496
satu 542 1693
nol 542 581
ptrail 553
pra_data_bit 16
pra_data 0xC2CA
celah 107863
toggle_bit_mask 0x0
frekuensi 38000
mulai kode
KEY_POWER 0x807F
KEY_AUX 0x8877
KEY_VOLUMEUP 0xCC33
KEY_VOLUMEDOWN 0xDC23
kode akhir
akhiri jarak jauh
Seperti yang Anda lihat, saya hanya perlu 4 perintah untuk menjalankan Home Cinema
Daya (ON/OFF)
AUX => untuk beralih ke saluran input optik (karena HC selalu dimulai pada pembaca DVD)
Dan Volume +/-
Perintah terkait dijalankan melalui perintah LIRC:
misalnya: "irsend SEND_ONCE jukebox KEY_VOLUMEUP"
Langkah 3: Program Utama
Program utama ditulis dengan Python:
Karena saya baru di Python, saya kira ada banyak perbaikan yang bisa dilakukan, tetapi itu berjalan….
Spesifikasi:
1) mengelola layar grafis:
Untuk ini, saya menggunakan APPJAR yang merupakan TKINTER tetapi beradab untuk siswa (kasus saya), ini berarti lebih mudah digunakan, mungkin dengan kemungkinan yang lebih sedikit, tetapi itu sudah cukup untuk tujuan saya.
2) memutar file mp3:
Saya menggunakan mplayer untuk python.
3) menghasilkan angka acak untuk bermain dalam mode acak:
Karena saya tidak ingin mendengar lagu yang sama setiap kuartal, saya membuat program kecil untuk memeriksa apakah nomor tersebut tidak ada dalam x daftar nomor sebelumnya (x tergantung pada panjang daftar putar).
Fungsi randint dalam python tidak begitu "acak" sejauh yang saya lihat.
4) kirim "detak jantung" ke Arduino
5) mengelola pemutar file:
Karena Mplayer tidak sinkron, ketika file dimulai, tidak ada cara untuk mengetahui Python ketika sudah selesai (setidaknya saya tidak menemukan cara sederhana)
Untuk mengatasinya saya menggunakan perintah mplayer yang memberikan panjang file dan kemajuan dalam file saat ini
Untuk 4 dan 5 saya menggunakan kemungkinan yang diberikan oleh Appjar untuk menghasilkan tugas berkala (karena appjar adalah program acara, ini adalah cara untuk membuat acara berkala). fungsinya adalah:
#******************* mulai taskman **********************app.registerEvent(taskman)
p.setPollTime(1000)
Taskman untuk "task manager" yang merupakan def dalam program yang mengelola semua yang bukan acara layar (akhir file yang diputar, mengisi bilah kemajuan, mengirim detak jantung ke Nano, ….)
Setelah mulai layar terlihat seperti ini:
Ini programnya:(bisa dibuka lewat Notepad++ atau Geany)
Langkah 4: Bagian Raspberry: mulai otomatis dan Menambahkan File Baru
Jika Anda melihat programnya, Anda dapat melihat bahwa saya menggunakan beberapa file bash:
1) Start_jukebox:
Sebenarnya tujuannya adalah untuk menyalakan bioskop Rumah dan beralih ke input D. IN (input optik di bioskop Rumah saya)
pi@raspitone:/bin $ cat start_jukebox#!/bin/bash
irsend SEND_ONCE jukebox KEY_POWER
tidur 7
irsend SEND_ONCE jukebox KEY_AUX
tidur 2
2) stop_jukebox:
Untuk mematikan bioskop Rumah
pi@raspitone:/bin $ cat stop_jukebox
#!/bin/bash
irsend SEND_ONCE jukebox KEY_POWER
Kedua file bash ini dipanggil oleh Python dengan perintah os.system
Untuk memulai skrip Python saya membuat bash kecil
pi@raspitone:~ $ cat dem_jukebox.bash#!/bin/bash
cd /home/pi
python jukebox_gui.py
Untuk memulai otomatis dalam mode GUI, saya baru saja memodifikasi file autostart di /etc/xdg/lxsession/LXDE-pi
pi@raspitone:/etc/xdg/lxsession/LXDE-pi $ cat autostart@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -tidak ada percikan
@lxterminal --command="dem_jukebox.bash"
titik-rpi
Menambahkan file mp3 baru:
Untuk menambahkan file baru, saya lebih suka membuat skrip Python kecil khusus:
file_lagu_baru.py
Pertama-tama saya akan menjelaskan organisasi file sistem:
Semua file ada di /home/pi
file mp3 disimpan di direktori /home/pi/Music
Setiap artis memiliki sub direktori sendiri yang menampung file mp3 terkait
pi@raspitone:~/Musik/Mike_oldfield $ ls -ltotal 760516
-rwxr----- 1 pi pi 2254923 juin 30 2017 A_New_Beginning.mp3
-rwxr----- 1 pi pi 2691736 juin 30 2017 Arrival.mp3
-rwxr----- 1 pi pi 8383244 juin 30 2017 Ascension.mp3
-rwxr----- 1 pi pi 5410816 juin 30 2017 Blue_Night.mp3
-rwxr----- 1 pi pi 13125199 juin 30 2017 Castaway_(Instrumental).mp3
-rwxr----- 1 pi pi 12903583 juin 30 2017 Castaway.mp3
-rwxr----- 1 pi pi 2969869 juin 30 2017 Celt.mp3
-rwxr----- 1 pi pi 9047745 juin 30 2017 Chariots_(Instrumental).mp3
-rwxr----- 1 pi pi 9403263 juin 30 2017 Chariots.mp3
Di direktori Documents kita dapat menemukan daftar file bawaan untuk dimainkan.
pi@raspitone:~/Documents $ cat list.txtFranz_Ferdinand/Michael_live.mp3
Franz_Ferdinand/evil_and_a_heathen.mp3
Franz_Ferdinand/Walk_Away_live.mp3
Franz_Ferdinand/love_and_destroy.mp3
Franz_Ferdinand/his_fffire.mp3
Franz_Ferdinand/eleanor_put_your_boots_on.mp3
Franz_Ferdinand/missing_you.mp3
Franz_Ferdinand/this_fire_(playgroup_remix).mp3
Franz_Ferdinand/Jacqueline.mp3
Kami juga dapat menemukan data daftar putar (tetapi ini dibangun oleh skrip Python)
Skrip Python kecil menambahkan lagu baru, disimpan di Musik, di list.txt setelah memformat judul dalam format UNIX
Ini scriptnya:(bisa dibuka lewat Notepad++ atau Geany)
Langkah 5: Manajemen Daya Melalui Arduino Nano
Karena saya ingin memulai sesuatu yang mudah, saya memutuskan untuk membuatnya dengan nano kecil:
Prinsip:
Saat menekan tombol mulai, semua perangkat dihidupkan, nano mulai (1 atau 2 detik) dan mengambil alih manajemen daya dengan memicu relai yang mematikan kontak tombol tekan.
Kemudian Nano menunggu selama 35 detik untuk menerima detak jantung dari Raspberry (berarti proses start selesai dan program jukebox berjalan).
Selama nano menerima detak jantung, relai tetap menyala (Watch dog timer)
Jika tidak ada detak jantung lagi (berarti program jukebox dihentikan) Nano menunggu selama 20 detik (untuk memastikan raspi benar-benar berhenti) untuk melepaskan relai daya.
Jukebox kemudian dimatikan total
Saya menambahkan sakelar untuk mengaktifkan input nano untuk menunjukkan mode pemeliharaan (saya menggunakan jukebox untuk mengelola server raspi saya yang lain melalui ssh et vnc). Nano kemudian menonaktifkan proses anjing penjaga
Komentar:
input untuk detak jantung dari Raspi perlu ditarik ke bawah (tetapi 3.3V dari Raspi dianggap sebagai level tinggi oleh Nano)
Itu bisa dilakukan dengan NE555 tetapi saya malas dan selalu memiliki beberapa nano di laci saya !!!!
Berikut adalah program C singkat (bisa dibuka dengan Notepad++)
Langkah 6: Pengkabelan
Untuk Layar:
Kabel HDMI dan kabel USB digunakan pada Raspi untuk memberi daya dan menggerakkan layar.
Untuk panel depan:
Kabel USB juga terhubung dari Raspi untuk dapat mengunggah file baru atau membuat cadangan.
Kabel USB terhubung dari Nano untuk dapat mengakses soft (untuk modifikasi jika perlu)
Saya pasang juga dongle keyboard nirkabel pada raspberry untuk dapat melakukan perawatan tanpa menggunakan colokan USB eksternal
Karena Raspberry dan Arduino digunakan, pengkabelan agak sederhana.
Semua terletak di papan matriks strip.
Dari raspberry 2 GPIO digunakan:
Pin22 untuk IR LED
Pin 27 untuk detak jantung ke Arduino
di Arduino
Pin 2 digunakan sebagai pin interupsi untuk detak jantung dari Raspi.
Pin 3 sampai 5 digunakan untuk menggerakkan led (Start, Wdt, Maintenance).
Pin 6 adalah untuk sakelar perawatan.
Pin 7 adalah output ke perisai relay.
Ini file fritzingnya:
Langkah 7: Kotak
Saya tidak akan menjelaskan banyak apa yang saya lakukan karena itu tergantung pada power amp dan pada speaker yang digunakan.
Sekedar informasi home cinema terletak di bagian bawah box.
Tepat di atas speaker:
1 woofer
2 speaker sedang, yang saya modifikasi untuk dimasukkan ke dalam kotak.
Di atas:
Panel depan dengan layar, LED, sakelar, dan colokan USB.
Kayu:
Untuk speaker, panel samping atas dan bawah saya menggunakan papan kayu 18 mm.
Sisi depan adalah kayu lapis 10 mm dengan sekrup 40 mm.
Untuk memudahkan pemasangan kabel dan perawatan (jika diperlukan!!!) Saya meletakkan sirkuit di laci di belakang panel depan
Untuk menghindari panas berlebih, lubang besar dibuat di bagian bawah panel belakang dan saya memasang kipas 5V (8 cm) di panel belakang tepat di samping sirkuit.
Gambar di atas hanya untuk memberikan gambaran.
Jadi, itu dia!!!!!!!!!
Terima kasih telah membaca saya
Dan sampai jumpa lagi di petualangan baru
Direkomendasikan:
PCF8591 (i2c Analog I/O Expander) Cepat Mudah Digunakan: 9 Langkah
PCF8591 (i2c Analog I/O Expander) Cepat Mudah Penggunaan: Pustaka untuk menggunakan IC i2c pcf8591 dengan arduino dan esp8266. IC ini dapat mengontrol (hingga 4) input analog dan/atau 1 output analog seperti mengukur tegangan, membaca nilai termistor atau memudarkan led. Dapat membaca nilai analog dan menulis nilai analog hanya dengan 2 kabel (sempurna
TIMER TEKNIK POMODORO - PERANGKAT KERAS YANG MUDAH DIGUNAKAN UNTUK MANAJEMEN WAKTU: 4 Langkah
TIMER TEKNIK POMODORO - PERANGKAT KERAS YANG MUDAH DIGUNAKAN UNTUK MANAJEMEN WAKTU: 1. Apa ini ?Teknik pomodoro adalah keterampilan manajemen waktu yang membagi waktu kerja menjadi blok 25 menit dan mengikuti waktu istirahat 5 menit. detailnya seperti di bawah ini: https://francescocirillo.com/pages/pomodoro-techni…Timer ini mudah digunakan ha
PiTextReader - Pembaca Dokumen yang Mudah Digunakan untuk Gangguan Penglihatan: 8 Langkah (dengan Gambar)
PiTextReader - Pembaca Dokumen yang Mudah Digunakan untuk Gangguan Penglihatan: Ringkasan Pembaruan: Demo video pendek: https://youtu.be/n8-qULZp0GoPiTextReader memungkinkan seseorang dengan gangguan penglihatan untuk "membaca" teks dari amplop, surat, dan item lainnya. Ini memotret gambar item, mengubahnya menjadi teks biasa menggunakan OCR (Optical Char
DIY MusiLED, LED Musik yang Disinkronkan Dengan Aplikasi Windows & Linux Sekali Klik (32-bit & 64-bit). Mudah Dibuat Ulang, Mudah Digunakan, Mudah Dipindahkan.: 3 Langkah
DIY MusiLED, LED Musik yang Disinkronkan Dengan Aplikasi Windows & Linux Sekali Klik (32-bit & 64-bit). Mudah Dibuat Ulang, Mudah Digunakan, Mudah Dipindahkan.: Proyek ini akan membantu Anda menghubungkan 18 LED (6 Merah + 6 Biru + 6 Kuning) ke Papan Arduino Anda dan menganalisis sinyal waktu nyata Kartu Suara komputer Anda dan menyampaikannya ke LED untuk menyalakannya sesuai dengan efek ketukan (Snare, High Hat, Kick)
Tas IPod Anti-Tetes yang Dapat Digunakan Kembali Sangat Mudah: 4 Langkah
Tas IPod Drip-proof yang Dapat Digunakan Kembali Sangat Mudah: Saya suka mendengarkan musik atau cerita komik tradisional Jepang "Rakugo" di tab panas. Saya biasa memasukkan iPod saya ke dalam kantong plastik dan mengamankan bagian atasnya dengan Sellotape atau karet gelang agar iPod tidak basah, tetapi agak merepotkan dan berantakan untuk