Hướng Dẫn Làm Tay Cầm Bluetooth ESP32 Cho PC, Android Và PlayStation

Hướng Dẫn Làm Tay Cầm Bluetooth ESP32 Cho PC, Android Và PlayStation
DIY ELECTRONICS · ESP32

Hướng Dẫn Làm Tay Cầm Bluetooth ESP32 Cho PC, Android Và PlayStation

Chỉ với một board ESP32 giá rẻ, vài nút bấm và một joystick analog, bạn có thể tự làm một tay cầm chơi game không dây kết nối Bluetooth tới PC, điện thoại Android, TV Box hoặc phần mềm giả lập game phong cách PlayStation. Bài viết tổng hợp lại linh kiện, sơ đồ mạch và code mẫu cho dự án mã nguồn mở này.

ESP32 + thư viện BLE Gamepad 3 chế độ: Android / PS / PC Mã nguồn mở, có Gerber PCB Cần Arduino IDE
Tổng quan

Tổng quan dự án tay cầm Bluetooth ESP32

Dự án dựa trên board ESP32 — một vi điều khiển giá rẻ tích hợp sẵn WiFi, Bluetooth và ESP-NOW — kết hợp với thư viện mã nguồn mở ESP32-BLE-Gamepad để biến board thành một thiết bị HID gamepad chuẩn qua kết nối Bluetooth Low Energy. Nhờ vậy, mạch tự chế có thể được PC, điện thoại Android, TV Box hoặc các phần mềm giả lập game nhận diện như một tay cầm chơi game thông thường.

Code mẫu đi kèm hỗ trợ sẵn ba chế độ ánh xạ nút khác nhau (Android, “PS Gamepad”, PC), cho phép tuỳ chỉnh tên và thứ tự nút sao cho phù hợp với từng nền tảng hoặc từng phần mềm game cụ thể.

Chuẩn bị

Linh kiện cần chuẩn bị (bản mạch breadboard cơ bản)

Board ESP32
ESP-WROOM-32 / Doit ESP32 DevKit V1
Joystick module
Joystick analog 2 trục (loại thumb joystick phổ biến)
Nút bấm
Vài nút momentary switch cho các phím chức năng
Điện trở & tụ điện
Một vài điện trở kéo (pull-up/down) và tụ điện lọc nhiễu
Thực hiện

Các bước thực hiện

BƯỚC 01

Dựng mạch breadboard

Cắm board ESP32, joystick module và các nút bấm lên breadboard theo sơ đồ tham khảo của dự án, nối các chân tín hiệu vào các GPIO còn trống của ESP32.

BƯỚC 02

Cài board ESP32 cho Arduino IDE

Mở Arduino IDE → Preferences → thêm đường dẫn Boards Manager URL của Espressif, sau đó vào Boards Manager tìm và cài “ESP32” rồi khởi động lại IDE.

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
BƯỚC 03

Cài thư viện ESP32 BLE Gamepad

Vào Sketch → Include Library → Manage Libraries, tìm và cài thư viện “ESP32 BLE Gamepad” (dựa trên NimBLE-Arduino). Thư viện phụ thuộc NimBLE sẽ được cài kèm hoặc cần cài thêm nếu IDE yêu cầu.

BƯỚC 04

Tuỳ biến code theo mạch của bạn

Mở file code mẫu, chỉnh lại số chân GPIO trong mảng khai báo nút bấm sao cho khớp với cách bạn đã nối ở Bước 1, sau đó chọn chế độ gamepad mong muốn:

GamepadModes gamepadMode = ANDROID; // hoặc PS1 / PC
BƯỚC 05

Nạp code và kiểm tra qua Bluetooth

Nạp code lên board, sau đó vào cài đặt Bluetooth trên điện thoại hoặc máy tính, ghép nối với thiết bị gamepad mới xuất hiện. Dùng ứng dụng kiểm tra gamepad (ví dụ “Gamepad Tester” trên Android) để xác nhận từng nút và joystick hoạt động đúng trước khi thử trong một game thực tế.

Tham khảo code

So sánh 3 chế độ Gamepad trong code mẫu

Code chia sẻ định nghĩa sẵn ba cách đặt tên và thứ tự nút khác nhau, có thể chọn một trong ba khi biên dịch.

Chế độTên các nút chínhPhù hợp khi nào
ANDROIDA, B, C, X, Y, Z, L1, R1, L2, R2, Select, Start, PS, L3, R3Kết nối với điện thoại/TV Box Android
PS GAMEPADSquare, X, Circle, Triangle, L1, R1, L2, R2, Select, Start, L3, R3, PSChơi game/phần mềm giả lập theo phong cách PlayStation trên PC hoặc Android
PCTương tự ANDROID nhưng bỏ nút PS, đổi thứ tự một vài nútKết nối trực tiếp với máy tính Windows/macOS/Linux

Cần lưu ý: “PS Gamepad” ở đây chỉ là cách đặt tên nút theo phong cách PlayStation để dễ nhận diện khi chơi game hoặc phần mềm giả lập, không phải là kết nối trực tiếp vào cổng controller của console PS1/PS5 thật.

Mở rộng

Nâng cấp lên bo mạch PCB riêng (tuỳ chọn)

Sau khi mạch breadboard hoạt động ổn định, có thể thiết kế một bo mạch PCB riêng để gọn và bền hơn. Dự án gốc đã chia sẻ công khai một bản thiết kế hình dơi với danh sách linh kiện như sau:

Linh kiệnSố lượng
Diode SB5601
Tụ điện 100uF 16V3
Thumb joystick2
IC ổn áp 7805CV1
LED 3mm2
Điện trở 220Ω2
Điện trở 4.7KΩ6
Doit ESP32 DevKit V11
Nút nhấn momentary 12mm4

Bo mạch này cho phép cấp nguồn qua cổng USB của ESP32 khi thử nghiệm, hoặc qua nguồn ngoài 6–12V kèm jumper và IC ổn áp 7805 khi muốn mạch hoạt động độc lập, không cần kết nối máy tính.

Lưu ý

Lưu ý khi thực hiện

Sai lệch ánh xạ trigger trên Android

Theo ghi chú của thư viện, Android dùng tên gọi khác cho trục trigger trái/phải (“GAS”/”BRAKE” thay vì trục trigger chuẩn), nên cần bật đúng tuỳ chọn mô phỏng tương ứng nếu muốn các trigger hoạt động chính xác trên Android.

Không có nghĩa là cắm được vào console gốc

Tay cầm này hoạt động qua Bluetooth LE chuẩn HID, chỉ tương thích với thiết bị hỗ trợ Bluetooth (PC, Android, TV Box, phần mềm giả lập), không cắm được vào cổng controller vật lý của các console không hỗ trợ Bluetooth.

Cần đúng điện áp khi dùng nguồn ngoài

Nếu cấp nguồn ngoài cao hơn dải hoạt động 6–12V của ESP32, cần dùng đúng mạch ổn áp đi kèm để tránh làm hỏng board.

Giải đáp

Câu hỏi thường gặp

Tay cầm ESP32 này có cắm được vào cổng controller của máy PS1/PS5 gốc không?

Không. Đây là tay cầm Bluetooth LE tiêu chuẩn, được nhận diện như một gamepad HID trên PC, điện thoại Android, TV Box hoặc phần mềm giả lập; nó không cắm trực tiếp vào cổng controller vật lý của console PS1/PS5 gốc vì các console đó không hỗ trợ kết nối kiểu này.

“PS Gamepad Mode” trong code nghĩa là gì?

Đây là một chế độ ánh xạ tên nút theo phong cách PlayStation (Square, X, Circle, Triangle) trong code mẫu, giúp thuận tiện hơn khi chơi game phong cách PlayStation qua máy tính hoặc phần mềm giả lập, không liên quan đến việc cắm thẳng vào console PS1 vật lý.

Cần phần mềm gì để nạp code cho ESP32?

Cần Arduino IDE, thêm board ESP32 thông qua đường dẫn Boards Manager chính thức, và cài thư viện “ESP32 BLE Gamepad” cùng thư viện phụ thuộc NimBLE-Arduino.

Có thể tự thiết kế PCB riêng cho dự án này không?

Có. Người tạo dự án gốc đã chia sẻ công khai file Gerber cho một bản PCB hình dơi kèm danh sách linh kiện cụ thể, có thể đặt sản xuất qua các dịch vụ làm PCB theo yêu cầu.

Mạch được cấp nguồn như thế nào?

Có thể cấp nguồn qua cổng USB của board ESP32 để thử nghiệm, hoặc dùng nguồn ngoài trong khoảng 6-12V qua jumper kèm IC ổn áp 7805 nếu muốn mạch hoạt động độc lập, không cần kết nối máy tính.

Tổng kết

Kết luận

Với chi phí linh kiện khá thấp và một board ESP32 phổ biến, bạn hoàn toàn có thể tự làm một tay cầm Bluetooth đa năng, dùng được cho cả PC, Android và các phần mềm giả lập game phong cách PlayStation. Phần khó nhất của dự án không nằm ở mạch điện mà ở việc tuỳ biến đúng pin mapping trong code cho khớp với cách bạn đã nối linh kiện — chỉ cần làm đúng bước này, mọi thứ còn lại khá đơn giản.

Bài viết tổng hợp dựa trên một dự án mã nguồn mở được chia sẻ công khai (giấy phép CC BY-SA), mang tính tham khảo. Trước khi bắt tay vào làm, nên tải code mẫu gốc và đọc kỹ comment trong file để hiểu rõ từng phần trước khi tuỳ biến.

Bài viết tổng hợp về dự án DIY tay cầm Bluetooth ESP32 — cập nhật 2026.

0
    0
    Tạo wiki game yêu thích
    Giỏ game trốngTrở lại trang
    Lên đầu trang