Large Gaming Handheld – Máy chơi game cầm tay cỡ lớn
Mẫu Large Gaming Handheld là máy chơi game cầm tay dùng Raspberry Pi, màn hình cảm ứng 7", 17 nút bấm và 2 analog stick PSP. Có danh sách linh kiện, chi tiết in 3D, hướng dẫn lắp ráp, đi dây I2C/GPIO và cấu hình phần mềm.
Mô tả
Đây là gì
Đây là một máy handheld cỡ lớn được làm từ màn hình cảm ứng 7", Raspberry Pi, pin, perfboard và một số nút bấm. Đây là thiết kế nguyên bản.
Linh kiện cần có
Danh sách linh kiện mua sẵn
Raspberry Pi (khuyến nghị 3, 4, 5) + thẻ SD
17x Nút nhấn tạm thời (Momentary Buttons)
1x Apple USB 3.5mm Adapter (chỉ cho RPi 5)
1x dây stereo 3.5mm (loại có thể cắt ra được)
Dụng cụ cơ bản
Máy khoan + mũi khoan 3mm
Mỏ hàn, thiếc hàn
Băng keo điện
Đồng hồ đo (multimeter)
Kỹ năng điện tử cơ bản
Danh sách chi tiết in 3D
7x Nút tròn (Circular Buttons)

2x Nút Start/Select

1x D-Pad

2x Cò (Triggers)

2x Bumper

1x Vỏ trước (Front Shell)

1x Nắp sau (Rear Cover)

Lắp ráp
Làm pad cho nút bấm
Lấy perfboard canh thẳng với các lỗ để xác định chỗ nào cần khoan lỗ 3mm để bắt vít và chỗ nào cần hàn nút. Đánh dấu vị trí; mình dùng một con dao nhỏ rạch lên PCB để biết chỗ khoan và chỗ hàn nút.
Khi hàn nút lên perfboard xong, nối chung một chân của tất cả nút lại với nhau. Phần này sẽ đi về ground. Chân còn lại sẽ đi vào GPIO trên Arduino hoặc RPi.
Ốc bắt perfboard có thể phải chỉnh lại (nới/lết) để hoạt động tối ưu.

Gắn màn hình
Vỏ được thiết kế để gắn màn hình mà không cần ốc hay dụng cụ. Mặt trước vỏ có một phần khoét (recess) để màn hình lọt vào, và phần hông vỏ có thể bẻ/biến dạng nhẹ bằng tay trong lúc lắp. Nhớ cẩn thận, đừng ép lực lên màn hình quá nhiều khi lắp.

Ghi chú khi lắp
Ngàm/bệ bắt RPi là dạng fit rất khít với ốc 3mm. Mình phải khoan nới các ngàm trên PiSugar để ốc 3mm có thể đi qua.
Nút GPIO/Phần mềm
Arduino Nano kết nối với RPi qua I2C. Repo này có một ứng dụng Linux chạy user-mode để đọc từ GPIO và tạo bàn phím/joystick ảo bằng uinput. Có sẵn mapping mặc định cho Batocera và RaspberryPi OS, kèm hướng dẫn build (Batocera không có toolchain để build nên phải build trên RPi OS rồi copy qua).
Đi dây I2C
Nối A4/A5 (SDA/SCL) trên Arduino sang GPIO 2/3 (SDA/SCL) trên Raspberry Pi.

Arduino Sketch
Bạn có thể tìm Arduino sketch ở đây.
Arduino sketch này sẽ báo cáo toàn bộ cảm biến digital và analog qua I2C để một ứng dụng từ xa truy vấn và lấy dữ liệu. Nó cố gắng cung cấp thông tin mức pin cho pin 1S nối vào A7, nhưng phần này là tuỳ chọn. Bạn có thể xem hướng dẫn cấu hình pin trong GitHub repo
Có thể flash như các Arduino sketch bình thường; trên mạng có nhiều hướng dẫn để tham khảo.
Ứng dụng trên RPi
Mình có tạo một ứng dụng chạy trên Raspberry Pi để bắt các đường I2C và GPIO rồi đưa ra dưới dạng joystick/bàn phím ảo, có thể remap. Tất cả nằm trong GitHub repo. Mình khuyên bạn chạy nó dưới dạng service systemd hoặc service của Batocera (tuỳ nền tảng), và bắt buộc phải chạy với quyền root.
Vui lòng xem GitHub repo để biết thêm thông tin về ứng dụng RPi.
Đi dây nút bấm
Các nút GPIO có thể nối vào bất kỳ chân GPIO nào trên RPi hoặc chân digital trên Arduino (miễn là chưa dùng cho mục khác), ví dụ tránh d2/d3, a4/a5, gpio2/3.
Đi dây analog stick
PSP analog sticks có 4 pad: VCC, Gnd, UpDown và LeftRight.
UpDown và LeftRight là biến trở (potentiometer) thay đổi theo vị trí cần gạt. Nối VCC và Ground của cả hai stick lại với nhau và đưa vào power rail; nối UpDown và LeftRight của cả hai stick vào A1, A2, A3 và A6 trên Arduino Nano.
Đi dây nguồn
PiSugar được thiết kế để gắn dưới đáy RPi, tuy nhiên ở đây mình sẽ không làm vậy. Thay vào đó, mình gắn nó cạnh RPi và lấy 5V từ header trên PiSugar để cấp cho RPi, Arduino, màn hình và amplifier.
Ngoài ra có thể nối nút nguồn. Phần này khác nhau tuỳ model RPi và không được đề cập ở đây.
Tất cả thiết bị (màn hình, amplifier, RPi, Arduino) nên được cấp nguồn theo kiểu star topology từ PiSugar, không đi vòng qua Raspberry Pi (bao gồm cả ground).
Đi dây amplifier
Đi dây amplifier khá đơn giản. Lấy một dây 3.5mm có thể cắt, xác định dây Left, Right và Ground rồi hàn vào board amplifier. Hàn đầu ra sang loa ở các pad còn lại. Mình có nối thêm dây nối dài cho loa để dây dài hơn, giúp hai nửa vỏ trước/sau vẫn tách rời được.
Không có ngàm/bệ bắt amplifier, mình chỉ dán băng keo nó vào một chỗ trống ở đáy của back panel.
Lưu ý về audio trên RPi 5
RPi 5 không có ngõ audio analog out. Với dự án của mình, mình chọn Apple 3.5mm USB audio adapter vì kích thước nhỏ. Nếu bạn dùng RPi 5 và muốn dùng cổng USB-C thì phải bật trong config.txt bằng cách thêm dtoverlay=dwc2,dr_mode=host dưới mục [all].
Lưu ý về nguồn
RPi 5 ăn điện khá nhiều. PiSugar sẽ không đủ cấp khi tải nặng nếu bạn vặn amplifier lên 100%, và cũng không chịu nổi khi overclock RPi 5. Các đời RPi khác có thể không gặp vụ này nhưng mình chưa test.
Lưu ý về quạt
Quạt chủ yếu dành cho RPi 5. Mình sẽ không chạy nếu không có heatsink, còn với các model khác thì quạt có thể là tuỳ chọn. Bạn muốn gắn cho model nào cũng được.
Mình phải nối dài dây của quạt Canakit mình link vì dây zin rất ngắn.
Giấy phép
File mô hình
Chưa có bản in nào được khoe. Hãy là người đầu tiên!
Chưa có bình luận nào. Hãy là người đầu tiên!