
Arduino/ESP32 से बना एक अजीब कंसोल सिस्टम का नकली नमूना। यह एक शौकिया निर्माण है,
कोई वास्तविक उत्पाद नहीं। अंतिम विचार एक छोटा हैंडहेल्ड बनाने का है जो साउंड और रंगीन डिस्प्ले के साथ मेरे खुद के गेम खेले। यह अभी उस स्तर से बहुत दूर है। इसे NES और SNES युग के गेम आराम से चलाना चाहिए। PSRAM वाले बोर्ड पर उच्च रिज़ॉल्यूशन तक पहुँचना बाकी है।
यह रैम पर निर्भर करता है। आज यह जिस Arduino Mega 2560 पर चलता है, उसमें केवल 8 KB का SRAM है। वह एक कलर फ्रेमबफ़र को स्टोर नहीं कर सकता, इसलिए उस बोर्ड पर यह केवल टेक्स्ट-आधारित ही रहता है।
अगला प्लेटफ़ॉर्म ESP32 WROOM है, जिसमें लगभग 520 KB का SRAM और एक तेज़ डुअल कोर है। इसमें 240x240 का फ़्रेमबफ़र (लगभग 115 KB) समा जाता है और यह उस रिज़ॉल्यूशन पर असली गेम चलाता है। WROOM में PSRAM नहीं है, इसलिए यह उच्च-रिज़ॉल्यूशन स्क्रीन के लिए ज़रूरी बहुत बड़े फ़्रेमबफ़र्स को नहीं रख सकता। एक ESP32-WROVER या ESP32-S3 बाद में मल्टी-मेगाबाइट PSRAM और ऑनबोर्ड स्टोरेज के साथ इस कमी को पूरा करता है, जिसकी 240p से ऊपर की स्क्रीन को ज़रूरत होगी।
स्थिति
प्रारंभिक और अधूरा। अभी यह बूट करता है, पावर बटन को पढ़ता है, एक नॉन-ब्लॉकिंग मेलोडी इंजन के माध्यम से संगीत बजाता है, और एलसीडी पर टेक्स्ट दिखाता है। अभी तक कोई गेम मौजूद नहीं हैं।
आज यह एक 16x2 कैरेक्टर एलसीडी के साथ Arduino मेगा पर चलता है, और कोड भी इसी को लक्षित करता है। अगला प्लेटफ़ॉर्म तय हो गया है: एक ESP32 WROOM जो SPI के माध्यम से 1.54 इंच के 240x240 IPS ST7789 डिस्प्ले को चलाता है। ये दोनों हिस्से 3.3 V पर चलते हैं और वर्तमान 5 V LCD के विपरीत, लेवल-शिफ्टिंग के बिना पेयर हो जाते हैं। वे पुर्जे रास्ते में हैं, और उनके आने तक कुछ भी पोर्ट नहीं किया जा रहा है।
गेम lyszt.net पर होस्ट किए जाएँगे और वाई-फाई के माध्यम से बोर्ड पर डाउनलोड किए जाएँगे। पहले संस्करण के लिए वे ESP32 की ऑनबोर्ड फ्लैश में रहते हैं।
हार्डवेयर
- MCU: फिलहाल Arduino Mega 2560 (ATmega2560)
- डिस्प्ले: 16x2 I2C कैरेक्टर LCD (पता
0x27) - ऑडियो: पिन 3 पर पैसिव बज़र
- इनपुट:
- पिन 2 पर पावर बटन (
INPUT_PULLUP, डेबाउन्स्ड) - डायरेक्शनल बटन: ऊपर / नीचे / बाएँ / दाएँ, अभी तक सिर्फ़ साधारण बटन,
अभी तक किसी भी चीज़ से नहीं जोड़े गए - एक्शन बटन: A / B, यही हाल है, अभी तक वायर नहीं किए गए हैं
- पिन 2 पर पावर बटन (
नियोजित (अगला प्लेटफ़ॉर्म)
- MCU: ESP32 WROOM (3.3 V, डुअल कोर, ~520 KB SRAM)
- डिस्प्ले: 1.54 इंच 240x240 IPS ST7789, SPI पर
- स्टोरेज: गेम्स ऑनबोर्ड फ्लैश में, वाई-फाई पर डाउनलोड किए गए
- बाद में: 240p से अधिक PSRAM हेडरूम के लिए ESP32-WROVER या ESP32-S3
बिल्ड
PlatformIO प्रोजेक्ट, Arduino फ्रेमवर्क। असली प्रोजेक्ट Lys Entertainment System/ के तहत मौजूद है।
platform = atmelavr
board = megaatmega2560
framework = arduino
lib_deps = marcoschwartz/LiquidCrystal_I2C
लेआउट
सोर्स Lys Entertainment System/src/ के अंतर्गत है:
main.cpp— एंट्री पॉइंट: वायरिंग, पावर बटन, मुख्य लूप।system/—Systemकोर; पावर स्टेट, एलसीडी और ऑडियो का मालिक है।sounds/— ऑडियो, डेटा और लॉजिक में विभाजित:notes.h— पिच कॉन्स्टेंट्स।songs.{h,cpp}— संगीत डेटा (Songस्ट्रक्चर और धुन परिभाषाएँ)।sounds.{h,cpp}— नॉन-ब्लॉकिंग धुन इंजन और साउंड एपीआई।audio_manager.{h,cpp}— इंजन के चारों ओर OO रैपर।
lcd/— LCD टेक्स्ट हेल्पर।utils/— पुन: प्रयोज्य हेल्पर (जैसे कि एक नॉन-ब्लॉकिंगwait)।
