সুচিপত্র:

Arduino VGA Console with Five Games: 4 ধাপ
Arduino VGA Console with Five Games: 4 ধাপ

ভিডিও: Arduino VGA Console with Five Games: 4 ধাপ

ভিডিও: Arduino VGA Console with Five Games: 4 ধাপ
ভিডিও: Can You Reattach a Severed Finger? 🤔 2024, নভেম্বর
Anonim
Image
Image
পাঁচটি গেম সহ আরডুইনো ভিজিএ কনসোল
পাঁচটি গেম সহ আরডুইনো ভিজিএ কনসোল
পাঁচটি গেম সহ আরডুইনো ভিজিএ কনসোল
পাঁচটি গেম সহ আরডুইনো ভিজিএ কনসোল

আমার আগের ইন্সট্রাক্টেবলগুলিতে, আমি খালি আরডুইনো এবং অন্যান্য কয়েকটি উপাদানের মাধ্যমে কিছু জনপ্রিয় ক্লাসিক্যাল আর্কেড গেমের সরলীকৃত সংস্করণগুলি পুনরুত্পাদন করেছি। পরবর্তীতে আমি তাদের মধ্যে পাঁচজনকে একক স্কেচে যোগ দিয়েছিলাম। এখানে আমি দেখাব কিভাবে আপনি একটি সাধারণ কনসোল তৈরি করতে পারেন যা পং, ব্রেকআউট, বোম্বার, টেট্রিস এবং এচ-এ-স্কেচ থেকে অনুপ্রাণিত একটি অঙ্কন খেলনা খেলতে পারে। এই কনসোলটি সাপ খেলতেও ব্যবহার করা যেতে পারে, এবং অন্যান্য লেখকদের লেখা আরও দুটি গেম: স্যান্ড্রো মাফিওডো ওরফে "স্মাফার" এর বিট নিনজা এবং নিকিতা কুরিয়েলেভের স্ট্যাকার।

প্রধান বৈশিষ্ট্য হল একটি ভিজিএ সংকেত তৈরি করা, ভিজিএক্স লাইব্রেরিকে ধন্যবাদ, এইভাবে কনসোলের জন্য একটি ভিজিএ মনিটর প্রয়োজন। আমার লক্ষ্য, যথারীতি, এটি তৈরি করার জন্য কোনও "বিশেষ উপাদান" এড়ানো, আপনার তখন কোনও সহায়ক আইসি বা ieldsাল দরকার নেই! শুধুমাত্র উপাদান দুটি potentiometers, পাঁচ বোতাম, কয়েকটি প্রতিরোধক এবং একটি DSUB15 (VGA) সংযোগকারী। একটি পাইজো স্পিকার alচ্ছিক। এই পেইজের ছবিতে আপনি এই গেমগুলো দেখতে কেমন দেখতে পারেন।

VGAx লাইব্রেরি 120 x 60 পিক্সেলের রেজোলিউশনের সাথে চারটি রঙ ব্যবহার করতে দেয়, এই রেট্রো-গেম কনসোলের জন্য অনেক নয় কিন্তু যথেষ্ট। গ্রাফিক কাঁচা কিন্তু, potentiometers ব্যবহার করার জন্য ধন্যবাদ, গেম নির্বিঘ্নে চালানো। সহজ শব্দ প্রভাব পাওয়া যায়।

ধাপ 1: কিভাবে আপনার নিজের Arduino VGA কনসোল তৈরি করবেন

কিভাবে আপনার নিজের Arduino VGA কনসোল তৈরি করবেন
কিভাবে আপনার নিজের Arduino VGA কনসোল তৈরি করবেন
কিভাবে আপনার নিজের Arduino VGA কনসোল তৈরি করবেন
কিভাবে আপনার নিজের Arduino VGA কনসোল তৈরি করবেন

প্রথমে এই পৃষ্ঠার নীচে ArduinoVGAgame.ino এবং/অথবা Snake.ino কোডগুলি ডাউনলোড করুন এবং সেগুলি একই নামের একটি ডিরেক্টরিতে আপনার পিসিতে অনুলিপি করুন। GitHub এ এই লিঙ্ক থেকে VGAx লাইব্রেরি ডাউনলোড করুন। সবচেয়ে সহজ উপায় হল "লাইব্রেরি" নামে আরডুইনো সফটওয়্যার সাবফোল্ডারে অনুলিপি করা, তাৎক্ষণিকভাবে স্বীকৃত।

গুরুত্বপূর্ণ: এই লাইব্রেরি Arduno IDE 1.6.4 এর জন্য কাজ করে কিন্তু এটি পুরোনো বা নতুন সংস্করণের সাথে পুরোপুরি সামঞ্জস্যপূর্ণ নয়।

আপনার Arduino বোর্ডে কোড আপলোড করুন (আমি ইউনো এবং ন্যানো উভয়ই পরীক্ষা করেছি)। কম উপলব্ধ মেমরির জন্য একটি সতর্কতা স্বাভাবিক। যদি আপনার অন্যান্য ত্রুটি না থাকে তবে সবকিছু ঠিক আছে এবং আপনি অবিলম্বে আপনার নিজের কনসোল তৈরি করতে শুরু করতে পারেন।

এর জন্য আপনার প্রয়োজন:

  • একটি Arduino Uno Rev. 3 বা Arduino Nano 3.x (ATmega328)
  • একটি DSUB15 সংযোগকারী, যেমন একটি ভিজিএ মহিলা সংযোগকারী বা একটি ভিজিএ কেবল কাটা হবে।
  • প্রতিরোধক: 2 x 68 ওহম এবং 2 x 470 ওহম এবং 5 x 1 থেকে 2 kOhm
  • দুই 10 kOhm রৈখিক potentiometers (অনুরূপ মান খুব ভাল)
  • পাঁচটি বোতাম
  • কিছু তারের টুকরা
  • সমস্ত উপাদান রাখার জন্য একটি বা দুটি সুন্দর বাক্স।

অনুষঙ্গী:

  • একটি ব্রেডবোর্ড বা একটি স্ট্রিপ বোর্ড
  • একটি পাইজো স্পিকার

এই ধাপের শীর্ষে পরিকল্পিতভাবে রিপোর্ট করা হয়েছে, সমাপ্ত "কনসোল" এর উদাহরণ সহ।

একটি বোতাম এবং একটি পোটেন্টিওমিটার কিভাবে সংযুক্ত করতে হবে তা পরিকল্পিতভাবে দেখানো হয়েছে। আরো বিশেষভাবে, আপনাকে যথাক্রমে 5, 10, 11, 12 এবং 13 পিনের সাথে পাঁচটি বোতাম সংযুক্ত করতে হবে। প্রতিটি বোতাম দ্বারা সম্পাদিত ক্রিয়াটি পরিকল্পিতভাবে উপরের ডান টেবিলে বর্ণিত হয়েছে। বাম দিকে এটি দেখানো হয়েছে কিভাবে একটি পোটেন্টিওমিটার সংযোগ করতে হয় (A1 এবং A2 পিনের জন্য আপনার দুটি পোটেন্টিওমিটারের প্রয়োজন)। স্পিকারটি অবশ্যই এনালগ পিন A0 এর সাথে সংযুক্ত থাকতে হবে।

আমি একটি কাঠের বাক্সে ভিজিএ সংযোগকারীর সাথে আরডুইনো বোর্ডটি স্থাপন করেছি, যেখানে প্রথম প্লেয়ার পোটেন্টিওমিটার এবং চারটি বোতাম রয়েছে, যখন দ্বিতীয় প্লেয়ার পোটেন্টিওমিটার এবং তার স্টার্ট বোতামটি একটি পৃথক এবং ছোট বাক্সে রয়েছে।

যদি আপনি এই খেলনাটি পছন্দ করেন এবং আপনি এটি পুনরুত্পাদন করার সিদ্ধান্ত নেন, আপনি যদি মন্তব্য লিখেন বা নীচের মন্তব্য বিভাগে একটি ছবি পাঠান তবে আমি প্রশংসা করি।

ধাপ 2: অন্যান্য লেখকদের থেকে গেম

স্যান্ড্রো মাফিওডো সম্প্রতি বিটিনজা গেমটি প্রকাশ করেছে। আপনি এখানে আরো তথ্য পেতে পারেন এবং কোডটি এখানে ডাউনলোড করতে পারেন।

আমার কনসোল ব্যবহার করতে, আপনাকে কেবল তার কোডের বোতামটি পুনরায় তৈরি করতে হবে:

#BTN_UP 11 নির্ধারণ করুন (13 এর পরিবর্তে)

#BTN_LEFT 10 নির্ধারণ করুন (12 এর পরিবর্তে)

#BTN_RIGHT 12 নির্ধারণ করুন (11 এর পরিবর্তে)

নিকিতা কুরিলেভের স্ট্যাকার এখানে পাওয়া যায়। আরো তথ্য এখানে।

আবার, আপনাকে কোডের বিভিন্ন অংশে একটি বোতাম পুনরায় তৈরি করতে হবে: কেবল ডিজিটাল রিড (2) ডিজিটাল রিড (13) দিয়ে প্রতিস্থাপন করুন

ধাপ 3: পরিশিষ্ট 1: কন্ট্রোলারগুলি কীভাবে তৈরি করবেন সে সম্পর্কে আরও বিশদ বিবরণ

পরিশিষ্ট 1: কন্ট্রোলারগুলি কীভাবে তৈরি করবেন সে সম্পর্কে আরও বিশদ
পরিশিষ্ট 1: কন্ট্রোলারগুলি কীভাবে তৈরি করবেন সে সম্পর্কে আরও বিশদ
পরিশিষ্ট 1: কন্ট্রোলারগুলি কীভাবে তৈরি করবেন সে সম্পর্কে আরও বিশদ
পরিশিষ্ট 1: কন্ট্রোলারগুলি কীভাবে তৈরি করবেন সে সম্পর্কে আরও বিশদ
পরিশিষ্ট 1: কন্ট্রোলারগুলি কীভাবে তৈরি করবেন সে সম্পর্কে আরও বিশদ
পরিশিষ্ট 1: কন্ট্রোলারগুলি কীভাবে তৈরি করবেন সে সম্পর্কে আরও বিশদ
পরিশিষ্ট 1: কন্ট্রোলারগুলি কীভাবে তৈরি করবেন সে সম্পর্কে আরও বিশদ
পরিশিষ্ট 1: কন্ট্রোলারগুলি কীভাবে তৈরি করবেন সে সম্পর্কে আরও বিশদ

উপলব্ধ উপাদান এবং আপনার স্বাদের উপর নির্ভর করে আপনি বিভিন্ন উপায়ে নিয়ামক উপলব্ধি করতে পারেন।

আমি কাঠের বাক্স দিয়ে তাদের উপলব্ধি করতে পছন্দ করি (এই পৃষ্ঠায় ছবিগুলি দেখুন)। Arduino, VGA সংযোগকারী এবং প্রথম প্লেয়ার বোতাম এবং potenziometer জন্য একটি প্রধান বাক্স; একটি দ্বিতীয় (ছোট) শুধুমাত্র দ্বিতীয় প্লেয়ার বোতাম এবং চাকার জন্য (পং এবং অঙ্কন খেলনা জন্য প্রয়োজন)। আরেকটি সম্ভাবনা হল একটি বড় বাক্সে সবকিছু রাখা।

প্রথমে আমি ভিজিএ পোর্টের সাথে সংযোগ স্থাপনের পরামর্শ দিচ্ছি। প্রথম এবং দ্বিতীয় ছবিগুলিতে আপনি কিছু বিবরণ দেখতে পারেন: লাল এবং সবুজের জন্য যথাক্রমে 6 এবং 7 পিনের সাথে সংযুক্ত দুটি 470 ওহম প্রতিরোধক এবং অনুভূমিক এবং উল্লম্ব সিঙ্ক্রোনাইজেশন সংকেতের জন্য পিন 3 এবং 9 এর দুটি 68 ওহম প্রতিরোধ করুন।

VGA DSUB15 সংযোগকারীতে আপনি যে পিনের সাথে সংযুক্ত হন তার উপর নির্ভর করে আপনি বিভিন্ন রঙের সংমিশ্রণ চয়ন করতে পারেন, পিন 1, 2 এবং 3 যথাক্রমে লাল, সবুজ, নীল (RGB) প্রতিনিধিত্ব করে। আমি পিন 1 এবং 2 সংযুক্ত করেছি, এইভাবে আমার নিম্নলিখিত রঙ সমন্বয় আছে: (0, 0) = কালো; (1, 0) = লাল; (0, 1) = সবুজ; (1, 1) = হলুদ।

সমস্ত ভিন্ন সম্ভাবনার জন্য, আমি সেই পৃষ্ঠায় বিশদ পড়ার পরামর্শ দিচ্ছি যেখানে আপনি VGAx লাইব্রেরিগুলি ডাউনলোড করেন।

ভিজিএ সংযোগকারী প্রস্তুত হওয়ার সাথে সাথে আপনি বোতাম, চাকা এবং স্পিকারের জন্য অন্যান্য সমস্ত তারগুলি প্রস্তুত করতে পারেন (ছবি 2 দেখুন)।

এখন শুধু সবকিছু একসাথে রাখুন: মনে রাখবেন যে প্রতিটি বোতাম পিনকে 1 বা 2 kOhm রোধকের মাধ্যমে মাটিতে সংযোগ করতে হবে, অন্যথায় যখন বোতামটি খোলা থাকে তখন পিনের অবস্থা অনির্ধারিত হতে পারে। এর মানে হল যে যদি পিনটি সংযোগ বিচ্ছিন্ন থাকে তবে আপনি এটিতে একটি এলোমেলো (স্থির) ভোল্টেজ রাখতে পারেন যা এটি সক্রিয় করতে পারে। এই নির্দেশের দ্বিতীয় ধাপে পরিকল্পিত আরো বিস্তারিত জানার জন্য দেখুন।

শেষ ধাপ হল সবকিছু ঠিক করা। আমি হট-গ্লু-গান ব্যবহার করেছি, কিন্তু আপনি আপনার পছন্দের পদ্ধতি ব্যবহার করতে পারেন।

ধাপ 4: পরিশিষ্ট 2: স্মৃতি সীমা সম্পর্কে কিছু বিবেচনা

এটা আশ্চর্যজনক যে একটি সাধারণ আরডুইনো একটি ভিজিএ সংকেত এবং এই সমস্ত গেম একসাথে তৈরি করতে সক্ষম। আসল বোতল-ঘাড় SRAM এর অভাব। AVR মাইক্রোকন্ট্রোলারের ভেরিয়েবলগুলি সংরক্ষণ এবং ম্যানিপুলেট করার জন্য শুধুমাত্র 2048 বাইট পাওয়া যায় এবং VGAx লাইব্রেরি 120x60 পিক্সেল ফ্রেমবফারে স্ক্রিন ভেরিয়েবল সংরক্ষণ করে যেখানে প্রতিটি পিক্সেলের মোট 1800 বাইটের জন্য 2 বিট (4 রঙ) প্রয়োজন। এর মানে হল যে স্কেচ ভেরিয়েবলের জন্য মাত্র 248 বাইট বাকি আছে। তদুপরি, আমার অভিজ্ঞতায়, অস্থিরতা এড়াতে একজনকে কমপক্ষে 100 বাইট মুক্ত রাখা উচিত। 1950 বাইটের উপরে ডায়নামিক মেমরির ব্যবহার করে, মাইক্রোকন্ট্রোলার বিজোড় এবং অনির্দেশ্য আচরণ দেখাতে শুরু করে।

এর মানে হল যে সমস্ত ভেরিয়েবলগুলি বিভিন্ন গেমের মধ্যে ভাগ করা আবশ্যক, এবং এটি কোডটিকে বেশ পাঠযোগ্য এবং ডিবাগ করা কঠিন করে তোলে। পূর্ববর্তী স্কেচে "একটি নতুন গেম যোগ করা" এটি কেবল একটি বিষয় নয়, তবে সমস্ত কোড অবশ্যই গভীরভাবে সংশোধন এবং অপ্টিমাইজ করা উচিত।

তদুপরি, আমাকে ন্যূনতম সম্ভাব্য পরিবর্তনশীল বিন্যাস ব্যবহার করতে হয়েছিল: উদাহরণস্বরূপ, সমস্ত স্থানাঙ্কগুলির জন্য আমাকে "int" এর পরিবর্তে "বাইট" ব্যবহার করতে হয়েছিল বা অন্য ক্ষেত্রে, আমাকে "ফ্লোট" এর পরিবর্তে "int" পছন্দ করতে হয়েছিল।

অবশেষে, আমার জ্ঞান স্যান্ড্রো মাফিওডো ওরফে স্মাফার, ভিজিএক্স লাইব্রেরির স্রষ্টা এবং দুর্দান্ত গেম বিটিনজার কাছে যায়। এই লাইব্রেরি না থাকলে এই প্রকল্পটি বাস্তবায়িত হতে পারত না।

সহজ কিন্তু মজার গেম স্ট্যাকারের জন্য নিকিতা কুরিলেভকেও ধন্যবাদ।

প্রস্তাবিত: