Агуулгын хүснэгт:

ESP32 гар тоглоомын консол: 21 алхам (зурагтай)
ESP32 гар тоглоомын консол: 21 алхам (зурагтай)

Видео: ESP32 гар тоглоомын консол: 21 алхам (зурагтай)

Видео: ESP32 гар тоглоомын консол: 21 алхам (зурагтай)
Видео: I WON AN APEX LEGENDS MATCH!!! # 2 2024, Долдугаар сарын
Anonim
Image
Image
Тоног төхөөрөмжийн бэлтгэл
Тоног төхөөрөмжийн бэлтгэл

Энэхүү зааварчилгаа нь NES эмулятор тоглоомын консолыг бүтээхдээ ESP32 ба ATtiny861 -ийг хэрхэн ашиглахыг харуулав.

Алхам 1: Тоног төхөөрөмжийн бэлтгэл

Тоног төхөөрөмжийн бэлтгэл
Тоног төхөөрөмжийн бэлтгэл
Тоног төхөөрөмжийн бэлтгэл
Тоног төхөөрөмжийн бэлтгэл

ESP32 хөгжлийн самбар

Энэ удаад би TTGO T8 ESP32 dev хавтанг ашиглаж байна. Энэхүү самбар нь Lipo цэнэглэх, зохицуулах хэлхээг суурилуулсан бөгөөд нэмэлт бүрэлдэхүүн хэсгүүдийг багасгахад туслах болно.

Дэлгэц

Энэ удаад би 2.4 инчийн IPS LCD ашиглаж байна. Жолоочийн хянагч нь ST7789V бөгөөд нарийвчлал нь 320 x 240. Энэ нарийвчлал нь NES эмулятор 252 x 224 нарийвчлалтай хамгийн сайн тохирно.

Батерей

Энэ удаад би 454261 Lipo батерей ашиглаж байна. 4.5 мм нь ESP32 дэвтэр хавтангийн зузаан, 61 мм нь хавтангийн өргөн юм.

Толгойг зүү

I2C тоглоомын самбарыг холбоход 4 зүү эрэгтэй дугуй зүү толгой, 4 зүү эмэгтэй дугуй зүү толгой.

PETG хавтан

Хөгжүүлэгч самбар болон Lipo батерейг дэмжих зориулалттай жижиг PET/PETG хавтанг та бүтээгдэхүүний баглаа боодол дээрээс амархан олох боломжтой.

Олон зориулалттай ПХБ

Дэлгэцийг дэмжихийн тулд 0.4 мм зузаантай 1 ПХБ шаардлагатай, I2C тоглоомын талбайн хувьд 1.2 мм зузаантай.

Товчлуурууд

5 чиглэлтэй товчлуур, сонгох ба эхлүүлэх 2 жижиг товчлуур, А ба В товчлуурын 2 ширхэг.

I2C Gamepad хянагч

Энэ удаад би ATtiny861 микроконтроллерийг I2C gamepad хянагч болгон ашиглаж байна.

Бусад

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 дэмжлэг

LCD дэлгэцийн хувьд 24 х 27 цооног бүхий 0.4 мм хэмжээтэй ПХБ -ийг хайчилж ав. LCD FPC -ийг эвхэх зай үлдээхийг санаарай. Дараа нь хоёр талт наалдамхай тууз ашиглан ПХБ -ийн LCD дэлгэцийг засаарай.

Алхам 5: PETG хавтан бэлтгэ

PETG хавтан бэлтгэ
PETG хавтан бэлтгэ
PETG хавтан бэлтгэх
PETG хавтан бэлтгэх

Хөгжүүлэгч самбар болон Lipo батерейны дэмжлэгийн хувьд 62 мм х 69 мм хэмжээтэй PETG хавтанг хайчилж ав.

Алхам 6: ESP32 Dev самбарыг засах

ESP32 Dev самбарыг засах
ESP32 Dev самбарыг засах

Хоёр талт наалдамхай тууз ашиглан PETG тавцан дээрх самбарыг бэхлээрэй.

Алхам 7: Lipo батерейг засах

Липо батерейг засах
Липо батерейг засах

Lipo батерейг засахын тулд хоёр талт наалдамхай тууз ашиглана уу.

Алхам 8: Батерей ба төхөөрөмжийн самбарыг холбоно уу

Батерей ба төхөөрөмжийн самбарыг холбоно уу
Батерей ба төхөөрөмжийн самбарыг холбоно уу

Алхам 9: Дэлгэцийн голыг бэлтгэ

Дэлгэцийн голыг бэлтгэ
Дэлгэцийн голыг бэлтгэ

LCD дэлгэц нь янз бүрийн үйлдвэрлэгчдээс ялгаатай олон хувилбартай байдаг. Зөв өгөгдлийн хүснэгтийг олж аваад засвар, холболт хийхээс өмнө уншина уу.

Зарим тээглүүр нь мэдрэгчтэй самбар дээр зориулагдсан байдаг. Энэхүү LCD дэлгэц нь мэдрэгчтэй самбаргүй тул эдгээр тээглүүрийг таслахад л эвдрэлийг бууруулдаг.

Алхам 10: GND Pins -ийг холбоно уу

GND Pins -ийг холбоно уу
GND Pins -ийг холбоно уу
GND Pins -ийг холбоно уу
GND Pins -ийг холбоно уу

Ихэнх тохиолдолд GND -д холбогдох шаардлагатай цөөн тооны зүү байдаг. Гагнуурын хүчин чармайлтыг багасгахын тулд би бүх GND тээглүүрт хүрэхийн тулд зэс соронзон хальсны хэлбэрийг хайчилж, дараа нь бүхэлд нь гагнах болно.

Алхам 11: Vcc Pins -ийг холбоно уу

Vcc зүү холбоно уу
Vcc зүү холбоно уу

Vcc, LCD болон LED тэжээлд холбогдохын тулд 2 зүү шаардлагатай. Мэдээллийн хүснэгтэд дурдсанаар, LCD хүч нь 3.3 В -ийн зүү залгуурт шууд холбогдож болох боловч LED хүч нь 3.3 В -оос бага зэрэг бага ажилладаг тул дунд хэсэгт SMD резистор нэмэх нь дээр. 12 Ом эсэргүүцэл.

Алхам 12: LCD & Dev самбарын дэмжлэгийг холбоно уу

LCD & Dev самбарын дэмжлэгийг холбоно уу
LCD & Dev самбарын дэмжлэгийг холбоно уу

LCD дэмжлэг ба дэвтэрийн дэмжлэгийг хамтад нь соронзон хальс ашиглан холбоно уу. Хоёр тулгуур хоёулаа эвхэхийн тулд ойролцоогоор 5 мм зайтай байх ёстой.

Алхам 13: SPI Pins -ийг холбоно уу

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 В LED+ -> 12 Ом эсэргүүцэл -> 3.3 В 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 (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 -> Бүх товчлуурууд нэг зүү Pin 20 (PA0) -> Дээд товчлуур Pin 19 (PA1) -> Доош товчлуур Pin 18 (PA2) -> Зүүн товч Pin 17 (PA3) -> Баруун товчлуур 14 (PA4) -> Pin 13 (PA5) -> Start товчлуур 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
Нэмэлт: Аудио таслах зүү
Нэмэлт: Аудио таслах зүү

Хавтас болон I2C тоглоомын самбарыг үндсэн хэсэгт суулгахын тулд видео алхамуудыг дагана уу.

Алхам 20: Нэмэлт: Аудио таслах зүү

Image
Image
Нэмэлт: Аудио таслах зүү
Нэмэлт: Аудио таслах зүү

Pin 25 ба 26 -ийн ESP32 дэвтэр самбар нь аналог аудио дохиог гаргадаг бөгөөд эдгээр 2 зүү, мөн дээд талын тэжээлийн зүү (3.3 V ба GND) -ийг салгахад маш хялбар байдаг. Дараа нь та чихэвчээ залгаад залгаж болно. Эсвэл та чанга тоглуулахын тулд чанга яригчтай аудио өсгөгчийн модулийг нэмж болно.

Алхам 21: Дараа нь юу хийх вэ?

Дараа нь юу юм?
Дараа нь юу юм?

NES эмулятор бол ESP32 ашиглан хийх цорын ганц сонирхолтой зүйл биш юм. Жишээлбэл Та түүнтэй хамт микро питон консол бүтээх боломжтой. Таны өөрчлөх ёстой цорын ганц бүрэлдэхүүн хэсэг бол I2C gamepad -аас I2C гар руу шилжих явдал юм. ATtiny88 хянагч ашиглан үүнийг хийх нь тийм ч хэцүү биш гэж би бодож байна. Та статусыг харахын тулд миний твиттерийг дагаж болно.

Зөвлөмж болгож буй: