Orodha ya maudhui:
- Hatua ya 1: Vifaa
- Hatua ya 2: Kuweka Raspberry Pi
- Hatua ya 3: Kuweka Msimbo wa Mfano
- Hatua ya 4: Unda Cheti cha SSL Iliyotiwa Saini
- Hatua ya 5: Kuunganisha vifaa
- Hatua ya 6: Msimbo wa Upande wa Seva
- Hatua ya 7: Msimbo wa Wavuti
- Hatua ya 8: Mwishowe
Video: Disco-pi: Hatua 8 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:54
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
- Raspberry Pi - Nilitumia Raspberry Pi 2B ambayo nilikuwa nimelala karibu, lakini unaweza kupata Raspberry Pi 3 Starter Kit kwa karibu CAD 100
- 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
- Pipa Jack Kiunganishi - Nilinunua moja kutoka duka langu la elektroniki, kitu kama hiki. Hakikisha tu ikiwa inafaa usambazaji wako wa umeme
- 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
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
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
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:
Chapeo ya Disco ya Kuchapishwa ya 3D!: Hatua 11 (na Picha)
Chapeo ya Disco ya Kuchapishwa ya 3D! Iliyoongozwa na kofia ya kawaida ya Daft Punk 'Thomas'. Washa chumba na uwe na wivu wa marafiki wako wote na kofia hii ya kushangaza ya Arduino yenye nguvu ya disco! Utahitaji upatikanaji wa printa ya 3D na chuma cha kutengeneza ili kukamilisha mradi huu. Ikiwa unataka t
Disco inayobebeka V2 -Sound Controlled LED's: 11 Hatua (na Picha)
Disco Portable V2 -Sound Controlled LED's: Nimetoka mbali na safari yangu ya umeme tangu nilipofanya disco yangu ya kwanza inayoweza kubebeka. Katika muundo wa asili nilibadilisha mzunguko kwenye bodi ya mfano na kufanikiwa kujenga disco safi, ndogo ya mfukoni. Wakati huu nilibuni PCB yangu mwenyewe
Sanduku la Disco iliyoongozwa: Hatua 7 (na Picha)
Sanduku la Disco iliyoongozwa: Jinsi ya Kufanya Sanduku lako la Disco Lililoongozwa
Jedwali la Disco ya Mwangaza: Hatua 27 (na Picha)
Jedwali la Disco ya Mwangaza: Kila ghorofa inahitaji fanicha nzuri, kwa nini usijitengeneze? Jedwali hili la kahawa lina vipande vya LED ambavyo vinaangazia mifumo na rangi anuwai inayoweza kubadilishwa. Taa zinadhibitiwa na Arduino na kitufe kilichofichwa, na jambo lote
Disco Organizer Desktop: Hatua 8 (na Picha)
Disco Organizer Desktop: Vifaa: triplex, unene: 3mm Ni sahani ngapi za mbao inategemea ukubwa wa lasercutter yako … rekebisha faili kwenye saizi ya kiwango cha juu cha mbao … labda unahitaji sahani zaidi ya 1 (weka hilo akilini). 6 x flash leds (nimetumia 7 color flash leds) ava