Mundarija:
- Ta'minotlar
- 1 -qadam: Malina qismining tavsifi:
- 2 -qadam: IR masofaviy kodlari
- 3 -qadam: Asosiy dastur
- 4 -qadam: Malinali qism: avtomatik ishga tushirish va yangi fayllarni qo'shish
- 5 -qadam: Arduino Nano orqali quvvatni boshqarish
- 6 -qadam: kabel yotqizish
- 7 -qadam: quti
Video: Raspitone: Jukebox -dan foydalanish oson: 7 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
Salom, mening keyingi loyiham, men foydalanganimdek, unchalik foydali bo'lmagan loyiha:
Bu Raspberry 3 B+ ga asoslangan musiqiy quti
Bilaman, bunday ishni smartfon va Bluetooth karnay yordamida osongina qilish mumkin.
Ammo mening loyiham uchun ikkita qiyin shart bor edi:
Men "vintage" narsa yasashni xohlardim.
Umuman olganda, mening xonim kompyuter yoki bluetooth yoki 21 -asrdan (va hatto 20 -asrdan) boshqa narsalarga mutlaqo umidsiz ekanligini hisobga olsak, men foydalanish uchun juda oddiy narsani qilishim kerak edi.
Shunday qilib, spetsifikatsiyalar quyidagicha edi:
Mashinani ishga tushirish uchun bitta tugma
Musiqani boshqarish uchun sensorli ekran (juda oddiy).
Mashinani to'xtatish uchun ekranda bir marta bosish.
Va yaxshi ovozga ega bo'lish uchun …….
Ta'minotlar
Buning uchun men foydalanardim:
1 malina 3 B+
DVD -o'quvchi OOS tufayli yaroqsiz bo'lgan 1 ta eski uy kinoteatri (eski Samsung 2.1, woofer va men 2 karnayga moslashtirdim)
1 ta HIFIBERRY DIGI+ platasi (Amp quvvat uchun optik chiqishi bilan)
1 dyuymli sig'imli 7 dyuymli ekran (meniki - HDMI usuli bilan malinali "Makeasy" va USB orqali quvvatlanadi, lekin har qanday HDMI sensorli ekrani yaxshi bo'lishi kerak)
1 ta quvvat manbai 5V 5A
1 o'rni qalqoni
Quvvatni yoqish/o'chirish jarayonini boshqarish uchun 1 Arduino nano
1 IR uy kinoteatrini boshqarishga olib keldi (2N2222 NPN tranzistorini boshqaradi)
1 ta IR qabul qilgich (loyihaning bir qismini o'rganadigan IR kodlari uchun men uzoqdan boshqariladigan eski multimediali qattiq diskdan olaman)
3 ta LED
Texnik xizmat ko'rsatish uchun 1 kalit
Arduino -da ishlash uchun 1 kalit (yuklash paytida arduino qayta tiklanadi)
ba'zi JST va Dupont ulagichlari
Va quti uchun
Yog'och va kontrplak (lekin men qutini yasashni chuqur tasvirlamayman). Shuni aytish kerakki, agar quti ichidagi bumerga kelsak, 10 mm kontrplak va 18 mm yog'ochdan yasalgan yog'och majburiydir, agar siz o'ynayotganda Jukebox yashash xonasidan o'tayotganini ko'rishni xohlamasangiz !!!!
1 -qadam: Malina qismining tavsifi:
Raspi har xil narsalarni boshqarishi kerak:
1) uy kinoteatri buyruqlari (IR masofadan boshqarish pulti orqali)
2) musiqa fayllari
3) sensorli ekran
4) Arduino -ning yurak urishi (Wdt -ni boshqaruvchi (taymer it taymeri))
Men 16 G SD kartadagi Raspbian strech tarqatishidan boshladim (biz faqat SD -kartadagi fayllarni o'qiymiz, HDD -ni ishlatish shart emas). Men bu qismga vaqt sarflamayman, chunki veb bu haqda tuto bilan to'la.
Keling, keyingi qismlarda turli qismlarni ko'rib chiqaylik ….
2 -qadam: IR masofaviy kodlari
Uy kinoteatrining rejasini topa olmaganim uchun, men uni uzoqdan buyruqlar yordamida boshqarishga qaror qildim
Men bajarishim kerak bo'lgan birinchi qadam - uy kinoteatrining masofadan boshqarish buyrug'ining kodlarini Raspi -ga o'rgatish edi, shuning uchun men Austin Stanton IR kodlaridan Instructables -da juda yaxshi tuto ishlatardim.
Menda ba'zi farqlar bor edi, ehtimol yangi versiya tufayli, ko'rsatmalari ancha eski, hardware.conf fayli endi yo'q (hech bo'lmaganda men topmadim)
Ko'rinib turibdiki, tuto -da ishlatiladigan tranzistor PNP tranzistoridir, men NPN bo'lgan 2N2222 -dan foydalandim, lekin natija bir xil (kabellardan tashqari !!!!!!!!)
Pin tayinlanishi /boot/config.txt da berilgan:
#autorisation de lirc le 2019-07-08dtoverlay = lirc-rpi, gpio_out_pin = 22, gpio_in_pin = 23
IQ LED Raspi pin22 ga ulanadi.
Bir muhim eslatma: Raspi -ga kodlarni o'rganishda buyruqda ko'rsatilgan kalit so'zlardan foydalanish majburiydir
rekord-ro'yxat nomlari maydoni
Mana, men yuklash qutisi uchun yaratgan fayl:
pi@raspitone:/etc/lirc $ cat lircd.conf
# Iltimos, bu faylni # https://sourceforge.net/p/lirc-remotes/wiki/Check… # da ta'riflanganidek tugatishga va # # ga yuborib boshqalarga taqdim etishga vaqt ajrating.
# Ushbu konfiguratsiya fayli avtomatik ravishda yaratilgan
# yordamida lirc -0.9.4c (standart) 9 -may, may 17:33:37, 2019 # Buyruqlar satri ishlatilgan: -d /dev /lirc0 /root/lircd.conf
# Yadro versiyasi (uname -r): 4.14.98 -v7+ # # Masofadagi ism (konfiguratsiya fayli bo'yicha): jukebox
# Masofaviy qurilmaning markasi, qo'lingizda ushlab turgan narsangiz: # Masofaviy qurilma modeli nr:
# Masofaviy qurilma ma'lumotlari url:
# Masofaviy qurilmada birlashtirilgan tasvirga olish moslamasi bormi e. g., a
# usb dongle?:
# Birlashtirilgan USB qurilmalari uchun: usb sotuvchisi identifikatori, mahsulot identifikatori
# va qurilma satri (dmesg yoki lsusb dan foydalaning):
# Boshqariladigan qurilma turi
# (TV, videomagnitafon, audio, DVD, sun'iy yo'ldosh, kabel, HTPC,…):
# Bu masofadan boshqarish pulti tomonidan boshqariladigan qurilmalar:
masofadan boshlash
Jukebox nomi
bitlar 16
bayroqlar SPACE_ENC | CONST_LENGTH
eps 30
aeps 100
sarlavha 4470 4496
bitta 542 1693
nol 542 581
553 -qadam
oldindan_data_bits 16
oldingi ma'lumotlar 0xC2CA
bo'shliq 107863
toggle_bit_mask 0x0
chastota 38000
kodlarni boshlang
KEY_POWER 0x807F
KEY_AUX 0x8877
KEY_VOLUMEUP 0xCC33
KEY_VOLUMEDOWN 0xDC23
tugatish kodlari
masofadan boshqarish pulti
Ko'rib turganingizdek, menga uy kinoteatrini boshqarish uchun 4 ta buyruq kerak
Quvvat (ON/OFF)
AUX => optik kirish kanaliga o'tish uchun (HC har doim DVD o'quvchida boshlanadi)
Va hajmi +/-
Tegishli buyruqlar LIRC buyruqlari orqali bajariladi:
masalan: "irsend SEND_ONCE" KUK_VOLUMEUP jukebox"
3 -qadam: Asosiy dastur
Asosiy dastur Pythonda yozilgan:
Men Python -da yangi bo'lganim uchun, ko'p yaxshilanishlarni amalga oshirish mumkin deb o'ylayman, lekin u ishlaydi ….
Xususiyatlar:
1) grafik ekranni boshqarish:
Buning uchun men TKINTER bo'lgan, lekin talabalar uchun madaniyatli bo'lgan APPJAR -dan foydalandim (mening ishim), demak, undan foydalanish juda oson, ehtimol imkoniyatlar kam, lekin bu mening maqsadim uchun etarli edi.
2) mp3 fayllarni ijro etish:
Men python uchun mplayer dan foydalanardim.
3) aralashtirish rejimida o'ynash uchun tasodifiy sonlarni yarating:
Men har chorakda bir xil qo'shiqni eshitishni xohlamaganim uchun, men avvalgi x sonlar ro'yxatida yo'qligini tekshirish uchun kichik dastur tuzdim (pleylist uzunligiga qarab x).
Pythondagi randint funktsiyasi men ko'rganimdek "tasodifiy" emas.
4) "yurak urishi" ni Arduino -ga yuboring
5) pleer fayllarini boshqarish:
Mplayer asenkron bo'lgani uchun, fayl ishga tushirilganda, Python tugagandan so'ng bilishning hech qanday usuli yo'q (hech bo'lmaganda men oddiy yo'l topmadim)
Buni hal qilish uchun mplayer buyruqlaridan foydalanib, faylning uzunligini va joriy fayldagi jarayonni ko'rsatdim
4 va 5 uchun men Appjar tomonidan berilgan davriy vazifani yaratish imkoniyatidan foydalandim (appjar - bu voqealar dasturi, bu davriy hodisani yaratish usuli). funktsiya bu:
#******************* vazifachini ishga tushirish ********************** app.registerEvent (taskman)
p.setPollTime (1000)
"Vazifa menejeri" uchun vazifalar dasturi - bu ekranning barcha hodisalarini boshqarmaydigan dastur (defektning oxiri, harakatlanish satrini to'ldirish, Nanoga yurak urishini yuborish …).
Ishga tushgandan so'ng, ekran quyidagicha ko'rinadi:
Bu erda dastur: (Notepad ++ yoki Geany orqali ochilishi mumkin)
4 -qadam: Malinali qism: avtomatik ishga tushirish va yangi fayllarni qo'shish
Agar siz dasturga qarasangiz, men ba'zi bash fayllarini ishlatayotganimni ko'rasiz:
1) Start_jukebox:
Aslida maqsad - uy kinoteatrini yoqish va D. IN kirishiga o'tish (mening uy kinoteatrimdagi optik kirish)
pi@raspitone:/bin $ cat start_jukebox#!/bin/bash
irsend SEND_ONCE yuklash qutisi KEY_POWER
uxlash 7
irsend SEND_ONCE yuklash qutisi KEY_AUX
uxlash 2
2) stop_jukebox:
Uy kinoteatrini o'chirish
pi@raspitone:/bin $ cat stop_jukebox
#!/bin/bash
irsend SEND_ONCE yuklash qutisi KEY_POWER
Bu ikkita bash fayllari Python tomonidan os.system buyrug'i bilan chaqiriladi
Python skriptini ishga tushirish uchun men kichik bash yasadim
pi@raspitone: ~ $ cat dem_jukebox.bash#!/bin/bash
cd /home /pi
python jukebox_gui.py
GUI rejimida avtomatik ishga tushirish uchun men faqat/etc/xdg/lxsession/LXDE-pi da avtomatik ishga tushirish faylini o'zgartirdim.
pi@raspitone:/etc/xdg/lxsession/LXDE-pi $ cat autostart@lxpanel-profili LXDE-pi
@pcmanfm-ish stoli-LXDE-pi profili
@xscreensaver -yo'q
@lxterminal --command = "dem_jukebox.bash"
nuqta-rpi
Yangi mp3 fayllarni qo'shish:
Yangi fayllarni qo'shish uchun kichik Python skriptini yaratishni afzal ko'rdim:
new_song_file.py
Men avval tizim fayllarini tashkil qilishni tushuntiraman:
Barcha fayllar /home /pi ichida
mp3 fayllar/home/pi/Musiqa katalogida mustahkamlangan
Har bir ijrochining tegishli mp3 fayllarini o'z shaxsiy katalogi bor
pi@raspitone: ~/Musiqa/Mayk_oldfild $ ls -jami 760516
-rwxr ----- 1 pi pi 2254923 juin 30 2017 A_New_Beginning.mp3
-rwxr ----- 1 pi pi 2691736 juin 30 2017 kelishi.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 Aravalar.mp3
Hujjatlar katalogida biz o'ynaydigan fayllar ro'yxatini topamiz.
pi@raspitone: ~/Hujjatlar $ mushuklar ro'yxati.txtFranz_Ferdinand/Michael_live.mp3
Frants_Ferdinand/yomon_ va_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/yo'qolgan_siz.mp3
Franz_Ferdinand/this_fire_ (playgroup_remix).mp3
Frants_Ferdinand/Jaklin.mp3
Biz pleylist ma'lumotlarini ham topa olamiz (lekin bu Python skriptida qurilgan)
Kichik Python skripti UNIX formatidagi titllarni formatlagandan so'ng, list.txt da Musiqada saqlangan yangi qo'shiqlarni qo'shib qo'yadi.
Bu erda skript: (Notepad ++ yoki Geany orqali ochilishi mumkin)
5 -qadam: Arduino Nano orqali quvvatni boshqarish
Men boshlashni osonlashtirmoqchi bo'lganim uchun, men buni kichik nano bilan bajarishga qaror qildim:
Printsip:
Ishga tushirish tugmachasini bosganda, barcha qurilmalar quvvatlanadi, nano ishga tushadi (1 yoki 2 soniya) va tugma kontaktlarini chetlab o'tadigan o'rni ishga tushadi va quvvatni boshqaradi.
Keyin Nano Raspberry -dan yurak urishini olish uchun 35 soniya kutadi (ishga tushirish jarayoni tugaganini va jukebox dasturi ishga tushishini bildiradi).
Nano yurak urishini qabul qilganda, u o'z o'rni saqlanadi (it taymerini tomosha qiling)
Agar boshqa yurak urish bo'lmasa (musiqa qutisi dasturi to'xtatilgan degan ma'noni anglatadi) Nano quvvat rölesini bo'shatish uchun 20 soniya kutadi (raspi to'liq to'xtatilganligiga ishonch hosil qilish uchun).
Musiqa qutisi to'liq o'chirilgan
Men texnik rejimni ko'rsatish uchun nanoning kirishini faollashtirish uchun kalit qo'shdim (men ssh et vnc orqali boshqa raspi serverlarimni boshqarish uchun jukeboxdan foydalanaman). Keyin Nano qo'riqchi it jarayonini o'chiradi
Izoh:
Raspi -dan yurak urishi uchun kirishni to'xtatish kerak (lekin Raspi -dan 3.3V Nano tomonidan yuqori darajali deb hisoblanadi)
Buni NE555 bilan qilish mumkin edi, lekin men dangasa va tortmasimda doim nano bor !!!!
Mana qisqa C dasturi (Notepad ++ yordamida ochish mumkin)
6 -qadam: kabel yotqizish
Ekran uchun:
HDMI kabeli va USB kabeli Raspi -da ekranni quvvatlantirish va haydash uchun ishlatiladi.
Old panel uchun:
Yangi fayllarni yuklash yoki zaxiralash uchun Raspi -dan USB kabeli ham ulangan.
Nano -dan USB kabeli ulanib, dasturiy ta'minotga kirishi mumkin (agar kerak bo'lsa o'zgartirishlar uchun).
Men tashqi USB vilkasidan foydalanmasdan texnik xizmat ko'rsatish uchun malinaning simsiz klaviaturasini ham ulayman
Raspberry va Arduino ishlatilganligi sababli, kabel yotqizish juda oddiy.
Hammasi chiziqli matritsa taxtasida joylashgan.
Malinali 2 dan GPIO ishlatiladi:
IR LED uchun pin22
Arduino uchun yurak urishi uchun 27 -pin
Arduino -da
2 -pin Raspi -ning yurak urishi uchun uzilish pimi sifatida ishlatiladi.
3 -dan 5 -gachasi pinlar haydash uchun ishlatiladi (Boshlash, Wdt, Xizmat).
6 -pin, xizmat ko'rsatish tugmachasi uchun.
7 -pin o'rni qalqoniga chiqariladi.
Mana, jirkanch fayl:
7 -qadam: quti
Men nima qilganimni ko'p ta'riflamayman, chunki bu quvvat kuchaytirgichiga va ishlatiladigan karnaylarga bog'liq.
Ma'lumot sifatida uy kinoteatri qutining pastki qismida joylashgan.
Karnay ustidan:
1 woofer
Men ularni qutiga kiritish uchun o'zgartirgan 2 ta o'rta dinamik.
Yuqorida:
Old panelda ekran, svetodiodlar, kalitlar va USB vilkalari joylashgan.
Yog'och:
Karnaylar uchun yon panellar yuqori va pastki qismida 18 mm yog'och taxta ishlatilgan.
Old tomoni 40 mm vintli 10 mm kontrplak.
Kabelni va parvarish qilishni osonlashtirish uchun (agar kerak bo'lsa !!!) men sxemani old panel orqasidagi tortmasiga qo'ydim.
Haddan tashqari qizib ketishining oldini olish uchun orqa panelning pastki qismida katta teshik qilingan va men 5Vli fanatni (8 sm) orqa panelga sxemaning yoniga qo'yganman.
Yuqoridagi rasm shunchaki fikr berish uchun.
Shunday qilib, bu !!!!!!!!!
Meni o'qiganingiz uchun tashakkur
Va keyingi safar yangi sarguzashtlarda ko'rishguncha
Tavsiya:
Oson qadam bilan o'z ishga tushirish buyrug'ini yarating: 4 qadam
Oson qadam bilan o'z ishga tushirish buyrug'ini yarating: men bu erda ko'rsataman, qanday qilib Windows operatsion tizimida o'z ishga tushirish buyrug'ini yaratishingiz mumkin. Aslida, derazalardagi bu xususiyat juda zo'r, bu sizning dastur oynangizni darhol ochish uchun foydalidir. Endi siz har qanday ilovani ochish uchun buyruqni yaratishingiz mumkin
PCF8591 (i2c analog kirish -chiqish kengaytirgichi) Tez oson foydalanish: 9 qadam
PCF8591 (i2c analog kirish -chiqish kengaytirgichi) Tez oson foydalanish: i2c pcf8591 IC ni arduino va esp8266 bilan ishlatish uchun kutubxona. Bu IC (4 gacha) analog kirishni va/yoki 1 analog chiqishni o'lchash, termistor qiymatini o'qish yoki svetodiodni o'chirishi mumkin. Analog qiymatni o'qish va analog qiymatini faqat 2 ta sim bilan yozish mumkin
POMODORO TEXNIKA TAYMERI - VAQTDA BOSHQARISH UCHUN QURILMASLIK QURILMASINDAN Oson foydalanish: 4 qadam
POMODORO TEXNIKASI TAYMERI - QISMOTLIK QURILMALARNI VAQTDA BOSHQARISH UCHUN Oson QO'LLANING: 1. Bu nima? Pomodoro texnikasi - bu ish vaqtini 25 daqiqali bo'laklarga bo'linadigan va 5 minutlik tanaffusdan keyingi vaqtni boshqarish ko'nikmasi. tafsilotlar quyida: https: //francescocirillo.com/pages/pomodoro-techni … Bu taymerdan foydalanish oson
Qayta foydalanish mumkin bo'lgan juda oson IPod tomchiligiga qarshi sumka: 4 qadam
Qayta foydalanish mumkin bo'lgan juda oson IPod tomizmasidan himoyalangan sumka: Men musiqa tinglashni yaxshi ko'raman yoki "Rakugo" yapon an'anaviy kulgili hikoyasini issiq tabda aytib beraman. Men ilgari iPod -ni plastik to'rva ichiga solib, tepasini iPod ho'l bo'lmasligi uchun Sellotape yoki kauchuk tasma bilan mahkamlagandim, lekin bu juda bezovta va tartibsiz
Kompakt yorug'lik qilishning eng oson yo'li !! 3 oddiy qadam !!: 3 qadam
Kompakt yorug'lik qilishning eng oson yo'li !! 3 oddiy qadam !!: Sizga nima kerak - qalay folga 1 ta AA batareyasi (ba'zi AAA batareyalari ishlaydi) 1 mini lampochka (ko'pchilik chiroqlar uchun lampochkalar ishlatiladi; rasmga qarang) Rulka (agar kerak bo'lsa)