Orodha ya maudhui:

Raspitone: rahisi kutumia Jukebox: Hatua 7
Raspitone: rahisi kutumia Jukebox: Hatua 7

Video: Raspitone: rahisi kutumia Jukebox: Hatua 7

Video: Raspitone: rahisi kutumia Jukebox: Hatua 7
Video: It Became Unliveable! ~ Abandoned Home Of The Spenser's In The USA 2024, Novemba
Anonim
Raspitone: rahisi kutumia Jukebox
Raspitone: rahisi kutumia Jukebox

Halo, mradi wangu unaofuata ni, kama ninavyotumia kufanya, mradi sio muhimu sana:

Hii ni sanduku la jukiki kulingana na Raspberry 3 B +

Najua, kitu kama hiki kinaweza kufanywa kwa urahisi na smartphone na spika ya Bluetooth.

Lakini kwa mradi wangu, nilikuwa na sharti mbili ngumu:

Nilitaka kutengeneza kitu "mavuno".

Na kwa jumla, kutokana na ukweli kwamba mwanamke wangu hana matumaini kabisa kwa kompyuta au bluetooth au kitu kingine chochote kutoka karne ya 21, (na hata 20), ilibidi nifanye kitu rahisi sana kutumia ………

Kwa hivyo, uainishaji ulikuwa kama ifuatavyo:

Kitufe kimoja cha kushinikiza kuanza mashine

Skrini ya kugusa (rahisi sana) kusimamia muziki.

Kugusa mara moja kwenye skrini ili kusimamisha mashine.

Na kuwa na sauti nzuri ………

Vifaa

Kwa hili nilitumia:

1 Raspberry 3 B +

Sinema ya nyumbani 1 ya zamani ambayo haikuwa na maana kwa sababu ya msomaji wa DVD OOS (Samsung 2.1 ya zamani iliyo na woofer na spika 2 ambazo nilibadilisha kutoshea sanduku)

1 HIFIBERRY DIGI + bodi (na pato la macho kwa Amp ya nguvu)

Screen 1 ya kugusa capacitive 7 (yangu ni Makeasy ya rasipiberi iliyo na pembejeo ya HDMI na inaendeshwa kupitia USB lakini skrini yoyote ya kugusa ya HDMI inapaswa kuwa sawa)

1 nguvu suplly 5V 5A

1 ngao ya kupokezana

1 Arduino nano kusimamia mchakato wa KUZIMA / KUZIMA

1 IR imesababisha kuendesha sinema ya nyumbani (iliyoongozwa na transistor ya 2N2222 NPN)

Mpokeaji 1 wa IR (kwa nambari za IR zinazojifunza sehemu ya mradi, ninapata yangu kutoka kwa diski ngumu ya zamani ya Multimedia na amri ya mbali)

3 iliyoongozwa

1 kubadili kwa hali ya matengenezo

1 kubadili kwa kufanya kazi kwa arduino (wakati wa kupakia arduino imewekwa upya)

viunganishi vingine vya JST na Dupont

Na kwa sanduku

Mbao na plywood (lakini sitaelezea kwa undani utengenezaji wa sanduku). kusema tu kwamba, kuhusu boomer ndani ya sanduku, plywood ya 10 mm na kuni 18 mm ni lazima ikiwa hautaki kuona Jukebox ikivuka sebuleni wakati wa kucheza !!!!

Hatua ya 1: Maelezo ya Sehemu ya Raspberry:

Raspi inapaswa kusimamia mambo tofauti:

1) amri kwa sinema ya nyumbani (kupitia kijijini cha IR)

2) faili za muziki

3) skrini ya kugusa

4) Mapigo ya moyo kwa Arduino (ambayo itasimamia Wdt (angalia kipima muda cha mbwa))

Nilianza kutoka kwa usambazaji wa Raspbian kwenye kadi ya 16 G SD (Kama tutasoma tu faili kutoka kwa kadi ya SD, matumizi ya HDD sio lazima). Sitatumia muda kwenye sehemu hii kwani wavuti imejaa tuto juu yake..

Wacha tuone sehemu tofauti katika hatua zifuatazo….

Hatua ya 2: Nambari za Kijijini za IR

Kwa kuwa sikuweza kupata mpango wa mzunguko wa sinema ya nyumbani, niliamua kuiendesha kupitia amri za mbali

Hatua ya kwanza nilipaswa kukamilisha ilikuwa kujifunza kwa Raspi nambari za amri ya mbali ya sinema ya Nyumbani. Kwa kuwa nilitumia tuto nzuri sana katika Maagizo kutoka kwa nambari za Austin Stanton IR

Nilikuwa na tofauti, labda kwa sababu ya toleo jipya kwani mafundisho ni ya zamani, faili ya hardware.conf haipo tena (angalau sikuipata)

Inaonekana pia kwamba transistor iliyotumiwa kwenye tuto ni transistor ya PNP, kwa upande wangu nilitumia 2N2222 ambayo ni NPN lakini matokeo ni sawa. (Isipokuwa cabling !!!!!!!!)

Ugawaji wa pini umetolewa katika / boot/config.txt:

#autorisation de lirc le 08/07 / 2019dtoverlay = lirc-rpi, gpio_out_pin = 22, gpio_in_pin = 23

LED ya IR itaunganishwa sana na pin22 ya Raspi.

Maneno moja muhimu: wakati wa kusoma nambari kwa Raspi ni lazima kutumia maneno muhimu yaliyoorodheshwa kwenye amri

irrecord - orodha-nafasi ya majina

Hii ndio faili niliyoijenga kwa sanduku langu la jukiki:

pi @ raspitone: / nk / lirc $ paka lircd.conf

# Tafadhali chukua muda kumaliza faili hii kama ilivyoelezwa katika # https://sourceforge.net/p/lirc-remotes/wiki/Check… # na uifanye ipatikane kwa wengine kwa kuituma kwa # #

# Faili hii ya usanidi ilitengenezwa kiatomati

# kutumia lirc-0.9.4c (chaguomsingi) mnamo Mei 9 17: 33: 37 2019 # Amri ya amri iliyotumika: -d / dev / lirc0 /root/lircd.conf

Toleo la Kernel (uname -r): 4.14.98-v7 + # # Jina la mbali (kama faili ya usanidi): jukebox

# Chapa ya kifaa cha mbali, kitu unachoshikilia mkononi mwako: # Mfano wa kifaa cha mbali nr:

# Maelezo ya kifaa cha mbali:

# Je! Kifaa cha mbali kina kifaa cha kukamata kifurushi e. g., a

# usb dongle?:

# Kwa vifaa vya USB vilivyojumuishwa: kitambulisho cha muuzaji wa usb, kitambulisho cha bidhaa

# na kamba ya kifaa (tumia dmesg au lsusb):

# Aina ya kifaa kinachodhibitiwa

# (TV, VCR, Sauti, DVD, Satelaiti, Cable, HTPC,…):

# Vifaa / vifaa vinavyodhibitiwa na kijijini hiki:

anza kijijini

jina jukebox

bits 16

bendera SPACE_ENC | CONST_LENGTH

eps 30

100

kichwa 4470 4496

moja 542 1693

sifuri 542 581

553

pre_data_bits 16

pre_data 0xC2CA

107863

togles_bit_mask 0x0

mzunguko 38000

anza nambari

KEY_POWER 0x807F

KEY_AUX 0x8877

KEY_VOLUMEUP 0xCC33

KEY_VOLUMEDOWN 0xDC23

nambari za mwisho

mwisho kijijini

Kama unavyoona, ninahitaji tu amri 4 za kuendesha Sinema ya Nyumbani

Nguvu (IMEWashwa / IMEZIMWA)

AUX => kubadili kituo cha kuingiza macho (kama HC inavyoanza kwenye kisomaji cha DVD kila wakati)

Na ujazo +/-

Amri zinazohusiana zinatekelezwa kupitia amri za LIRC:

kwa mfano: "irsend SEND_ONCE jukebox KEY_VOLUMEUP"

Hatua ya 3: Programu kuu

Programu kuu imeandikwa katika Python:

Kama mimi ni mpya katika Python nadhani kuna maboresho mengi ambayo yanaweza kufanywa, lakini inaendesha….

Maelezo:

1) dhibiti skrini ya picha:

Kwa hili, nilitumia APPJAR ambayo ni TKINTER lakini iliyostaarabika kwa mwanafunzi (kesi yangu), hii inamaanisha rahisi kutumia, labda na uwezekano mdogo, lakini ilitosha kwa kusudi langu.

2) cheza faili za mp3:

Nilitumia mplayer kwa chatu.

3) toa nambari za kubahatisha kwa kucheza katika hali ya kuchanganya:

Kwa kuwa sikutaka kusikia wimbo huo kila robo, niliunda programu ndogo kuangalia ikiwa nambari haikuwepo kwenye orodha ya nambari zilizopita x (x kulingana na urefu wa orodha ya kucheza).

Kazi ya randint katika chatu sio "ya nasibu" kadiri nilivyoona.

4) tuma "mapigo ya moyo" kwa Arduino

5) dhibiti kicheza faili:

Kama Mplayer anavyopendeza, wakati faili inapoanza hakuna njia ya kujua kwa Python wakati imekamilika (angalau sikupata njia rahisi)

Ili kutatua kwamba nilitumia amri za mplayer kutoa urefu wa faili na maendeleo katika faili ya sasa

Kwa wote 4 na 5 nilitumia uwezekano uliopewa na Appjar kutengeneza kazi ya mara kwa mara (kwani appjar ni programu ya hafla hii ni njia ya kuunda hafla ya mara kwa mara). kazi ni:

#

p.setPollTime (1000)

Taskman wa "meneja wa kazi" ambayo ni def katika programu inayosimamia yote ambayo sio matukio ya skrini (mwisho wa faili iliyochezwa, jaza bar ya maendeleo, tuma mapigo ya moyo kwa Nano,….)

Mara baada ya kuanza skrini inaonekana kama hii:

Picha
Picha

Hapa kuna programu: (inaweza kufunguliwa kupitia Notepad ++ au Geany)

Hatua ya 4: Sehemu ya Raspberry: autostart na Kuongeza faili mpya

Ukiangalia programu unaweza kuona kuwa ninatumia faili zingine za bash:

1) Start_jukebox:

Kwa kweli kusudi ni kuwezesha sinema ya Nyumbani na kuhamia kwa pembejeo ya D. IN (pembejeo ya macho kwenye sinema yangu ya Nyumbani)

pi @ raspitone: / bin $ paka kuanza_jukebox #! / bin / bash

tuma SEND_ONCE sanduku la sanduku KEY_POWER

lala 7

tuma tena SEND_ONCE sanduku la jukki KEY_AUX

lala 2

2) stop_jukebox:

Ili kuwezesha sinema ya Nyumbani

pi @ raspitone: / bin $ paka stop_jukebox

#! / bin / bash

tuma SEND_ONCE sanduku la sanduku KEY_POWER

Faili hizi mbili za bash zinaitwa na Python na amri ya os.system

Kuanza hati ya Python nilifanya bash ndogo

pi @ raspitone: ~ $ paka dem_jukebox.bash #! / bin / bash

cd / nyumbani / pi

chatu jukebox_gui.py

Kwa kuanza kiotomatiki katika hali ya GUI nimebadilisha faili ya autostart katika / etc / xdg / lxsession / LXDE-pi

pi @ raspitone: / nk / xdg / lxsession / LXDE-pi $ paka autostart @ lxpanel - wasifu LXDE-pi

@pcmanfm - desktop - maelezo mafupi LXDE-pi

@xscreensaver -no-splash

@lxterminal - amri = "dem_jukebox.bash"

uhakika-rpi

Kuongeza faili mpya za mp3:

Ili kuongeza faili mpya, nilipendelea kutengeneza hati ndogo ya Python:

new_song_file.py

Kwanza nitaelezea shirika la faili za mfumo:

Faili zote ziko ndani / nyumbani / pi

Faili za mp3 zimepigwa katika saraka ya / nyumbani / pi / Muziki

Kila msanii ana saraka yake ndogo inayoshikilia faili zinazohusiana za mp3

pi @ raspitone: ~ / Music / Mike_oldfield $ ls-jumla ya 760516

-rwxr ----- 1 pi pi 2254923 juin 30 2017 A_New_Beginning.mp3

-rwxr ----- 1 pi pi 2691736 juin 30 2017 Kuwasili.mp3

-rwxr ----- 1 pi pi 8383244 juin 30 2017 Kupaa.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 Magari.mp3

Katika saraka Hati tunaweza kupata orodha iliyojengwa ya faili za kucheza.

pi @ raspitone: ~ / Nyaraka $ paka orodha.txtFranz_Ferdinand / Michael_live.mp3

Franz_Ferdinand / mbaya_na_heathen.mp3

Franz_Ferdinand / Walk_Away_live.mp3

Franz_Ferdinand / love_and_destroy.mp3

Franz_Ferdinand / moto_wake.mp3

Franz_Ferdinand / eleanor_put_boots_on_ yako.mp3

Franz_Ferdinand / nakukosa.mp3

Franz_Ferdinand / this_fire_ (playgroup_remix).mp3

Franz_Ferdinand / Jacqueline.mp3

Pia tunaweza kupata data ya orodha za kucheza (lakini hii imejengwa na hati ya Python)

Hati ndogo ya Python inaongeza nyimbo mpya, zilizohifadhiwa kwenye Muziki, kwenye orodha.txt baada ya kupangilia tittles katika muundo wa UNIX

Hapa kuna hati: (inaweza kufunguliwa kupitia Notepad ++ au Geany)

Hatua ya 5: Usimamizi wa Nguvu kupitia Arduino Nano

Kama nilitaka kuwa na kitu rahisi kuanza, niliamua kuifanya na nano ndogo:

Kanuni:

Wakati wa kushinikiza kitufe cha kuanza vifaa vyote vinatumiwa, nano huanza (sekunde 1 au 2) na inachukua usimamizi wa nguvu kwa kuchochea relay ambayo inazima mawasiliano ya kitufe cha kushinikiza.

Kisha Nano anasubiri kwa sekunde 35 kupokea mapigo ya moyo kutoka kwa Raspberry (inamaanisha kuwa mchakato wa kuanza umekamilika na programu ya jukebox inaendesha).

Kwa muda mrefu kama nano inapokea mapigo ya moyo huweka tena kwenye (Tazama kipima muda cha mbwa)

Ikiwa hakuna mapigo ya moyo tena (inamaanisha mpango wa jukebox umesimamishwa) Nano anasubiri kwa sekunde 20 (kuwa na uhakika kwamba raspi imesimamishwa kabisa) kutoa relay ya umeme.

Sanduku la juk basi huwashwa kabisa

Niliongeza swichi ili kuamsha pembejeo ya nano kuonyesha hali ya matengenezo (ninatumia kisanduku cha juk kudhibiti vifaa vyangu vingine vya raspi kupitia ssh et vnc). Nano basi huzima mchakato wa mbwa wa kuangalia

Maoni:

pembejeo ya mapigo ya moyo kutoka Raspi inahitaji kuvutwa (lakini 3.3V kutoka Raspi inachukuliwa kama kiwango cha juu na Nano)

Inaweza kufanywa na NE555 lakini mimi ni mvivu na huwa na nano kwenye droo yangu !!!!

Hapa kuna programu fupi ya C (inaweza kufunguliwa na Notepad ++)

Hatua ya 6: Cabling

Kufundisha
Kufundisha
Kufundisha
Kufundisha

Kwa Skrini:

Cable ya HDMI na kebo ya USB hutumiwa kwenye Raspi kuwezesha na kuendesha skrini.

Kwa jopo la mbele:

Cable ya USB pia imeunganishwa kutoka Raspi ili kuweza kupakia faili mpya au kutengeneza nakala rudufu.

Cable ya USB imeunganishwa kutoka Nano ili kuweza kupata laini (kwa marekebisho ikiwa ni lazima)

Mimi kuziba pia dongle ya kibodi isiyo na waya kwenye rasipberry ili kuweza kufanya matengenezo bila kutumia kuziba nje ya USB

Kama Raspberry na Arduino hutumiwa, cabling ni rahisi sana.

Yote iko kwenye bodi ya matriki ya ukanda.

Kutoka kwa raspberry 2 GPIO hutumiwa:

Pin22 kwa IR LED

Bandika 27 kwa mapigo ya moyo kwa Arduino

juu ya Arduino

Pini 2 hutumiwa kama pini ya kukatiza kwa mapigo ya moyo kutoka Raspi.

Pini 3 hadi 5 hutumiwa kuendesha gari iliyoongozwa (Anzisha, Wdt, Matengenezo).

Pin 6 ni ya kubadili matengenezo.

Pin 7 ni pato la kupeleka ngao.

Hapa kuna faili ya fritzing:

Hatua ya 7: Sanduku

Sanduku
Sanduku

Sitaelezea mengi niliyofanya kwani inategemea nguvu amp na spika zilizotumiwa.

Kama habari sinema ya nyumbani iko chini ya sanduku.

Zaidi ya spika:

1 woofer

Spika 2 za kati, ambazo nilibadilisha kuziingiza kwenye sanduku.

Juu:

Pannel ya mbele iliyo na skrini, LED, swichi na plugs za USB.

Mbao:

Kwa spika, njia za upande juu na chini nilitumia ubao wa kuni wa mm 18 mm.

Upande wa mbele ni plywood 10 mm na visu 40 mm.

Ili kuwezesha ufungaji na matengenezo (ikiwa inahitajika !!!) Ninaweka mizunguko kwenye droo nyuma ya pannel ya mbele

Ili kuzuia kuchomwa moto shimo kubwa hufanywa chini ya paneli ya nyuma na ninaweka shabiki wa 5V (8 cm) kwenye pannel ya nyuma karibu na mzunguko.

Picha hapo juu ni kutoa tu wazo.

Kwa hivyo, ndio hivyo !!!!!!!!!

Asante kwa kunisoma

Na tukutane wakati mwingine kwa vituko vipya

Ilipendekeza: