Mục lục:

Bảng điều khiển trò chơi cầm tay ESP32: 21 bước (có hình ảnh)
Bảng điều khiển trò chơi cầm tay ESP32: 21 bước (có hình ảnh)

Video: Bảng điều khiển trò chơi cầm tay ESP32: 21 bước (có hình ảnh)

Video: Bảng điều khiển trò chơi cầm tay ESP32: 21 bước (có hình ảnh)
Video: ESP32 - Micropython - Bài 17: Điều khiển LED RGB WS2821B 2024, Tháng bảy
Anonim
Image
Image
Chuẩn bị phần cứng
Chuẩn bị phần cứng

Tài liệu hướng dẫn này chỉ ra cách sử dụng ESP32 và ATtiny861 để xây dựng bảng điều khiển trò chơi giả lập NES.

Bước 1: Chuẩn bị phần cứng

Chuẩn bị phần cứng
Chuẩn bị phần cứng
Chuẩn bị phần cứng
Chuẩn bị phần cứng

Bảng nhà phát triển ESP32

Lần này tôi đang sử dụng bảng phát triển TTGO T8 ESP32. Bo mạch này được tích hợp mạch sạc và điều chỉnh Lipo, nó có thể giúp giảm bớt các thành phần phụ.

Trưng bày

Lần này tôi đang sử dụng màn hình LCD IPS 2,4 . Bộ điều khiển trình điều khiển là ST7789V và độ phân giải là 320 x 240. Độ phân giải này phù hợp nhất với độ phân giải 252 x 224 của trình giả lập NES.

Ắc quy

Lần này tôi đang sử dụng pin Lipo 454261. 4,5 mm là độ dày của bảng nhà phát triển ESP32 và 61 mm là chiều rộng của bảng.

Đầu ghim

Một đầu cắm pin tròn nam 4 chân và đầu cắm pin tròn nữ 4 chân để kết nối gamepad I2C.

Tấm PETG

Một tấm PET / PETG nhỏ để hỗ trợ bảng nhà phát triển và pin Lipo, bạn có thể dễ dàng tìm thấy nó trong bao bì sản phẩm.

PCB đa mục đích

Yêu cầu 2 PCB, 1 PCB dày 0,4 mm để hỗ trợ Màn hình, 1 dày 1,2 mm cho một gamepad I2C.

nút

Một nút 5 hướng, 2 nút nhỏ cho Chọn và Bắt đầu và 2 cho nút A và B.

Bộ điều khiển trò chơi I2C

Lần này tôi sử dụng vi điều khiển ATtiny861 làm bộ điều khiển gamepad I2C.

Khác

1 điện trở SMD 12 Ohm, một bộ lập trình ISP (ví dụ: TinyISP)

Bước 2: Chuẩn bị phần mềm

Chuẩn bị phần mềm
Chuẩn bị phần mềm
Chuẩn bị phần mềm
Chuẩn bị phần mềm
Chuẩn bị phần mềm
Chuẩn bị phần mềm

Arduino IDE

Tải xuống và cài đặt Arduino IDE nếu chưa:

Hỗ trợ ATTinyCore

Làm theo các bước cài đặt để thêm hỗ trợ ATTinyCore nếu chưa:

ESP-IDF

Làm theo hướng dẫn bắt đầu ESP-IDF để thiết lập môi trường phát triển nếu chưa:

Bước 3: In 3D

in 3d
in 3d

Tải xuống và in vỏ:

Bước 4: Hỗ trợ LCD

Hỗ trợ LCD
Hỗ trợ LCD
Hỗ trợ LCD
Hỗ trợ LCD

Cắt PCB 24 x 27 lỗ 0,4 mm để hỗ trợ màn hình LCD. Hãy nhớ dành một số không gian cho màn hình LCD FPC gấp. Sau đó, sử dụng một số băng dính hai mặt để cố định màn hình LCD trên PCB.

Bước 5: Chuẩn bị tấm PETG

Chuẩn bị tấm PETG
Chuẩn bị tấm PETG
Chuẩn bị tấm PETG
Chuẩn bị tấm PETG

Cắt tấm PETG 62 mm x 69 mm cho bảng nhà phát triển và hỗ trợ pin Lipo.

Bước 6: Sửa ESP32 Dev Board

Sửa lỗi ESP32 Dev Board
Sửa lỗi ESP32 Dev Board

Sử dụng băng dính hai mặt để cố định bảng nhà phát triển trên tấm PETG.

Bước 7: Sửa Pin Lipo

Sửa pin Lipo
Sửa pin Lipo

Sử dụng băng dính hai mặt để cố định pin Lipo bên cạnh bảng nhà phát triển.

Bước 8: Kết nối Battery & Dev Board

Kết nối Pin & Bảng nhà phát triển
Kết nối Pin & Bảng nhà phát triển

Bước 9: Chuẩn bị các Ghim hiển thị

Chuẩn bị các Ghim hiển thị
Chuẩn bị các Ghim hiển thị

Màn hình LCD có nhiều dạng biến thể do các nhà cung cấp khác nhau. Vui lòng lấy biểu dữ liệu chính xác và đọc nó trước khi có bất kỳ bản vá và kết nối nào.

Một số chân được dành riêng cho bảng điều khiển cảm ứng. Vì màn hình LCD này không có bảng điều khiển cảm ứng, chỉ cần cắt bỏ những chân cắm đó có thể làm giảm sự nhiễu loạn.

Bước 10: Kết nối các Ghim GND

Kết nối các ghim GND
Kết nối các ghim GND
Kết nối các ghim GND
Kết nối các ghim GND

Trong hầu hết các trường hợp, có một số chân yêu cầu kết nối với GND. Để giảm nỗ lực hàn, tôi cắt một hình dạng băng đồng để tiếp cận tất cả các chân GND và sau đó hàn toàn bộ.

Bước 11: Kết nối Vcc Pins

Kết nối các chân Vcc
Kết nối các chân Vcc

Cần có 2 chân kết nối với nguồn Vcc, nguồn LCD và nguồn LED. Theo bảng dữ liệu, nguồn LCD có thể kết nối trực tiếp với chân 3,3 V của bảng nhà phát triển nhưng nguồn LED hoạt động thấp hơn một chút so với 3,3 V. Vì vậy, tốt hơn là thêm một điện trở SMD ở giữa, ví dụ: Điện trở 12 Ohm.

Bước 12: Kết nối LCD & Hỗ trợ Ban phát triển

Kết nối LCD & Hỗ trợ Ban phát triển
Kết nối LCD & Hỗ trợ Ban phát triển

sử dụng băng kết nối hỗ trợ LCD và hỗ trợ bảng nhà phát triển với nhau. Cả hai hỗ trợ nên dành khoảng cách khoảng 5 mm để gấp.

Bước 13: Kết nối các Pins SPI

Kết nối các chân SPI
Kết nối các chân SPI

Dưới đây là tóm tắt kết nối:

LCD ESP32

GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> không kết nối Vcc -> 3.3 V LED + -> Điện trở 12 Ohm -> 3.3 V LED - -> GND

Bước 14: Chương trình Flash

Chương trình Flash
Chương trình Flash
Chương trình Flash
Chương trình Flash
Chương trình Flash
Chương trình Flash
Chương trình Flash
Chương trình Flash
  1. Tải mã nguồn tại GitHub:
  2. Trong thư mục mã nguồn, chạy "make menuconfig"
  3. Chọn "Cấu hình cụ thể của Nofrendo ESP32"
  4. Chọn "Phần cứng để chạy" -> "Phần cứng Tùy chỉnh"
  5. Chọn "Loại LCD" -> "ST7789V LCD"
  6. Điền vào cài đặt chân: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Backlight -> -1, IPS -> Y
  7. Thoát và Lưu
  8. Chạy "make -j5 flash"
  9. Chạy "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"

Bước 15: Đầu nối I2C

Đầu nối I2C
Đầu nối I2C
Đầu nối I2C
Đầu nối I2C
Đầu nối I2C
Đầu nối I2C

Phá vỡ các chân I2C, các chân I2C mặc định của ESP32 là:

Chân 1 (SCL) -> GPIO 22

Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3,3 V (không có nguồn 5 V khi được cấp nguồn bằng pin Lipo) Pin 4 (GND) -> GND

Bước 16: Lắp ráp Phần 1

Image
Image

Làm theo các bước trong video để gấp và ép tất cả các bộ phận vào hộp đựng.

Bước 17: Gamepad I2C nguyên mẫu

Gamepad I2C nguyên mẫu
Gamepad I2C nguyên mẫu
Gamepad I2C nguyên mẫu
Gamepad I2C nguyên mẫu

Chương trình cho I2C Gamepad rất đơn giản, chỉ có 15 dòng mã. Nhưng hơi khó để lập trình lại ATtiny861 sau khi hàn, vì vậy tốt hơn hết bạn nên kiểm tra nó trên breadboard trước.

Tải xuống, biên dịch và flash chương trình từ GitHub:

Bước 18: Xây dựng I2C Gamepad

Xây dựng I2C Gamepad
Xây dựng I2C Gamepad
Xây dựng I2C Gamepad
Xây dựng I2C Gamepad
Xây dựng I2C Gamepad
Xây dựng I2C Gamepad

Đây là tóm tắt kết nối:

Nút ATtiny861

GND -> Tất cả các nút một chân Pin 20 (PA0) -> Nút lên Pin 19 (PA1) -> Nút xuống Pin 18 (PA2) -> Nút trái Pin 17 (PA3) -> Nút phải Pin 14 (PA4) -> Chọn nút Pin 13 (PA5) -> Nút khởi động Pin 12 (PA6) -> Nút A Pin 11 (PA7) -> Nút B Pin 6 (GND) -> I2C Pin đầu nam 4 Pin 5 (Vcc) -> I2C chân tiêu đề pin đực 3 Chân 3 (SCL) -> Chân tiêu đề pin đực I2C 1 Chân 1 (SDA) -> Chân tiêu đề pin đực I2C 2

Bước 19: Lắp ráp Phần 2

Image
Image
Tùy chọn: Ghim đột phá âm thanh
Tùy chọn: Ghim đột phá âm thanh

Làm theo các bước trong video để cài đặt vỏ và tay cầm trò chơi I2C vào thân máy chính.

Bước 20: Tùy chọn: Ghim đột phá âm thanh

Image
Image
Tùy chọn: Ghim đột phá âm thanh
Tùy chọn: Ghim đột phá âm thanh

Bo mạch nhà phát triển ESP32 Chân 25 và 26 đang xuất tín hiệu âm thanh analog, rất dễ bị đứt 2 chân này và cả chân nguồn (3.3 V và GND) trên đỉnh. Sau đó, bạn có thể vá một tai nghe để cắm vào nó. Hoặc thậm chí bạn có thể thêm một mô-đun khuếch đại âm thanh với loa để phát âm thanh lớn.

Bước 21: Tiếp theo là gì?

Cái gì tiếp theo?
Cái gì tiếp theo?

Trình giả lập NES không phải là điều thú vị duy nhất bạn có thể thực hiện với ESP32. Ví dụ. bạn có thể tạo một bảng điều khiển python vi mô bằng nó. Thành phần duy nhất bạn cần thay đổi là từ I2C gamepad sang I2C keyboard. Tôi nghĩ rằng nó không quá khó để thực hiện nó với một bộ điều khiển ATtiny88. Bạn có thể theo dõi twitter của tôi để xem trạng thái.

Đề xuất: