সুচিপত্র:

ESP8266 VGA Pong: 5 ধাপ (ছবি সহ)
ESP8266 VGA Pong: 5 ধাপ (ছবি সহ)

ভিডিও: ESP8266 VGA Pong: 5 ধাপ (ছবি সহ)

ভিডিও: ESP8266 VGA Pong: 5 ধাপ (ছবি সহ)
ভিডিও: ESP8266 VGA Pong 2024, নভেম্বর
Anonim
Image
Image
উপকরণ তালিকা
উপকরণ তালিকা

এই নির্দেশাবলীতে আমি দেখাব কিভাবে একটি VGA মনিটরের জন্য ক্লাসিক গেম পং এর একটি পুনরুত্পাদন তৈরি করা যায়, একটি ESP8266 এবং কিছু অন্যান্য উপাদান ব্যবহার করে।

এই গেমটি সম্ভব হয়েছে EspVGAx লাইব্রেরি দ্বারা সম্প্রতি GitHub এ প্রকাশিত স্যান্ড্রো মাফিওডো (ওরফে স্মাফার) এবং যতদূর আমি জানি, এটিই প্রথম গেমটি শোষণ করে।

লাইব্রেরি 512 x 480 পিক্সেলের একটি রেজল্যুশন প্রয়োগ করে, যা RAM এর ভিতরে একটি ফ্রেমবফারে সংরক্ষিত থাকে, যার জন্য 30720 বাইট প্রয়োজন। আরডুইনো টিভিআউট বা ভিজিএক্স (যথাক্রমে 128 x 96 এবং 120 x 60 পিক্সেল) এর তুলনায় রেজোলিউশনটি বিশাল। আমি আশা করি এই গেমটি অন্যান্য প্রোগ্রামারদের আরো জটিল গেমস ডেভেলপ করতে বা পুনরুত্পাদন করতে অনুপ্রাণিত করবে।

ধাপ 1: উপকরণগুলির তালিকা

EspVGAx লাইব্রেরির জন্য ESP8266 প্রয়োজন সমস্ত GPIO উন্মুক্ত, যেমন ESP-12E, NodeMCU-12E বোর্ড বা যে কোন বোর্ড যা GPIO5 (D1), GPIO4 (D2) এবং GPIO13 (D7) প্রকাশ করে

বিশেষ করে, আমি ব্যবহার করেছি:

  • একটি ESP8266 NodeMCU-12E (এখানে লিঙ্ক)
  • একটি DSUB15 সংযোগকারী (যেমন একটি VGA মহিলা সংযোগকারী)
  • একটি 330 ওহম প্রতিরোধক
  • অন্য প্রতিরোধক (প্রায় 1 থেকে 3 kOhm)
  • দুই 10 kOhm Potentiometers
  • একটি পুশ বোতাম (n.o.)
  • দুটি ডায়োড (যেমন 1N4007s)
  • একটি রুটিবোর্ড
  • তারের

আমি একটি পুরানো ভিজিএ পিসি বোর্ড থেকে DSUB15 সংযোগকারী পেয়েছি। বিকল্পভাবে, আপনি একটি পুরানো ভিজিএ কেবলও কেটে ফেলতে পারেন এবং তারগুলি সরাসরি রুটিবোর্ডের সাথে সংযুক্ত করতে পারেন।

ধাপ 2: লাইব্রেরি এবং স্কেচ আপলোড

লাইব্রেরি এবং স্কেচ আপলোড
লাইব্রেরি এবং স্কেচ আপলোড

প্রোগ্রাম এবং ESP8266 এর বিভিন্ন পদ্ধতি আছে; আমি পং লিখতে এবং কোড আপলোড করার জন্য Arduino IDE ব্যবহার করেছি।

অনুগ্রহ করে মনে রাখবেন যে EspVGAx লাইব্রেরি Arduino IDE 1.8.1 এর জন্য কাজ করে। যদি আপনার অন্য সংস্করণ থাকে, তাহলে.zip ফাইলগুলি ডাউনলোড করুন এবং এটি একটি ডেডিকেটেড ফোল্ডারে অসম্পূর্ণ করুন। উইন্ডোজ সংস্করণ এখানে। অন্যান্য অপারেটিং সিস্টেমের সংস্করণ এখানে।

এর পরে, আপনাকে এখানে GithHub পৃষ্ঠা থেকে EspVGAx লাইব্রেরি ডাউনলোড করতে হবে (এখানে জিপ সংস্করণের জন্য সরাসরি লিঙ্ক), এবং এটি Arduino সফ্টওয়্যারের ফোল্ডার লাইব্রেরিতে অসম্পূর্ণ করুন।

NB espvgax_draw.h ফাইলে একটু বাগ আছে। এটি সংশোধন করতে, কেবল লাইন 17 প্রতিস্থাপন করুন:

while (x0%32) {while (x0%32 && sw> 32) {

অবশেষে আপনি এই ধাপের শেষে ESP8266_Pong.rar ডাউনলোড করতে পারেন।

একবার আনজিপ হয়ে গেলে, এটি আপনার ESP8266 এ আপলোড করার জন্য, আপনাকে Arduino IDE কনফিগার করতে হবে।

যদি আপনি এটি কখনও না করেন তবে আপনি এই নির্দেশাবলীতে সমস্ত প্রয়োজনীয় নির্দেশাবলী খুঁজে পেতে পারেন, বিশেষত ধাপ 2 এ।

একবার সবকিছু কনফিগার হয়ে গেলে, ESP8266 সেটিংস উপরের ছবিতে দেখানোগুলির মতো হওয়া উচিত।

আপনি যদি ত্রুটি ছাড়াই কোড আপলোড করতে পারেন, তাহলে আপনি যন্ত্রাংশ একত্রিত করতে শুরু করতে পারেন।

ধাপ 3: অংশগুলি সংযুক্ত করা: ভিজিএ সংযোগকারী

যন্ত্রাংশ সংযুক্ত করা: ভিজিএ সংযোগকারী
যন্ত্রাংশ সংযুক্ত করা: ভিজিএ সংযোগকারী
যন্ত্রাংশ সংযুক্ত করা: ভিজিএ সংযোগকারী
যন্ত্রাংশ সংযুক্ত করা: ভিজিএ সংযোগকারী
যন্ত্রাংশ সংযুক্ত করা: ভিজিএ সংযোগকারী
যন্ত্রাংশ সংযুক্ত করা: ভিজিএ সংযোগকারী

আমি প্রথমে VGA পোর্টের সাথে সংযোগ স্থাপনের সুপারিশ করছি, যেমন উপরের ছবিতে দেখানো হয়েছে। দয়া করে মনে রাখবেন যে তিনটি পিন লাল, সবুজ এবং নীলকে একসাথে সংযুক্ত করে (যেমন DSUB15 সংযোগকারীতে পিন 1, 2 এবং 3), আপনার স্ক্রিনে একটি B&W চিত্র থাকবে। আপনি বিভিন্ন রং সমন্বয় করতে পারেন। লাইব্রেরি গিটহাব পৃষ্ঠায় বিস্তারিত দেখুন।

তদুপরি, আপনার ESP8266 এ RGB পিন এবং D7 (GPIO13) এর মধ্যে 330 ওহম প্রতিরোধক সংযুক্ত করা উচিত। এটি আমাকে আমার মনিটরে কিছুটা ধূসর চিত্র দিয়েছে, কয়েকবার চেষ্টা করার পরে, আমি এটিকে একেবারে বাদ দেওয়ার সিদ্ধান্ত নিয়েছি।

এই মুহুর্তে, যদি সবকিছু সঠিকভাবে কাজ করে, আপনি ইতিমধ্যে মনিটরটি সংযুক্ত করতে পারেন এবং ব্যানার "ESP8266 VGAx Pong" এর সাথে খেলাটির শুরু পর্দা দেখতে পারেন।

ধাপ 4: অংশগুলি সংযুক্ত করা হচ্ছে: পোটেন্টিওমিটার এবং বোতাম

যন্ত্রাংশ সংযুক্ত করা: পটেন্টিওমিটার এবং বোতাম
যন্ত্রাংশ সংযুক্ত করা: পটেন্টিওমিটার এবং বোতাম

বোতামটি 3.3V এবং পিন D0 (GPIO16) এর মধ্যে সংযুক্ত থাকতে হবে। D0 থেকে মাটিতে 1 থেকে 3 kOhm প্রতিরোধক সংযুক্ত করুন। বাটন খোলা থাকলে এটি একটি অনির্দিষ্ট স্থিতিতে D0 এড়ায়।

দুটি potentiometers সংযোগ কম তুচ্ছ, বস্তুত ESP8266 শুধুমাত্র একটি এনালগ ইনপুট পোর্ট A0 (ADC0) আছে! কৌশলটি হ'ল উভয় পট এর আউটপুটগুলিকে একই বন্দরে সংযুক্ত করা এবং সেগুলি 'মাল্টিপ্লেক্স'। মাল্টিপ্লেক্সিং এর সহজ অর্থ হল আপনি একটি পটেনশিয়োমিটার চালু করবেন, পড়বেন, তারপর এটি বন্ধ করে দ্বিতীয়টিতে চলে যাবেন।

আপনি যদি এই পদ্ধতি সম্পর্কে আরও জানতে চান, তাহলে আপনি এই নির্দেশনাটি পড়তে পারেন।

GND- এর সাথে একটি পটেন্টিওমিটার চরম, অন্যটি চরম বাম প্লেয়ারের potentiometer এর জন্য D5 এবং ডান প্লেয়ারের জন্য D6 এর সাথে সংযুক্ত করুন।

প্রতিটি পোটেন্টিওমিটার সেন্ট্রাল পিন অবশ্যই একটি পৃথক ডায়োডের সাথে সংযুক্ত থাকতে হবে এবং ডায়োডের অন্যান্য দিকগুলি অবশ্যই A0 (ADC0) এর সাথে সংযুক্ত থাকতে হবে, উপরের ছবিতে দেখানো পোলারিটি সহ।

ধাপ 5: উপসংহার এবং স্বীকৃতি

আমি ESPVGAX লাইব্রেরির জন্য স্যান্ড্রো মাফিওডো - SMAFFER- এর প্রতি কৃতজ্ঞ। এটা ছাড়া এই খেলা সম্ভব হবে না।

আমি আশা করি এই নির্দেশনাটি অন্যান্য প্রোগ্রামারদের জন্য আরও অনুপ্রেরণা হয়ে উঠবে ESP8266 এর সাথে আরো জটিল শাস্ত্রীয় আর্কেড গেমগুলির পুনরুত্পাদন করতে, যা Arduino এর তুলনায় অনেক কম সীমাবদ্ধতা রয়েছে।

অবশেষে, আমি এই নির্দেশনাটি খেলনা প্রতিযোগিতায় জমা দেওয়ার জন্য লিখেছি: যদি আপনি এটি পছন্দ করেন বা পুনরুত্পাদন করেন তবে দয়া করে এটিতে ভোট দেওয়ার জন্য একটু সময় নিন!

প্রস্তাবিত: