विषयसूची:

Arduino कीबोर्ड जॉयस्टिक एक्सटेंडर बॉक्स और साउंड कंट्रोलर थिंग यूजिंग डीज: 8 स्टेप्स
Arduino कीबोर्ड जॉयस्टिक एक्सटेंडर बॉक्स और साउंड कंट्रोलर थिंग यूजिंग डीज: 8 स्टेप्स

वीडियो: Arduino कीबोर्ड जॉयस्टिक एक्सटेंडर बॉक्स और साउंड कंट्रोलर थिंग यूजिंग डीज: 8 स्टेप्स

वीडियो: Arduino कीबोर्ड जॉयस्टिक एक्सटेंडर बॉक्स और साउंड कंट्रोलर थिंग यूजिंग डीज: 8 स्टेप्स
वीडियो: AI Gesture Controlled 2-Wheel Drive Robot Using Machine Learning in PictoBlox | AI and ML Projects 2024, जुलाई
Anonim
Arduino कीबोर्ड जॉयस्टिक एक्सटेंडर बॉक्स और साउंड कंट्रोलर थिंग डीज का उपयोग कर रहा है
Arduino कीबोर्ड जॉयस्टिक एक्सटेंडर बॉक्स और साउंड कंट्रोलर थिंग डीज का उपयोग कर रहा है

टिंकरकाड प्रोजेक्ट्स »

क्यों

कुछ समय के लिए मैं इंटरफ़ेस तत्वों, या गेम और सिमुलेटर में अन्य छोटे कार्यों (एमएस फ्लाइट सिम, एलिट: डेंजरस, स्टार वार्स: स्क्वाड्रन, आदि) को नियंत्रित करने के लिए अपने कीबोर्ड में एक छोटा जॉयस्टिक जोड़ना चाहता हूं।

इसके अलावा, अभिजात वर्ग के लिए: खतरनाक, मैं बाहरी ऑडियो (संगीत में निर्मित, जबकि अच्छा है, काले रंग में कई घंटों के बाद दोहराव हो जाता है), इन-गेम ऑडियो और बाहरी वॉयसपैक समर्थन से वॉल्यूम स्तरों को मिलाने के लिए संघर्ष कर रहा हूं।

विंडोज बिल्ट-इन सोर्स मिक्सर 'ओके' है, लेकिन गेम के बीच में स्क्रीन और माउस-कंट्रोल स्लाइडर्स को स्विच करने में दर्द होता है। एक विस्तारित कीबोर्ड नियंत्रण बॉक्स होने से जाने का रास्ता लग रहा था। दीज वह समाधान है जो मैंने पाया।

कैसे

मैं हाल ही में Arduino के बारे में सीख रहा हूं, और reddit पर deej प्रोजेक्ट में आया हूं। ऐसा लग रहा था कि यह उन दोनों समस्याओं को एक आसान पैकेज में हल कर देगा। और यह मुझे निफ्टी 3डी केस डिजाइन और प्रिंट करने देगा।

दीज क्या है?

(साइट से) डीज विंडोज और लिनक्स पीसी के लिए **ओपन-सोर्स हार्डवेयर वॉल्यूम मिक्सर** है। यह आपको वास्तविक जीवन के स्लाइडर का उपयोग करने देता है (जैसे डीजे!) आप कर रहे हैं।

मेरा संस्करण

बॉक्स को छोटा रखने के लिए, मैंने स्लाइडर्स के बजाय नॉब्स (रोटरी लीनियर पोटेंशियोमीटर (बर्तन = रेसिस्टर्स)) का विकल्प चुना। कार्यात्मक रूप से वे वही काम करते हैं। वर्तमान और लोकप्रिय डीज डिज़ाइनों में जॉयस्टिक शामिल नहीं है, इसलिए यह डिज़ाइन हाइब्रिड का थोड़ा सा होगा। अन्यथा, यह एक बहुत ही सीधा-सीधा निर्माण है।

Deej एक Arduino Nano, Pro Micro या Uno के साथ काम करेगा, लेकिन Nano और Pro Micro को डेवलपर द्वारा 'आधिकारिक तौर पर अनुशंसित' किया जाता है। मैंने Arduino Pro Micro को चुना क्योंकि मुझे जॉयस्टिक चाहिए था, और Arduino Joystick लाइब्रेरी इसका समर्थन करती है। जब मैं जॉयस्टिक बटन के साथ मीडिया कीबोर्ड म्यूट फ़ंक्शन ('सॉफ्ट म्यूट' के बजाय) का उपयोग करना चाहता हूं, तो मैं Arduino कीबोर्ड लाइब्रेरी का भी उपयोग कर सकता हूं, लेकिन यह आगे सड़क से नीचे है।

चरण 1: आपूर्ति

आपूर्ति
आपूर्ति
आपूर्ति
आपूर्ति
आपूर्ति
आपूर्ति

डिब्बा

एसटीएल फाइलें डाउनलोड करें (टिंकरकाड में डिजाइन):

  • प्रूसा में संलग्न फाइलें (https://www.prsaprinters.org/)
  • थिंगविवर्स (जल्द ही आ रहा है)

हार्डवेयर (उत्पादन इकाई)

  • 1x Arduino प्रो माइक्रो
  • 4x 10k रोटरी (घुंडी) पोटेंशियोमीटर (रोटरी नियंत्रक नहीं, बर्तन का उपयोग करें)
  • 1x Arduino KY-023 जॉयस्टिक
  • 5 फीट स्क्रैप कैट 5 नेटवर्क केबल
  • 1x USB A से USB B माइक्रो केबल (USB A बड़ा वर्गाकार कनेक्टर है, USB B माइक्रो वह है जो Arduino Pro माइक्रो पर है)
  • 1x 5 मिमी लाल एलईडी
  • 1x 220 ओम रोकनेवाला

मेरे पास कुछ अतिरिक्त हिस्से थे इसलिए मैंने सोचा कि मैं चीजों का परीक्षण करने के लिए एक विकास इकाई का निर्माण करूंगा। बस चीजों को ब्रेडबोर्ड से जोड़ने से अंतिम चीज़ की कल्पना करना आसान हो गया।

  • 1x Arduino प्रो माइक्रो
  • 4x 10k रोटरी (घुंडी) पोटेंशियोमीटर (रोटरी नियंत्रक नहीं, बर्तन का उपयोग करें)
  • 1x क्षणिक पुश बटन स्विच (हार्ड रीसेट स्विच)
  • 1x USB A से USB B माइक्रो केबल (USB A बड़ा वर्गाकार कनेक्टर है, USB B माइक्रो वह है जो Arduino Pro माइक्रो पर है)
  • मिश्रित जम्पर तार
  • ब्रेड बोर्ड
  • 1x 5 मिमी लाल एलईडी
  • 1x 220 ओम रोकनेवाला

चरण 2: संलग्नक

संलग्नक
संलग्नक
संलग्नक
संलग्नक
संलग्नक
संलग्नक
संलग्नक
संलग्नक

परिरूप

मुझे डीज कम्युनिटी गैलरी में प्रोफाइल किए गए कुछ अन्य डिज़ाइन पसंद आए, इसलिए उन विशेषताओं पर आधारित जो मुझे पसंद आईं:

  • डिजाइन और प्रिंट करने में आसान
  • मेरे अन्य डेस्कटॉप बाह्य उपकरणों के रास्ते में न आएं
  • बाड़े को सुरक्षित करने के लिए स्क्रू या फास्टनरों का उपयोग न करें
  • कीबोर्ड से मिलता-जुलता डिज़ाइन सौंदर्य

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

मैंने संक्षेप में Fusion360 में डिजाइन करना शुरू किया, लेकिन यह नहीं जानता कि टिंकरकाड भी इतना बदल गया और वहां काम किया।

चूंकि मुझे एक स्क्रूलेस डिज़ाइन चाहिए था, इसलिए मैंने एक नेस्टिंग बॉक्स बनाया। पहले प्रोटोटाइप में हर चीज के लिए एक पतला ढक्कन और एक गहरा बॉक्स था। दूसरे डिज़ाइन ने उसे एक गहरे ढक्कन और एक उथले तल वाले बॉक्स के साथ बदल दिया। इसे केवल Arduino Pro Mini को पकड़ना था, इसलिए वास्तव में बड़े होने की आवश्यकता नहीं थी। उभरा हुआ चिह्न भी शामिल किया।

मेरे कीबोर्ड के बगल में जगह फिट करने के लिए तीसरे डिज़ाइन का आकार बदल दिया गया था।

छाप

मैंने पीएलए में बॉक्स को प्रिंट किया, ढक्कन के लिए ब्लैक से रेड में एक फिलामेंट/लेयर स्वैप प्रोग्रामिंग की, जहां आइकन बस दिखाई देने लगेंगे, और फिर से ढक्कन के शेष भाग के लिए ब्लैक में वापस आ जाएंगे।

एक समस्या

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

चरण 3: सर्किट

सर्किट
सर्किट
सर्किट
सर्किट
सर्किट
सर्किट

सबसे खराब वायरिंग जॉब

ठीक है, यह मेरा पहला पूर्ण-अप Arduino प्रोजेक्ट है। हां, मैंने पहले ब्रेडबोर्ड पर चीजें की हैं और इसका विकास संस्करण बनाने के लिए एक का उपयोग कर रहा हूं, लेकिन वास्तव में निर्माण और संयोजन के लिए, यह मेरा पहला है। तो मेरी वायरिंग बकवास लगती है। वहाँ, वह रास्ते से बाहर है:)

अपडेट करें: मैंने तब से एक और बनाया है और वायरिंग वहां बहुत अच्छी है। छवियां देखें:)

प्रोडक्शन यूनिट -- क्या जा रहा है

Arduino Pro Micro एक छोटा सा बोर्ड है और बेस में मोल्डेड सेक्शन में फिट होगा। नॉब्स और जॉयस्टिक ढक्कन में अपने-अपने छेद में फिट होते हैं। लेकिन कुछ भी माउंट न करें जब तक कि आपको सोल्डरिंग प्रतियोगिता न मिल जाए।

तारों

मेरे पास कोई उचित सर्किट तार नहीं था, लेकिन सॉलिड-कोर कैट 5 नेटवर्क केबल का एक बचा हुआ रोल था, इसलिए मैंने इसका इस्तेमाल किया। यह फंसे हुए सर्किट तार की तुलना में थोड़ा सख्त और शायद अधिक भंगुर है, लेकिन यह काम करता है।

घटकों को उनकी अंतिम बढ़ते स्थिति के सन्निकटन में रखते हुए, मैंने दूरी का अनुमान लगाया, प्रत्येक तार के लिए, स्लैक आदि के लिए थोड़ा और जोड़ा, फिर तार को काटा और ट्रिम किया। मैंने बहुत ढील दी है।

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

व्यक्तिगत बर्तन। एनालॉग लाइनें (पीला) A0 - A3 पिन करने के लिए दौड़ा। जॉयस्टिक लाइन्स (ऑरेंज), एनालॉग भी, I/O पिन 8 और 9 तक चलती हैं। इन्हें Arduino कोड में A8 और A9 के रूप में एनालॉग के रूप में नामित करना होगा।

जॉयस्टिक स्विच पिन (नीला) 7 पिन करने के लिए दौड़ा। यह कोड में एक डिजिटल पिन होगा।

इन्सुलेशन

चूंकि इस कड़े तार को एक छोटी सी जगह में भरा जा रहा है, इसलिए मैंने अपने सोल्डर कनेक्शन को गर्म-पिघल गोंद के स्वस्थ गुड़िया के साथ इन्सुलेट करने का विकल्प चुना। फिर सब कुछ ठीक कर दिया और Arduino उदाहरण एनालॉग इनपुट कोड के संस्करण का उपयोग करके बोर्ड और बर्तनों पर एक साधारण परीक्षण चलाया - सभी बर्तनों को पढ़ने के लिए संशोधित किया गया।

दूसरा संस्करण

ऊपर दी गई अंतिम दो छवियां मेरे द्वारा बनाए जा रहे अगले बॉक्स को दिखाती हैं। इसमें म्यूट के लिए 5 नॉब्स और एक क्षणिक पुश बटन होगा। कोई जॉयस्टिक नहीं। एक ही आकार का डिब्बा।

चरण 4: हार्डवेयर को खत्म करना

हार्डवेयर खत्म करना
हार्डवेयर खत्म करना

जब तक मैंने जॉयस्टिक को स्थापित किया, मुझे एहसास हुआ कि इसके बोर्ड और प्रो माइक्रो पर छोड़े गए पिन हेडर के बीच बहुत अधिक मंजूरी नहीं थी।

पिन हेडर को थोड़ा सावधानी से झुकने के बाद, और गर्म पिघल गोंद (इन्सुलेशन के लिए) के पुन: आवेदन के बाद, बाड़े को ठीक से बंद कर दिया गया।

बर्तन स्थापित करना बिना किसी रोक-टोक के चला गया।

फिर से तारों के साथ

ठोस कोर तार थोड़े कड़े होते हैं, और यदि कई बार फ्लेक्स किए जाते हैं तो भंगुर हो सकते हैं, इसलिए ध्यान से उन्हें उपलब्ध स्थान में (बिना नुकीले कोनों के) मोड़ें। मेरे कुछ बहुत लंबे थे और कुछ अतिरिक्त तह की आवश्यकता थी।

एक बार सब कुछ ठीक हो जाने के बाद, बस आधार को शीर्ष पर फिट करें और आपको हार्डवेयर के साथ समाप्त होना चाहिए…।

लेकिन रुकिए, और भी बहुत कुछ है

बेशक, कुछ हफ्तों के उपयोग के बाद, मैंने फैसला किया कि मुझे यह बताने के लिए एक संकेतक की आवश्यकता है कि सॉफ्ट-कोडेड MUTE फ़ंक्शन की स्थिति क्या है।

एलईडी कार्यक्षमता में जोड़ने के लिए कोड को संपादित करने के बाद (अगला भाग देखें), मैंने जल्दी से एलईडी / तारों / रोकनेवाला को मिलाया और उन्हें बोर्ड से जोड़ा।

मैंने मामले के शीर्ष के माध्यम से छेद को ड्रिल करने के लिए और अधिक समय बिताया क्योंकि मैं शीर्ष खत्म से शादी नहीं करना चाहता था। मैंने एक केंद्र स्थान को चिह्नित किया, इसे डेंट किया, फिर छेद बनाने के लिए एक ड्रिल बिट को हाथ से काता।

अतिरिक्त सावधानी से फाइलिंग ने छेद को साफ कर दिया और यह सुनिश्चित करने के लिए एक अच्छा तंग प्रेस-फिट सुनिश्चित किया कि एलईडी शीर्ष सतह से बहुत दूर न निकले।

चरण 5: सॉफ्टवेयर

सॉफ्टवेयर
सॉफ्टवेयर
सॉफ्टवेयर
सॉफ्टवेयर
सॉफ्टवेयर
सॉफ्टवेयर

अवलोकन

तो, यह एक दो भाग प्रक्रिया है।

  1. प्राप्त करें और समझें कि डीज कैसे काम करता है और Config.yaml फ़ाइल को संपादित करें
  2. हार्डवेयर और वांछित सुविधाओं से मेल खाने के लिए Arduino कोड संपादित करें
  3. Arduino जॉयस्टिक लाइब्रेरी प्राप्त करें

मेरे मामले में, मुझे ये सुविधाएँ चाहिए थीं:

  • नॉब्स जो स्तरों को नियंत्रित करते हैं (माइक और आउटपुट)
  • म्यूट स्विच
  • अनुप्रयोग उपयोग के लिए विंडोज़ द्वारा मान्यता प्राप्त 2 अक्ष जॉयस्टिक

स्तरों

डीज पहले बिंदु के आते ही काफी ध्यान रखता है। मैंने इस कार्यक्षमता में बदलाव नहीं किया है

म्यूट स्विच

मैंने पहले ही तय कर लिया था कि मैं जॉयस्टिक में प्रेस/स्विच का उपयोग एक कार्यात्मक म्यूट बटन के रूप में करने जा रहा हूं।

जब आप कोड की जांच करते हैं, तो आप देखेंगे कि मैंने 'सॉफ्ट' म्यूट का उपयोग करने के लिए (शुरू में) चुना है - जब बटन दबाया जाता है, तो एमआईसी वॉल्यूम शून्य हो जाता है (और एलईडी जलाया जाता है)। जब इसे फिर से दबाया जाता है, तो एमआईसी वॉल्यूम अपनी पिछली सेटिंग पर वापस आ जाता है और एलईडी बुझ जाती है।

आखिरकार मैं विस्तारित मीडिया कीबोर्ड कोड सेट के माध्यम से म्यूट स्थिति को चालू करने के लिए Arduino कीबोर्ड लाइब्रेरी को लागू करने पर विचार करूंगा।

जॉयस्टिक कार्यान्वयन

यह सुनिश्चित करने के लिए Arduino जॉयस्टिक लाइब्रेरी के उपयोग की आवश्यकता है कि जॉयस्टिक को विंडोज़ द्वारा एक छिपाई डिवाइस के रूप में पहचाना जाता है और परिणामस्वरूप किसी भी गेम/एप्लिकेशन द्वारा।

जब कोडिंग की बात आती है तो मैं थोड़ा नोब हूं और जॉयस्टिक लाइब्रेरी दस्तावेज को वास्तविक कार्यान्वयन पक्ष पर थोड़ा सा स्पैस पाया - लेकिन थोड़ा सा ध्यान केंद्रित करने से मुझे अन्य उदाहरणों में मदद मिली जिससे मुझे यह समझने में मदद मिली कि क्या हो रहा है। विवरण के लिए अंत में संसाधन अनुभाग देखें।

मुझे केवल X/Y पिनों की पहचान करनी थी, उनकी स्थिति को पढ़ना था और उसे जॉयस्टिक पुस्तकालय में भेजना था। Arduino विंडोज़ के लिए लियोनार्डो के रूप में दिखाई दिया, और जॉयस्टिक डिवाइस के रूप में ठीक से कॉन्फ़िगर किया गया था।

मैं इसे अपने मौजूदा HOTAS सेटअप के साथ एलीट डेंजरस में स्थापित करने में सक्षम था और जॉयस्टिक ने चीजों को ठीक से नियंत्रित किया और HOTAS के साथ संघर्ष नहीं किया। यह स्टार वार्स: स्क्वाड्रन में भी अच्छी तरह से काम करता है - मैंने इसे युद्ध के दौरान ढाल स्थापित करने के लिए त्वरित टॉगल के रूप में सेट किया है।

मेरे जॉयस्टिक सेटअप के साथ काम करने वाली फ़ाइलें

मैंने अपनी वर्तमान (अक्टूबर 2020) फाइलें कोडपाइल पर अपलोड कर दी हैं।

  • Arduino कोड (.ino फ़ाइल)
  • दीज config.yaml

चरण 6: अंत

समाप्त
समाप्त

खैर, यह हो गया है। यह काम करता है और मैं इससे खुश हूं कि यह कैसे एक साथ आया। और मैंने हार्डवेयर डिज़ाइन, एकीकरण और Arduino प्रोग्रामिंग के बारे में कुछ और सीखा।

चरण 7: परिशिष्ट..दम..दम

परिशिष्ट..दम..दम
परिशिष्ट..दम..दम

वीएलसी - उस भयानक ऑडियो और वीडियो प्लेयर में थोड़ी विषमता होती है, जहां बाहरी रूप से नियंत्रित होने पर वॉल्यूम स्तर 0% से 27% ish तक बढ़ जाता है। केवल डीज जैसे बाहरी नियंत्रणों के साथ, इन-ऐप इंटरफ़ेस वॉल्यूम नियंत्रण का उपयोग करके स्तर को समायोजित करते समय ऐसा नहीं होता है।

डीज डेवलपर को जल्दी से एक इन-वीएलसी वर्कअराउंड मिला जो काम करता है, ऊपर की छवि देखें:

"…यदि आप इस "ट्रैकिंग" व्यवहार को अक्षम करना चाहते हैं तो आप वीएलसी के ऑडियो आउटपुट मॉड्यूल को बदलकर ऐसा कर सकते हैं। मैंने यहां अपने प्रयासों में डायरेक्टएक्स का उपयोग किया है। परिवर्तन को प्रभावी होने के लिए आपको वीएलसी को पुनरारंभ करना होगा। (आप अभी भी एक विंडोज़ ऑडियो सत्र है और इसे डीज के माध्यम से नियंत्रित करने में सक्षम हो, यह केवल वीएलसी वॉल्यूम बार को इसके साथ आगे बढ़ने से रोकेगा)"

चरण 8: अतिरिक्त संसाधन

अतिरिक्त संसाधन
अतिरिक्त संसाधन

शक्तिशाली गूग के माध्यम से मिला, किसी विशेष क्रम में सूचीबद्ध नहीं …

  • Arduino जॉयस्टिक लाइब्रेरी (v2) - जॉयस्टिक को एकीकृत करने के लिए आवश्यक
  • स्पार्कफुन प्रो माइक्रो हुकअप गाइड - इस Arduino के बारे में अच्छा संसाधन
  • डीज - वह सॉफ्टवेयर जो नॉब्स को चलाता है
  • यूएसबी कनेक्टर प्रकार - कौन जानता था कि इतने सारे प्रकार थे?
  • Arduino Pro माइक्रो एनालॉग पिनआउट्स
  • Arduino लियोनार्डो गेमिंग जॉयस्टिक - लियोनार्डो प्रो माइक्रो के समान है, केवल बड़ा
  • Arduino Pro Micro (क्लोन) पोर्ट का पता नहीं चला (समाधान) - जब आप अपने प्रो माइक्रो को ईंट करते हैं (मैंने किया)
  • Arduino लियोनार्डो/माइक्रो एक गेम कंट्रोलर/जॉयस्टिक के रूप में
  • म्यूट करने के लिए मल्टीमीडिया कुंजी का उपयोग करने का उदाहरण - HID प्रोजेक्ट लाइब्रेरी का उपयोग करना
  • मीडिया को रोकने / चलाने के लिए HID प्रोजेक्ट लाइब्रेरी उदाहरण कोड
  • गेमपैड नियंत्रक दिखा रहा एक और कोड उदाहरण।
  • ArduinoGamingController_updated - जॉयस्टिक लाइब्रेरी के उपयोग का अच्छा कोड विवरण
  • LED रेसिस्टर कैलकुलेटर चीज़ - यह पता लगाने के लिए कि आपको अपने प्रोजेक्ट में कितने बड़े रेसिस्टर की आवश्यकता होगी
  • चिह्न पुस्तकालय - flaticon.com - घुंडी के ऊपर उपयोग की गई छवियों का स्रोत
  • एक और रेसिस्टर कलर डिकोडर - एक रंग और वायोला पर क्लिक करें!

सिफारिश की: