Mục lục:
- Bước 1: Arduino Esplora là gì?
- Bước 2: M5Stack là gì?
- Bước 3: Tại sao nên chơi trò chơi Retro với ESP32?
- Bước 4: Chuẩn bị phần cứng
- Bước 5: Chuẩn bị phần mềm
- Bước 6: Lập trình Gamepad I2C
- Bước 7: Đột phá Esplora I2C
- Bước 8: Sử dụng các tiêu đề ghim để sửa M5Stack trên Esplora
- Bước 9: Kết nối I2C Pins
- Bước 10: Lập trình M5Stack
- Bước 11: Tận hưởng
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Tài liệu hướng dẫn này chỉ ra cách kết hợp Arduino Esplora và M5Stack để tạo ra một bảng điều khiển trò chơi NES.
Bước 1: Arduino Esplora là gì?
Arduino Esplora là một bo mạch vi điều khiển Atmega32U4 AVR.
Đây là bảng Arduino độc đáo, vì nó được tích hợp nhiều cảm biến đầu vào khác nhau, bao gồm cần điều khiển, 4 nút nhấn, thanh trượt, cảm biến nhiệt độ, gia tốc kế, micrô, cảm biến ánh sáng, v.v.
Và Arduino IDE cũng cung cấp nhiều ví dụ khác nhau để sử dụng tất cả.
Lần này tôi sẽ lập trình Esplora như một thiết bị nô lệ I2C để hoạt động như một gamepad I2C.
Tham khảo:
Bước 2: M5Stack là gì?
M5Stack bắt đầu từ một dự án kickstarter vào năm 2017, lõi ESP32, LCD màu 2.0 tích hợp, hệ số hình thức nhỏ 5 cm, hỗ trợ các mô-đun có thể xếp chồng và mô-đun I2C lùm xùm.
Bây giờ nó đã có nhiều mô hình cốt lõi khác nhau, hàng chục mô-đun có thể xếp chồng lên nhau và cũng hỗ trợ hàng tấn mô-đun I2C Grove.
Tham chiếu:
www.kickstarter.com/projects/179167367/m5s…
m5stack.com/
Bước 3: Tại sao nên chơi trò chơi Retro với ESP32?
Đó là một chủ đề rất phổ biến khi sử dụng Raspberry Pi để tạo ra một bảng điều khiển trò chơi cổ điển với bản phân phối Retropie.
Nó thực hiện công việc rất tốt, nhưng vấn đề đáng chú ý nhất là thời gian khởi động.
Tôi không muốn đợi hơn nửa phút để vào một trò chơi cổ điển, một bảng điều khiển trò chơi thực sự không cần phải chờ đợi điều này!
Sau đó, tôi thấy esp32-nesemu không cần đợi khởi động, vì vậy tôi cố gắng sử dụng M5Stack để xây dựng bảng điều khiển trò chơi NES.
Bước 4: Chuẩn bị phần cứng
Arduino Esplora
Sản phẩm chính thức đã bị xóa sổ nhưng vẫn rất dễ dàng tìm thấy một bản sao trên web.
M5Stack
Bất kỳ lõi M5Stack nào với màn hình LCD 2.0 đều ổn.
Tiêu đề ghim
Đầu cắm 2 chân pin đực-đực và 6 chân đầu cắm pin đực-cái.
Cáp chuyển đổi Grove
Ưu tiên Cáp chuyển đổi 4 chân Male Jumper bình thường sang Cáp chuyển đổi 4 chân Grove. Tôi không có cáp này trong tay, vì vậy tôi chỉ vá 1 để tự kết nối chân SCL và SDA.
Bước 5: Chuẩn bị phần mềm
Arduino IDE
Tải xuống và cài đặt Arduino IDE nếu chưa:
www.arduino.cc/en/Main/Software
ESP-IDF
Làm theo hướng dẫn thiết lập để cài đặt ESP-IDF nếu chưa:
docs.espressif.com/projects/esp-idf/en/sta…
Bước 6: Lập trình Gamepad I2C
Tôi đã viết một chương trình đơn giản để đọc đầu vào của phím điều khiển và các nút và dịch nó thành tin nhắn I2C.
Đây là các bước của chương trình:
- Tải xuống esplora-i2c-gamepad.ino tại GitHub:
- Kết nối Esplora với máy tính
- Mở Arduino
- Tải lên chương trình
Bước 7: Đột phá Esplora I2C
Arduino Esplora có hầu hết các I / O và giao diện người dùng, nhưng trớ trêu thay, nó lại thiếu các chân đột phá I2C (Grove System).
May mắn thay, các chân I2C trong ATMega32U4 vẫn chưa được sử dụng cho mục đích khác. Và tiêu đề chân bên tay trái của Esplora cũng "hiện không được kết nối", chúng ta có thể sử dụng tiêu đề chân này để phá bỏ các chân I2C.
Đơn giản chỉ cần sử dụng 2 dây và một số công việc hàn để kết nối ATMega32U4 chân 18 (SCL) và chân 19 (SDA) với tiêu đề chân bên trái.
Tham khảo:
Bước 8: Sử dụng các tiêu đề ghim để sửa M5Stack trên Esplora
2 chân dưới cùng nhất của tiêu đề chân bên phải Esplora là GND và 5V, nó có thể phù hợp với sơ đồ chân đế lõi M5Stack. Vì vậy, chúng ta có thể uốn cong một đầu 2 chân pin đực-đực để kết nối với nhau.
Đầu cắm chân bên trái của Esplora không kết nối được với bất cứ thứ gì, các bước trước đó đã sử dụng 2 chân trên cùng khi I2C thoát ra. Vẫn còn 6 chân, chúng ta có thể uốn cong đầu cắm 6 chân nam-nữ để cố định M5Stack trên Esplora.
Bước 9: Kết nối I2C Pins
Esplora và M5Stack giao tiếp với giao thức I2C, M5Stack hoạt động như I2C master và Esplora là I2C slave.
Vì GND và 5V đã được kết nối ở các bước trước, chỉ SCL và SDA yêu cầu kết nối thêm.
Bước 10: Lập trình M5Stack
- Tải xuống phiên bản sửa đổi của esp32-nesemu từ GitHub:
- Theo esp32-nesemu, hãy chạy "make menuconfig"
- Nhập menu con "Cấu hình cụ thể của Nofrendo ESP32"
- Chọn "Phần cứng để chạy trên" thành "M5Stack"
- Bật "Âm thanh tương tự trên GPIO26"
- Chọn "Loại bộ điều khiển" thành "I2C Gamepad"
- Thoát menuconfig
- Chạy "make -j5 all" để biên dịch chương trình
- Kết nối M5Stack với máy tính
- Chạy "make flash" để flash tệp nhị phân đã biên dịch sang M5Stack
- Chạy "sh flashrom.sh PATH_TO_YOUR_NES_ROM_FILENAME"
Bước 11: Tận hưởng
Đã đến lúc chơi trò chơi ưu ái của bạn!