সুচিপত্র:

Arduino গেম কন্ট্রোলার লাইটের সাথে সাড়া দিচ্ছে আপনার ইউনিটি গেম :: 24 ধাপ
Arduino গেম কন্ট্রোলার লাইটের সাথে সাড়া দিচ্ছে আপনার ইউনিটি গেম :: 24 ধাপ

ভিডিও: Arduino গেম কন্ট্রোলার লাইটের সাথে সাড়া দিচ্ছে আপনার ইউনিটি গেম :: 24 ধাপ

ভিডিও: Arduino গেম কন্ট্রোলার লাইটের সাথে সাড়া দিচ্ছে আপনার ইউনিটি গেম :: 24 ধাপ
ভিডিও: RF রিমোট মডিউল, রিমোটে চলবে সবকিছু! // 4 Channel RF Wireless Remote Control Module | JLCPCB 2024, নভেম্বর
Anonim
Arduino গেম কন্ট্রোলার লাইটের সাথে আপনার ইউনিটি গেমের প্রতিক্রিয়া জানাচ্ছে
Arduino গেম কন্ট্রোলার লাইটের সাথে আপনার ইউনিটি গেমের প্রতিক্রিয়া জানাচ্ছে

প্রথমে আমি এই জিনিসটি শব্দে লিখেছি। এই প্রথমবার আমি নির্দেশযোগ্য ব্যবহার করি তাই যখনই আমি বলি: কোড লিখুন যাতে জানুন যে আমি সেই ধাপের শীর্ষে চিত্রটি উল্লেখ করছি।

এই প্রকল্পে আমি 2 টি পৃথক বিট কোড চালানোর জন্য 2 টি আরডুইনো ব্যবহার করি কারণ এটি শুধুমাত্র একটি দিয়ে কাজ করতে আমার কিছুটা সমস্যা হয়েছিল

এগুলি হল ইউনো এবং লিওনার্দো

মোট এই আপনি এই প্রকল্পের breadboard প্রয়োজন হবে।

Push 7 পুশ বোতাম

· 23 জাম্পার তার

· 1 আরডুইনো লিওনার্দো + ইউএসবি কেবল

· 4 প্রতিরোধক · 4 নেতৃত্বাধীন

· 1 arduino uno + usb তারের

· 2 রুটিবোর্ড

ধাপ 1: আরডুইনোতে কন্ট্রোল বোতামগুলি সংযুক্ত করা

আরডুইনোতে কন্ট্রোল বোতামগুলি সংযুক্ত করা
আরডুইনোতে কন্ট্রোল বোতামগুলি সংযুক্ত করা

এই অংশটি সংযুক্ত করার জন্য আপনাকে যা করতে হবে:

Push 7 পুশ বোতাম

· 14 জাম্পার তার

· 1 আরডুইনো লিওনার্দো + ইউএসবি কেবল

· ব্রেডবোর্ড

বোতামগুলি হুক আপ করা বেশ সহজ কিন্তু ইমেজ আকারে প্রদর্শনের জন্য দ্রুত একটি গোলমাল হতে পারে।

· প্রথমে আমি উপরের ছবিতে যে অবস্থানগুলোতে চিহ্নিত করেছি সেখানে পুশ বোতাম রাখুন।

Ly দ্বিতীয়ত আপনি আরডুইনো লিওনার্দোর গ্রাউন্ড স্লট থেকে রুটিবোর্ডের বিয়োগ সারিতে একটি জাম্পার লাগাতে চান।

· এখন আপনি মাইনাস সারির যেকোনো স্থান থেকে জাম্পারগুলিকে হুক আপ করুন যা আপনার ডান পিন পুশ বোতামের সাথে সামঞ্জস্যপূর্ণ। এটি এটিকে শক্তি সরবরাহ করবে।

· এর পরে আপনি লিওনার্দোর ডিজিটাল ইনপুট স্লটগুলিতে আপনার পুশ বোতামের বাম পিনের সাথে সামঞ্জস্যপূর্ণ একটি সারি থেকে একটি জাম্পার তার সংযুক্ত করতে চান। এখানে বোতামগুলির জন্য আমি স্লট 2 - 3 - 4 - 5 - 6 - 7-8 ব্যবহার করেছি

আমি শুধুমাত্র ছবিতে 8 টি ইনপুট করার জন্য ওয়্যার দেখিয়েছি কারণ এটি একটি খুব অগোছালো ছবি হয়ে দাঁড়িয়েছে যা আপনাকে দেখায় যে সমস্ত তারগুলি একে অপরকে অতিক্রম করছে।

ধাপ 2: Arduino লিওনার্দো কোডিং:

Arduino লিওনার্দো কোডিং
Arduino লিওনার্দো কোডিং

তাই আপনাকে কারণটি বলার জন্য আমি লিওনার্দোকে এর জন্য ব্যবহার করছি। কারণ এটির একটি নির্দিষ্ট চিপ রয়েছে যা ইউনো করে না যা কম্পিউটারটিকে ইউএসবি ইনপুট ডিভাইস হিসাবে স্বীকৃতি দেয়। অনেকটা এটি একটি কীবোর্ড হবে। যা আমাদের এমন কিছু করতে দেয় যা আমাদের জীবনকে এই প্রকল্পের জন্য প্রোগ্রামার হিসেবে অনেক সহজ করে তোলে। কীবোর্ড এমুলেশন। আমরা কম্পিউটারকে এই ভেবে ভ্রান্ত করতে যাচ্ছি যে আমরা কীবোর্ডে কিছু কী চাপছি যখন আমরা আসলে আমাদের নিয়ামকের বোতাম টিপছি।

এখন আমি হেঁটে যাচ্ছি আপনি ভেবেছিলেন ধাপে ধাপে কোড।

প্রথমে উপরের দিকে আমরা Keyboard.h অন্তর্ভুক্ত করি। এটি আমাদের কীবোর্ড ফাংশন ব্যবহার করতে দেবে যা আমরা আমাদের কোডে ব্যবহার করতে যাচ্ছি।

ধাপ 3:

ছবি
ছবি

তারপরে আমাদের ডিজিটাল ইনপুট স্লটগুলি সংজ্ঞায়িত করতে হবে যা আমরা ব্যবহার করতে যাচ্ছি

প্রতিটি বোতামের জন্য লিওনার্দো।

আমি তাদের প্রত্যেকের নাম চাবির নামে রেখেছি যা আমি অনুকরণ করতে যাচ্ছি।

ধাপ 4:

ছবি
ছবি

সেখান থেকে আমরা সেটআপ ফাংশনে প্রবেশ করি। এই বলে

arduino এটি শুরুতে কি করে।

প্রথমে আমরা Serial.begin লিখি যা সিরিয়াল পোর্ট খুলবে এবং ডাটা রেট 9600 bps সেট করবে

এবং আমরা সংজ্ঞায়িত করেছি যে সমস্ত পিনের নাম ইনপুট হতে পারে।

ধাপ 5:

ছবি
ছবি

এবং পরিশেষে আমরা আমাদের লুপ ফাংশন লিখি যা যাচাই করবে

বোতামগুলি চাপানো হচ্ছে এবং আরডুইনোকে বলুন যে কীভাবে সাড়া দেওয়া যায়।

প্রথমে আমরা Keyboard.begin লিখি যা Arduino কে বলবে যে কীবোর্ড ফাংশন ব্যবহার করে তাকে আমাদের খুঁজে বের করতে হবে

ধাপ 6:

ছবি
ছবি
ছবি
ছবি
ছবি
ছবি

তারপর প্রতিটি বোতামের জন্য আমরা একটি if/else স্টেটমেন্ট লিখি যা এইরকম হয়

তাই আমি এখানে আরডুইনোকে যা বলেছি তা হল: যদি আমার বাম বোতামটি নিয়ন্ত্রকের উপর চাপানো হয় তবে কম্পিউটারকে ভাবতে হবে যে আমরা "a" কী টিপছি এবং যদি তা না হয় তবে এটি মনে করুন যে আমরা কীটি ছেড়ে দিয়েছি।

আপনি মূলত আপনার নিয়ামকের প্রতিটি বোতামের জন্য কোডের এই ব্লকটি পুনরাবৃত্তি করেন। প্রতিটি ভেরিয়েবলের পরিবর্তন এবং ভেরিয়েবলের যে কীগুলো অনুকরণ করা প্রয়োজন

ধাপ 7:

ছবি
ছবি

আমরা যে কম্পিউটারগুলোকে এখানে আঘাত করতে বলেছি সেগুলো হলো W - A - S - D যা

পিসি গেমস এবং E-Q- তে চলাচলের জন্য মান অনেক বেশি এবং স্পেসবার যা এই কোডে স্বীকৃত '' যেগুলি আমি বাছাই করার জন্য যে বোতামগুলি ব্যবহার করি-আমার গেমটিতে খারিজ এবং ফায়ার। আপনার গেম/কন্ট্রোলারের জন্য আপনি যে কাজগুলি ভাল মনে করেন তাতে এটি পরিবর্তন করতে নির্দ্বিধায়।

তারপর সবশেষে আমরা arduino কে চেক থামাতে বলি যে Keyboard.end

ধাপ 8: একতার মধ্যে কোডিং আন্দোলন:

Ityক্যে কোডিং আন্দোলন
Ityক্যে কোডিং আন্দোলন

প্রথমে আমাকে বলুন আমি এটি একটি 2 ডি গেমের জন্য তৈরি করছি

আপনি যে উদাহরণগুলি দেখতে যাচ্ছেন সেগুলি এর জন্য নির্মিত। প্রধানত অর্থ যেখানে আমি ভেক্টর 2 ব্যবহার করি যদি আপনি 3 ডি তে কাজ করেন তবে আপনি ভেক্টর 3 এর ব্যবহার করবেন। কারণ আপনি 3 ডি মধ্যে আন্দোলনের অতিরিক্ত মাত্রা সম্পর্কে চিন্তা করতে হবে।

এখন আমি আরডুইনো সাইডে কীবোর্ড এমুলেশন ব্যবহার করার কারণ হল যে ইউনিটি কিবোর্ডে কীগুলি চিনতে পারে যা আমরা ব্যবহার করতে পারি।

আপনি যদি আপনার প্রকল্পটি একতায় খুলেন তবে সম্পাদনা -> প্রকল্প সেটিংস -> ইনপুটে যান। আপনি আপনার পরিদর্শকের মধ্যে দেখতে পারেন এটি ইনপুট ম্যানেজারকে বুট করে। যেখানে আপনি Axes- এ ক্লিক করলে আপনি দেখতে পাবেন একটি সম্পূর্ণ গুচ্ছ ইনপুট নাম খোলা আছে যা সাধারণত পিসি কন্ট্রোলারের জন্য ব্যবহৃত হয় যেমন আমরা এখন তৈরি করছি। আমরা যে 2 টি ইনপুট ব্যবহার করতে যাচ্ছি তা হল অনুভূমিক এবং উল্লম্ব যা আপনি W-A-S-D অনুমান করেছেন তা পরীক্ষা করে দেখুন।

প্রথমে আপনি আপনার unityক্য দৃশ্যের অনুক্রমের মধ্যে একটি বস্তু তৈরি করতে চান যা আপনার খেলোয়াড় হবে। আমার ক্ষেত্রে এই মজার ছোট ছেলে হচ্ছে এটি আপনার যা প্রয়োজন তা হতে পারে কিন্তু আমার গেমের উদ্দেশ্যে আমি এই লোকটিকে তৈরি করেছি।

ধাপ 9:

ছবি
ছবি

আপনি এই খেলোয়াড়কে 2 টি জিনিস দিতে চান। একটি বক্স কোলাইডার 2d এবং

একটি Rigidbody 2d এবং উপরের ছবির মত হতে সেগুলি সম্পাদনা করুন।

ধাপ 10:

ছবি
ছবি

তারপরে আপনি আপনার প্রকল্প ফোল্ডারে যেতে চান এবং একটি তৈরি করতে চান

C# স্ক্রিপ্ট। যার নাম দিয়েছিলাম প্লেয়ার মুভমেন্ট।

এই স্ক্রিপ্টে আপনি 2 টি ভেরিয়েবল সংজ্ঞায়িত করতে যাচ্ছেন। একটি পাবলিক ফ্লোট যাকে আমি moveSpeed বলি। যা নির্ধারণ করবে আপনি কত দ্রুত যাবেন। এবং একটি প্রাইভেট Rigidbody2D যাকে আমি RigidPlayer বলি। যা আপনার খেলোয়াড়দের কঠোর দেহের সন্ধান করবে।

আপনার unityক্য সম্পাদকের কাছে যেতে ভুলবেন না আপনার প্লেয়ারে ক্লিক করুন এই নতুন স্ক্রিপ্টটি ইন্সপেক্টরের কাছে টেনে এনে মুভস্পিডের জন্য একটি নম্বর মান সেট করুন।

ধাপ 11:

ছবি
ছবি

এখন আপনার Start () এ আপনি একটি কাজ করতে চান এবং তা হল

নিশ্চিত করুন যে আপনার RigidPlayer আপনার payer rigidbody 2d খুঁজে পেতে পারে। আপনি কোডের নিম্নলিখিত লাইন দিয়ে এটি করুন:

ধাপ 12:

ছবি
ছবি

তারপরে আমরা আপডেট () এ চলে যাই। এখানে আমরা কোথায় যাচ্ছি

খেলোয়াড়কে সরানোর জন্য।

আমরা এটিকে খুব সহজভাবে করি যদি বিবৃতিটি অনুভূমিক (AD) এবং উল্লম্ব (SW) থেকে নেতিবাচক এবং ইতিবাচক কীগুলি দেখবে এবং এটিকে একটি সংখ্যা হিসাবে প্রয়োগ করতে হবে যাতে আমরা আমাদের খেলোয়াড়কে ধাক্কা দিতে আমাদের অনমনীয় 2d লাগাব। একটি দিক এই সংখ্যাটি moveSpeed ভেরিয়েবল দ্বারা গুণিত হবে।

ধাপ 13:

ছবি
ছবি

পরিশেষে আপনি নিশ্চিত করতে চান যে আপনার প্লেয়ার কখন চলাচল বন্ধ করে

আপনি কিছু চাপবেন না। আপনি এটি পছন্দ করেন:

এখন যদি আপনি আপনার 3 টি অন্যান্য বোতাম ব্যবহার করতে চান তবে আপনি যদি এই স্টেটমেন্ট দিয়ে থাকেন: if (Input. GetKeyDown (Keycode. Space))

স্পেসবারের জন্য এবং স্পেসের পরিবর্তে আপনি অন্য কীগুলির জন্য ব্যবহার করার জন্য বেছে নেওয়া অন্যান্য কীগুলির চিঠি রাখুন।

ধাপ 14: আরডুইনোতে লাইট হুকিং

আরডুইনোতে লাইট হুকিং
আরডুইনোতে লাইট হুকিং

·

এই অংশটি সংযুক্ত করার জন্য আপনাকে যা করতে হবে:

· 9 জাম্পার তার

· 4 প্রতিরোধক

Led 4 নেতৃত্ব

· 1 arduino uno + usb তারের

· ব্রেডবোর্ড

ইউনোর মাধ্যমে লাইটের জন্য হুকআপ করা হবে।

এটি উপরের এই চিত্রের মতো দেখতে শেষ হবে:

আপনি প্রতিরোধকগুলিকে LED এর দীর্ঘ দিকে সংযুক্ত করুন। এবং তারপর আপনি ইউনোর উপর একটি ডিজিটাল পিন নাম্বার থেকে একটি জাম্পারকে রোধকারীদের সাথে সংযুক্ত করুন। এই ক্ষেত্রে আমি ডিজিটাল পিন স্লট ব্যবহার করেছি 9 -10 -11 -12 এই সংখ্যাগুলি প্রাসঙ্গিক হবে যখন আমরা লাইটের জন্য কোড পাব।

সেখান থেকে আপনি আপনার আরডুইনো ইউনোর গ্রাউন্ড স্লট থেকে আপনার বোর্ডের স্পট পর্যন্ত একটি জাম্পার হুক আপ করতে চান যেমন উপরের ছবিতে কালো তারের সাথে দেখা যায়।

তারপরে আপনি প্রতিটি LED এর সংক্ষিপ্ত প্রান্তে 4 টি জাম্পার পেতে চান

ধাপ 15: Arduino Uno কোডিং

Arduino Uno কোডিং
Arduino Uno কোডিং

ঠিক আছে প্রথমে আমরা আমাদের ভেরিয়েবলগুলিকে আবার সংজ্ঞায়িত করতে যাচ্ছি

তাই প্রথমে কোন ডিজিটাল ইনপুট আমরা আমাদের লাইটের জন্য ব্যবহার করছি। এবং আমরা myCol নামে একটি চর তৈরি করতে যাচ্ছি [20]

ধাপ 16:

ছবি
ছবি

তারপর সেটআপে আমরা Serial.begin আবার করতে চাই। আমাদের সমস্ত LED গুলিকে আউটপুটে রাখুন এবং স্টার্টআপে সেগুলি সব বন্ধ করুন।

ধাপ 17:

ছবি
ছবি

এবং অবশেষে আপনি আপনার লুপ ফাংশন লিখতে চান।

এটি আরডুইনোকে সিরিয়ালের মাধ্যমে আসা যেকোনো ডেটা পড়তে বাধ্য করবে যতক্ষণ না দুটি ঘটনা ঘটবে। হয় একটি লাইন ফিড অক্ষর সনাক্ত করা হয়; এটি lf দ্বারা চিহ্নিত করা হয় যা 10 তে সেট করা হয় এবং এটি প্রথম যুক্তি বা নির্দিষ্ট পরিমাণে বাইট পড়া হয়েছে। এটি তৃতীয় যুক্তি এবং এই উদাহরণের জন্য মাত্র একটি বাইটে সেট করা হয়েছে। ডেটা ভেরিয়েবল myCol- এ সংরক্ষিত আছে, যা চার এবং 20 এর সীমাতে সেট করা আছে। ReadBytesUntil এ এটি দ্বিতীয় যুক্তি। অথবা এটি ব্যাখ্যা করার আরেকটি উপায় হল Serial.readBytesUntil (terminatorCharacter, buffer, byteLimit);

এবং যদি বিবৃতি নিশ্চিত করে যে কিছু লাইট জ্বলছে যখন unityক্য সংকেত দেয়। এই ক্ষেত্রে আমি 4 টি ভিন্ন রঙের লাইট পেয়েছি তাই আমি সবুজ LED চালু করার জন্য unityক্য প্রেরণ করি, নীল LED চালু করার জন্য b, লাল LED চালু করার জন্য আর y হলুদ LED চালু করার জন্য।

ধাপ 18: কোডিং লাইট ইউনিটি সাইড:

কোডিং লাইট ইউনিটি সাইড
কোডিং লাইট ইউনিটি সাইড

2 টি জিনিস আগে আমরা এই মধ্যে পেতে আগে।

1. আপনার arduino কোডিং প্রোগ্রামে টুল -> পোর্ট -> এ যান এবং আপনার জন্য কোন COM চালু আছে তা পরীক্ষা করুন। আমার ক্ষেত্রে এর COM3 (এটি কোডে গুরুত্বপূর্ণ হবে)

2. unityক্যের মধ্যে যান সম্পাদনা -> প্রকল্প সেটিংস -> প্লেয়ার তারপর পরিদর্শক এ ক্লিক করুন অন্যান্য সেটিংস এপিআই সামঞ্জস্য স্তরে যান এবং এটি. NET 2.0 সাবনেট থেকে শুধু. NET 2.0 এ স্যুইচ করুন

ঠিক আছে এটা হয়ে গেছে। এর মধ্যে প্রবেশ করা যাক।

আপনার অনুক্রমের উপর ডান ক্লিক করুন এবং খালি তৈরি করুন এ ক্লিক করুন।

এটি একটি খালি গেম অবজেক্ট হবে যা আমাদের গেমের জন্য একটি স্ক্রিপ্ট ধরে রাখার জন্য আপনার গেমের মধ্যে থাকবে। আমি এই বস্তুকে ইনিশ বলেছি।

ধাপ 19:

ছবি
ছবি

তারপর আপনার প্রকল্প ট্যাবে যান এবং একটি নতুন C# স্ক্রিপ্ট তৈরি করুন

এবং এটি প্রেরণ কল।

প্রথমে আপনি যা করবেন তা হল আপনার কোডের ব্যবহারকারী বিভাগে লাইনগুলিতে লিখুন:

System. IO. Ports ব্যবহার করে;

System. Threading ব্যবহার করে;

এটি তৈরি করে যাতে আমরা সিরিয়ালপোর্ট ভেরিয়েবল ব্যবহার করতে পারি

ধাপ 20:

ছবি
ছবি

এই স্ক্রিপ্টে আমরা নিম্নলিখিত ভেরিয়েবল তৈরি করতে যাচ্ছি। এখন মনে রাখবেন আমি COM3 পেয়েছি এটি আপনার জন্য ভিন্ন হতে পারে যেমন আমরা এই ধাপের শুরুতে আলোচনা করেছি। যদি এটি 3 এর পরিবর্তে আপনার জন্য বলা নম্বরটি দিয়ে থাকে।

ধাপ 21:

ছবি
ছবি

শুরুতে আমরা স্ক্রিপ্টকে বলতে চাই OpenConnection

ফাংশন যা আমরা একটু লিখতে যাচ্ছি

আপডেট আরো একটি পরীক্ষা তারপর কিছু কিন্তু যদি আপনি এটি অন্তর্ভুক্ত করতে চান এটি unityক্যে পাঠানো বার্তাগুলি পরীক্ষা করার জন্য। আপনি এটিকে সৎভাবে উপেক্ষা করতে পারেন।

ধাপ 22:

ছবি
ছবি

এই OpenConnection ফাংশনের জন্য এখন ঠিক আছে। এটি শুধু একটি বড়

যদি/অন্য বিবৃতি যা সংযোগ খোলা রাখে শুধু লিখিত মত এটি অনুলিপি করুন এবং আপনি জরিমানা করা উচিত।

ধাপ 23:

ছবি
ছবি

এখন আরডুইনো কোড থেকে মনে রাখবেন যে আমি এটি চেক করেছি

সংকেত যে unityক্য এটি পাঠাতে যাচ্ছে।

ভাল যেখানে এটি ঘটে। আমার ক্ষেত্রে আমি 4 টি লাইট সংযুক্ত করেছি তাই আমি 4 টি ফাংশন লিখেছি যা অত্যন্ত সহজ। যখন তারা ডাকা হয় তখন তারা আরডুইনোতে একটি চিঠি পাঠায়। যখন arduino সেই চিঠি পায় তখন এটি সেই চিঠির সাথে সম্পর্কিত আলোকে আলোকিত করে।

ধাপ 24:

ছবি
ছবি

আপনি হয়তো ভাবছেন কিভাবে আমি এটাকে কল করতে পারি

ফাংশন? আচ্ছা আপনি এটি আপনার অন্যান্য সি# স্ক্রিপ্টগুলির মধ্যে একটি সহজ লাইন দিয়ে করেন যা আপনি আপনার গেমের জন্য ব্যবহার করেন। নাম ফাংশনহেয়ার (); উদাহরণস্বরূপ আমার গেমটিতে খেলোয়াড়কে 4 টি রঙিন অর্ব সংগ্রহ করার দায়িত্ব দেওয়া হয়েছে। তাই আমি একটি ছোট স্ক্রিপ্ট লিখেছিলাম যা নিশ্চিত করে যে যখন সে একজনের কাছাকাছি আসে এবং ডান বোতাম টিপে সে তা তুলে নেয় এবং এটি আরডুইনোকে সংকেত পাঠায় যে এই ক্ষেত্রে হলুদ কক্ষটি তুলে নেওয়া হয়েছে। যাতে এটি জানে, ঠিক আছে আমাকে হলুদ LED চালু করতে হবে:

আপনি কোডের এই এক লাইনটি আপনার পছন্দের যেকোন জায়গায় রাখতে পারেন। খেলাটি শুরু হলে আপনি এটিকে আলোকিত করতে চান তবে এটি স্টার্ট ফাংশনে রাখুন। যখন তিনি মারা যান তখন এটি আলোকিত করতে চান এটি খেলোয়াড়দের মৃত্যুর জন্য আপনার ফাংশনে রাখুন। একটু পরীক্ষা করে দেখুন। আমি স্ক্রিনে গণ্ডগোল না করে যে অর্বস সংগ্রহ করতে পেরেছি তার ট্র্যাক রাখার জন্য আমি গেমের বাইরে লাইটগুলিকে এক ধরণের ইউআই উপাদান হিসেবে বেছে নিই।

প্রস্তাবিত: