Satura rādītājs:

Raspitone: viegli lietojams Jukebox: 7 soļi
Raspitone: viegli lietojams Jukebox: 7 soļi

Video: Raspitone: viegli lietojams Jukebox: 7 soļi

Video: Raspitone: viegli lietojams Jukebox: 7 soļi
Video: Edge Explore 2 — viegli lietojams GPS riteņbraukšanas dators, kas radīts atklājumiem 2024, Novembris
Anonim
Raspitone: viegli lietojams Jukebox
Raspitone: viegli lietojams Jukebox

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:

Attēls
Attēls

Š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

Kabeļi
Kabeļi
Kabeļi
Kabeļi

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

Kaste
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: