Мазмуну:

ESP32 портативдүү оюн консолу: 21 кадам (сүрөттөр менен)
ESP32 портативдүү оюн консолу: 21 кадам (сүрөттөр менен)

Video: ESP32 портативдүү оюн консолу: 21 кадам (сүрөттөр менен)

Video: ESP32 портативдүү оюн консолу: 21 кадам (сүрөттөр менен)
Video: ESP32, более мощная чем любая другая Ардуино 2024, Июль
Anonim
Image
Image
Аппараттык даярдоо
Аппараттык даярдоо

Бул көрсөтмөлөр NES эмулятору оюн консолун куруу үчүн ESP32 жана ATtiny861ди кантип колдонууну көрсөтөт.

1 -кадам: Аппараттык даярдоо

Аппараттык даярдоо
Аппараттык даярдоо
Аппараттык даярдоо
Аппараттык даярдоо

ESP32 Dev Board

Бул жолу мен TTGO T8 ESP32 dev тактасын колдонуп жатам. Бул тактада камтылган Lipo кубаттоо жана жөнгө салуу схемасы бар, ал кошумча компоненттерди азайтууга жардам берет.

Дисплей

Бул жолу мен 2,4 дюймдук IPS ЖК колдонуп жатам. Айдоочу контроллери ST7789V жана токтому 320 х 240. Бул чечим NES эмулятору 252 x 224 токтому үчүн эң ылайыктуу.

Батарея

Бул жолу мен 454261 Lipo батареясын колдонуп жатам. 4,5 мм - ESP32 дев тактасынын калыңдыгы, ал эми тактайдын туурасы - 61 мм.

Pin Header

I2C геймпадын туташтыруу үчүн 4 казык эркек тегерек пин баш жана 4 казык аял тегерек пин төбөсү.

PETG Plate

Дев тактасын жана Lipo батареясын колдоо үчүн кичинекей PET/PETG табакчасы, сиз аны продукттун таңгагынан оңой таба аласыз.

Көп максаттуу PCB

2 ПХБ талап кылынат, дисплейди колдоо үчүн калыңдыгы 0,4 мм, I2C геймпадында 1 1,2 мм коюу.

Баскычтар

5 багыт баскычы, тандоо жана баштоо үчүн 2 кичине баскыч жана А жана В баскычы үчүн 2.

I2C Gamepad Controller

Бул жолу мен ATtiny861 микроконтроллерин I2C геймпад контроллери катары колдоном.

Башкалар

1 SMD 12 Ом каршылыгы, ISP программисти (мис. TinyISP)

2 -кадам: Программаны даярдоо

Программалык камсыздоону даярдоо
Программалык камсыздоону даярдоо
Программалык камсыздоону даярдоо
Программалык камсыздоону даярдоо
Программалык камсыздоону даярдоо
Программалык камсыздоону даярдоо

Arduino IDE

Эгерде азырынча жок болсо, Arduino IDEди жүктөп алып, орнотуңуз:

ATTinyCore колдоосу

Азырынча ATTinyCore колдоосун кошуу үчүн орнотуу кадамдарын аткарыңыз:

ESP-IDF

Азырынча иштеп чыгуу чөйрөсүн орнотуу үчүн ESP-IDF баштоо көрсөтмөсүнө баш ийиңиз:

3 -кадам: 3D басып чыгаруу

3D басып чыгаруу
3D басып чыгаруу

Капты жүктөп алыңыз жана басып чыгарыңыз:

4 -кадам: LCD колдоо

LCD колдоо
LCD колдоо
LCD колдоо
LCD колдоо

ЖК колдоо үчүн 24 х 27 тешик 0,4 мм ПХБны кесип алыңыз. LCD FPCди бүктөө үчүн бир аз орун ээлөөнү унутпаңыз. Андан кийин, ПКБдагы ЖКны оңдоо үчүн эки жактуу скотчту колдонуңуз.

5 -кадам: PETG плитасын даярдоо

PETG Plate даярдаңыз
PETG Plate даярдаңыз
PETG Plate даярдаңыз
PETG Plate даярдаңыз

Dev board жана Lipo батарейкасын колдоо үчүн 62 мм x 69 мм PETG табагын кесип алыңыз.

6 -кадам: ESP32 Dev тактасын оңдоо

ESP32 Dev тактасын оңдоо
ESP32 Dev тактасын оңдоо

PETG пластинкасындагы дев тактасын оңдоо үчүн эки жактуу скотчту колдонуңуз.

7 -кадам: Lipo батареясын оңдоо

Lipo батареясын оңдоо
Lipo батареясын оңдоо

Lipo батареясын оңдоо үчүн эки тараптуу скотчту колдонуңуз.

8 -кадам: Батареяны жана Иш тактасын туташтырыңыз

Батареяны жана шайман тактасын туташтыруу
Батареяны жана шайман тактасын туташтыруу

9 -кадам: Дисплей казыктарын даярдаңыз

Дисплей казыктарын даярдаңыз
Дисплей казыктарын даярдаңыз

ЖК дисплейде ар кандай сатуучулардан турган көптөгөн вариациялар бар. Сураныч, туура маалымат барагын алыңыз жана кандайдыр бир патч жана туташуудан мурун аны окуп чыгыңыз.

Кээ бир казыктар сенсордук панель үчүн корголгон. Бул ЖКда сенсордук панель жок болгондуктан, ошол казыктарды кесип салыңыз, тынчсызданууну азайта алат.

10 -кадам: GND казыктарын туташтыруу

GND казыктарын туташтыруу
GND казыктарын туташтыруу
GND казыктарын туташтыруу
GND казыктарын туташтыруу

Көпчүлүк учурда, GNDге туташууну талап кылган бир нече казык бар. Ширетүү аракетин азайтуу үчүн, мен жез лентанын формасын кесип, бардык GND казыктарына жетип, андан кийин толугу менен ширеттим.

11 -кадам: Vcc казыктарын туташтыруу

Vcc Pins туташуу
Vcc Pins туташуу

Vcc, LCD кубаты жана LED кубаттуулугуна туташуу үчүн 2 казык керек. Маалымат баракчасына ылайык, ЖК кубаты түз приборго 3.3 В төөнөгүчкө туташа алат, бирок LED кубаты 3.3 Вдан бир аз төмөн иштейт, андыктан ортосуна SMD каршылыгын кошуу жакшы, мис. 12 Ом каршылыгы.

12 -кадам: LCD & Dev Board колдоо туташуу

LCD & Dev Board Колдоосун туташтырыңыз
LCD & Dev Board Колдоосун туташтырыңыз

скотчту LCD колдоосун жана дев тактасын колдоону бирге колдонуңуз. Эки колдоо тең бүктөө үчүн болжол менен 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 Ом каршылыгы -> 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. "ЖК түрүн" тандоо -> "ST7789V ЖК"
  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 казыктары:

Pin 1 (SCL) -> GPIO 22

Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3.3 V (Lipo батарейкасы менен иштеген 5 В кубаты жок) Pin 4 (GND) -> GND

16 -кадам: Ассамблея 1 -бөлүк

Image
Image

Корпустун бардык бөлүктөрүн бүктөө жана кысуу үчүн видео кадамдарды аткарыңыз.

17 -кадам: Прототип I2C Gamepad

Прототип I2C Gamepad
Прототип I2C Gamepad
Прототип I2C Gamepad
Прототип I2C Gamepad

I2C Gamepad программасы өтө жөнөкөй, болгону 15 сап код. Бирок ширетүүдөн кийин ATtiny861ди кайра программалоо бир аз кыйын, андыктан аны адегенде нан тактасында сынап көрүү жакшы.

GitHubдан программаны жүктөп алыңыз, түзүңүз жана жаркылдатыңыз:

18 -кадам: I2C Gamepad куруңуз

I2C Gamepad түзүү
I2C Gamepad түзүү
I2C Gamepad түзүү
I2C Gamepad түзүү
I2C Gamepad түзүү
I2C Gamepad түзүү

Бул жерде кыскача байланыш:

ATtiny861 баскычы

GND -> Бардык баскычтар бир пин пин 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 Пин 3 (SCL) -> I2C эркек пин төөнөгүч пин 1 Пин 1 (SDA) -> I2C эркек пин баш аткыч пин 2

19 -кадам: Ассамблея 2 -бөлүк

Image
Image
Кошумча: Audio Breakout Pins
Кошумча: Audio Breakout Pins

Капкакты жана I2C геймпадын негизги корпуска орнотуу үчүн видео кадамдарды аткарыңыз.

20 -кадам: Кошумча: Audio Breakout Pins

Image
Image
Кошумча: Audio Breakout Pins
Кошумча: Audio Breakout Pins

ESP32 dev board Pin 25 жана 26 аналогдук аудио сигналын чыгарууда, бул 2 казыкты, ошондой эле үстүндөгү электр казыктарын (3.3 V жана GND) ажыратуу абдан оңой. Андан кийин, аны туташтыруу үчүн наушникти жамап койсоңуз болот. Же ал тургай, аны катуу ойнотуу үчүн спикери бар аудио күчөткүч модулун кошсоңуз болот.

21 -кадам: Кийинкиде эмне болот?

Кийинкиси эмне?
Кийинкиси эмне?

NES эмулятору - бул ESP32 менен жасай турган жалгыз кызыктуу нерсе эмес. Мисалы аны менен микро питон консолун кура аласыз. Сиз өзгөртүү керек болгон жалгыз компонент I2C геймпадынан I2C клавиатурасына чейин. Менин оюмча, аны ATtiny88 контроллери менен жасоо анчалык деле кыйын эмес. Статусун көрүү үчүн менин твиттеримди ээрчип алсаңыз болот.

Сунушталууда: