সুচিপত্র:

ESP32 হ্যান্ডহেল্ড গেম কনসোল: 21 ধাপ (ছবি সহ)
ESP32 হ্যান্ডহেল্ড গেম কনসোল: 21 ধাপ (ছবি সহ)

ভিডিও: ESP32 হ্যান্ডহেল্ড গেম কনসোল: 21 ধাপ (ছবি সহ)

ভিডিও: ESP32 হ্যান্ডহেল্ড গেম কনসোল: 21 ধাপ (ছবি সহ)
ভিডিও: 20000+ Games Powkiddy Rgb20S Retro Game Console #shorts #gaming #tech #usa #trending #trend #games 2024, জুলাই
Anonim
Image
Image
হার্ডওয়্যার প্রস্তুতি
হার্ডওয়্যার প্রস্তুতি

এই নির্দেশাবলী দেখায় কিভাবে একটি ESP32 এবং ATtiny861 ব্যবহার করে একটি NES এমুলেটর গেম কনসোল তৈরি করতে হয়।

ধাপ 1: হার্ডওয়্যার প্রস্তুতি

হার্ডওয়্যার প্রস্তুতি
হার্ডওয়্যার প্রস্তুতি
হার্ডওয়্যার প্রস্তুতি
হার্ডওয়্যার প্রস্তুতি

ESP32 দেব বোর্ড

এবার আমি একটি TTGO T8 ESP32 dev বোর্ড ব্যবহার করছি। এই বোর্ডে বিল্ট-ইন লিপো চার্জিং এবং রেগুলেটিং সার্কিট রয়েছে, এটি অতিরিক্ত উপাদান কমাতে সাহায্য করতে পারে।

প্রদর্শন

এবার আমি একটি 2.4 IPS LCD ব্যবহার করছি। ড্রাইভার কন্ট্রোলার ST7789V এবং রেজোলিউশন 320 x 240। এই রেজুলেশন NES এমুলেটর 252 x 224 রেজোলিউশনের জন্য সবচেয়ে উপযুক্ত।

ব্যাটারি

এবার আমি 454261 লাইপো ব্যাটারি ব্যবহার করছি। 4.5 মিমি হল ESP32 dev বোর্ডের বেধ এবং 61 মিমি হল বোর্ডের প্রস্থ।

পিন হেডার

I2C গেমপ্যাড সংযোগের জন্য একটি 4 পিন পুরুষ বৃত্তাকার পিন হেডার এবং একটি 4 পিন মহিলা গোল পিন হেডার।

PETG প্লেট

দেব বোর্ড এবং লাইপো ব্যাটারি সমর্থন করার জন্য একটি ছোট পিইটি/পিইটিজি প্লেট, আপনি সহজেই পণ্য প্যাকিং এ এটি খুঁজে পেতে পারেন।

একাধিক উদ্দেশ্য পিসিবি

2 PCB প্রয়োজন, ডিসপ্লে সাপোর্ট করার জন্য 1 0.4 মিমি পুরু, I2C গেমপ্যাডের জন্য 1 1.2 মিমি পুরু।

বোতাম

একটি 5 নির্দেশাবলী বোতাম, নির্বাচন এবং শুরু করার জন্য 2 টি ছোট বোতাম এবং A এবং B বোতামের জন্য 2 টি।

I2C গেমপ্যাড কন্ট্রোলার

এবার আমি একটি ATtiny861 মাইক্রোকন্ট্রোলারকে I2C গেমপ্যাড নিয়ামক হিসেবে ব্যবহার করি।

অন্যান্য

1 SMD 12 Ohm প্রতিরোধক, একটি ISP প্রোগ্রামার (যেমন TinyISP)

পদক্ষেপ 2: সফ্টওয়্যার প্রস্তুতি

সফটওয়্যার প্রস্তুতি
সফটওয়্যার প্রস্তুতি
সফটওয়্যার প্রস্তুতি
সফটওয়্যার প্রস্তুতি
সফটওয়্যার প্রস্তুতি
সফটওয়্যার প্রস্তুতি

Arduino IDE

Arduino IDE ডাউনলোড এবং ইনস্টল করুন যদি এখনও না হয়:

ATTinyCore সমর্থন

ATTinyCore সমর্থন যোগ করার জন্য ইনস্টলেশন ধাপগুলি অনুসরণ করুন যদি এখনও না হয়:

ইএসপি-আইডিএফ

ইএসপি-আইডিএফ অনুসরণ করুন যদি শুরু না হয় তবে উন্নয়ন পরিবেশ স্থাপনের জন্য নির্দেশিকা পান:

ধাপ 3: 3D মুদ্রণ

3D প্রিন্টিং
3D প্রিন্টিং

কেসটি ডাউনলোড এবং প্রিন্ট করুন:

ধাপ 4: LCD সাপোর্ট

এলসিডি সাপোর্ট
এলসিডি সাপোর্ট
এলসিডি সাপোর্ট
এলসিডি সাপোর্ট

LCD সাপোর্টের জন্য 24 x 27 গর্ত 0.4 মিমি পিসিবি কাটুন। মনে রাখবেন LCD FPC ভাঁজ করার জন্য কিছু জায়গা সংরক্ষণ করুন। তারপর কিছু ডাবল সাইড আঠালো টেপ ব্যবহার করুন PCB- এ LCD ঠিক করুন।

ধাপ 5: PETG প্লেট প্রস্তুত করুন

PETG প্লেট প্রস্তুত করুন
PETG প্লেট প্রস্তুত করুন
PETG প্লেট প্রস্তুত করুন
PETG প্লেট প্রস্তুত করুন

ডিভ বোর্ড এবং লাইপো ব্যাটারি সাপোর্টের জন্য 62 মিমি x 69 মিমি পিইটিজি প্লেট কেটে দিন।

ধাপ 6: ESP32 দেব বোর্ড ঠিক করুন

ESP32 দেব বোর্ড ঠিক করুন
ESP32 দেব বোর্ড ঠিক করুন

PETG প্লেটে dev বোর্ড ঠিক করতে ডাবল সাইড আঠালো টেপ ব্যবহার করুন।

ধাপ 7: লিপো ব্যাটারি ঠিক করুন

লাইপো ব্যাটারি ঠিক করুন
লাইপো ব্যাটারি ঠিক করুন

দেব বোর্ড ছাড়াও লাইপো ব্যাটারি ঠিক করতে ডাবল সাইড আঠালো টেপ ব্যবহার করুন।

ধাপ 8: ব্যাটারি এবং দেব বোর্ড সংযোগ করুন

ব্যাটারি এবং দেব বোর্ড সংযুক্ত করুন
ব্যাটারি এবং দেব বোর্ড সংযুক্ত করুন

ধাপ 9: ডিসপ্লে পিন প্রস্তুত করুন

ডিসপ্লে পিন প্রস্তুত করুন
ডিসপ্লে পিন প্রস্তুত করুন

এলসিডি ডিসপ্লেতে বিভিন্ন বিক্রেতাদের অনেক বৈচিত্র রয়েছে। অনুগ্রহ করে সঠিক ডেটশীট নিন এবং যেকোন প্যাচ এবং সংযোগের আগে এটি পড়ুন।

কিছু পিন টাচ প্যানেলের জন্য সংরক্ষিত। যেহেতু এই এলসিডিতে টাচ প্যানেল নেই, কেবল সেই পিনগুলি কেটে ফেললে ঝামেলা কমাতে পারে।

ধাপ 10: GND পিন সংযুক্ত করুন

জিএনডি পিন সংযুক্ত করুন
জিএনডি পিন সংযুক্ত করুন
জিএনডি পিন সংযুক্ত করুন
জিএনডি পিন সংযুক্ত করুন

বেশিরভাগ ক্ষেত্রে, GND এর সাথে সংযোগের জন্য কয়েকটি পিনের প্রয়োজন হয়। সোল্ডারিং প্রচেষ্টা কমাতে, আমি সমস্ত GND পিনগুলিতে পৌঁছানোর জন্য একটি তামার টেপ আকৃতি কেটে ফেলি এবং তারপর পুরোপুরি সোল্ডারিং করি।

ধাপ 11: Vcc পিন সংযুক্ত করুন

Vcc পিন সংযুক্ত করুন
Vcc পিন সংযুক্ত করুন

ভিসিসি, এলসিডি পাওয়ার এবং এলইডি পাওয়ারের সাথে সংযোগের জন্য 2 টি পিনের প্রয়োজন। ডেটা শীট অনুসারে, LCD পাওয়ার সরাসরি dev বোর্ড 3.3 V পিনের সাথে সংযোগ স্থাপন করতে পারে কিন্তু LED পাওয়ার 3.3 V এর থেকে কিছুটা কম কাজ করে। 12 ওহম প্রতিরোধক।

ধাপ 12: এলসিডি এবং দেব বোর্ড সাপোর্ট সংযুক্ত করুন

এলসিডি এবং দেব বোর্ড সাপোর্ট সংযুক্ত করুন
এলসিডি এবং দেব বোর্ড সাপোর্ট সংযুক্ত করুন

টেপ কানেক্ট এলসিডি সাপোর্ট এবং ডেভ বোর্ড সাপোর্ট একসাথে ব্যবহার করুন। উভয় সমর্থন ভাঁজ জন্য প্রায় 5 মিমি ফাঁক সংরক্ষণ করা উচিত।

ধাপ 13: SPI পিন সংযুক্ত করুন

এসপিআই পিন সংযুক্ত করুন
এসপিআই পিন সংযুক্ত করুন

এখানে সংযোগ সারসংক্ষেপ:

LCD ESP32

GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> সংযুক্ত Vcc -> 3.3 V LED+ -> 12 Ohm resistor -> 3.3 V LED -> GND

ধাপ 14: ফ্ল্যাশ প্রোগ্রাম

ফ্ল্যাশ প্রোগ্রাম
ফ্ল্যাশ প্রোগ্রাম
ফ্ল্যাশ প্রোগ্রাম
ফ্ল্যাশ প্রোগ্রাম
ফ্ল্যাশ প্রোগ্রাম
ফ্ল্যাশ প্রোগ্রাম
ফ্ল্যাশ প্রোগ্রাম
ফ্ল্যাশ প্রোগ্রাম
  1. GitHub এ সোর্স কোড ডাউনলোড করুন:
  2. সোর্স কোড ফোল্ডারের অধীনে, "make menuconfig" চালান
  3. "Nofrendo ESP32- নির্দিষ্ট কনফিগারেশন" নির্বাচন করুন
  4. "চালানোর জন্য হার্ডওয়্যার" -> "কাস্টম হার্ডওয়্যার" নির্বাচন করুন
  5. "LCD প্রকার" -> "ST7789V LCD" নির্বাচন করুন
  6. পিন সেটিংস পূরণ করুন: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Backlight -> -1, IPS -> Y
  7. প্রস্থান করুন এবং সংরক্ষণ করুন
  8. "Make -j5 flash" চালান
  9. চালান "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"

ধাপ 15: I2C সংযোগকারী

I2C সংযোগকারী
I2C সংযোগকারী
I2C সংযোগকারী
I2C সংযোগকারী
I2C সংযোগকারী
I2C সংযোগকারী

I2C পিন ব্রেকআউট, ESP32 ডিফল্ট I2C পিন হল:

পিন 1 (এসসিএল) -> জিপিআইও 22

পিন 2 (এসডিএ) -> জিপিআইও 21 পিন 3 (ভিসিসি) -> 3.3 ভি (লাইপো ব্যাটারি চালিত অবস্থায় 5 ভি শক্তি নেই) পিন 4 (জিএনডি) -> জিএনডি

ধাপ 16: সমাবেশ অংশ 1

Image
Image

কেসটিতে সমস্ত অংশ ভাঁজ এবং চেপে ধরার জন্য ভিডিও ধাপগুলি অনুসরণ করুন।

ধাপ 17: প্রোটোটাইপ I2C গেমপ্যাড

প্রোটোটাইপ I2C গেমপ্যাড
প্রোটোটাইপ I2C গেমপ্যাড
প্রোটোটাইপ I2C গেমপ্যাড
প্রোটোটাইপ I2C গেমপ্যাড

I2C গেমপ্যাডের জন্য প্রোগ্রামটি খুবই সহজ, কোডের মাত্র 15 লাইন। কিন্তু সোল্ডারিংয়ের পরে এটিটিনি 61১ পুনরায় প্রোগ্রাম করা একটু কঠিন, তাই প্রথমে রুটিবোর্ডে এটি পরীক্ষা করা ভাল।

GitHub থেকে প্রোগ্রামটি ডাউনলোড, কম্পাইল এবং ফ্ল্যাশ করুন:

ধাপ 18: I2C গেমপ্যাড তৈরি করুন

I2C গেমপ্যাড তৈরি করুন
I2C গেমপ্যাড তৈরি করুন
I2C গেমপ্যাড তৈরি করুন
I2C গেমপ্যাড তৈরি করুন
I2C গেমপ্যাড তৈরি করুন
I2C গেমপ্যাড তৈরি করুন

এখানে সংযোগ সারসংক্ষেপ:

ATtiny861 বোতাম

GND -> সব বোতাম এক পিন পিন 20 (PA0) -> আপ বাটন পিন 19 (PA1) -> ডাউন বাটন পিন 18 (PA2) -> বাম বোতাম পিন 17 (PA3) -> ডান বোতাম পিন 14 (PA4) -> বাটন পিন 13 (PA5) -> স্টার্ট বাটন পিন 12 (PA6) -> একটি বোতাম পিন 11 (PA7) -> B বোতাম পিন 6 (GND) -> I2C পুরুষ পিন হেডার পিন 4 পিন 5 (Vcc) -> I2C নির্বাচন করুন পুরুষ পিন হেডার পিন 3 পিন 3 (এসসিএল) -> I2C পুরুষ পিন হেডার পিন 1 পিন 1 (এসডিএ) -> I2C পুরুষ পিন হেডার পিন 2

ধাপ 19: সমাবেশ অংশ 2

Image
Image
চ্ছিক: অডিও ব্রেকআউট পিন
চ্ছিক: অডিও ব্রেকআউট পিন

মূল অংশে কভার এবং I2C গেমপ্যাড ইনস্টল করার জন্য ভিডিও ধাপগুলি অনুসরণ করুন।

ধাপ 20: ptionচ্ছিক: অডিও ব্রেকআউট পিন

Image
Image
চ্ছিক: অডিও ব্রেকআউট পিন
চ্ছিক: অডিও ব্রেকআউট পিন

ESP32 dev বোর্ড পিন 25 এবং 26 এনালগ অডিও সিগন্যাল আউটপুট করছে, এই 2 টি পিন ব্রেকআউট করা খুব সহজ এবং উপরে পাওয়ার পিন (3.3 V এবং GND)। তারপরে আপনি এটিতে প্লাগ করতে একটি ইয়ারফোন প্যাচ করতে পারেন। অথবা এমনকি আপনি জোরে বাজানোর জন্য স্পিকারের সাথে একটি অডিও পরিবর্ধক মডিউল যুক্ত করতে পারেন।

ধাপ 21: এরপর কি?

এরপর কি?
এরপর কি?

NES এমুলেটর একমাত্র আকর্ষণীয় জিনিস নয় যা আপনি ESP32 দিয়ে তৈরি করতে পারেন। যেমন আপনি এটি দিয়ে একটি মাইক্রো পাইথন কনসোল তৈরি করতে পারেন। একমাত্র উপাদান যা আপনাকে পরিবর্তন করতে হবে তা হল I2C গেমপ্যাড থেকে I2C কীবোর্ড। আমি মনে করি এটি একটি ATtiny88 নিয়ামক দিয়ে তৈরি করা এত কঠিন নয়। স্ট্যাটাস দেখতে আপনি আমার টুইটার অনুসরণ করতে পারেন।

প্রস্তাবিত: