সুচিপত্র:

Arduino ব্যবহার করে ভার্চুয়াল রিয়েলিটি স্যুট: 7 টি ধাপ (ছবি সহ)
Arduino ব্যবহার করে ভার্চুয়াল রিয়েলিটি স্যুট: 7 টি ধাপ (ছবি সহ)

ভিডিও: Arduino ব্যবহার করে ভার্চুয়াল রিয়েলিটি স্যুট: 7 টি ধাপ (ছবি সহ)

ভিডিও: Arduino ব্যবহার করে ভার্চুয়াল রিয়েলিটি স্যুট: 7 টি ধাপ (ছবি সহ)
ভিডিও: Lesson 1.3: ভার্চুয়াল রিয়েলিটি | HSC ICT | Shikho 2024, নভেম্বর
Anonim
Arduino ব্যবহার করে ভার্চুয়াল রিয়ালিটি স্যুট
Arduino ব্যবহার করে ভার্চুয়াল রিয়ালিটি স্যুট

আমি সম্পূর্ণ ভিআর -এ সাধারণ কম্পিউটার গেম খেলতে এই প্রকল্পটি তৈরি করেছি। এই প্রকল্পটি আপনার কীবোর্ডের চাবিগুলি টিপে বা ধরে রাখার জন্য আপনার চলাচলকে অনুকরণ করে

উদাহরণ- যখন আপনি এগিয়ে যান তখন কী 'w' চাপার ক্রিয়া অনুকরণ করা হয়।

আমি কল অফ ডিউটি 4: মডার্ন ওয়ারফেয়ারের নকল করেছি কিন্তু শুটিংয়ের সময় পিছিয়ে থাকা গেমগুলি বেছে নেবেন না কারণ এটি মাউসের ডিফল্ট অবস্থান পরিবর্তন করবে

ধাপ 1: প্রয়োজনীয়তা

প্রয়োজনীয়তা হল-

এই স্যুটটি তৈরি করতে আপনার প্রয়োজনীয় জিনিসগুলির একটি তালিকা রয়েছে

টাচ সেন্সর -5

ফোর্স সেন্সর -১

জিপিইউ 6050 - 4

(অথবা)

জিপিইউ 6050 - 2 এবং অ্যাকসিলেরোমিটার - 2

ভিআর চশমা

ভিআর সক্ষম ফোন

পিসি

ওয়াইফাই হটস্পট

একটি খেলনা বন্দুক

একটি পিসি গেম (আমি কল অফ ডিউটি ব্যবহার করেছি- মডার্ন ওয়ারফেয়ার ১)

রুটি বোর্ডের তার (পুরুষ-মহিলা)

আরডুইনো লিওনার্ডো -২

অটোন শিল্ড - 2

শক্তির উৎস (লিপো)

রংধনুর তার

ধাপ 2: হার্ডওয়্যার

হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার

*পুনরায় লোড_পিন, শুট_পিন, নাইট ভিশন_পিন, গ্রেনেড_পিন, অস্ত্র পরিবর্তন_পিন স্পর্শ সেন্সর। aim_pin হল ফোর্স সেন্সর এবং এমপিইউ 6050 দ্বারা মাউস অনুকরণ করা হয় অন্য সেন্সরগুলি অ্যাকসিলরোমিটার (অঙ্গবিন্যাস, আন্দোলন 1 এবং 2)

1.1) বিক্রয়

SOLDER MPU 6050, Accelerometer, Touch Sensor & force sensor with wires

1.2) ওয়্যারিং

MPU 6050- এর জন্য

পিন 2- এসডিএ

পিন 3- এসসিএল

GND - GND

5v - PWR/VCC

আন্দোলন_পিন 1- এর জন্য

পিন A1- x অক্ষ

GND-GND

5v - PWR/VCC

আন্দোলন_পিন 2- এর জন্য

পিন A2- x অক্ষ

GND-GND

5v - PWR/VCC

ভঙ্গি_পিনের জন্য-

পিন A0- x অক্ষ

GND-GND

5v - PWR/VCC

অস্ত্র_পিনের জন্য -

sig-5v

GND-GND

5v - PWR/VCC

রিলোড_পিনের জন্য -

পিন 12 - 5 ভি

GND-GND

5v - PWR/VCC

নাইটভিশন_পিনের জন্য -

পিন 10 - 5 ভি

GND-GND

5v - PWR/VCC

শুট_পিনের জন্য -

পিন 7 - 5 ভি

GND-GND

5v - PWR/VCC

Aim_pin- এর জন্য

পিন 8 - 5 ভি

5v - PWR/VCC

1.3) সোল্ডারিং ওয়্যার

রেনবোর্ডের তারের সাথে রুটি বোর্ডের তারগুলি বিক্রি করুন

1.4) ইনসুলেশন

শর্ট সার্কিট এড়ানোর জন্য যেখানে আপনি সোল্ডার করেছেন সেখানে ইনসুলেশন টেপ দিয়ে তারগুলি টেপ করুন

ধাপ 3: সফটওয়্যার

সফটওয়্যার
সফটওয়্যার
সফটওয়্যার
সফটওয়্যার

আমি ল্যাপটপ থেকে ফোনে ভিডিও কাস্ট করার জন্য প্লে স্টোর থেকে 'রিমোটর' নামে একটি অ্যাপ ব্যবহার করেছি

2.1) রিমোটর-

আপনার কম্পিউটারে REMOTR অ্যাপ্লিকেশন ইনস্টল করুন এবং একটি অ্যাকাউন্ট তৈরি করুন

এখানে লিঙ্কটি হল-

remotrapp.com/#download

আপনার স্মার্টফোনে REMOTR অ্যাপটি ইনস্টল করুন

2.2) ভিডিও স্ট্রিমিং

প্রথমে কম্পিউটার এবং একই ওয়াইফাই নেটওয়ার্ক উভয়কে সংযুক্ত করুন এবং উভয় ডিভাইসে আপনার REMOTR অ্যাকাউন্টটি প্রবেশ করুন

এখন সফটওয়্যারে আপনি যে গেমটি স্ট্রিম করতে চান তা ম্যানুয়ালি যোগ করুন

এখন অ্যাপটি কম্পিউটারকে অ্যাডমিন হিসেবে দেখাবে স্ট্রিমিং শুরু করতে ক্লিক করুন

ভিআর স্ট্রিম করতে আপনার স্মার্টফোনে ভিআর মোড সক্ষম করুন

যদি আপনি বুঝতে না পারেন তবে বিস্তারিত তথ্যের জন্য এই লিঙ্কটি দেখুন

remotrapp.com/en/howto

ধাপ 4: প্রধান কোড

এই প্রকল্পের কোডটি কঠিন বা জটিল নয় কিন্তু একটি দীর্ঘ

এখানে কোডটি কেবল এটি অনুলিপি করুন এবং আপনার arduino ফাইলে পেস্ট করুন

আরডুইনো

লিওনার্ডো মাউস-

আমি Gabry295 reffered করেছি। এই মাউস কোডটি তার মাউস নির্দেশের উপর ভিত্তি করে

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

int aim_pin;

int shoot_pin;

MPU6050 mpu;

int16_t কুড়াল, ay, az, gx, gy, gz;

int vx, vy;

অকার্যকর সেটআপ() {

Serial.begin (9600);

মাউস। শুরু ();

Wire.begin ();

mpu.initialize ();

যদি (! mpu.testConnection ()) {

যখন (1);

}

পিনমোড (7, ইনপুট);

পিনমোড (8, ইনপুট);

}

অকার্যকর লুপ () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx-300)/200; // আমি -300 এবং +490 রেখেছি আমার mpu6050 হিসাবে এই মানগুলি দেখান যখন চেকটি সরানো হয় না

vy = -(gz+490)/200; // এই মানগুলির আরো বিস্তারিত জানার জন্য Gabry295 এর হেড মাউসের কোডটি পরীক্ষা করুন

Mouse.move (vx, vy);

বিলম্ব (20);

যখন (shoot_pin == উচ্চ);

{

মাউস.ক্লিক ();

}

যখন (aim_pin == উচ্চ);

{

মাউস.ক্লিক ();

}

}

লিওনার্দো কীবোর্ড

#অন্তর্ভুক্ত

int গ্রেনেড;

int weapon_pin;

int reload_pin;

int movement1_pin;

int movement2_pin;

int posture_pin;

char nightvision_pin;

অকার্যকর সেটআপ()

{

পিনমোড (7, ইনপুট);

পিনমোড (8, ইনপুট);

পিনমোড (9, ইনপুট);

পিনমোড (10, ইনপুট);

পিনমোড (11, ইনপুট);

পিনমোড (12, ইনপুট);

পিনমোড (A0, INPUT);

পিনমোড (এ 1, ইনপুট);

Keyboard.begin ();

}

অকার্যকর লুপ ()

{

গ্রেনেড_পিন = ডিজিটাল রিড (8);

অস্ত্র_পিন = ডিজিটাল রিড (9);

movement1_pin = analogRead (A1);

movement2_pin = analogRead (A2);

posture_pin = analogRead (A0);

reload_pin = digitalRead (12);

nightvision_pin = digitalRead (10);

যদি (গ্রেনেড == উচ্চ)

{

Keyboard.press ('g');

}

যখন (অস্ত্র_পিন == উচ্চ)

{

Keyboard.press ('q');

}

যখন (reload_pin == উচ্চ)

{

Keyboard.press ('r');

}

যখন (movement1_pin> 340 && movement1_pin <420)

{

Keyboard.press ('w');

}

যখন (movement1_pin> 420)

{

Keyboard.press ('w');

Keyboard.press ('p');

}

যখন (movement2_pin> 340 && movement2_pin <420)

{

Keyboard.press ('w');

}

যখন (movement2_pin> 420)

{

Keyboard.press ('p');

Keyboard.press ('w');

}

যখন (posture_pin> 340 && posture_pin <420)

{

Keyboard.press ('c');

}

যখন (ভঙ্গি_পিন> 420)

{

Keyboard.press ('l');

}

যখন (ভঙ্গি_পিন <340)

{

Keyboard.press ('z');

}

যখন (nightvision_pin == উচ্চ)

{

Keyboard.press ('n');

}

}

}

ধাপ 5: পরীক্ষা কোড

এখানে ফাংশন অনুযায়ী প্রধান কোড থেকে কয়েকটি কোড বিভক্ত করা হয়েছে

শুটিং-

#অন্তর্ভুক্ত

int x;

অকার্যকর সেটআপ() {

পিনমোড (8, ইনপুট);

মাউস। শুরু ();

}

অকার্যকর লুপ () {

x = ডিজিটাল রিড (8);

যদি (x == উচ্চ)

{

মাউস.ক্লিক ('g');

}

}

লক্ষ্য-

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

MPU6050 mpu;

int16_t কুড়াল, ay, az, gx, gy, gz;

int vx, vy;

অকার্যকর সেটআপ() {

Serial.begin (9600);

মাউস। শুরু ();

Wire.begin ();

mpu.initialize ();

যদি (! mpu.testConnection ()) {

যখন (1);

}

}

অকার্যকর লুপ () {

shoot_pin = digitalRead (7);

aim_pin = digitalRead (8);

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

vx = (gx+300)/200; // "+300" কারণ জাইরোস্কোপের x অক্ষ -350 এর মান দেয় যখন এটি চলমান থাকে না। এই মান পরিবর্তন করুন যদি আপনি টেস্ট কোড ব্যবহার করে ভিন্ন কিছু পান, যদি শূন্য থেকে অনেক বেশি মান থাকে তবে চেকিং করুন।

vy = -(gz_ -100)/200; // এখানে "-100" সম্পর্কে একই

পুনরায় লোড হচ্ছে-

#অন্তর্ভুক্ত

int x;

অকার্যকর সেটআপ() {

পিনমোড (8, ইনপুট);

Keyboard.begin ();

}

অকার্যকর লুপ () {

x = ডিজিটাল রিড (8);

যদি (x == উচ্চ)

{

Keyboard.press ('r');

}

অন্য

{

Keyboard.release ('r');

}

}

নাইট ভিসিও #অন্তর্ভুক্ত

int x;

অকার্যকর সেটআপ() {

পিনমোড (8, ইনপুট);

Keyboard.begin ();

}

অকার্যকর লুপ () {

x = ডিজিটাল রিড (8);

যদি (x == উচ্চ)

{

Keyboard.press ('g');

}

অন্য

{

Keyboard.release ('g');

}

}

ক্রাউচ এবং প্রন-

#অন্তর্ভুক্ত

int y;

অকার্যকর সেটআপ() {

পিনমোড (A0, INPUT);

Serial.begin (9600);

}

অকার্যকর লুপ () {

y = analogRead (A0);

যদি (y <260)

{

Keyboard.release ('c');

Keyboard.release ('p');

}

অন্যথায় যদি (y> 260 && y <310)

{

Keyboard.press ('c');

}

অন্যথায় যদি (y> 310)

{

Keyboard.press ('p');

}

}

ধাপ 6: গেম নিয়ন্ত্রণ

নিম্নরূপ গেম নিয়ন্ত্রণ পরিবর্তন করুন

ক্রাউচ - এক্স

প্রবণ - ঠ

অস্ত্র পরিবর্তন - q

স্প্রিন্ট - পি

স্ট্যান্ড/লাফ - z

রাতের দৃষ্টি - এন

এগিয়ে চলা - w

গ্রেনেড - ছ

ধাপ 7: সেট আপ করা

ঠিককরা
ঠিককরা
ঠিককরা
ঠিককরা
ঠিককরা
ঠিককরা

অবশেষে আমরা শেষ ধাপে এসেছি এখন arduino রাখুন

একটি বাক্সে বোর্ড এবং এটি ব্যাগ মধ্যে স্লিপ

এখন আরডুইনোর মাইক্রো ইউএসবিকে ল্যাপটপের ইউএসবি পোর্টের সাথে সংযুক্ত করুন এখন উপরের নির্দেশ অনুসারে সেন্সরগুলিকে সংযুক্ত করুন

*উপরের ছবিতে তীর চিহ্নগুলি সেন্সরকে যে দিকে মুখ করতে হবে তা নির্দেশ করে

যদি আপনার কোন সন্দেহ থাকে তবে একটি মন্তব্য করতে দ্বিধা করবেন না এবং আপনার অভিজ্ঞতা শেয়ার করতে ভুলবেন না

এটাই আপনাকে ধন্যবাদ এবং

বাই।

প্রস্তাবিত: