
Съдържание:
- Стъпка 1: Подготовка на хардуера
- Стъпка 2: Подготовка на софтуера
- Стъпка 3: 3D печат
- Стъпка 4: LCD поддръжка
- Стъпка 5: Подгответе PETG плоча
- Стъпка 6: Поправете ESP32 Dev Board
- Стъпка 7: Поправете Lipo батерията
- Стъпка 8: Свържете батерията и Dev Board
- Стъпка 9: Подгответе изводите за показване
- Стъпка 10: Свържете GND щифтовете
- Стъпка 11: Свържете Vcc пиновете
- Стъпка 12: Свържете поддръжката на LCD и Dev Board
- Стъпка 13: Свържете SPI щифтовете
- Стъпка 14: Flash програма
- Стъпка 15: I2C конектор
- Стъпка 16: Монтаж Част 1
- Стъпка 17: Прототип I2C геймпад
- Стъпка 18: Изградете I2C геймпад
- Стъпка 19: Монтаж Част 2
- Стъпка 20: По избор: Аудио прекъсвачи
- Стъпка 21: Какво следва?
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 12:57



Тези инструкции показват как да използвате ESP32 и ATtiny861 за изграждане на NES емулатор на конзола за игри.
Стъпка 1: Подготовка на хардуера


ESP32 Dev Board
Този път използвам дъска за разработка TTGO T8 ESP32. Тази платка има вградена верига за зареждане и регулиране на Lipo, тя може да помогне за намаляване на допълнителните компоненти.
Дисплей
Този път използвам 2,4 IPS LCD. Контролерът на драйвера е ST7789V и разделителната способност е 320 x 240. Тази резолюция е най -подходяща за NES емулатор с резолюция 252 x 224.
Батерия
Този път използвам Lipo батерия 454261. 4,5 мм е дебелината на ESP32 dev борда, а 61 мм е ширината на дъската.
Pin Header
4 -пинов мъжки кръгъл щифт и 4 -пинов женски кръгъл щифт за свързване на I2C геймпад.
PETG плоча
Малка PET/PETG плоча за поддържане на дъската за разработка и Lipo батерията, можете лесно да я намерите в опаковката на продукта.
Многоцелеви печатни платки
Необходими са 2 печатни платки, 1 0,4 мм дебелина за поддържане на дисплея, 1 1,2 мм дебелина за I2C геймпад.
Бутони
Бутон с 5 посоки, 2 малки бутона за избор и стартиране и 2 за бутони A и B.
I2C геймпад контролер
Този път използвам микроконтролер ATtiny861 като контролер за геймпад I2C.
Други
1 SMD 12 Ohm резистор, ISP програмист (например TinyISP)
Стъпка 2: Подготовка на софтуера



Arduino IDE
Изтеглете и инсталирайте Arduino IDE, ако още не:
Поддръжка на ATTinyCore
Следвайте стъпките за инсталиране, за да добавите поддръжка на ATTinyCore, ако още не:
ESP-IDF
Следвайте ръководството за започване на ESP-IDF, за да настроите средата за разработка, ако още не:
Стъпка 3: 3D печат

Изтеглете и отпечатайте калъфа:
Стъпка 4: LCD поддръжка


Изрежете 24 x 27 дупки 0.4 mm PCB за LCD поддръжка. Не забравяйте да запазите малко място за сгъване на LCD FPC. След това използвайте двойна странична самозалепваща лента, фиксирайте LCD върху печатната платка.
Стъпка 5: Подгответе PETG плоча


Изрежете PETG плоча 62 mm x 69 mm за дъска за разработка и поддръжка на Lipo батерия.
Стъпка 6: Поправете ESP32 Dev Board

Използвайте двустранна лепяща лента, за да фиксирате дъската за разработка върху PETG плочата.
Стъпка 7: Поправете Lipo батерията

Използвайте двустранна лепяща лента, за да фиксирате Lipo батерията освен дъската за разработка.
Стъпка 8: Свържете батерията и Dev Board

Стъпка 9: Подгответе изводите за показване

LCD дисплеите имат много вариации от различни доставчици. Моля, вземете правилния лист с данни и го прочетете преди всяка корекция и връзка.
Някои щифтове са запазени за сензорен панел. Тъй като този LCD дисплей няма сензорен панел, просто изрязването на тези щифтове може да намали смущенията.
Стъпка 10: Свържете GND щифтовете


В повечето случаи има няколко пина, които изискват свързване към GND. За да намалим усилието за запояване, изрязах форма на медна лента, за да достигна до всички щифтове на GND и след това напълно запояване.
Стъпка 11: Свържете Vcc пиновете

Необходими са 2 пина за свързване към Vcc, LCD захранване и LED захранване. Според информационния лист, захранването на LCD може директно да се свърже към развойна платка 3.3 V pin, но LED мощността работи малко по -ниска от 3.3 V. Така че е по -добре да добавите SMD резистор в средата, напр. Резистор 12 ома.
Стъпка 12: Свържете поддръжката на LCD и Dev Board

използвайте заедно LCD поддръжка за лента и поддръжка на dev board. И двете опори трябва да запазят около 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 резистор -> 3,3 V LED - -> GND
Стъпка 14: Flash програма




- Изтеглете изходния код на GitHub:
- Под папката с изходния код стартирайте „make menuconfig“
- Изберете „Конфигурация, специфична за Nofrendo ESP32“
- Изберете „Хардуер за работа“-> „Персонализиран хардуер“
- Изберете "Тип LCD" -> "ST7789V LCD"
- Настройки за запълване на щифтове: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Подсветка -> -1, IPS -> Y
- Излезте и запазете
- Стартирайте „make -j5 flash“
- Изпълнете "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"
Стъпка 15: I2C конектор



Разбийте I2C щифтовете, ESP32 I2C пиновете по подразбиране са:
ПИН 1 (SCL) -> GPIO 22
Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3,3 V (няма 5 V захранване, докато се захранва от Lipo батерия) Pin 4 (GND) -> GND
Стъпка 16: Монтаж Част 1


Следвайте видео стъпките, за да сгънете и притиснете всички части в кутията.
Стъпка 17: Прототип I2C геймпад


Програмата за геймпад I2C е много проста, само 15 реда код. Но е малко трудно да се препрограмира ATtiny861 след запояване, така че е по -добре първо да го тествате на платката.
Изтеглете, компилирайте и актуализирайте програмата от GitHub:
Стъпка 18: Изградете I2C геймпад



Ето резюме на връзката:
Бутон ATtiny861
GND -> Всички бутони един щифт Pin 20 (PA0) -> Бутон нагоре Pin 19 (PA1) -> Бутон надолу Pin 18 (PA2) -> Ляв бутон Pin 17 (PA3) -> Десен бутон Pin 14 (PA4) -> Изберете бутон Pin 13 (PA5) -> Бутон за стартиране Pin 12 (PA6) -> A бутон Pin 11 (PA7) -> бутон B Pin 6 (GND) -> I2C мъжки щифт на заглавката 4 Pin 5 (Vcc) -> I2C мъжки щифт на заглавката 3 Pin (SCL) -> I2C мъжки щифт на щифта 1 Pin 1 (SDA) -> I2C мъжки щифт на конектора pin 2
Стъпка 19: Монтаж Част 2



Следвайте видео стъпките, за да инсталирате капака и I2C геймпада към основното тяло.
Стъпка 20: По избор: Аудио прекъсвачи



ESP32 dev board Pin 25 и 26 извежда аналоговия аудио сигнал, много е лесно да се пробият тези 2 пина, както и захранващи щифтове (3,3 V и GND) отгоре. След това можете да залепите слушалки, за да ги включите. Или дори можете да добавите модул за аудио усилвател с високоговорител, за да го възпроизведете силно.
Стъпка 21: Какво следва?

NES емулаторът не е единственото интересно нещо, което можете да направите с ESP32. Напр. можете да създадете конзола за микро питон с нея. Единственият компонент, който трябва да промените, е от I2C геймпад към I2C клавиатура. Мисля, че не е толкова трудно да се направи с ATtiny88 контролер. Може да следите моя туитър, за да видите състоянието.
Препоръчано:
Направете ръчна игрална конзола с помощта на RetroPie: 7 стъпки

DIY Handheld Game Console Използване на RetroPie: Гледайте горното видео, за да разберете по -добре този проект. Глоба. Време е да започнете! Първо, ще използваме RetroPie. Това ни оставя с две възможности. Ако вече сме инсталирали Raspbian на нашата SD карта, тогава можем да инсталираме RetroP
Ръчна игрална конзола за Raspberry Pi Zero: 6 стъпки (със снимки)

DIY Raspberry Pi Zero Handheld Game Console: В този проект ще ви покажа как съм използвал Raspberry Pi Zero, NiMH батерии, домашно създадена схема за защита от претоварване, LCD задно виждане и аудио усилвател, за да създам ръчна конзола за игри, която да може да играе ретро игри. Да започваме
Ръчна игрална конзола - Arduboy Clone: 6 стъпки (със снимки)

Ръчна игрална конзола | Arduboy Clone: Преди няколко месеца попаднах на Arduboy, който според официалния си уебсайт е миниатюрна 8-битова платформа за игри, която улеснява ученето, споделянето и играта на игри онлайн. Това е платформа с отворен код. Игрите за Arduboy са направени от потребителя
Ръчна игрална конзола Recalbox, използваща 2.2 TFT: 6 стъпки

Handheld Recalbox Game Console Използване на 2.2 TFT: Инструкции за „Направи си сам“на ръчна игрална конзола за ребоксбокс, използваща 2.2”TFT LCD и Raspberry Pi 0 W и GPIO бутони. Можете да видите този видеоклип в YouTube за пълна демонстрация на стъпките: A. Вземете всички части.B. Запоявайте частите заедно
Домашна ръчна конзола: 12 стъпки (със снимки)

Домашна ръчна конзола: Добре дошли в моето стъпка по стъпка ръководство за това как да създадете свой собствен DIY GameBoy с Raspberry Pi 3 и софтуера за емулация на Retropie. Преди да започна този проект, нямах никакъв опит с малиново пи, ретропий, запояване, 3D печат или електрически