Съдържание:

ESP32 Ръчна игрална конзола: 21 стъпки (със снимки)
ESP32 Ръчна игрална конзола: 21 стъпки (със снимки)

Видео: ESP32 Ръчна игрална конзола: 21 стъпки (със снимки)

Видео: ESP32 Ръчна игрална конзола: 21 стъпки (със снимки)
Видео: ODROID GO mp3 player - ESP32 2024, Юли
Anonim
Image
Image
Подготовка на хардуера
Подготовка на хардуера

Тези инструкции показват как да използвате 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 печат

3D печат
3D печат

Изтеглете и отпечатайте калъфа:

Стъпка 4: LCD поддръжка

LCD поддръжка
LCD поддръжка
LCD поддръжка
LCD поддръжка

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

Стъпка 5: Подгответе PETG плоча

Подгответе PETG плоча
Подгответе PETG плоча
Подгответе PETG плоча
Подгответе PETG плоча

Изрежете PETG плоча 62 mm x 69 mm за дъска за разработка и поддръжка на Lipo батерия.

Стъпка 6: Поправете ESP32 Dev Board

Поправете ESP32 Dev Board
Поправете ESP32 Dev Board

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

Стъпка 7: Поправете Lipo батерията

Поправете Lipo батерията
Поправете Lipo батерията

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

Стъпка 8: Свържете батерията и Dev Board

Свържете батерията и борда за разработчици
Свържете батерията и борда за разработчици

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

Подгответе изводите за показване
Подгответе изводите за показване

LCD дисплеите имат много вариации от различни доставчици. Моля, вземете правилния лист с данни и го прочетете преди всяка корекция и връзка.

Някои щифтове са запазени за сензорен панел. Тъй като този LCD дисплей няма сензорен панел, просто изрязването на тези щифтове може да намали смущенията.

Стъпка 10: Свържете GND щифтовете

Свържете щифтовете GND
Свържете щифтовете GND
Свържете щифтовете GND
Свържете щифтовете GND

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

Стъпка 11: Свържете Vcc пиновете

Свържете Vcc пиновете
Свържете Vcc пиновете

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

Стъпка 12: Свържете поддръжката на LCD и Dev Board

Свържете LCD & Dev Board Поддръжка
Свържете LCD & Dev Board Поддръжка

използвайте заедно LCD поддръжка за лента и поддръжка на dev board. И двете опори трябва да запазят около 5 мм празнина за сгъване.

Стъпка 13: Свържете SPI щифтовете

Свържете SPI щифтове
Свържете 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 програма

Flash програма
Flash програма
Flash програма
Flash програма
Flash програма
Flash програма
Flash програма
Flash програма
  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, Подсветка -> -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 (SCL) -> GPIO 22

Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3,3 V (няма 5 V захранване, докато се захранва от Lipo батерия) Pin 4 (GND) -> GND

Стъпка 16: Монтаж Част 1

Image
Image

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

Стъпка 17: Прототип I2C геймпад

Прототип I2C геймпад
Прототип I2C геймпад
Прототип I2C геймпад
Прототип I2C геймпад

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

Изтеглете, компилирайте и актуализирайте програмата от GitHub:

Стъпка 18: Изградете I2C геймпад

Изградете I2C геймпад
Изградете I2C геймпад
Изградете I2C геймпад
Изградете I2C геймпад
Изградете I2C геймпад
Изградете 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

Image
Image
По избор: Аудио прекъсвачи
По избор: Аудио прекъсвачи

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

Стъпка 20: По избор: Аудио прекъсвачи

Image
Image
По избор: Аудио прекъсвачи
По избор: Аудио прекъсвачи

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

Стъпка 21: Какво следва?

Какво следва?
Какво следва?

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

Препоръчано: