यह सब अंधेरे युग से एक छोटे से खेल से शुरू होता है जिसे "मारियो" कहा जाता है, सही समय पर एक छोटे से आदमी के रूप में मेरी राजकुमारी को बचाने के लिए बत्तख पर कूदने वाला लड़का, फारस (राजकुमार फारस के राजकुमार) में घूमते हुए एक राजकुमार के रूप में अंधेरे से लड़ रहा है। अपनी दुनिया को बचाने के लिए मैं वीडियो गेम खेलने का बहुत बड़ा प्रशंसक रहा हूं और मैं उन्हें खेलते हुए बड़ा हुआ हूं। लेकिन वे कभी-कभी ऊब जाते हैं और मुझे इसमें शामिल होने का एहसास कम होता है। आज, उन्नत गेमिंग कंसोल वर्चुअल गेमिंग को सक्षम करता है और हमें गेम को एक कीबोर्ड या माउस की तुलना में बहुत बेहतर महसूस करने में मदद करता है।
एक Arduino उत्साही होने के नाते मैंने कीबोर्ड और माउस का उपयोग करके "एंग्री बर्ड्स" नामक प्रसिद्ध गेम खेलते हुए थक गया और एक फ्लेक्स सेंसर और एक पोटेंशियोमीटर का उपयोग करके अपना गेम कंट्रोलर बनाने का फैसला किया । जब फ्लेक्स सेंसर को खींचा जाता है तो पक्षी को गुलेल पर भी खींचा जाएगा और आप पोटेंशियोमीटर का उपयोग उस दिशा में सेट करने के लिए कर सकते हैं जिसमें इसे लॉन्च किया जाना चाहिए। फिर जब आप फ्लेक्स सेंसर जारी करेंगे तो पक्षी लॉन्च हो जाएगा। मुझे इसे करने में बहुत मज़ा आया, इसलिए यदि आप बहुत कुछ समान बनाने के लिए तैयार हैं तो यह ट्यूटोरियल एक सहायक होगा। यह ट्यूटोरियल Potentiometer का उपयोग करके माउस Cursor को नियंत्रित करने में भी सहायक होगा ।
सॉफ्टवेयर और हार्डवेयर आवश्यकताएँ:
सॉफ्टवेयर:
- Arduino IDE
- प्रसंस्करण आईडीई
- कंप्यूटर पर गुस्सा पक्षी खेल
हार्डवेयर:
- Arduino (कोई भी संस्करण)
- तनाव नापने का यंत्र
- फ्लेक्स सेंसर
- 47K ओम रेसिस्टर
- तारों को जोड़ना
- ब्रेड बोर्ड
अवधारणा के पीछे:
Arduino बोर्ड नापने और फ्लेक्स मैडम से मूल्यों पढ़ता सामान्य के माध्यम से USB COM पोर्ट के माध्यम से और उन्हें लैपटॉप / पीसी के लिए पहुंचाता Serial.write () समारोह। हम तब जावा में रोबोट वर्ग का उपयोग करके माउस कर्सर के प्रसंस्करण और नियंत्रण का उपयोग करते हुए इस जानकारी को पढ़ते हैं जो प्रसंस्करण आईडीई द्वारा समर्थित है। हमने प्रोसेसिंग आईडीई को इस तरह से क्रमादेशित किया है कि जब फ्लेक्स सेंसर खींचा जाता है तो माउस क्लिक किया जाएगा और इस पर आधारित होगा कि कितना खींचा गया है माउस पॉइंटर एक्स दिशा में चलेगा। फिर पोटेंशियोमीटर से मूल्य के आधार पर हम माउस कर्सर को Y दिशा में ले जाएंगे, इस तरह हम उस दिशा को सेट कर सकते हैं जिसमें पक्षी को लॉन्च किया जाना चाहिए।
सर्किट आरेख:
फ्लेक्स सेंसर और पोटेंशियोमीटर का उपयोग करके एंग्री बर्ड खेलने के लिए सर्किट आसान है।
हमने सरल रूप से एक शक्तिशाली कनेक्ट किया है और एक फ्लेक्स सेंसर को Arduino के एनालॉग इनपुट (A0, A1) से जोड़ा है। फ्लेक्स सेंसर का आउटपुट 47K पुल डाउन रेसिस्टर का उपयोग करके नीचे खींचा जाता है।
आप इसे सीधे ब्रेडबोर्ड पर कनेक्ट कर सकते हैं या उन्हें एक परफेक्ट बोर्ड में मिला सकते हैं और इसे अधिक रचनात्मक बनाने के लिए दस्ताने या किसी चीज़ पर इकट्ठा कर सकते हैं। मैंने नीचे दिखाए गए अनुसार अपने कनेक्शन करने के लिए बस एक ब्रेडबोर्ड का उपयोग किया है:
Arduino कार्यक्रम:
ट्यूटोरियल के अंत में पूरा Arduino कोड दिया गया है। कुछ महत्वपूर्ण पंक्तियों को नीचे समझाया गया है।
हम 9600 बॉड दर के साथ काम करने के लिए कार्यक्रम को शुरू करते हैं और फ्लेक्स सेंसर और पोटेंशियोमीटर से मूल्यों को पढ़ना शुरू करते हैं। जैसा कि हम जानते हैं कि serial.write () फ़ंक्शन एक बार में केवल एक बाइट डेटा भेज सकता है। चूंकि एक बाइट 8 बिट्स और 2 ^ 8 = 256 है। हम 0 से 256 तक वैल्यू भेज पाएंगे। इसलिए हमें फ्लेक्स सेंसर आउटपुट और पोटेंशियोमीटर आउटपुट के मानों को 0 से 256 में कंप्रेस करना होगा।
ऐसा करने के लिए हम Arduino में मानचित्र () फ़ंक्शन का उपयोग करते हैं । फ्लेक्स सेंसर से सभी मान 5 से 100 में परिवर्तित हो जाते हैं, इसलिए जब हम सेंसर को मोड़ते हैं तो यह 5 से बढ़ेगा और जब यह वापस आएगा तो 5. पर जाकर माउस का उल्लेख करने के लिए मूल्य 1 और 0 का उपयोग किया जाता है। जब 1 भेजा जाता है तो माउस दबाया जाता है और जब 0 भेजा जाता है तो माउस छोड़ दिया जाता है।
अगर (FlexValue> = 65 && FlexValue <= 120) // मेरा फ्लेक्स सेंसर 65 से 120 तक बदलता है, तो आपका भिन्न हो सकता है {FlexValue = map (FlexValue, 120,65,0,100); // झुकने पर आधारित 0 से 100 में बदल जाता है अगर (FlexValue> = 5) // 1 और 0 का उपयोग माउस क्लिक के लिए किया जाता है तो 5 {Mclick = true से शुरू करें; धारावाहिक.लेख (1); // 1 को माउस लेफ्ट क्लिक करने के लिए भेजा जाता है Serial.write (FlexValue); // फ्लेक्स वैल्यू माउस को X दिशा में ले जाने की दूरी है} और {मक्लिक = गलत; धारावाहिक।लेख (0);}}
इसी तरह मानों को नापने का यंत्र 101 से 200 में परिवर्तित होता है, जो नक्शे () फ़ंक्शन को गाता है और नीचे दिखाए गए अनुसार लैपटॉप COM पोर्ट को Serial.write () फ़ंक्शन पर भेजता है ।
if (potValue <= 200) {potValue = map (potValue, 0,200,101,201); // बदले में 101 से 201 सेरियल में कनवर्ट करें। राइट करें (potValue); // पॉट मान Y दिशा में माउस को स्थानांतरित करने की दूरी है}
कार्यक्रम के बाकी हिस्सों को टिप्पणियों का उपयोग करके समझाया गया है।
प्रसंस्करण कोड:
प्रोसेसिंग एक ओपन-सोर्स डेवलपमेंट एप्लिकेशन है और अरुडिनो या अन्य माइक्रोकंट्रोलर्स का उपयोग करके दिलचस्प परियोजनाओं को विकसित करने के लिए आसानी से डाउनलोड और डाला जा सकता है। हमने पहले ही प्रसंस्करण का उपयोग करते हुए कुछ परियोजनाएँ की हैं और आप नीचे दिए गए लिंक पर क्लिक करके उन्हें देख सकते हैं।
- प्रसंस्करण के लिए DIY एफएम रेडियो
- Arduino का उपयोग करके आभासी वास्तविकता / इशारे पर नियंत्रण
- Arduino का उपयोग करके निजी चैट रूम।
- निःशुल्क Arduino रडार सिस्टम प्रसंस्करण एपीपी और अल्ट्रासोनिक सेंसर का उपयोग कर
- Arduino का उपयोग करके रियल टाइम फेस डिटेक्शन और ट्रैकिंग
- Arduino और प्रसंस्करण का उपयोग करके DIY स्पीडोमीटर
- पिंग पोंग गेम का उपयोग कर Arduino Accelerometer
- Arduino का उपयोग करके Biped Robot
- DIY Arduino थर्मल इमेजिंग कैमरा
इस परियोजना में हमने COM पोर्ट मानों को पढ़ने और COM पोर्ट के माध्यम से प्राप्त मानों के आधार पर माउस पॉइंटर को नियंत्रित करने के लिए प्रोसेसिंग आईडीई का उपयोग किया है। इस गुस्से में बर्ड गेम नियंत्रक के लिए पूर्ण प्रसंस्करण कोड नीचे दिए गए लिंक से डाउनलोड किया जा सकता है:
- इस एंग्री बर्ड गेम कंट्रोलर के लिए प्रोसेसिंग कोड (दायाँ क्लिक करें और 'इस रूप में लिंक सहेजें')
Arduino प्रोग्राम इस ट्यूटोरियल के अंत में पाया जा सकता है। हमारे GitHub पृष्ठ पर योगी द्वारा दिए गए कोड से हमारे उद्देश्य के लिए प्रसंस्करण कोड को संशोधित किया गया था।
COM पोर्ट से आने वाले डेटा को उसी बॉड दर में पढ़ा जाना चाहिए जिसमें उसे Arduino से भेजा गया था। यह भी जांचें कि डिवाइस मैनेजर का उपयोग करके आपके Arduino को किस पोर्ट से जोड़ा गया है। मेरा Arduino COM3 से जुड़ा था और यह मेरे कंप्यूटर में 0 वां पोर्ट था और Arduino में बॉड दर 9600 थी इसलिए कोड इस प्रकार है
port = new Serial (यह, Serial.list (), 9600);
एक बार जब हम मूल्यों को पढ़ना शुरू कर देते हैं, तो हम इसे उसके मूल्य के आधार पर पहचानते हैं कि हम Arduino से कैसे भेजते हैं। मानों को फिर से 0 से 100 तक मैप किया जाता है ताकि हम उस मूल्य में स्थित माउस को नियंत्रित कर सकें।
if (port.available ()> 0) {data = port.read (); प्रिंट्लन (डेटा); // COM पोर्ट से डेटा पढ़ें और इसे डेटा में सेव करें} अगर (डेटा> = 101 && डेटा <= 201) // यदि मान 101 से 201 तक है तो यह पोटेंशियोमीटर से होना चाहिए {टर्न = इंट (नक्शा (डेटा), 101,201,0,100)); // उस मान का उपयोग कैटापुल्ट को चालू करने के लिए} यदि (डेटा> = 5 और& डेटा <= 100) // यदि मान 5 से 100 तक है तो यह फ्लेक्स सेंसर {पुल = इंट (नक्शा (डेटा, 5,100,) से होना चाहिए 0,100));} // मान का उपयोग करें कि गुलेल खींचने के लिए अगर (डेटा == 1) क्लिक करें = सत्य; // माउस बटन को दबाने के लिए उस मान का उपयोग करें यदि (डेटा == 0) क्लिक करें = गलत; // माउस बटन जारी करने के लिए उस मान का उपयोग करें
एक बार जब हम डेटा को वर्गीकृत कर लेते हैं तो हम प्रसंस्करण में रोबोट जावा क्लास का उपयोग करके माउस को नियंत्रित कर सकते हैं। कमांड रोबोट . mouseMove (crntX-Pull, crntY + Turn); माउस को किसी भी वांछित स्थिति और लाइनों को स्थानांतरित करने के लिए इस्तेमाल किया जा सकता है। Robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); और robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); क्रमशः माउस बटन को दबाने या जारी करने के लिए इस्तेमाल किया जा सकता है।
if (क्लिक करें == गलत) // जब Flex Sesnor को नहीं खींचा जाता है तो {crntX = (int) p.getX (); crntY = (int) p.getY (); अगर (पुल> 50) Robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // माउस बटन को छोड़ दें} यदि (क्लिक करें == सत्य) // जब फ्लेक्स सेसनोर को खींचा जाता है {robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // माउस बटन को दबाएं Robot.mouseMove (crntX-Pull, crntY + Turn); // फ्लेक्स और पॉट वैल्यू के आधार पर माउस को ले जाएँ}}
लॉन्च होने पर प्रोसेसिंग आईडीई एक छोटा संवाद बॉक्स भी प्रदर्शित करेगा, जिस पर आप नीचे दिए गए अनुसार माउस के पुल, टर्न और माउस की स्थिति जान सकते हैं।
इस विवरण का उपयोग प्रोग्राम को डीबग करने या आवश्यक किसी भी डेटा को सही करने के लिए किया जा सकता है।
काम कर रहे:
प्रदान किए गए कोड का उपयोग करके इस एंग्री बर्ड प्रोजेक्ट को बनाने के लिए, सर्किट आरेख के अनुसार अपने हार्डवेयर को इकट्ठा करें और दिए गए Arduino कोड को अपलोड करें। फिर नोट करें कि आपका Arduino COM पोर्ट किससे जुड़ा है और प्रोसेसिंग कोड में आवश्यक बदलाव करता है और प्रोसेसिंग स्केच लॉन्च करता है।
अब, बस क्रोधित पक्षी गेम लॉन्च करें और आप कर्सर को गुलेल के पास रखें और फ्लेक्स सेंसर को खींचकर पक्षी को खींचें और पोटेंशियोमीटर का उपयोग करके दिशा सेट करें। एक बार दिशा सेट होने के बाद फ्लेक्स सेंसर को छोड़ दें
EEEEWWWWWEEEEEEEEEEEE !!!!!!!!!!……………
आप पक्षी हवा और BOOMM में फेंक दिया जाएगा !! गुल्लक पर। पूरा काम नीचे दिए गए वीडियो में पाया जा सकता है ।
आशा है कि आपने इस परियोजना का आनंद लिया और कुछ इसी तरह का निर्माण करने में सक्षम थे। यदि आपको कोई संदेह है, तो आप मुझे टिप्पणी अनुभाग पर पहुंचा सकते हैं या तकनीकी प्रश्नों के लिए मंच पर अपना प्रश्न पोस्ट कर सकते हैं।
अब, उन गुल्लक में दुर्घटनाग्रस्त होने और हमारे पक्षियों के अंडे वापस पाने का समय !!!!