विषयसूची:

Arduino गेम कंट्रोलर विथ लाइट्स रिस्पॉन्डिंग टू योर यूनिटी गेम :: 24 Steps
Arduino गेम कंट्रोलर विथ लाइट्स रिस्पॉन्डिंग टू योर यूनिटी गेम :: 24 Steps

वीडियो: Arduino गेम कंट्रोलर विथ लाइट्स रिस्पॉन्डिंग टू योर यूनिटी गेम :: 24 Steps

वीडियो: Arduino गेम कंट्रोलर विथ लाइट्स रिस्पॉन्डिंग टू योर यूनिटी गेम :: 24 Steps
वीडियो: How to make RGB strip controller with arduino || step by step || arduino board configuration | S1-E1 2024, नवंबर
Anonim
Arduino गेम कंट्रोलर विथ लाइट्स विद योर यूनिटी गेम
Arduino गेम कंट्रोलर विथ लाइट्स विद योर यूनिटी गेम

सबसे पहले मैंने इस बात को शब्दों में लिखा। यह पहली बार है जब मैं निर्देशयोग्य का उपयोग करता हूं, इसलिए जब भी मैं कहता हूं: कोड लिखें ताकि पता चले कि मैं उस चरण के शीर्ष पर छवि का जिक्र कर रहा हूं।

इस परियोजना में मैं 2 अलग-अलग बिट कोड चलाने के लिए 2 arduino का उपयोग करता हूं क्योंकि मुझे इसे केवल एक के साथ काम करने में कुछ परेशानी हुई थी

ये ऊनो और लियोनार्डो हैं

कुल मिलाकर आपको इस प्रोजेक्ट को ब्रेडबोर्ड करने की आवश्यकता होगी।

· 7 पुश बटन

· २३ जम्पर तार

· 1 आर्डिनो लियोनार्डो + यूएसबी केबल

· 4 प्रतिरोधक · 4 एलईडी

· 1 arduino uno + usb केबल

· २ ब्रेडबोर्ड

चरण 1: नियंत्रण बटन को Arduino पर हुक करना

Arduino पर कंट्रोल बटन को हुक करना
Arduino पर कंट्रोल बटन को हुक करना

इस भाग को जोड़ने के लिए आपको क्या करना होगा:

· 7 पुश बटन

· 14 जम्पर तार

· 1 आर्डिनो लियोनार्डो + यूएसबी केबल

· ब्रेड बोर्ड

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

· आप में से सबसे पहले पुश बटनों को ऊपर की छवि पर मेरे द्वारा चिह्नित की गई स्थिति में रखें।

· दूसरी बात, आप arduino लियोनार्डो के ग्राउंड स्लॉट से एक जम्पर को ब्रेडबोर्ड की माइनस रो में हुक करना चाहते हैं।

· अब आप माइनस रो पर कहीं से भी जंपर्स को उस पंक्ति से जोड़ दें जो आपके पुश बटन के दाहिने पिन के अनुरूप है। यह उसे शक्ति खिलाएगा।

· इसके बाद आप एक जम्पर वायर को एक पंक्ति से जोड़ना चाहते हैं जो आपके पुश बटन के बाएं पिन के साथ लियोनार्डो के डिजिटल इनपुट स्लॉट के अनुरूप है। यहां के बटनों के लिए मैंने स्लॉट 2 - 3 - 4 - 5 - 6 - 7- 8. का उपयोग किया है

मैंने केवल छवि पर इनपुट 8 पर जाने वाले तार को दिखाया क्योंकि यह आपको एक दूसरे को पार करते हुए सभी तारों को दिखाने के लिए एक बहुत ही गन्दा चित्र बन जाता है।

चरण 2: Arduino लियोनार्डो को कोड करना:

Arduino लियोनार्डो कोडिंग
Arduino लियोनार्डो कोडिंग

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

अब मैं चलने जा रहा हूँ आपने सोचा कि कोड स्टेप बाय स्टेप है।

सबसे पहले शीर्ष पर हम Keyboard.h शामिल करते हैं। यह हमें हमारे कोड में उपयोग किए जाने वाले कीबोर्ड फ़ंक्शंस का उपयोग करने की अनुमति देगा।

चरण 3:

छवि
छवि

फिर हमें उस डिजिटल इनपुट स्लॉट को परिभाषित करने की आवश्यकता है जिसका हम उपयोग करने जा रहे हैं

प्रत्येक बटन के लिए लियोनार्डो।

मैंने उनमें से प्रत्येक का नाम उस कुंजी के नाम पर रखा है जिसका मैं अनुकरण करने जा रहा हूँ।

चरण 4:

छवि
छवि

वहां से हम सेटअप फंक्शन में आते हैं। यह बताता है

arduino यह स्टार्ट अप पर क्या करता है।

सबसे पहले हम Serial.begin लिखते हैं जो सीरियल पोर्ट को खोलेगा और डेटा दर को 9600 bps. पर सेट करेगा

और हम परिभाषित करते हैं कि सभी को इनपुट के रूप में पिन नाम दिया गया है।

चरण 5:

छवि
छवि

और अंत में हम अपना लूप फंक्शन लिखते हैं जो जाँच करेगा कि if

बटन दबाए जा रहे हैं और arduino को बताएं कि उस पर कैसे प्रतिक्रिया दी जाए।

सबसे पहले हम कीबोर्ड लिखते हैं

चरण 6:

छवि
छवि
छवि
छवि
छवि
छवि

फिर हर बटन के लिए हम एक if/else स्टेटमेंट लिखते हैं जो इस प्रकार है

तो मैंने यहाँ arduino को जो बताया वह यह है: यदि मेरा बायाँ बटन कंट्रोलर पर दबाया जा रहा है, तो कंप्यूटर को लगता है कि हम "a" कुंजी दबा रहे हैं और यदि ऐसा नहीं है तो यह सोचें कि हमने कुंजी को जाने दिया है।

आप मूल रूप से अपने नियंत्रक पर प्रत्येक बटन के लिए कोड के इस ब्लॉक को दोहराते हैं। हर वेरिएबल के लिए बदलाव और वेरिएबल को अनुकरण करने के लिए आवश्यक चाबियों के साथ

चरण 7:

छवि
छवि

हमने कंप्यूटर को यहां हिट करने के लिए जिन चाबियों को कहा था, वे हैं W - A - S - D जो

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

फिर अंत में हम arduino को चेक को रोकने के लिए कहते हैं जो Keyboard.end

चरण 8: एकता में कोडिंग आंदोलन:

एकता में कोडिंग आंदोलन
एकता में कोडिंग आंदोलन

सबसे पहले मैं आपको बता दूं कि मैं इसे 2d गेम के लिए बना रहा हूं इसलिए

आप जो उदाहरण देखने जा रहे हैं, वह उसी के लिए बनाया गया है। मुख्य रूप से जहां मैं वेक्टर 2 का उपयोग करता हूं यदि आप 3 डी में काम कर रहे हैं तो आप वेक्टर 3 का उपयोग करेंगे। क्योंकि आपको 3डी में गति के अतिरिक्त आयाम के बारे में चिंता करने की आवश्यकता होगी।

अब मैंने Arduino की तरफ कीबोर्ड इम्यूलेशन का उपयोग करने का कारण यह है कि एकता के पास कीबोर्ड पर कुंजियों को पहचानने के लिए कुछ निर्माण होता है जिसका हम उपयोग कर सकते हैं।

यदि आप अपनी परियोजना को एकता में खोलते हैं तो संपादित करें -> परियोजना सेटिंग्स -> इनपुट पर जाएं। आप अपने इंस्पेक्टर में देख सकते हैं कि यह इनपुट मैनेजर को बूट करता है। जहां यदि आप एक्सिस पर क्लिक करते हैं तो आप इनपुट नामों का एक पूरा गुच्छा देख सकते हैं जो आम तौर पर पीसी नियंत्रकों के लिए उपयोग किए जाते हैं जैसे कि हम अभी बना रहे हैं। हम जिन 2 इनपुट का उपयोग करने जा रहे हैं वे क्षैतिज और लंबवत हैं जो आपके लिए जांचते हैं कि यह डब्ल्यू-ए-एस-डी है।

सबसे पहले आप एक वस्तु बनाना चाहते हैं अपने एकता दृश्यों में पदानुक्रम जो आपका खिलाड़ी होगा। मेरे मामले में यह मजेदार छोटा लड़का है। यह वह हो सकता है जिसकी आपको आवश्यकता है लेकिन अपने खेल के उद्देश्य से मैंने इस आदमी को बनाया है।

चरण 9:

छवि
छवि

आप इस खिलाड़ी को 2 चीजें देना चाहते हैं। एक बॉक्स कोलाइडर 2d और

एक Rigidbody 2d और उन्हें ऊपर की छवि की तरह संपादित करें।

चरण 10:

छवि
छवि

फिर आप अपने प्रोजेक्ट्स फोल्डर में जाना चाहते हैं और एक बनाना चाहते हैं

सी # स्क्रिप्ट। जिसे मैंने PlayerMovement नाम दिया है।

इस स्क्रिप्ट में आप 2 वेरिएबल्स को परिभाषित करने जा रहे हैं। एक सार्वजनिक फ्लोट जिसे मैं मूवस्पीड कहता हूं। जो तय करेगा कि आप कितनी तेजी से जाते हैं। और एक निजी Rigidbody2D जिसे मैं RigidPlayer कहता हूं। जो आपके खिलाड़ियों को कठोर शरीर की तलाश करेगा।

अपने एकता संपादक को प्राप्त करना न भूलें अपने खिलाड़ी पर क्लिक करें इस नई स्क्रिप्ट को निरीक्षक के पास खींचकर जोड़ें और चाल गति के लिए एक संख्या मान सेट करें।

चरण 11:

छवि
छवि

अब अपने Start() में आप एक काम करना चाहते हैं और वह है to

सुनिश्चित करें कि आपका RigidPlayer आपके भुगतानकर्ता को 2d कठोर व्यक्ति ढूंढ सकता है। आप कोड की निम्न पंक्ति के साथ ऐसा करते हैं:

चरण 12:

छवि
छवि

फिर हम अपडेट () पर आगे बढ़ते हैं। यहां हम जा रहे हैं

खिलाड़ी को स्थानांतरित करने के लिए।

हम इसे एक बहुत ही सरल if स्टेटमेंट के साथ करते हैं जो क्षैतिज (AD) और वर्टिकल (SW) से नकारात्मक और सकारात्मक कुंजियों को देखेगा और इसे लागू करने के लिए एक संख्या के रूप में हम अपने खिलाड़ी को धक्का देने के लिए अपने कठोर 2d पर डालेंगे। एक दिशा। उस संख्या को moveSpeed चर द्वारा गुणा किया जाएगा।

चरण 13:

छवि
छवि

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

आप कुछ भी नहीं दबाते हैं। यह आप ऐसा करते हैं:

अब यदि आप किसी भी चीज़ के लिए अपने 3 अन्य बटनों का उपयोग करना चाहते हैं, तो इसके साथ यदि कथन: if(Input. GetKeyDown(Keycode. Space))

स्पेसबार के लिए और स्पेस के बजाय अन्य कुंजियों के लिए आपके द्वारा चुनी गई अन्य कुंजियों का अक्षर डालें।

चरण 14: रोशनी को Arduino पर हुक करना

Arduino के लिए लाइट्स को जोड़ना
Arduino के लिए लाइट्स को जोड़ना

·

इस भाग को जोड़ने के लिए आपको क्या करना होगा:

· 9 जम्पर तार

· 4 प्रतिरोधक

· 4 एलईडी

· 1 arduino uno + usb केबल

· ब्रेड बोर्ड

रोशनी के लिए हुकअप ऊनो के जरिए किया जाएगा।

यह ऊपर की इस छवि की तरह दिखने लगेगा:

आप प्रतिरोधों को एलईडी के लंबे हिस्से से जोड़ते हैं। और फिर आप एक डिजिटल पिन नंबर से एक जम्पर को यूनो पर रेसिस्टर्स से जोड़ते हैं। इस मामले में मैंने डिजिटल पिन स्लॉट 9 - 10 -11 -12 का उपयोग किया है, जब हम रोशनी के लिए कोड प्राप्त करेंगे तो ये नंबर प्रासंगिक होंगे।

वहाँ से आप अपने arduino Uno के ग्राउंड स्लॉट से अपने बोर्ड के स्पॉट तक एक जम्पर को हुक करना चाहते हैं जैसा कि ऊपर की छवि पर काले तार के साथ देखा गया है।

फिर आप चाहते हैं कि 4 जंपर्स प्रत्येक एलईडी के छोटे छोर तक ले जाएं

चरण 15: Arduino Uno. को कोड करना

Arduino Uno की कोडिंग
Arduino Uno की कोडिंग

ठीक है, पहले हम अपने वेरिएबल्स को फिर से परिभाषित करने जा रहे हैं

तो सबसे पहले हम अपनी रोशनी के लिए कौन से डिजिटल इनपुट का उपयोग कर रहे हैं। और हम myCol नामक एक चार बनाने जा रहे हैं [20]

चरण 16:

छवि
छवि

फिर सेटअप में हम फिर से Serial.begin करना चाहते हैं। हमारे सभी एलईडी को आउटपुट पर रखें और उन सभी को स्टार्टअप पर बंद कर दें।

चरण 17:

छवि
छवि

और अंत में आप अपना लूप फंक्शन लिखना चाहते हैं।

यह Arduino को सीरियल के माध्यम से आने वाले किसी भी डेटा में तब तक पढ़ने का कारण बनेगा जब तक कि दो में से एक घटना न हो जाए। या तो एक लाइन फ़ीड वर्ण का पता चला है; यह एलएफ द्वारा पहचाना जाता है जो 10 पर सेट है और पहला तर्क है या बाइट्स की एक निश्चित मात्रा में पढ़ा गया है। यह तीसरा तर्क है और इस उदाहरण के लिए केवल एक बाइट पर सेट है। डेटा को चर myCol में संग्रहीत किया जाता है, जो कि चार और 20 की सीमा पर सेट होता है। readBytes में यह दूसरा तर्क है। या इसे समझाने का दूसरा तरीका है Serial.readBytesUntil(terminatorCharacter, buffer, byteLimit);

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

चरण 18: कोडिंग लाइट्स यूनिटी साइड:

कोडिंग लाइट्स यूनिटी साइड
कोडिंग लाइट्स यूनिटी साइड

इसमें आने से पहले 2 चीजें ठीक करें।

1.in अपने arduino कोडिंग प्रोग्राम में टूल -> पोर्ट -> पर जाएं और मेरे लिए जांचें कि आपका यूनो किस COM पर है। मेरे मामले में इसका COM3 (यह कोड में महत्वपूर्ण होगा)

2.in एकता संपादित करने के लिए जाओ -> परियोजना सेटिंग्स -> प्लेयर फिर इंस्पेक्टर में अन्य सेटिंग्स पर क्लिक करें एपीआई संगतता स्तर पर जाएं और इसे. NET 2.0 सबनेट से केवल. NET 2.0 पर स्विच करें।

ठीक है यह हो गया। आइए इसमें शामिल हों।

अपने पदानुक्रम पर राइट क्लिक करें और खाली बनाएँ पर क्लिक करें।

यह एक खाली गेम ऑब्जेक्ट होगा जो हमारे लिए एक स्क्रिप्ट रखने के लिए आपके गेम में मौजूद होगा। मैंने इस ऑब्जेक्ट को Init.

चरण 19:

छवि
छवि

फिर अपने प्रोजेक्ट टैब में जाएं और एक नई C# स्क्रिप्ट बनाएं

और इसे भेजना कहते हैं।

पहली चीज़ जो आप करते हैं, वह यह है कि आप कोड के उपयोग अनुभागों में इन्हें लाइनों में लिखें:

System. IO. Ports का उपयोग करना;

सिस्टम का उपयोग करना। थ्रेडिंग;

यह ऐसा करता है ताकि हम सीरियलपोर्ट चर का उपयोग कर सकें

चरण 20:

छवि
छवि

इस स्क्रिप्ट में हम निम्नलिखित चर बनाने जा रहे हैं। अब ध्यान दें कि मुझे COM3 मिल गया है, यह आपके लिए अलग हो सकता है जैसा कि हमने इस चरण की शुरुआत में चर्चा की थी। यदि यह 3 को उस संख्या से बदल देता है जो उसने आपके लिए कहा था।

चरण 21:

छवि
छवि

शुरुआत में हम स्क्रिप्ट को उपयोग करने के लिए कहते हैं OpenConnection

फंक्शन जिसे हम थोड़ा लिखने वाले हैं

अद्यतन अधिक परीक्षण है तो कुछ भी लेकिन यदि आप इसे एकता में भेजे जा रहे संदेशों का परीक्षण करने के लिए शामिल करना चाहते हैं। आप इसे ईमानदारी से अनदेखा कर सकते हैं।

चरण 22:

छवि
छवि

इस OpenConnection फ़ंक्शन के लिए अभी ठीक है। यह सिर्फ एक बड़ा है

अगर/अन्य कथन जो कनेक्शन को खुला रखता है बस इसे लिखित रूप में कॉपी करें और आपको ठीक होना चाहिए।

चरण 23:

छवि
छवि

अब arduino कोड से याद रखें कि मैंने इसे चेक किया था

संकेत है कि एकता इसे भेजने वाली है।

अच्छा यह वह जगह है जहाँ ऐसा होता है। मेरे मामले में मुझे 4 लाइटें लगीं, इसलिए मैंने 4 फ़ंक्शन लिखे जो बेहद सरल हैं। वे बस इतना करते हैं कि जब उन्हें बुलाया जाता है तो वे आर्डिनो को एक पत्र भेजते हैं। जब arduino को वह अक्षर मिलता है तो वह उक्त पत्र के अनुरूप प्रकाश को रोशन करता है।

चरण 24:

छवि
छवि

आप सोच रहे होंगे कि मैं इसे कैसे कॉल करूं?

समारोह? वैसे आप इसे अपने किसी भी अन्य सी # स्क्रिप्ट में एक साधारण लाइन के साथ करते हैं जो आप अपने गेम के लिए उपयोग करते हैं। Sending. NameFunctionhere ();। तो उदाहरण के लिए मेरे खेल में खिलाड़ी को 4 रंगीन गहने इकट्ठा करने का काम सौंपा गया है। इसलिए मैंने एक छोटी सी स्क्रिप्ट लिखी जो यह सुनिश्चित करती है कि जब वह एक के करीब आता है और दायां बटन दबाता है तो वह उसे उठाता है और यह आर्डिनो को संकेत भेजता है कि इस मामले में पीला ओर्ब उठा लिया गया है। ताकि यह पता चले, ठीक है, मुझे पीली एलईडी चालू करनी होगी:

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

सिफारिश की: