Satura rādītājs:
- Piegādes
- 1. darbība: aveņu daļas apraksts:
- 2. darbība: IR tālvadības kodi
- 3. darbība: galvenā programma
- 4. darbība: aveņu daļa: automātiskā palaišana un jaunu failu pievienošana
- 5. solis: Enerģijas pārvaldība, izmantojot Arduino Nano
- 6. darbība: kabeļu savienošana
- 7. solis: kaste
Video: Raspitone: viegli lietojams Jukebox: 7 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
Sveiki, mans nākamais projekts, kā es to darīju, ir ne visai noderīgs projekts:
Šī ir mūzikas ierīce, kuras pamatā ir Raspberry 3 B+
Es zinu, kaut ko tādu var viegli izdarīt ar viedtālruni un Bluetooth skaļruni.
Bet manam projektam bija divi stingri priekšnoteikumi:
Es gribēju uztaisīt kaut ko "vintage".
Un kopumā, ņemot vērā faktu, ka mana kundze ir galīgi bezcerīga attiecībā uz datoru vai Bluetooth, vai kaut ko citu no 21. gadsimta (un pat 20.), man bija jādara kaut kas ļoti vienkāršs lietošanā …….
Tātad specifikācijas bija šādas:
Viena spiedpoga mašīnas iedarbināšanai
Skārienekrāns (ļoti vienkāršs), lai pārvaldītu mūziku.
Viens pieskāriens ekrānam, lai apturētu iekārtu.
Un lai skaņa būtu laba …….
Piegādes
Šim nolūkam es izmantoju:
1 aveņu 3 B+
1 vecs mājas kinozāle, kas bija bezjēdzīga DVD lasītāja OOS dēļ (vecs Samsung 2.1 ar zemfrekvences skaļruni un 2 skaļruņiem, kurus es pārveidoju, lai tie atbilstu kastē)
1 HIFIBERRY DIGI+ plate (ar jaudas pastiprinātāja optisko izeju)
1 ietilpīgs 7 collu skārienekrāns (manējais ir Makeasy avenēm ar HDMI ieeju un tiek darbināts, izmantojot USB, bet jebkuram HDMI skārienekrānam jābūt kārtībā)
1 barošanas bloks 5V 5A
1 releja vairogs
1 Arduino nano, lai pārvaldītu ieslēgšanas/izslēgšanas procesu
1 IR vadīja mājas kinozāli (vadīja 2N2222 NPN tranzistors)
1 IR uztvērējs (projekta IR daļu apgūšanas daļai es saņemu savu no vecā multivides cietā diska ar tālvadības komandu)
3 gaismas diodes
1 slēdzis apkopes režīmam
1 slēdzis darbam ar arinoino (augšupielādes laikā arduino tiek atiestatīts)
daži JST un Dupont savienotāji
Un par kastīti
Koks un saplāksnis (bet es dziļi neaprakstīšu kastes izgatavošanu). tikai jāsaka, ka attiecībā uz boomeru kastes iekšpusē 10 mm saplāksnis un 18 mm koks ir obligāti, ja nevēlaties redzēt, ka Jukebox šķērso dzīvojamo istabu spēles laikā !!!!
1. darbība: aveņu daļas apraksts:
Raspi ir jāpārvalda dažādas lietas:
1) mājas kinozāles komandas (izmantojot IR tālvadības pulti)
2) mūzikas failus
3) skārienekrāns
4) Arduino sirdspuksti (kas pārvalda Wdt (pulksteņa taimeris))
Es sāku no Raspbian strech izplatīšanas 16 G SD kartē (Tā kā mēs lasīsim tikai failus no SD kartes, HDD izmantošana nav nepieciešama). Es netērēšu laiku šai daļai, jo tīmeklis ir pilns ar apmācību par to.
Apskatīsim dažādās daļas nākamajos soļos….
2. darbība: IR tālvadības kodi
Tā kā es nevarēju atrast mājas kinozāles shēmu, es nolēmu to vadīt, izmantojot tālvadības komandas
Pirmais solis, kas man bija jāpabeidz, bija iemācīties Raspi mājas kinozāles tālvadības komandas kodus. Tāpēc es izmantoju ļoti labu pamācību Instructables no Austin Stanton IR kodiem
Man bija dažas atšķirības, iespējams, jaunās versijas dēļ, jo instrukcijas ir diezgan vecas, fails hardware.conf vairs nepastāv (vismaz es to neatradu)
Šķiet arī, ka apmācībā izmantotais tranzistors ir PNP tranzistors, no savas puses es izmantoju 2N2222, kas ir NPN, bet rezultāts ir tāds pats. (Izņemot kabeļus !!!!!!!!)
Tapas piešķiršana ir dota failā /boot/config.txt:
#autorisation de lirc le 2019-07-08dtoverlay = lirc-rpi, gpio_out_pin = 22, gpio_in_pin = 23
IR LED būs tik savienots ar Raspi 22. tapu.
Viena svarīga piezīme: mācoties Raspi kodus, obligāti jāizmanto komandā uzskaitītie atslēgvārdi
irrecord-list-namespace
Šeit ir fails, kuru izveidoju savai mūzikas blokam:
pi@raspitone:/etc/lirc $ cat lircd.conf
# Lūdzu, veltiet laiku, lai pabeigtu šo failu, kā aprakstīts vietnē https://sourceforge.net/p/lirc-remotes/wiki/Check… #, un dariet to pieejamu citiem, nosūtot to uz numuru # #
# Šis konfigurācijas fails tika automātiski ģenerēts
# izmantojot lirc -0.9.4c (noklusējums), ceturtdien, 9. maijā, 17:33:37 2019 # Izmantotā komandrinda: -d /dev /lirc0 /root/lircd.conf
# Kodola versija (uname -r): 4.14.98 -v7+ # # Attālais nosaukums (no konfigurācijas faila): jukebox
# Attālās ierīces zīmols, lieta, ko turat rokā: # Attālās ierīces modeļa nr.:
# Attālās ierīces informācijas URL:
# Vai attālajai ierīcei ir komplektā iekļauta uztveršanas ierīce e. piem., a
# usb dongle?:
# Pievienotajām USB ierīcēm: USB pārdevēja ID, produkta ID
# un ierīces virkne (izmantojiet dmesg vai lsusb):
# Vadāmās ierīces veids
# (TV, videomagnetofons, audio, DVD, satelīts, kabelis, HTPC,…):
# Ierīce (-es), ko kontrolē šī tālvadības pults:
sākt tālvadību
nosaukums mūzikas automāts
biti 16
karogi SPACE_ENC | CONST_LENGTH
eps 30
aeps 100
galvene 4470 4496
viens 542 1693
nulle 542 581
553
16
pre_data 0xC2CA
sprauga 107863
toggle_bit_mask 0x0
frekvence 38000
sākt kodus
KEY_POWER 0x807F
KEY_AUX 0x8877
KEY_VOLUMEUP 0xCC33
KEY_VOLUMEDOWN 0xDC23
beigu kodi
beigu tālvadības pults
Kā redzat, man vajag tikai 4 komandas, lai vadītu mājas kinozāli
Barošana (ieslēgta/izslēgta)
AUX => pārslēgties uz optisko ieejas kanālu (jo HC vienmēr sākas ar DVD lasītāju)
Un skaļums +/-
Saistītās komandas tiek izpildītas, izmantojot LIRC komandas:
piemēram: "irsend SEND_ONCE mūzikas automāts KEY_VOLUMEUP"
3. darbība: galvenā programma
Galvenā programma ir rakstīta Python:
Tā kā esmu jauns Python, es domāju, ka ir daudz uzlabojumu, ko var izdarīt, bet tas darbojas …
Specifikācijas:
1) pārvaldīt grafisko ekrānu:
Šim nolūkam es izmantoju APPJAR, kas ir TKINTER, bet civilizēts studentam (mans gadījums), tas nozīmē, ka to ir daudz vieglāk izmantot, iespējams, ar mazākām iespējām, bet manam mērķim tas bija pietiekami.
2) atskaņot mp3 failus:
Python izmantoju mplayer.
3) ģenerēt nejaušus skaitļus, lai spēlētu sajaukšanas režīmā:
Tā kā es negribēju katru ceturksni dzirdēt vienu un to pašu dziesmu, es izveidoju nelielu programmu, lai pārbaudītu, vai numurs nav x iepriekšējo ciparu sarakstā (x atkarībā no atskaņošanas saraksta garuma).
Randint funkcija python nav tik "nejauša", cik es redzēju.
4) nosūtiet "sirdspukstus" Arduino
5) pārvaldīt failu atskaņotāju:
Tā kā Mplayer ir asinhrona, tad, kad fails tiek palaists, Python nevar zināt, kad tas ir pabeigts (vismaz es neatradu vienkāršu veidu)
Lai to atrisinātu, es izmantoju mplayer komandas, norādot faila garumu un pašreizējā faila progresu
Gan 4, gan 5 es izmantoju Appjar doto iespēju, lai ģenerētu periodisku uzdevumu (tā kā appjar ir notikumu programma, tas ir veids, kā izveidot periodisku notikumu). funkcija ir:
#******************* sākt uzdevumu izpildītāju ********************** app.registerEvent (uzdevumu izpildītājs)
p.setPollTime (1000)
Taskman par "uzdevumu pārvaldnieku", kas ir def programmā, kas pārvalda visus notikumus, kas nav ekrāna notikumi (atskaņotā faila beigas, progresa joslas aizpildīšana, sirdsdarbības nosūtīšana Nano, …).
Pēc palaišanas ekrāns izskatās šādi:
Šeit ir programma: (var atvērt, izmantojot Notepad ++ vai Geany)
4. darbība: aveņu daļa: automātiskā palaišana un jaunu failu pievienošana
Ja paskatās uz programmu, jūs varat redzēt, ka es izmantoju dažus bash failus:
1) Start_jukebox:
Faktiski mērķis ir ieslēgt mājas kinozāli un pāriet uz D. IN ieeju (optiskā ieeja manā mājas kinozālē)
pi@raspitone:/bin $ cat start_jukebox#!/bin/bash
irsend SEND_ONCE mūzikas automāts KEY_POWER
gulēt 7
irsend SEND_ONCE mūzikas automāts KEY_AUX
gulēt 2
2) stop_jukebox:
Lai izslēgtu mājas kinozāli
pi@raspitone:/bin $ cat stop_jukebox
#!/bin/bash
irsend SEND_ONCE mūzikas automāts KEY_POWER
Šos divus bash failus Python izsauc ar komandu os.system
Lai sāktu Python skriptu, es izdarīju nelielu bash
pi@raspitone: ~ $ cat dem_jukebox.bash#!/bin/bash
cd /mājas /pi
python jukebox_gui.py
Lai automātiski startētu GUI režīmā, es tikko mainīju automātiskās palaišanas failu mapē/etc/xdg/lxsession/LXDE-pi
pi@raspitone:/etc/xdg/lxsession/LXDE-pi $ cat automātiskā palaišana@lxpanel-profils LXDE-pi
@pcmanfm --desktop --profils LXDE-pi
@xscreensaver -no -splash
@lxterminal --command = "dem_jukebox.bash"
punkts-rpi
Jaunu mp3 failu pievienošana:
Lai pievienotu jaunus failus, es gribēju izveidot nelielu īpašu Python skriptu:
new_song_file.py
Vispirms es izskaidrošu sistēmas failu organizāciju:
Visi faili atrodas mapē /home /pi
mp3 faili tiek meklēti mapē/home/pi/Music
Katram māksliniekam ir savs apakšdirektorijs, kurā atrodas saistītie mp3 faili
pi@raspitone: ~/Mūzika/Mike_oldfield $ ls -kopā 760516
-rwxr ----- 1 pi pi 2254923 jūlijs 30 2017 A_New_Beginning.mp3
-rwxr ----- 1 pi pi 2691736 jūlijs 30 2017 Ierašanās.mp3
-rwxr ----- 1 pi pi 8383244 jūlijs 30 2017 Debesbraukšana.mp3
-rwxr ----- 1 pi pi 5410816 jūlijs 30 2017 Blue_Night.mp3
-rwxr ----- 1 pi pi 13125199 2017. gada 30. marts (Instrumental).mp3
-rwxr ----- 1 pi pi 12903583 jūlijs 30 2017 Castaway.mp3
-rwxr ----- 1 pi pi 2969869 jūlijs 30 2017 Celt.mp3
-rwxr ----- 1 pi pi 9047745 2017. gada 30. novembris. (Instrumental).mp3
-rwxr ----- 1 pi pi 9403263 juin 30 2017 Chariots.mp3
Katalogā Dokumenti mēs varam atrast izveidoto atskaņojamo failu sarakstu.
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
Francs_Ferdinands/Žaklīna.mp3
Mēs varam arī atrast atskaņošanas sarakstu datus (bet to veido Python skripts)
Mazais Python skripts pievieno jaunas dziesmas, kas saglabātas mūzikā, sarakstā.txt pēc tam, kad ir formatēti tituli UNIX formātā
Šeit ir skripts: (var atvērt, izmantojot Notepad ++ vai Geany)
5. solis: Enerģijas pārvaldība, izmantojot Arduino Nano
Tā kā es gribēju kaut ko viegli sākt, es nolēmu to izdarīt ar nelielu nano:
Princips:
Nospiežot starta pogu, visas ierīces tiek darbinātas, nano iedarbojas (1 vai 2 sekundes) un pārņem jaudas pārvaldību, iedarbinot releju, kas maina spiedpogas kontaktus.
Pēc tam Nano gaida 35 sekundes, lai saņemtu sirdsdarbību no aveņu (tas nozīmē, ka sākuma process ir pabeigts un jukebox programma darbojas).
Kamēr nano saņem sirdsdarbību, relejs tiek ieslēgts (pulksteņa taimeris)
Ja sirdsdarbība vairs nenotiek (tas nozīmē, ka mūzikas automāta programma ir apturēta), Nano gaida 20 sekundes (lai pārliecinātos, ka raspi ir pilnībā apturēts), lai atbrīvotu strāvas releju.
Pēc tam mūzikas automāts tiek pilnībā izslēgts
Es pievienoju slēdzi, lai aktivizētu nano ievadi, lai norādītu apkopes režīmu (es izmantoju jukebox, lai pārvaldītu citus savus raspi serverus, izmantojot ssh et vnc). Pēc tam Nano deaktivizē sargsuņa procesu
Piezīme:
sirdsdarbības ievadi no Raspi nepieciešams pavilkt uz leju (bet 3,3 V no Raspi Nano uzskata par augstu līmeni)
To varētu izdarīt ar NE555, bet es esmu slinks un manā atvilktnē vienmēr ir daži nano !!!!
Šeit ir īsa C programma (var atvērt ar Notepad ++)
6. darbība: kabeļu savienošana
Ekrānam:
Ekrāna barošanai un vadīšanai Raspi tiek izmantots HDMI kabelis un USB kabelis.
Priekšējam panelim:
No Raspi ir pievienots arī USB kabelis, lai varētu augšupielādēt jaunus failus vai izveidot dublējumus.
No Nano ir pievienots USB kabelis, lai varētu piekļūt mīkstajam (nepieciešamības gadījumā modifikācijām)
Es pievienoju arī aveņu bezvadu tastatūras dongli, lai varētu veikt apkopi, neizmantojot ārējo USB spraudni
Tā kā tiek izmantotas avenes un Arduino, kabeļu savienošana ir diezgan vienkārša.
Viss atrodas uz sloksnes matricas tāfeles.
No aveņu 2 GPIO tiek izmantoti:
Pin22 IR LED
Pin 27 sirdsdarbībai līdz Arduino
uz Arduino
Piespraude 2 tiek izmantota kā pārtraukšanas tapa sirdsdarbībai no Raspi.
Tapas no 3 līdz 5 tiek izmantotas, lai vadītu gaismas diodes (Start, Wdt, Maintenance).
6. tapa ir apkopes slēdzim.
7. tapa tiek izvadīta uz releja vairogu.
Šeit ir fritzes fails:
7. solis: kaste
Es daudz neaprakstīšu, ko es darīju, jo tas ir atkarīgs no jaudas pastiprinātāja un izmantotajiem skaļruņiem.
Kā informācija mājas kinozāle atrodas kastes apakšā.
Nedaudz virs skaļruņiem:
1 skaļrunis
2 vidēji skaļruņi, kurus es pārveidoju, lai tos ievietotu kastē.
Virspusē:
Priekšējais panelis ar ekrānu, gaismas diodēm, slēdžiem un USB spraudņiem.
Koks:
Skaļruņiem sānu paneļi augšpusē un apakšā izmantoju 18 mm koka dēli.
Priekšējā puse ir 10 mm saplāksnis ar 40 mm skrūvēm.
Lai atvieglotu kabeļu savienošanu un apkopi (ja nepieciešams !!!), es ievietoju shēmu uz atvilktnes aiz priekšējā paneļa
Lai izvairītos no pārkaršanas, aizmugurējā paneļa apakšā tiek izveidots liels caurums, un es ievietoju 5 V ventilatoru (8 cm) uz aizmugurējā paneļa tieši blakus shēmai.
Augšējais attēls ir tikai, lai sniegtu priekšstatu.
Tātad, tas tā ir !!!!!!!!!
Paldies, ka lasījāt mani
Un tiekamies nākamreiz jauniem piedzīvojumiem
Ieteicams:
DIY Kā parādīt laiku M5StickC ESP32, izmantojot Visuino - viegli izdarāms: 9 soļi
DIY Kā parādīt laiku M5StickC ESP32, izmantojot Visuino - viegli izdarāms: Šajā apmācībā mēs iemācīsimies programmēt ESP32 M5Stack StickC ar Arduino IDE un Visuino, lai parādītu laiku LCD
PiTextReader-viegli lietojams dokumentu lasītājs redzes traucējumiem: 8 soļi (ar attēliem)
PiTextReader-viegli lietojams dokumentu lasītājs redzes traucējumiem: PārskatsAtjauninājums: Īsa video demonstrācija: https://youtu.be/n8-qULZp0GoPiTextReader ļauj cilvēkiem ar redzes traucējumiem “nolasīt” tekstu no aploksnēm, vēstulēm un citiem priekšmetiem. Tas uzņem objekta attēlu, pārvērš vienkāršā tekstā, izmantojot OCR (optisko Char
DIY MusiLED, mūzikas sinhronizētas gaismas diodes ar viena klikšķa Windows un Linux lietojumprogrammu (32 bitu un 64 bitu). Viegli atjaunot, ērti lietot, viegli pārvietot: 3 soļi
DIY MusiLED, mūzikas sinhronizētas gaismas diodes ar viena klikšķa Windows un Linux lietojumprogrammu (32 bitu un 64 bitu). Viegli atjaunojams, ērti lietojams, viegli pārvietojams: Šis projekts palīdzēs jums savienot 18 gaismas diodes (6 sarkanas + 6 zilas + 6 dzeltenas) ar Arduino plati un analizēt datora skaņas kartes reāllaika signālus un pārsūtīt tos uz gaismas diodes, lai tās iedegtos saskaņā ar sitienu efektiem (Snare, High Hat, Kick)
Kā viegli modificēt zīmi "Gaisma/LED", lai viegli programmētu Arduino: 7 soļi (ar attēliem)
Kā viegli modificēt zīmi "Gaisma/LED" vieglai Arduino programmēšanai: šajā pamācībā es parādīšu, kā ikviens var pārvērst kaut ko ar gaismām par programmējamām arduino mirgojošām gaismām vai "Kustīgām gaismām"
Atkārtoti lietojams klēpjdatora monitora akumulators: 7 soļi (ar attēliem)
Atkārtoti lietojams klēpjdatora monitora akumulators: Pirmajā pamācībā es darīšu kaut ko tādu, ko vienmēr esmu gribējis. Bet vispirms īss pagātnes stāsts. Mans klēpjdators 7 gadus beidzot sabojājās, un man nebija citas izvēles, kā nopirkt jaunu. Vecajam klēpjdatoram jau bija veikti vairāki nelieli remonti