विषयसूची:

डिस्को-पीआई: 8 कदम (चित्रों के साथ)
डिस्को-पीआई: 8 कदम (चित्रों के साथ)

वीडियो: डिस्को-पीआई: 8 कदम (चित्रों के साथ)

वीडियो: डिस्को-पीआई: 8 कदम (चित्रों के साथ)
वीडियो: " I Am A Disco Dancer" Full Song | Golmaal 3 | Feat. Mithun Chakraborty 2024, जुलाई
Anonim
डिस्को-पीआई
डिस्को-पीआई

यह निर्देशयोग्य दिखाता है कि वेब ब्राउज़र से बजाए जाने वाले संगीत के आधार पर रंगीन एलईडी पट्टी को नियंत्रित करने के लिए रास्पबेरी पाई का उपयोग कैसे किया जाता है।

यह दिखाता है कि HTTPS पर Node.js का उपयोग करके एक बुनियादी वेबसाइट कैसे बनाई जाती है और WSS (सिक्योर वेबसोकेट) पर socket.io का उपयोग किया जाता है।

वेबसाइट का एक ही पृष्ठ है जिसमें एक बहुत ही बुनियादी लेआउट है। वेबपेज संगीत फ़ाइलों के साथ एक ड्रॉप डाउन सूची को पॉप्युलेट करता है, जो सर्वर पर सार्वजनिक/ऑडियो फ़ोल्डर में स्थित होते हैं। सूची में एक विकल्प का चयन करने से HTML 5 ऑडियो तत्व का उपयोग करके वेबपेज में संगीत फ़ाइल चलती है। संगीत फ़ाइल चलाते समय, वेबपृष्ठ संगीत का विश्लेषण करने के लिए ऑडियोकॉन्टेक्स्ट इंटरफ़ेस का उपयोग करता है, जिसे बाद में एक सुरक्षित वेबसोकेट कनेक्शन पर सर्वर पर भेजा जाता है।

रास्पबेरी पाई पर चलने वाला सर्वर वेबसोकेट के माध्यम से भेजे गए डेटा के आधार पर WS2811 LED स्ट्रिप पर LED के रंग बदलने के लिए Node RPI WS281x नेटिव लाइब्रेरी (जेरेमी गारफ की WS281X लाइब्रेरी को लपेटकर) का उपयोग करता है।

उदाहरण कोड यहां पाया जा सकता है: डिस्को-पीआई

चरण 1: उपकरण

  1. रास्पबेरी पाई - मैंने एक रास्पबेरी पाई 2 बी का उपयोग किया था जिसे मैंने चारों ओर बिछाया था, लेकिन आप लगभग सीएडी 100 के लिए रास्पबेरी पाई 3 स्टार्टर किट प्राप्त कर सकते हैं
  2. WS2811 LED स्ट्रिप - मैं ALITOVE 16.4ft 150 पिक्सल WS2811 के साथ खेल रहा था। यह लगभग CAD 45-50. के लिए एक नियंत्रक और बिजली की आपूर्ति के साथ आता है
  3. बैरल जैक कनेक्टर - मैंने अपने स्थानीय इलेक्ट्रॉनिक्स की दुकान से एक खरीदा, कुछ इस तरह। बस सुनिश्चित करें कि आपकी बिजली आपूर्ति फिट बैठती है
  4. जम्पर कनेक्टर्स / वायर - मेरे पास कुछ फीमेल टू मेल कनेक्टर केबल और कुछ 22 गेज सॉलिड हुक अप वायर पड़े थे

चरण 2: रास्पबेरी पाई की स्थापना

ऑपरेटिंग सिस्टम

मैं आमतौर पर नवीनतम रास्पियन बिल्ड का उपयोग करता हूं। छवि डाउनलोड करें और इसे एसडी कार्ड में लिखें। यदि आप Windows कंप्यूटर का उपयोग कर रहे हैं, तो आप छवि को SD कार्ड में लिखने के लिए Win32 डिस्क इमेजर का उपयोग कर सकते हैं।

Node.js

Node.js का नवीनतम संस्करण स्थापित करें। लेखन के समय मैं 8.9.1. का उपयोग कर रहा हूँ

कर्ल-एसएल https://deb.nodesource.com/setup_8.x | सुडो-ई बैश -

sudo apt- नोडज स्थापित करें

गिट स्थापित करें

sudo apt-git स्थापित करें

चरण 3: उदाहरण कोड सेट करना

उदाहरण कोड क्लोन करें

1. में स्थापित करने के लिए एक आधार फ़ोल्डर सेट करें

सीडी / ऑप्ट

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

2. उदाहरण को क्लोन करें git रिपॉजिटरी

गिट क्लोन

या

git क्लोन [email protected]:haydockjp/disco-pi.git

3. निर्भरता स्थापित करें

सीडी डिस्को-पीआई

एनपीएम इंस्टॉल

इसमें 2-3 मिनट लग सकते हैं

चरण 4: एक स्व-हस्ताक्षरित एसएसएल प्रमाणपत्र बनाएं

1. एक निजी कुंजी फ़ाइल बनाएँ

सीडी /ऑप्ट/com.jonhaydock/disco-pi/certs

ओपनएसएल जेनर्सा -आउट डिस्को-पीआई-की.पेम 2048

2. एक सीएसआर बनाएं (सर्टिफिकेट साइनिंग रिक्वेस्ट)

ओपनएसएल अनुरोध -नया -कुंजी डिस्को-पीआई-की.पेम -आउट डिस्को-पीआई-सीएसआर.पीईएम

इस बिंदु पर आपको प्रमाणपत्र अनुरोध के लिए कुछ जानकारी के लिए कहा जाएगा। चूंकि यह एक स्व-हस्ताक्षरित प्रमाणपत्र है, यह आप पर निर्भर करता है कि आप विवरण को कितनी सटीकता से भरते हैं। यहाँ एक उदाहरण है

देश का नाम (2 अक्षर कोड) [AU]:CA

राज्य या प्रांत का नाम (पूरा नाम) [कुछ-राज्य]: ब्रिटिश कोलंबिया इलाके का नाम (जैसे, शहर) : वैंकूवर संगठन का नाम (जैसे, कंपनी) [इंटरनेट विजेट्स प्राइवेट लिमिटेड]: डिस्को पाई संगठनात्मक इकाई का नाम (जैसे, अनुभाग) : सामान्य नाम (जैसे सर्वर FQDN या आपका नाम) : डिस्को-पीआई ईमेल पता :[email protected] एक चुनौती पासवर्ड : एक वैकल्पिक कंपनी का नाम :

इस उदाहरण में, चैलेंज पासवर्ड को खाली छोड़ने के लिए बस रिटर्न दबाएं

3. प्रमाण पत्र जनरेट करें

opensl x509 -req -days 1095 -in डिस्को-pi-csr.pem -signkey डिस्को-pi-key.pem -आउट डिस्को-pi-cert.pem

4. अतिरिक्त सुरक्षा के लिए हम एक डिफी हेलमैन पैरामीटर्स फ़ाइल भी बनाएंगे

opensl dhparam -out dh_2048.pem 2048

इसमें 15-20 मिनट लग सकते हैं

चरण 5: हार्डवेयर को जोड़ना

हार्डवेयर को जोड़ना
हार्डवेयर को जोड़ना
हार्डवेयर को जोड़ना
हार्डवेयर को जोड़ना
हार्डवेयर को जोड़ना
हार्डवेयर को जोड़ना
हार्डवेयर को जोड़ना
हार्डवेयर को जोड़ना

एलईडी पट्टी को शक्ति देना

एलईडी पट्टी 12 वोल्ट द्वारा संचालित है। रास्पबेरी पाई केवल 3.3v या 5v आउटपुट करने में सक्षम है और इतने सारे एल ई डी ड्राइव करने के लिए आवश्यक एएमपीएस के पास कहीं भी आउटपुट करने में सक्षम नहीं है।

रास्पबेरी पाई के लिए 12 वोल्ट बिजली की आपूर्ति को कनेक्ट नहीं करना महत्वपूर्ण है।

मेरी पट्टी में अतिरिक्त बिजली के तार भी थे जो दोनों छोर पर पट्टी से जुड़े थे। मेरा सुझाव है कि आप इन्हें टेप कर लें ताकि वे आपके किसी अन्य उपकरण से संपर्क न करें।

अगले चरणों को अपने जोखिम पर पूरा करें। मैं किसी भी चीज़ की ज़िम्मेदारी नहीं लेता जो गलत हो सकती है।

एलईडी स्ट्रिप

मेरी एलईडी पट्टी में तीन तार हैं:

लाल - +12 वोल्ट

काला - जमीन

हरा - डेटा

नोट: एक दिन और एक डाउट है - डेटा इन और डेटा आउट। सुनिश्चित करें कि आप दीन कहने वाली एलईडी पट्टी के अंत के साथ काम कर रहे हैं।

यह सुनिश्चित करना कि बैरल जैक बिजली की आपूर्ति से जुड़ा नहीं है

1. लाल तार को एलईडी पट्टी से बैरल जैक के + किनारे से कनेक्ट करें।

मैंने एक सफेद 22 गेज के हुक अप तार का इस्तेमाल किया।

तार को बैरल जैक में + स्लॉट में रखें और इसे जगह में पेंच करें।

तार के दूसरे छोर को एलईडी पर सॉकेट में दबाएं। सुनिश्चित करें कि आप लाल तार से जुड़ रहे हैं।

2. ब्लैक वायर को LED स्ट्रिप से - बैरल जैक के साइड से कनेक्ट करें।

मैंने एक काले 22 गेज के हुक अप तार का इस्तेमाल किया।

तार को बैरल जैक में - स्लॉट में रखें। इस बिंदु पर कनेक्टर केबल्स (फोटो में भूरे रंग के तार) में से एक के पुरुष छोर को एक ही छेद में रखें और उन दोनों को जगह में पेंच करें।

काले तार के दूसरे सिरे को एलईडी के सॉकेट में डालें।

सुनिश्चित करें कि आप काले तार से जुड़ रहे हैं।

3. एलईडी पट्टी से हरे तार को कनेक्ट करें

महिला से पुरुष कनेक्टर केबल में से एक को लें। मेरी तस्वीरों में यह हरे रंग का तार है।

पुरुष सिरे को हरे तार के साथ एलईडी सॉकेट में रखें।

यह डेटा केबल है।

रास्पबेरी पाई

1. ग्रीन कनेक्टर केबल लें और इसे रास्पबेरी पाई GPIO से कनेक्ट करें।

आपको इसे PCM_CLK (पिन 12 / GPIO 18) से कनेक्ट करना होगा

2. ब्लैक कनेक्टर केबल लें और इसे रास्पबेरी पाई GPIO से कनेक्ट करें।

आपको इसे किसी एक आधार से जोड़ने की आवश्यकता है। मेरा सुझाव है कि आप पिन 14 का उपयोग करें, लेकिन आप पिन 6, 9, 20, 25, 30, 34 या 39 का भी उपयोग कर सकते हैं।

नोट: इसके लिए एलईडी पावर स्रोत और रास्पबेरी पाई को काम करने के लिए एक सामान्य आधार होना चाहिए। यह भी ध्यान दें कि आपको 12 वोल्ट + (लाल तार) को रास्पबेरी पाई से नहीं जोड़ना चाहिए।

एलईडी पावर

आप अपनी 12 वोल्ट बिजली की आपूर्ति को बैरल जैक से कनेक्ट करने में सक्षम नहीं होना चाहिए

आपकी एलईडी पट्टी पर सभी एल ई डी अब सफेद होना चाहिए

चरण 6: सर्वर साइड कोड

सर्वर साइड कोड चलाना

सीडी /ऑप्ट/com.jonhaydock/disco-pi

सुडो एनपीएम स्टार्ट

यह वेब सर्वर शुरू करेगा और HTTPS और WSS अनुरोधों को सुनना शुरू कर देगा।

डिफ़ॉल्ट पोर्ट 443 है, लेकिन आप कोड शुरू करने से पहले एक पर्यावरण चर सेट करके इसे ओवरराइड कर सकते हैं। उदाहरण के लिए

निर्यात DISCO_PI_PORT=1443

मेरी एलईडी पट्टी में 150 एलईडी हैं। इन्हें तीन के समूहों में नियंत्रित किया जाता है। इसका मतलब है कि मैं प्रत्येक एलईडी को व्यक्तिगत रूप से नियंत्रित नहीं कर सकता, और मुझे 50 को नियंत्रित करने के लिए पर्याप्त जानकारी भेजने की आवश्यकता है।

यदि आपके एलईडी में कम या ज्यादा है, तो आप उन एल ई डी की संख्या को ओवरराइड कर सकते हैं जिन्हें आप स्टार्ट अप के लिए एक पैरामीटर में पास करके नियंत्रित कर रहे हैं। उदाहरण के लिए, यदि आप केवल 10 LED को नियंत्रित कर सकते हैं

सुडो एनपीएम प्रारंभ 10

मुख्य सर्वर कोड app.js फ़ाइल में पाया जा सकता है। यह फ़ाइल HTTPS वेब सर्वर को प्रारंभ करती है और उसी पोर्ट पर websocket अनुरोधों को सुनने के लिए socket.io पर भी जोड़ती है।

वेबसाइट तक पहुंचने के लिए, आपको अपने मुख्य कंप्यूटर पर एक वेब ब्राउज़र खोलना चाहिए (मैंने केवल क्रोम में इसका परीक्षण किया है) और रास्पबेरी पाई के आईपी पते का उपयोग करें, उदा।

10.0.1.2/

आप रास्पबेरी पाई कमांड लाइन से अपना आईपी पता पता कर सकते हैं।

ifconfig

वेबसर्वर सार्वजनिक फ़ोल्डर के तहत किसी भी सामग्री की सेवा करेगा। यह डिफ़ॉल्ट रूप से index.html पेज को प्रदर्शित करता है।

इसका एक एपीआई अंत बिंदु है - /api/audio. यह अंतिम बिंदु सार्वजनिक/ऑडियो फ़ोल्डर के अंतर्गत किसी भी फाइल की तलाश करता है और सूची देता है। उदाहरण के लिए

["GYAKO.mp3", "हवाना (करतब। यंग ठग)। mp3", "Queen_Bohemian_Rhapsody.mp3", "सेट इट ऑल फ्री.mp3", "दिस इज़ व्हाट यू केम फॉर (करतब। रिहाना)। mp3"]

एक विकल्प के रूप में संगीत जोड़ने के लिए, इस फ़ोल्डर में फ़ाइलों की प्रतिलिपि बनाएँ। मैं व्यक्तिगत रूप से एसएसएच पर फाइलज़िला का उपयोग करता हूं। जिस फ़ोल्डर में आप फ़ाइलें जोड़ना चाहते हैं वह है /opt/com.jonhaydock/disco-pi/public/audio

चरण 7: वेबसाइट कोड

वेबसाइट कोड
वेबसाइट कोड

जब आप वेबसाइट पर हिट करते हैं तो आपको कुछ इस तरह दिखना चाहिए।

यदि आपको कोई सुरक्षा चेतावनी दिखाई देती है, तो इसका कारण यह है कि हम स्व-हस्ताक्षरित SSL प्रमाणपत्र का उपयोग कर रहे हैं। आप इसे अनदेखा कर सकते हैं या इसे अपवाद के रूप में जोड़ सकते हैं।

फ़ाइल नाम चुनने पर, HTML 5 ऑडियो तत्व का स्रोत। उस फाइल पर सेट हो जाएगा। एक बार तैयार होने के बाद, संगीत बजना शुरू हो जाएगा। गाना खत्म होते ही म्यूजिक बंद हो जाएगा।

यदि आप कोई नहीं विकल्प चुनते हैं, तो संगीत बजना बंद हो जाएगा।

संगीत फ़ाइल चलाते समय, वेबपृष्ठ संगीत का विश्लेषण करने के लिए ऑडियोकॉन्टेक्स्ट इंटरफ़ेस का उपयोग करता है, जिसे बाद में एक सुरक्षित वेबसोकेट कनेक्शन पर सर्वर पर भेजा जाता है।

संदेश वह प्रकार है जिसे "ws2811" सुनने के लिए सर्वर पर socket.io स्थापित किया गया है। इसमें 50 तत्वों की एक सरणी होती है, जो 0 और 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}

वेबसोकेट के माध्यम से भेजे गए डेटा के आधार पर सर्वर WS2811 LED स्ट्रिप पर LED के रंग बदलने के लिए Node RPI WS281x नेटिव लाइब्रेरी (जेरेमी गारफ की WS281X लाइब्रेरी को लपेटते हुए) का उपयोग करता है।

चरण 8: अंत में

Image
Image

वेब पेज में किए गए फास्ट फूरियर ट्रांसफॉर्म विश्लेषण के आधार पर आपको संगीत के साथ स्ट्रिप चेंज कलर पर एल ई डी देखना चाहिए।

मुझे आशा है कि आप इसका आनंद लेंगे। मुझे बताएं कि आप इसके साथ क्या करते हैं!

नोट: यदि आपको कोई समस्या है

चूंकि यह लाइब्रेरी और ऑनबोर्ड रास्पबेरी पाई ऑडियो दोनों पीडब्लूएम का उपयोग करते हैं, उन्हें एक साथ उपयोग नहीं किया जा सकता है।

आपको /etc/modprobe.d/snd-blacklist.conf फ़ाइल बनाकर ब्रॉडकॉम ऑडियो कर्नेल मॉड्यूल को ब्लैकलिस्ट करने की आवश्यकता हो सकती है

ब्लैकलिस्ट snd_bcm2835

यदि ऑडियो डिवाइस ब्लैकलिस्ट करने के बाद भी लोड हो रहा है, तो आपको इसे /etc/modules फ़ाइल में टिप्पणी करने की भी आवश्यकता हो सकती है। हेडलेस सिस्टम पर आपको hdmi. के माध्यम से ऑडियो को बाध्य करने की आवश्यकता हो सकती है

config.txt संपादित करें और जोड़ें:

hdmi_force_hotplug=1

hdmi_force_edid_audio=1

इस परिवर्तन को प्रभावी करने के लिए एक रिबूट की आवश्यकता है

सिफारिश की: