विषयसूची:

Arduino का उपयोग करके वर्चुअल रियलिटी सूट: 7 कदम (चित्रों के साथ)
Arduino का उपयोग करके वर्चुअल रियलिटी सूट: 7 कदम (चित्रों के साथ)

वीडियो: Arduino का उपयोग करके वर्चुअल रियलिटी सूट: 7 कदम (चित्रों के साथ)

वीडियो: Arduino का उपयोग करके वर्चुअल रियलिटी सूट: 7 कदम (चित्रों के साथ)
वीडियो: Rain Detector Device #shorts #devkeexperiment 2024, जुलाई
Anonim
Arduino का उपयोग करके वर्चुअल रियलिटी सूट
Arduino का उपयोग करके वर्चुअल रियलिटी सूट

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

उदाहरण- जब आप आगे बढ़ते हैं तो 'w' कुंजी दबाने की क्रिया का अनुकरण किया जाता है।

मैंने कॉल ऑफ़ ड्यूटी 4: मॉडर्न वारफेयर गेम का अनुकरण किया है, लेकिन ऐसे गेम का चयन न करें जो शूटिंग के दौरान पीछे हट गए हों क्योंकि यह माउस की डिफ़ॉल्ट स्थिति को बदल देगा।

चरण 1: आवश्यकताएँ

आवश्यकताएँ हैं-

इस सूट को बनाने के लिए आपको आवश्यक चीजों की एक सूची है

टच सेंसर-5

बल सेंसर-1

जीपीयू ६०५० - ४

(या)

GPU 6050 - 2 और एक्सेलेरोमीटर - 2

वीआर चश्मा

वीआर सक्षम फोन

पीसी

वाईफाई हॉटस्पॉट

एक खिलौना बंदूक

एक पीसी गेम (मैंने कॉल ऑफ ड्यूटी- मॉडर्न वारफेयर 1 का उपयोग किया है)

ब्रेड बोर्ड के तार (पुरुष-महिला)

अर्डुइनो लियोनार्डो-2

ऑटोन शील्ड - 2

शक्ति स्रोत (लाइपो)

इंद्रधनुष के तार

चरण 2: हार्डवेयर

हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर

*रीलोड_पिन, शूट_पिन, नाइट विजन_पिन, ग्रेनेड_पिन, वेपन चेंज_पिन टच सेंसर हैं। लक्ष्य_पिन बल सेंसर है और माउस MPU6050 द्वारा अनुकरण किया जाता है अन्य सेंसर एक्सेलेरोमीटर (मुद्रा, गति 1 और 2) हैं

१.१) सोल्डरिंग

सोल्डर एमपीयू 6050, एक्सेलेरोमीटर, टच सेंसर और तारों के साथ बल सेंसर

१.२) वायरिंग

एमपीयू 6050 के लिए-

पिन 2- एसडीए

पिन 3- एससीएल

जीएनडी - जीएनडी

5वी - पीडब्लूआर/वीसीसी

मूवमेंट_पिन1 के लिए

पिन A1- x अक्ष

जीएनडी-जीएनडी

5वी - पीडब्लूआर/वीसीसी

आंदोलन_पिन2 के लिए-

पिन A2- x अक्ष

जीएनडी-जीएनडी

5वी - पीडब्लूआर/वीसीसी

आसन_पिन के लिए-

पिन ए0- एक्स अक्ष

जीएनडी-जीएनडी

5वी - पीडब्लूआर/वीसीसी

हथियार_पिन के लिए -

सिग-5वी

जीएनडी-जीएनडी

5वी - पीडब्लूआर/वीसीसी

रीलोड_पिन के लिए -

पिन 12 - 5 वी

जीएनडी-जीएनडी

5वी - पीडब्लूआर/वीसीसी

नाइटविजन_पिन के लिए -

पिन 10 - 5v

जीएनडी-जीएनडी

5वी - पीडब्लूआर/वीसीसी

शूट_पिन के लिए -

पिन7 - 5वी

जीएनडी-जीएनडी

5वी - पीडब्लूआर/वीसीसी

लक्ष्य_पिन के लिए -

पिन 8 - 5v

5वी - पीडब्लूआर/वीसीसी

१.३) सोल्डरिंग तार

ब्रेड बोर्ड के तारों को इंद्रधनुष के तारों से मिलाएं

१.४) इन्सुलेशन

शॉर्ट सर्किट से बचने के लिए तारों को उस जगह पर इंसुलेशन टेप से टेप करें जहां आपने सोल्डर किया है

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

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

मैंने लैपटॉप से फोन पर वीडियो डालने के लिए Play store से 'Remotr' नामक ऐप का उपयोग किया है

२.१) रिमोट-

अपने कंप्यूटर में REMOTR एप्लिकेशन इंस्टॉल करें और एक खाता बनाएं

लिंक यहां दिया गया है-

remotrap.com/#download

अपने स्मार्टफोन में REMOTR ऐप इंस्टॉल करें

२.२) वीडियो स्ट्रीमिंग

सबसे पहले कंप्यूटर और एक ही वाईफाई नेटवर्क दोनों को कनेक्ट करें और दोनों डिवाइस में अपना REMOTR अकाउंट डालें

अब मैन्युअल रूप से उस गेम को जोड़ें जिसे आप सॉफ्टवेयर में स्ट्रीम करना चाहते हैं

अब ऐप कंप्यूटर को व्यवस्थापक के रूप में दिखाएगा स्ट्रीमिंग शुरू करने के लिए इसे क्लिक करें

वीआर में स्ट्रीम करने के लिए अपने स्मार्टफोन में वीआर मोड सक्षम करें

अगर आप नहीं समझ पा रहे हैं तो विस्तृत जानकारी के लिए इस लिंक को चेक करें

remotrap.com/hi/howto

चरण 4: मुख्य कोड

इस परियोजना के लिए कोड कठिन या जटिल नहीं है बल्कि एक लंबा है

यहाँ कोड है बस इसे कॉपी करें और अपनी arduino फ़ाइल में पेस्ट करें

अर्डुइनो

लियोनार्डो माउस-

मैंने गैब्री२९५ को रेफर कर दिया है। यह माउस कोड उसके सिर पर आधारित है माउस निर्देशयोग्य

#शामिल

#शामिल

#शामिल

#शामिल

इंट लक्ष्य_पिन;

इंट शूट_पिन;

एमपीयू 6050 एमपीयू;

int16_t ax, ay, az, gx, gy, gz;

इंट वीएक्स, वीई;

व्यर्थ व्यवस्था() {

सीरियल.बेगिन (९६००);

माउस.बेगिन ();

वायर.बेगिन ();

mpu.initialize ();

अगर (! mpu.testConnection ()) {

जबकि (1);

}

पिनमोड (7, इनपुट);

पिनमोड (8, इनपुट);

}

शून्य लूप () {

शूट_पिन = डिजिटल रीड (7);

लक्ष्य_पिन = डिजिटलरीड (8);

mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

वीएक्स = (जीएक्स-300)/200; // मैंने -300 और +490 डाल दिया है क्योंकि मेरे एमपीयू 6050 चेक को नहीं ले जाने पर ये मान दिखाते हैं

वाय = -(जीजेड+४९०)/२००; // इन मूल्यों के बारे में अधिक जानकारी के लिए गैब्री २९५ द्वारा हेड माउस के कोड की जाँच करें

माउस.मूव (vx, vy);

देरी(20);

जबकि (शूट_पिन == हाई);

{

माउस क्लिक();

}

जबकि (aim_pin == उच्च);

{

माउस क्लिक();

}

}

लियोनार्डो कीबोर्ड

#शामिल

इंट ग्रेनेड;

इंट हथियार_पिन;

इंट रीलोड_पिन;

इंट मूवमेंट1_पिन;

इंट मूवमेंट2_पिन;

इंट पोस्चर_पिन;

चार नाइटविजन_पिन;

व्यर्थ व्यवस्था()

{

पिनमोड (7, इनपुट);

पिनमोड (8, इनपुट);

पिनमोड (9, इनपुट);

पिनमोड (10, इनपुट);

पिनमोड (11, इनपुट);

पिनमोड (12, इनपुट);

पिनमोड (ए0, इनपुट);

पिनमोड (ए 1, इनपुट);

कीबोर्ड.बेगिन ();

}

शून्य लूप ()

{

ग्रेनेड_पिन = डिजिटल रीड (8);

हथियार_पिन = डिजिटल रीड (9);

आंदोलन 1_पिन = एनालॉग रीड (ए 1);

आंदोलन २_पिन = एनालॉग रीड (ए २);

पोस्चर_पिन = एनालॉगरेड (A0);

reload_pin = digitalRead(12);

Nightvision_pin = digitalRead(10);

अगर (ग्रेनेड == उच्च)

{

कीबोर्ड.प्रेस ('जी');

}

जबकि (हथियार_पिन == उच्च)

{

कीबोर्ड.प्रेस ('क्यू');

}

जबकि (रीलोड_पिन == हाई)

{

कीबोर्ड.प्रेस ('आर');

}

जबकि (आंदोलन1_पिन>340&&आंदोलन1_पिन<420)

{

कीबोर्ड.प्रेस ('डब्ल्यू');

}

जबकि (आंदोलन1_पिन>420)

{

कीबोर्ड.प्रेस ('डब्ल्यू');

कीबोर्ड.प्रेस ('पी');

}

जबकि (movement2_pin>340&&movement2_pin<420)

{

कीबोर्ड.प्रेस ('डब्ल्यू');

}

जबकि (आंदोलन2_पिन>420)

{

कीबोर्ड.प्रेस ('पी');

कीबोर्ड.प्रेस ('डब्ल्यू');

}

जबकि (आसन_पिन>३४०&& मुद्रा_पिन<४२०)

{

कीबोर्ड.प्रेस ('सी');

}

जबकि (मुद्रा_पिन>420)

{

कीबोर्ड.प्रेस ('एल');

}

जबकि (मुद्रा_पिन<340)

{

कीबोर्ड.प्रेस ('जेड');

}

जबकि (रात दृष्टि_पिन == उच्च)

{

कीबोर्ड.प्रेस ('एन');

}

}

}

चरण 5: परीक्षण कोड

फ़ंक्शन के अनुसार मुख्य कोड से विभाजित कुछ कोड यहां दिए गए हैं

शूटिंग-

#शामिल

इंट एक्स;

व्यर्थ व्यवस्था() {

पिनमोड (8, इनपुट);

माउस.बेगिन ();

}

शून्य लूप () {

एक्स = डिजिटल रीड (8);

अगर (एक्स == उच्च)

{

माउस.क्लिक ('जी');

}

}

लक्ष्य-

#शामिल

#शामिल

#शामिल

#शामिल

एमपीयू 6050 एमपीयू;

int16_t ax, ay, az, gx, gy, gz;

इंट वीएक्स, वीई;

व्यर्थ व्यवस्था() {

सीरियल.बेगिन (९६००);

माउस.बेगिन ();

वायर.बेगिन ();

mpu.initialize ();

अगर (! mpu.testConnection ()) {

जबकि (1);

}

}

शून्य लूप () {

शूट_पिन = डिजिटल रीड (7);

लक्ष्य_पिन = डिजिटलरेड(8);

mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

वीएक्स = (जीएक्स+300)/200; // "+300" क्योंकि जाइरोस्कोप का एक्स अक्ष -350 के बारे में मान देता है जबकि यह हिल नहीं रहा है। यदि आप परीक्षण कोड का उपयोग करके कुछ अलग प्राप्त करते हैं, तो इस मान को बदलें, यदि शून्य से दूर मान हैं।

vy = -(gz_-100)/200; // यहाँ "-100" के बारे में समान है

पुनः लोड करना-

#शामिल

इंट एक्स;

व्यर्थ व्यवस्था() {

पिनमोड (8, इनपुट);

कीबोर्ड.बेगिन ();

}

शून्य लूप () {

एक्स = डिजिटल रीड (8);

अगर (एक्स == उच्च)

{

कीबोर्ड.प्रेस ('आर');

}

अन्यथा

{

कीबोर्ड.रिलीज ('आर');

}

}

रात का दृश्य #शामिल करें

इंट एक्स;

व्यर्थ व्यवस्था() {

पिनमोड (8, इनपुट);

कीबोर्ड.बेगिन ();

}

शून्य लूप () {

एक्स = डिजिटल रीड (8);

अगर (एक्स == उच्च)

{

कीबोर्ड.प्रेस ('जी');

}

अन्यथा

{

कीबोर्ड.रिलीज ('जी');

}

}

क्राउच और प्रोन-

#शामिल

इंट वाई;

व्यर्थ व्यवस्था() {

पिनमोड (ए0, इनपुट);

सीरियल.बेगिन (९६००);

}

शून्य लूप () {

y=analogRead(A0);

अगर (वाई <260)

{

कीबोर्ड.रिलीज ('सी');

कीबोर्ड.रिलीज ('पी');

}

और अगर(y>260&&y<310)

{

कीबोर्ड.प्रेस ('सी');

}

और अगर (y>310)

{

कीबोर्ड.प्रेस ('पी');

}

}

चरण 6: खेल नियंत्रण

इस प्रकार खेल नियंत्रण बदलें

झुकना - x

प्रवण - l

हथियार परिवर्तन - क्यू

स्प्रिंट - पी

स्टैंड/कूद - z

रात्रि दृष्टि - नहीं

आगे की गति - w

ग्रेनेड - जी

चरण 7: सेट अप करना

की स्थापना
की स्थापना
की स्थापना
की स्थापना
की स्थापना
की स्थापना

अंत में हम अंतिम चरण में आ गए हैं अब आर्डिनो लगाएं

एक बॉक्स में बोर्ड और इसे बैग में खिसकाएं

अब Arduino के माइक्रो USB को लैपटॉप के USB पोर्ट से कनेक्ट करें अब ऊपर बताए अनुसार सेंसर कनेक्ट करें

*उपरोक्त चित्रों में तीर के निशान उस दिशा का प्रतिनिधित्व करते हैं जिसका सेंसर को सामना करना चाहिए

यदि आपको कोई संदेह है तो एक टिप्पणी छोड़ने में संकोच न करें और अपना अनुभव साझा करना न भूलें

बस इतना ही धन्यवाद और

अलविदा।

सिफारिश की: