Talaan ng mga Nilalaman:

Raspitone: madaling Gumamit ng Jukebox: 7 Hakbang
Raspitone: madaling Gumamit ng Jukebox: 7 Hakbang

Video: Raspitone: madaling Gumamit ng Jukebox: 7 Hakbang

Video: Raspitone: madaling Gumamit ng Jukebox: 7 Hakbang
Video: Советы по ставкам на футбол: 4 простых в использовании систем НФЛ 59-8 (88%) победителей! 2024, Hulyo
Anonim
Raspitone: madaling Gumamit ng Jukebox
Raspitone: madaling Gumamit ng Jukebox

Kumusta, ang aking susunod na proyekto ay, tulad ng dati kong ginagawa, isang hindi masyadong kapaki-pakinabang na proyekto:

Ito ay isang jukebox batay sa isang Raspberry 3 B +

Alam ko, ang isang bagay tulad nito ay maaaring madaling gawin sa isang smartphone at isang Bluetooth speaker.

Ngunit para sa aking proyekto, mayroon akong dalawang matitinding kinakailangan:

Nais kong gumawa ng isang bagay na "vintage".

At sa pangkalahatan, binigyan ng katotohanang ang aking ginang ay walang pag-asa para sa computer o bluetooth o anupaman mula sa ika-21 siglo, (at kahit ika-20), kailangan kong gumawa ng isang napaka-simpleng bagay upang magamit ………

Kaya, ang mga pagtutukoy ay ang sumusunod:

Isang solong pindutan ng push upang simulan ang makina

Isang touch screen (napaka-simple) upang pamahalaan ang musika.

Isang solong pagpindot sa screen upang ihinto ang makina.

At upang magkaroon ng magandang tunog ………

Mga gamit

Ginamit ko ito para sa:

1 Raspberry 3 B +

1 lumang sinehan sa bahay na walang silbi dahil sa DVD reader OOS (isang lumang Samsung 2.1 na may isang woofer at 2 speaker na binago ko upang magkasya sa kahon)

1 board ng HIFIBERRY DIGI + (na may optical output para sa power Amp)

1 capacitive touch screen 7 (ang akin ay Makeasy para sa raspberry na may HDMI input at pinalakas sa pamamagitan ng USB ngunit ang anumang HDMI touch screen ay dapat na OK)

1 kapangyarihan suplly 5V 5A

1 relay Shield

1 Arduino nano upang pamahalaan ang proseso ng ON / OFF na kuryente

1 IR ang humantong upang himukin ang home cinema (pinangunahan na hinimok ng isang 2N2222 NPN transistor)

1 IR receiver (para sa bahagi ng pag-aaral ng IR code ng proyekto, nakukuha ko ang mula sa isang matandang Multimedia hard disk na may remote command)

3 led's

1 switch para sa maintenance mode

1 switch para sa pagtatrabaho sa arduino (sa panahon ng pag-upload ang arduino ay na-reset)

ilang konektor ng JST at Dupont

At para sa kahon

Kahoy at playwud (ngunit hindi ko ilalarawan nang malalim ang paggawa ng kahon). upang masabi lamang iyon, patungkol sa boomer sa loob ng kahon, ang 10 mm playwud at 18 mm na kahoy ay sapilitan kung hindi mo nais na makita ang Jukebox na tumatawid sa sala habang naglalaro !!!!

Hakbang 1: Paglalarawan ng Bahagi ng Raspberry:

Kailangang pamahalaan ng Raspi ang iba't ibang mga bagay:

1) ang mga utos sa sinehan sa bahay (sa pamamagitan ng IR remote)

2) ang mga file ng musika

3) ang touch screen

4) Ang tibok ng puso sa Arduino (na pamahalaan ang Wdt (manonood ng timer ng aso))

Nagsimula ako mula sa isang pamamahagi ng Raspbian strech sa isang 16 G SD card (Tulad ng babasahin lamang namin ang mga file mula sa SD card, ang paggamit ng isang HDD ay hindi kinakailangan). Hindi ako gagastos ng oras sa bahaging ito dahil ang web ay puno ng tuto tungkol dito..

Tingnan natin ang iba't ibang mga bahagi sa mga susunod na hakbang ….

Hakbang 2: Ang Mga IR Remote Code

Dahil hindi ko mahanap ang circuit plan ng home cinema, napagpasyahan kong itaboy ito sa pamamagitan ng mga remote command

Ang unang hakbang na kailangan kong makumpleto ay upang malaman sa Raspi ang mga code ng Home cinema remote command. Para sa na ginamit ko ang napakahusay na tuto sa Mga Instructable mula sa Austin Stanton IR code

Nagkaroon ako ng ilang mga pagkakaiba, marahil dahil sa bagong bersyon dahil ang mga itinuturo ay medyo luma na, ang file ng hardware.conf ay wala na (kahit papaano hindi ko ito nahanap)

Tila din na ang transistor na ginamit sa tuto ay isang transistor ng PNP, para sa aking bahagi ay gumamit ako ng 2N2222 na kung saan ay NPN ngunit ang resulta ay pareho. (Maliban sa paglalagay ng kable !!!!!!!!)

Ang pagtatalaga ng pin ay ibinibigay sa /boot/config.txt:

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

Ang IR LED ay konektado sa pin22 ng Raspi.

Isang mahalagang pangungusap: kapag natututo ng mga code kay Raspi ipinag-uutos na gamitin ang mga keyword na nakalista sa utos

irrecord --list-namespace

Narito ang file na aking itinayo para sa aking jukebox:

pi @ raspitone: / etc / lirc $ cat lircd.conf

# Mangyaring maglaan ng oras upang matapos ang file na ito tulad ng inilarawan sa # https://sourceforge.net/p/lirc-remotes/wiki/Check… # at gawing magagamit ito sa iba sa pamamagitan ng pagpapadala nito sa # #

# Ang config file na ito ay awtomatikong nabuo

# using lirc-0.9.4c (default) on Thu May 9 17:33:37 2019 # Ginamit ang linya ng utos: -d / dev / lirc0 /root/lircd.conf

Bersyon ng # Kernel (uname -r): 4.14.98-v7 + # # Remote na pangalan (tulad ng config file): jukebox

# Brand ng remote na aparato, ang bagay na hawak mo sa iyong kamay: # Remote na modelo ng aparato nr:

# Url ng impormasyon ng malayuang aparato:

# Ang remote na aparato ba ay may isang naka-bundle na aparato ng pagkuha e. ga

# usb dongle?:

# Para sa mga naka-bundle na USB device: usb vendor id, product id

# at string ng aparato (gumamit ng dmesg o lsusb):

# Uri ng aparato na kinokontrol

# (TV, VCR, Audio, DVD, Satellite, Cable, HTPC,…):

# (Mga) aparato na kinokontrol ng remote na ito:

simulan ang remote

pangalan jukebox

mga piraso 16

watawat SPACE_ENC | CONST_LENGTH

eps 30

aeps 100

header 4470 4496

isa 542 1693

zero 542 581

ptrail 553

pre_data_bits 16

pre_data 0xC2CA

puwang 107863

toggle_bit_mask 0x0

dalas 38000

simulan ang mga code

KEY_POWER 0x807F

KEY_AUX 0x8877

KEY_VOLUMEUP 0xCC33

KEY_VOLUMEDOWN 0xDC23

mga end code

magtapos ng remote

Tulad ng nakikita mo, kailangan ko lang ng 4 na mga utos upang himukin ang Home Cinema

Lakas (ON / OFF)

AUX => upang lumipat sa optical input channel (tulad ng laging nagsisimula ang HC sa DVD reader)

At Dami +/-

Ang mga kaugnay na utos ay naisakatuparan sa pamamagitan ng mga utos ng LIRC:

halimbawa: "irsend SEND_ONCE jukebox KEY_VOLUMEUP"

Hakbang 3: Pangunahing Programm

Ang pangunahing programa ay nakasulat sa Python:

Bilang bago ako sa Python sa palagay ko mayroong maraming pagpapabuti na maaaring gawin, ngunit tumatakbo ito ….

Ang mga pagtutukoy:

1) pamahalaan ang graphic na screen:

Para sa mga ito, ginamit ko ang APPJAR na kung saan ay TKINTER ngunit sibilisado para sa mag-aaral (aking kaso), nangangahulugan ito na mas madaling gamitin, marahil ay may mas kaunting mga posibilidad, ngunit sapat ito para sa aking hangarin.

2) i-play ang mga mp3 file:

Gumamit ako ng mplayer para sa sawa.

3) bumuo ng mga random na numero para sa paglalaro sa mode ng shuffle:

Dahil ayaw kong marinig ang parehong kanta bawat quarter, nagtayo ako ng isang maliit na programm upang suriin kung ang numero ay wala sa x nakaraang listahan ng mga numero (x depende sa haba ng playlist).

Ang randint function sa sawa ay hindi masyadong "random" sa nakita ko.

4) ipadala ang "tibok ng puso" sa Arduino

5) pamahalaan ang mga file player:

Tulad ng Mplayer ay asynchronous, kapag nagsimula ang file walang paraan upang malaman para sa Python kapag natapos na (hindi bababa sa hindi ako nakahanap ng isang simpleng paraan)

Upang malutas na ginamit ko ang mga utos ng mplayer na nagbibigay ng haba ng file at ang pag-usad sa kasalukuyang file

Para sa parehong 4 at 5 Ginamit ko ang posibilidad na ibinigay ng Appjar upang makabuo ng isang pana-panahong gawain (dahil ang appjar ay isang programm ng kaganapan ito ay isang paraan upang lumikha ng isang pana-panahong kaganapan). ang pagpapaandar ay:

# *****

p.setPollTime (1000)

Tagapangasiwa para sa "task manager" na isang dep sa programm na namamahala sa lahat ng hindi mga pangyayari sa screen (pagtatapos ng pinatugtog na file, i-populate ang progress bar, ipadala ang heart beat kay Nano, ….)

Kapag nagsimula ang screen ganito ang hitsura:

Larawan
Larawan

Narito ang programm: (maaaring buksan sa pamamagitan ng Notepad ++ o Geany)

Hakbang 4: Bahagi ng Raspberry: autostart at Pagdaragdag ng Mga Bagong File

Kung titingnan mo ang programm maaari mong makita na gumagamit ako ng ilang mga bash file:

1) Start_jukebox:

Sa katunayan ang layunin ay upang paganahin ang sinehan ng Home at upang lumipat sa input ng D. IN (optik na input sa aking sinehan sa Home)

pi @ raspitone: / bin $ cat start_jukebox #! / bin / bash

irsend SEND_ONCE jukebox KEY_POWER

matulog 7

irsend SEND_ONCE jukebox KEY_AUX

tulog 2

2) stop_jukebox:

Upang mapatay ang sinehan ng Home

pi @ raspitone: / bin $ cat stop_jukebox

#! / baseng / bash

irsend SEND_ONCE jukebox KEY_POWER

Ang dalawang bash file na ito ay tinawag ng Python gamit ang os.system command

Upang simulan ang script ng Python gumawa ako ng isang maliit na bash

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

cd / bahay / pi

python jukebox_gui.py

Para sa awtomatikong pagsisimula sa GUI mode na binago ko lang ang autostart file sa / etc / xdg / lxsession / LXDE-pi

pi @ raspitone: / etc / xdg / lxsession / LXDE-pi $ cat autostart @ lxpanel --profile LXDE-pi

@pcmanfm --desktop --profile LXDE-pi

@xscreensaver -no-splash

@lxterminal --command = "dem_jukebox.bash"

point-rpi

Pagdaragdag ng mga bagong mp3 file:

Upang magdagdag ng mga bagong file, ginusto kong gumawa ng isang maliit na nakalaang script ng Python:

new_song_file.py

Ipapaliwanag ko muna ang samahan ng mga file ng system:

Ang lahat ng mga file ay nasa / bahay / pi

mp3 file ay strored sa / home / pi / Music direktoryo

Ang bawat artist ay may sariling sub direktoryo na nagho-host ng mga kaugnay na mp3 file

pi @ raspitone: ~ / Music / 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

Sa mga dokumento ng direktoryo maaari naming makita ang built list ng mga file upang i-play.

pi @ raspitone: ~ / Mga dokumento $ listahan ng pusa.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

Mahahanap din namin ang data ng mga playlist (ngunit ito ay binuo ng script ng Python)

Ang maliit na script ng Python ay nagdaragdag ng mga bagong kanta, nai-save sa Musika, sa list.txt pagkatapos na mai-format ang mga tittles sa format na UNIX

Narito ang script: (maaaring buksan sa pamamagitan ng Notepad ++ o Geany)

Hakbang 5: Ang Pamamahala ng Lakas Sa Pamamagitan ng Arduino Nano

Tulad ng nais kong magkaroon ng isang bagay na madaling simulan, nagpasya akong gawin ito sa pamamagitan ng isang maliit na nano:

Ang prinsipyo:

Kapag pinipilit ang pindutan ng pagsisimula ang mga aparato ay pinalakas lahat, ang nano ay nagsisimula (1 o 2 segundo) at sakupin ang pamamahala ng kuryente sa pamamagitan ng pag-trigger ng isang relay na kung saan ay maiiwasan ang mga contact sa push button.

Pagkatapos ay naghihintay si Nano ng 35 segundo upang matanggap ang tibok ng puso mula sa Raspberry (nangangahulugang kumpleto ang proseso ng pagsisimula at tumatakbo ang programang jukebox).

Hangga't natanggap ni nano ang tibok ng puso ay pinapanatili nito ang relay (Manood ng timer ng aso)

Kung wala nang tibok ng puso (nangangahulugan na ang programa ng jukebox ay tumigil) Naghihintay si Nano ng 20 segundo (upang matiyak na ang raspi ay ganap na tumigil) upang palabasin ang power relay.

Ang jukebox ay pagkatapos ay kabuuang pinapatakbo ng Off

Nagdagdag ako ng isang switch upang buhayin ang isang input ng nano upang ipahiwatig ang mode ng pagpapanatili (ginagamit ko ang jukebox upang pamahalaan ang aking iba pang mga server ng raspi sa pamamagitan ng ssh et vnc). Na-deactivate din ni Nano ang proseso ng relong aso

Pangungusap:

ang input para sa tibok ng puso mula sa Raspi ay kailangang hilahin pababa (ngunit ang 3.3V mula sa Raspi ay itinuturing na mataas na antas ni Nano)

Maaari itong gawin sa NE555 ngunit ako ay tamad at palaging may ilang mga nano sa aking drawer !!!!

Narito ang maikling programm C (maaaring buksan sa Notepad ++)

Hakbang 6: Ang Cabling

Ang Cabling
Ang Cabling
Ang Cabling
Ang Cabling

Para sa Screen:

Ang isang HDMI cable at isang USB cable ay ginagamit sa Raspi upang i-power at i-drive ang screen.

Para sa front panel:

Ang isang USB cable ay konektado din mula sa Raspi upang makapag-upload ng mga bagong file o makagawa ng mga pag-backup.

Ang isang USB cable ay konektado mula sa Nano upang ma-access ang malambot (para sa mga pagbabago kung kinakailangan)

Nag-plug din ako ng isang wireless keyboard dongle sa raspberry upang makagawa ng pagpapanatili nang hindi ginagamit ang panlabas na USB plug

Tulad ng ginamit na Raspberry at Arduino, ang paglalagay ng kable ay medyo simple.

Ang lahat ay matatagpuan sa isang strip matrix board.

Mula sa raspberry 2 GPIO ang ginagamit:

Pin22 para sa IR LED

I-pin ang 27 para sa tibok ng puso kay Arduino

kay Arduino

Ang Pin 2 ay ginagamit bilang isang nakakagambala na pin para sa tibok ng puso mula sa Raspi.

Ang mga pin 3 hanggang 5 ay ginagamit para sa pagmamaneho ng led (Start, Wdt, Maintenance).

Ang Pin 6 ay para sa switch ng pagpapanatili.

Ang Pin 7 ay output upang i-relay ang kalasag.

Narito ang fritzing file:

Hakbang 7: Ang Kahon

Ang kahon
Ang kahon

Hindi ko ilalarawan ang marami sa aking ginawa dahil nakasalalay ito sa power amp at sa mga ginamit na speaker.

Bilang impormasyon ang sinehan sa bahay ay matatagpuan sa ilalim ng kahon.

Sa mga nagsasalita lamang:

1 woofer

2 medium speaker, na binago ko upang maipasok ang mga ito sa kahon.

Nasa Tuktok:

Ang front pannel na may screen, ang LED, ang switch at ang mga USB plug.

Ang kahoy:

Para sa mga nagsasalita, ang mga gilid ng pannels sa itaas at sa ibaba ay ginamit ko ang 18 mm na kahoy na tabla.

Sa harap na bahagi ay 10 mm playwud na may 40 mm na mga turnilyo.

Upang mapadali ang paglalagay ng kable at pagpapanatili (kung kinakailangan !!!) Inilagay ko ang circuitry sa isang drawer sa likod ng front pannel

Upang maiwasan ang sobrang pag-init ng isang malaking butas ay tapos na sa ilalim ng likuran ng likuran at naglagay ako ng isang 5V fan (8 cm) sa likurang pannel sa tabi lamang ng circuitry.

Ang larawan sa itaas ay upang magbigay ng isang ideya.

Kaya, yun lang !!!!!!!!!

Salamat sa pagbabasa mo sa akin

At magkita tayo sa susunod para sa mga bagong pakikipagsapalaran

Inirerekumendang: