हमने पहले यह समझने के लिए कि यह कैसे काम करता है और इसके बाएं, दाएं, ऊपर और नीचे आंदोलन पर चार एल ई डी को नियंत्रित करने के लिए अरुडिनो यूएनओ के साथ जॉयस्टिक को हस्तक्षेप किया। इस परियोजना में हम गेमपेड या गेम कंट्रोलर के समान ही जॉयस्टिक का उपयोग किसी भी कंप्यूटर गेम को खेलने के लिए करेंगे जिसमें बाएं, दाएं, ऊपर और नीचे के आंदोलनों की आवश्यकता होती है। ऐसे खेल खेलने के लिए जिनमें अधिक नियंत्रण विकल्प की आवश्यकता होती है, दो या दो से अधिक जॉयस्टिक का उपयोग किया जा सकता है। यहाँ हम Arduino लियोनार्डो का उपयोग गेम कंट्रोलर के रूप में जॉयस्टिक को इंटरफ़ेस करने के लिए करेंगे। Arduino Leonardo का Uno पर यह फायदा है कि हम इस पर USB ड्राइवर स्थापित कर सकते हैं और इसे कनेक्ट होने पर कंप्यूटर द्वारा माउस, कीबोर्ड या जॉयस्टिक के रूप में पहचाना जा सकता है।
अवयव आवश्यक
- अरुडिनो लियोनार्डो
- दोहरी अक्ष XY जॉयस्टिक मॉड्यूल
- Arduino IDE
- तारों को जोड़ना
अरुडिनो लियोनार्डो
इस परियोजना के लिए हम Arduino Leonardo का उपयोग कर रहे हैं, यह ATmega32u4 पर आधारित एक माइक्रोकंट्रोलर बोर्ड है। इसमें 20 डिजिटल इनपुट / आउटपुट पिन हैं (जिनमें से 7 को PWM आउटपुट के रूप में और 12 को एनालॉग इनपुट के रूप में इस्तेमाल किया जा सकता है), एक 16 मेगाहर्ट्ज क्रिस्टल ऑसिलेटर, एक माइक्रो यूएसबी कनेक्शन, एक पावर जैक, एक ICSP हेडर और एक रीसेट बटन। इसमें माइक्रोकंट्रोलर का समर्थन करने के लिए आवश्यक सब कुछ शामिल है; बस इसे USB केबल के साथ कंप्यूटर से कनेक्ट करें या इसे शुरू करने के लिए AC-to-DC अडैप्टर या बैटरी से पावर करें।
लियोनार्डो सभी पूर्ववर्ती बोर्डों से अलग है जिसमें ATmega32u4 ने एक माध्यमिक प्रोसेसर की आवश्यकता को समाप्त करते हुए अंतर्निहित USB संचार किया है। यह लियोनार्डो को एक आभासी (सीडीसी) धारावाहिक / कॉम पोर्ट के अलावा, एक कनेक्टेड कंप्यूटर को माउस और कीबोर्ड के रूप में प्रदर्शित करने की अनुमति देता है।
तकनीकी निर्देश
microcontroller | ATmega32u4 |
प्रचालन वोल्टेज | 5 वी |
इनपुट वोल्टेज (अनुशंसित) | 7-12 वी |
इनपुट वोल्टेज (सीमाएं) | 6-20 वी |
डिजिटल I / O पिंस | २० |
PWM चैनल | । |
एनालॉग इनपुट चैनल | १२ |
डीसी वर्तमान प्रति I / O पिन | 40 एमए |
3.3V पिन के लिए डीसी करंट | 50 एमए |
फ्लैश मेमोरी | 32 KB (ATmega32u4) जिसमें से 4 KB बूटलोडर द्वारा उपयोग किया जाता है |
SRAM | 2.5 KB (ATmega32u4) |
EEPROM | 1 KB (ATmega32u4) |
घड़ी की गति | 16 मेगाहर्ट्ज |
लंबाई | 68.6 मिमी |
चौड़ाई | 53.3 मिमी |
वजन | 20 ग्रा |
पिन आउट संदर्भ
दोहरी अक्ष XY जॉयस्टिक मॉड्यूल
जॉयस्टिक विभिन्न आकारों और आकारों में उपलब्ध हैं। एक ठेठ जॉयस्टिक मॉड्यूल नीचे दिए गए आंकड़े में दिखाया गया है। यह जॉयस्टिक मॉड्यूल आमतौर पर एनालॉग आउटपुट प्रदान करता है और इस मॉड्यूल द्वारा प्रदान किए गए आउटपुट वोल्टेज उस दिशा के अनुसार बदलते रहते हैं जिसमें हम इसे स्थानांतरित करते हैं। और हम कुछ माइक्रोकंट्रोलर का उपयोग करके इन वोल्टेज परिवर्तनों की व्याख्या करके आंदोलन की दिशा प्राप्त कर सकते हैं। पहले हमने विभिन्न माइक्रोकंट्रोलर्स के साथ खुशी की छड़ी को बाधित किया था:
- Arduino के साथ जॉयस्टिक का सामना करना पड़ रहा है
- रास्पबेरी पाई के साथ जॉयस्टिक का सामना करना पड़ रहा है
- PIC माइक्रोकंट्रोलर के साथ जॉयस्टिक को इंटरफैस करना
- AVR माइक्रोकंट्रोलर के साथ जॉयस्टिक इंटरफेसिंग
इस जॉयस्टिक मॉड्यूल में दो अक्ष हैं जैसा कि आप देख सकते हैं। वे एक्स-एक्सिस और वाई-एक्सिस हैं। JOY STICK की प्रत्येक धुरी एक पोटेंशियोमीटर या पॉट पर आरूढ़ है। इन बर्तनों के मध्य बिंदुओं को Rx और Ry के रूप में बाहर निकाला जाता है। तो Rx और Ry इन बर्तनों के लिए चर अंक हैं। जब जॉयस्टिक स्टैंडबाय में होता है, तो Rx और Ry वोल्टेज विभक्त के रूप में कार्य करते हैं।
जब जॉयस्टिक को क्षैतिज अक्ष के साथ स्थानांतरित किया जाता है, तो Rx पिन पर वोल्टेज बदल जाता है। इसी तरह, जब इसे ऊर्ध्वाधर अक्ष के साथ स्थानांतरित किया जाता है, तो Ry पिन पर वोल्टेज बदल जाता है। तो हम दो एडीसी आउटपुट पर जॉयस्टिक की चार दिशाएं हैं । जब छड़ी को स्थानांतरित किया जाता है, तो प्रत्येक पिन पर वोल्टेज दिशा के आधार पर उच्च या निम्न जाती है।
सर्किट आरेख
इस Arduino जॉयस्टिक गेम कंट्रोलर को Arduino और जॉयस्टिक के बीच कनेक्शन की आवश्यकता होती है:
कोड और कार्य स्पष्टीकरण
एक डेमो वीडियो के साथ पूरा कोड अंत में दिया गया है; यहाँ हम इसके कुछ महत्वपूर्ण भाग के बारे में बता रहे हैं।
सबसे पहले, हमें कीबोर्ड लाइब्रेरी को इनिशियलाइज़ करना होगा
#शामिल
नीचे दिए गए कोड में, हमने एनालॉग पिन A0 और A1 के लिए क्रमशः जस्टिक मॉड्यूल के एक्स और वाई अक्ष को आरंभीकृत किया है।
क्रमशः const int X_pin और const int Y_pin
VRX पिन का एनालॉग मान पढ़ा जाता है और यदि मान 1023 है तो "ऊपर" के लिए कमांड दिया जाता है और यदि मान 0 है तो "डाउन" के लिए कमांड दिया जाता है।
इसी तरह, वीआरवाई पिन का एनालॉग मूल्य पढ़ा जाता है और यदि मान 1023 है तो "राइट" के लिए कमांड दिया गया है और यदि मान 0 है तो "लेफ्ट" के लिए कमांड दिया गया है।
जॉयस्टिक में ऊपर की तरफ एक पुश बटन भी होता है इसलिए यह बटन (SW) भी पढ़ा जाता है और यदि बटन को दबाया जाता है तो मान 0 होगा तो "एंटर" के लिए कमांड दी जाती है।
अंत में Arduino में कोड को जलाएं और Arduino को कंप्यूटर से कनेक्ट करें।
अगले अपने कंट्रोल पैनल में ' डिवाइसेस एंड प्रिंटर्स' को देखें, आप डिवाइस सेक्शन के नीचे " अरुडिनो लियोनार्डो" देख पाएंगे जैसा कि नीचे दी गई इमेज में दिखाया गया है। अब आप जॉयस्टिक के साथ खेलने के लिए तैयार हैं।
हम इस जॉयस्टिक का उपयोग करके किसी भी गेम को नियंत्रित कर सकते हैं। जॉयस्टिक के अंदर दो पोटेंशियोमीटर हैं, एक एक्स-एक्सिस मूवमेंट के लिए है और दूसरा वाई-एक्सिस मूवमेंट के लिए है। प्रत्येक पोटेंशियोमीटर को Arduino से 5v मिलता है। तो जैसा कि हम जॉयस्टिक को आगे बढ़ाते हैं, वोल्टेज मान बदल जाएगा और एनालॉग पिन ए 0 और ए 1 पर एनालॉग मूल्य भी बदल जाएगा। तो जॉयस्टिक गेमपैड की तरह काम करेगा।
तो यह है कि कैसे एक सामान्य जॉयस्टिक को Arduino लियोनार्डो का उपयोग करके गेम कंट्रोलर में परिवर्तित किया जा सकता है और इसे बाएं, दाएं, ऊपर और नीचे ले जाने के लिए सभी नियंत्रण वाले गेम खेलने के लिए उपयोग किया जा सकता है। जैसा कि बताया गया है कि एक से अधिक जॉयस्टिक को इन चार मूलभूत क्रियाओं के अलावा और अधिक नियंत्रण प्राप्त करने के लिए बाधित किया जा सकता है।