Orodha ya maudhui:

Disco-pi: Hatua 8 (na Picha)
Disco-pi: Hatua 8 (na Picha)

Video: Disco-pi: Hatua 8 (na Picha)

Video: Disco-pi: Hatua 8 (na Picha)
Video: АРАМ ЗАМ ЗАМ - Песни Для Детей - Развивающие Мультики 2024, Novemba
Anonim
Disco-pi
Disco-pi

Mafundisho haya yanaonyesha jinsi ya kutumia Raspberry Pi kudhibiti laini ya rangi ya LED, kulingana na muziki uliochezwa kutoka kwa kivinjari cha wavuti.

Inaonyesha jinsi ya kuunda wavuti ya msingi kwa kutumia Node.js juu ya HTTPS na kutumia socket.io juu ya WSS (Salama Websocket).

Tovuti ina ukurasa mmoja ambao una mpangilio wa kimsingi sana. Ukurasa wa wavuti hujaza orodha ya kushuka na faili za muziki, ambazo ziko kwenye folda ya umma / sauti kwenye seva. Kuchagua chaguo kwenye orodha kunacheza faili ya muziki kwenye ukurasa wa wavuti kwa kutumia kipengee cha sauti cha HTML 5. Wakati unacheza faili ya muziki, ukurasa wa wavuti hutumia kiolesura cha AudioContext kuchambua muziki, ambao hutumwa kwa seva juu ya unganisho salama la wavuti.

Seva inayoendesha Raspberry Pi hutumia maktaba ya Asili ya Node RPI WS281x (kufunika maktaba ya Jeremy Garff ya WS281X) kubadilisha rangi za LED kwenye ukanda wa LED wa WS2811, kulingana na data iliyotumwa kupitia wavuti.

Nambari ya mfano inaweza kupatikana hapa: disco-pi

Hatua ya 1: Vifaa

  1. Raspberry Pi - Nilitumia Raspberry Pi 2B ambayo nilikuwa nimelala karibu, lakini unaweza kupata Raspberry Pi 3 Starter Kit kwa karibu CAD 100
  2. Ukanda wa LED wa WS2811 - Nilikuwa nikicheza na ALITOVE 16.4ft 150 saizi WS2811. Hii inakuja na mtawala na usambazaji wa umeme kwa karibu CAD 45-50
  3. Pipa Jack Kiunganishi - Nilinunua moja kutoka duka langu la elektroniki, kitu kama hiki. Hakikisha tu ikiwa inafaa usambazaji wako wa umeme
  4. Viunganishi vya Jumper / Waya - Nilikuwa na nyaya za Kike hadi Kiume na baadhi ya 22 Gauge Mango iliyounganishwa imelala karibu.

Hatua ya 2: Kuweka Raspberry Pi

Mfumo wa Uendeshaji

Kawaida mimi hutumia muundo wa hivi karibuni wa Raspbian. Pakua picha na uiandike kwa Kadi ya SD. Ikiwa unatumia kompyuta ya Windows, unaweza kutumia Win32 Disk Imager kuandika picha hiyo kwa Kadi ya SD.

Node

Sakinisha toleo la hivi karibuni la Node.js. Wakati wa kuandika ninatumia 8.9.1

curl -sL https://deb.nodesource.com/setup_8.x | Sudo -E bash -

Sudo apt-get kufunga nodejs

Sakinisha git

Sudo apt-get kufunga git

Hatua ya 3: Kuweka Msimbo wa Mfano

Fanya msimbo wa mfano

1. Sanidi folda ya msingi ili uweke ndani

cd / chagua

sudo mkdir com.jonhaydock sudo chown pi: pi com.jonhaydockcd com.jonhaydock

2. Fanya mfano wa hazina ya git

clone ya git https://github.com/haydockjp/disco-pi.git"

au

git clone [email protected]: haydockjp / disco-pi.git

3. Sakinisha utegemezi

cd disco-pi

npm kufunga

Hii inaweza kuchukua dakika 2-3

Hatua ya 4: Unda Cheti cha SSL Iliyotiwa Saini

1. Unda faili muhimu ya faragha

cd /opt/com.jonhaydock/disco-pi/certs

openssl genrsa - nje ya ufunguo wa disco-pi.pem 2048

2. Unda CSR (Ombi la Kutia Saini Cheti)

openssl req -ufunguo -ufunguo wa disco-pi-key.pem-disco-pi-csr.pem

Kwa wakati huu utahamasishwa kupata habari fulani kwa ombi la cheti. Kwa kuwa hii ni cheti kilichotiwa saini, ni juu yako jinsi unavyojaza maelezo kwa usahihi. Hapa kuna mfano

Jina la Nchi (nambari 2 ya herufi) [AU]: CA

Jina la Jimbo au Mkoa (jina kamili) [Baadhi ya Jimbo]: Jina la Mitaa la British Columbia (kwa mfano, jiji) : Jina la Shirika la Vancouver (kwa mfano, kampuni) [Internet Widgits Pty Ltd]: Jina la Kitengo cha Shirika la Disco (kwa mfano, sehemu Jina la kawaida (kwa mfano seva FQDN au jina lako) : disco-pi Anwani ya barua pepe : [email protected] Nenosiri la changamoto : Jina la kampuni la hiari :

Katika mfano huu, bonyeza tu kurudi ili kuacha nenosiri tupu la changamoto

3. Zalisha cheti

openssl x509 -req -siku 1095 -katika disco-pi-csr.pem -signkey disco-pi-key.pem-disco-pi-cert.pem

4. Kwa usalama wa ziada pia tutaunda faili ya Parameters ya Diffie Hellman

openssl dhparam - nje ya dh_2048. nambari 2048

Hii inaweza kuchukua dakika 15-20

Hatua ya 5: Kuunganisha vifaa

Kuunganisha vifaa
Kuunganisha vifaa
Kuunganisha vifaa
Kuunganisha vifaa
Kuunganisha vifaa
Kuunganisha vifaa
Kuunganisha vifaa
Kuunganisha vifaa

Kuwezesha ukanda wa LED

Ukanda wa LED unaendeshwa na volts 12. Raspberry Pi ni uwezo tu wa kutoa 3.3v au 5v na haina uwezo wa kutoa popote karibu na amps zinazohitajika kuendesha LED nyingi.

Ni muhimu kutounganisha umeme wa volt 12 kwa Raspberry Pi.

Kamba yangu pia ilikuwa na nyaya za nyongeza za umeme zilizounganishwa na ukanda mwishoni mwa kila upande. Ninashauri kwamba uziweke mkanda ili wasiwasiliane na vifaa vyako vyovyote.

Fanya hatua zifuatazo kwa hatari yako mwenyewe. Sichukui jukumu la kitu chochote ambacho kinaweza kwenda vibaya.

Ukanda wa LED

Kamba yangu ya LED ina waya tatu:

RED - +12 Volts

WEUSI - Ardhi

KIJANI - Takwimu

KUMBUKA: kuna Din na Dout - Data In na Data Out. Hakikisha unafanya kazi na mwisho wa ukanda wa LED ambao unasema Din.

Kuhakikisha kuwa Pipa Jack haijaunganishwa na usambazaji wa umeme

1. Unganisha waya mwekundu kutoka ukanda wa LED hadi + upande wa Pipa Jack.

Nilitumia waya nyeupe ya kupima waya 22.

Weka waya ndani ya + yanayopangwa kwenye pipa na uipasue mahali pake.

Shinikiza mwisho mwingine wa waya kwenye tundu kwenye LED. Hakikisha unaunganisha na waya nyekundu.

2. Unganisha waya mweusi kutoka ukanda wa LED hadi - upande wa Pipa Jack.

Nilitumia waya nyeusi ya kupima waya 22.

Weka waya kwenye - yanayopangwa kwenye pipa. Kwa wakati huu pia weka mwisho wa kiume wa moja ya nyaya za kiunganishi (waya wa hudhurungi kwenye picha) ndani ya shimo moja na uziangalie zote mbili mahali.

Shinikiza mwisho mwingine wa waya mweusi kwenye tundu kwenye LED.

Hakikisha unaunganisha na waya mweusi.

3. Unganisha waya wa kijani kutoka kwenye ukanda wa LED

Chukua moja ya kike kwa nyaya za kiunganishi za kiume. Katika picha zangu hii ni waya wa kijani kibichi.

Weka mwisho wa kiume kwenye tundu la LED na waya wa kijani.

Hii ni kebo ya data.

Pi ya Raspberry

1. Chukua kebo ya kiunganishi kijani na uiunganishe na Raspberry Pi GPIO.

Unahitaji kuiunganisha kwa PCM_CLK (Pini 12 / GPIO 18)

2. Chukua kebo ya kiunganishi nyeusi na uiunganishe na Raspberry Pi GPIO.

Unahitaji kuiunganisha na moja ya uwanja. Ninapendekeza utumie pini 14, lakini unaweza pia kutumia pini 6, 9, 20, 25, 30, 34 au 39.

KUMBUKA: ili hii ifanyie kazi chanzo cha nguvu cha LED na Raspberry Pi lazima iwe na msingi sawa. Pia kumbuka kuwa haupaswi kuunganisha Volt + 12 (waya mwekundu) kwa Raspberry Pi.

Nguvu ya LED

Haupaswi kuwa na uwezo wa kuunganisha umeme wako wa volt 12 kwenye pipa la pipa

Taa zote kwenye ukanda wako wa LED zinapaswa kuwasha NYEUPE

Hatua ya 6: Msimbo wa Upande wa Seva

Inaendesha msimbo wa upande wa seva

cd /opt/com.jonhaydock/disco-pi

Sudo npm kuanza

Hii itaanzisha seva ya wavuti na kuanza kusikiliza maombi ya HTTPS na WSS.

Bandari chaguomsingi ni 443, lakini unaweza kubatilisha hii kwa kuweka ubadilishaji wa mazingira kabla ya kuanza nambari. Kwa mfano

kuuza nje DISCO_PI_PORT = 1443

Kamba yangu ya LED ina LED 150. Hizi zinadhibitiwa katika vikundi vya watatu. Hii inamaanisha kuwa siwezi kudhibiti kila LED mmoja mmoja, na ninahitaji kutuma habari ya kutosha kudhibiti 50.

Ikiwa LED yako ina zaidi au chini unaweza kubatilisha idadi ya LED ambazo unadhibiti kwa kupitisha parameta ili kuanza. Kwa mfano, ikiwa unaweza kudhibiti tu LED 10

Sudo npm kuanza 10

Nambari kuu ya seva inaweza kupatikana katika faili ya programu.js. Faili hii huanza seva ya wavuti ya HTTPS na pia inaongeza kwenye socket.io kusikiliza maombi ya wavuti kwenye bandari hiyo hiyo.

Ili kufikia wavuti, unapaswa kufungua kivinjari kwenye wavuti yako kuu (nimejaribu hii tu kwenye Chrome) na utumie anwani ya IP ya Raspberry Pi, n.k.

10.0.1.2/

Unaweza kujua anwani yako ya IP kutoka kwa laini ya amri ya Raspberry Pi.

ifconfig

Seva ya wavuti itatumia yaliyomo chini ya folda ya umma. Inakosea kuonyesha ukurasa wa index.html.

Inayo sehemu moja ya mwisho wa API - / api / sauti. Sehemu hii ya mwisho inatafuta faili yoyote chini ya folda ya umma / sauti na kurudisha orodha. Kwa mfano

Ili kuongeza muziki kama chaguo, nakili faili kwenye folda hii. Mimi binafsi hutumia Filezilla juu ya ssh. Folda ambayo unataka kuongeza faili ni / opt/com.jonhaydock/disco-pi/public/audio

Hatua ya 7: Msimbo wa Wavuti

Nambari ya Wavuti
Nambari ya Wavuti

Unapogonga wavuti unapaswa kuona kitu kama hiki.

Ukiona onyo la usalama hii ni kwa sababu tunatumia cheti cha SSL kilichotiwa saini. Unaweza kuipuuza au kuiongeza kama ubaguzi.

Juu ya kuchagua jina la faili, chanzo cha kipengee cha sauti cha HTML 5. itawekwa kwenye faili hiyo. Mara tu tayari, muziki utaanza kucheza. Mara wimbo ukimaliza muziki utasimama.

Ukichagua chaguo Hakuna, muziki utaacha kucheza.

Wakati unacheza faili ya muziki, ukurasa wa wavuti hutumia kiolesura cha AudioContext kuchambua muziki, ambao hutumwa kwa seva juu ya unganisho salama la wavuti.

Ujumbe ni aina ambayo socket.io kwenye seva imewekwa ili kusikiliza "ws2811". Inayo safu ya vitu 50, ambavyo ni kati ya 0 na 255.

"ws2811", {"0": 251, "1": 252, "2": 241, "3": 217, "4": 193, "5": 164, "6": 148, "7": 139, "8": 110, "9": 96, "10": 81, "11": 67, "12": 72, "13": 66, "14": 60, "15": 60, "16": 63, "17": 54, "18": 37, "19": 30, "20": 31, "21": 26, "22": 13, "23": 3, " 24 ": 10," 25 ": 7," 26 ": 6," 27 ": 0," 28 ": 0," 29 ": 0," 30 ": 1," 31 ": 8," 32 ": 12, "33": 3, "34": 2, "35": 2, "36": 0, "37": 0, "38": 0, "39": 0, "40": 0, "41": 0, "42": 0, "43": 0, "44": 0, "45": 0, "46": 0, "47": 0, "48": 0, " 49 ": 0}

Seva hutumia maktaba ya Asili ya Node RPI WS281x (kufunika maktaba ya Jeremy Garff ya WS281X) kubadilisha rangi za LED kwenye ukanda wa LED wa WS2811, kulingana na data iliyotumwa kupitia wavuti.

Hatua ya 8: Mwishowe

Image
Image

Unapaswa kuona LED kwenye rangi ya mabadiliko ya muziki na muziki, kulingana na uchambuzi wa Fast Fourier Transform uliofanywa kwenye ukurasa wa wavuti.

Natumahi kuwa unafurahiya hii. Nijulishe unafanya nini nayo!

KUMBUKA: Ikiwa una maswala yoyote

Kwa kuwa maktaba hii na chombo cha sauti cha Raspberry Pi kinatumia PWM, haziwezi kutumiwa pamoja.

Huenda ukahitaji kuorodhesha moduli ya kernel ya sauti ya Broadcom kwa kuunda faili /etc/modprobe.d/snd-blacklist.conf na

orodha nyeusi snd_bcm2835

Ikiwa kifaa cha sauti bado kinapakia baada ya kuorodheshwa, unaweza kuhitaji pia kutoa maoni kwenye faili ya / nk / moduli. Kwenye mifumo isiyo na kichwa unaweza pia kulazimisha sauti kupitia hdmi

Hariri usanidi.txt na uongeze:

hdmi_force_hotplug = 1

hdmi_force_edid_audio = 1

Kuwasha tena inahitajika ili mabadiliko haya yatekelezwe

Ilipendekeza: