Bộ điều khiển trò chơi gia đình 4 người chơi không dây: 3 bước
Bộ điều khiển trò chơi gia đình 4 người chơi không dây: 3 bước
Anonim
Bộ điều khiển trò chơi gia đình 4 người chơi không dây
Bộ điều khiển trò chơi gia đình 4 người chơi không dây
Bộ điều khiển trò chơi gia đình 4 người chơi không dây
Bộ điều khiển trò chơi gia đình 4 người chơi không dây
Bộ điều khiển trò chơi gia đình 4 người chơi không dây
Bộ điều khiển trò chơi gia đình 4 người chơi không dây

Đây là bộ điều khiển kiểu arcade không dây mà 4 người có thể chơi cùng một lúc. Nó không dây để bạn không phải kết nối máy tính của mình với một bộ điều khiển đang được trẻ 5 tuổi sử dụng. Chúng rơi liên tục và tôi không muốn chúng phá hủy tất cả đồ chơi của tôi khi chúng không thể tránh khỏi vướng vào dây điện. Giống như một cái gì đó từ một bộ phim sitcom, tôi đã liên tục tranh cãi với vợ về việc giữ chiếc hộp. Đối với tôi, nó dường như đang cầu xin để được biến thành một thứ gì đó trong khi đối với cô ấy đó là một thứ rác rưởi xấu xí. Sau đó, những người được huấn luyện phải chạy một cuộc thi tốc độ dựa trên bìa cứng. Và thế là trong một buổi chiều, cuộc tranh cãi đã được giải quyết và dự án này ra đời.

Chúng tôi đã sử dụng những kết thúc bất lợi mà chúng tôi có quanh nhà để đưa dự án vào cuộc sống. Ý tưởng chỉ là sử dụng những gì chúng tôi đã ngồi xung quanh để làm điều gì đó thú vị - may mắn là chúng tôi đã có một bộ nút arcade và một cây mâm xôi pi mà chúng tôi đã mua cách đây nhiều năm để làm tủ arcade. Để cắt, chúng tôi sử dụng một cái cưa và con dao bỏ túi cũ đáng tin cậy của tôi.

Quân nhu

1. Hộp các tông2. Xốp hoặc chất độn dày đặc khác 3. Các nút arcade từ Ali Express hoặc Amazon 4. Raspberry Pi 3B + 5. Một số máy tính + màn hình khác. 6. Dao hoặc vật gì đó để khoét lỗ trên bìa cứng 7. Băng che8. Sơn phun

Bước 1: Xây dựng

Công trình xây dựng
Công trình xây dựng
Công trình xây dựng
Công trình xây dựng
Công trình xây dựng
Công trình xây dựng

Chúng tôi nhanh chóng vẽ một bản phác thảo về những gì chúng tôi muốn nó trông như thế nào, sau đó sử dụng một con dao và cưa gỗ để cắt bìa cứng và xốp theo đúng kích thước. Chúng tôi đánh dấu các tông bằng bố cục nút / phím điều khiển tốt và dùng dao cắt các lỗ một cách cẩn thận. Đây là một bài tập tuyệt vời về toán cơ bản cho trẻ em. Sau khi tấm bìa được cắt, chúng tôi sơn nó và sau đó đặt tất cả các nút vào đúng vị trí. Điều thú vị chính mà chúng tôi đã làm là dán ba lớp bìa cứng cho phần trên của bộ điều khiển để tăng độ cứng cho nó. Điều này làm cho nó hơi khó để cắt xuyên qua nhưng hoạt động hoàn hảo để làm cho phần trên gần như rắn chắc như gỗ.

Raspberry Pi 3B + có bốn cổng USB. Chúng tôi có một gia đình gồm bốn và 4 bộ nút arcade! Đây là tiền định.

Bước 2: Lập trình

Lập trình
Lập trình
Lập trình
Lập trình
Lập trình
Lập trình
Lập trình
Lập trình

Mã cho dự án này rất đơn giản và có nhiều lỗi. Tất cả có thể được tìm thấy ở đây:

github.com/melvyniandrag/SuperTuxJunkKart 4 bộ điều khiển được kết nối qua usb với raspberry pi. Trên Raspberry pi, có một tập lệnh python nhỏ đang chạy. Tôi đã sử dụng thư viện đầu vào Python để lấy tín hiệu từ các nút và cần điều khiển. Sau đó, chương trình chuyển đổi tín hiệu thành một mã ASCII ngắn và gửi nó qua ổ cắm TCP qua wifi đến PC đang chạy trò chơi (tôi sẽ gọi đây là máy chủ trò chơi). Ví dụ: khi người chơi 0 di chuyển cần điều khiển sang trái, các ký tự '0XL' được gửi qua cổng TCP tới máy chủ trò chơi. Để thử nghiệm, tôi đã chạy SuperTuxKart trên thinkpad của mình. Một ứng dụng máy chủ nhỏ chạy trên thinkpad và lắng nghe trên cổng TCP. Các mã đến từ pi raspberry qua wifi được dịch thành các nút nhấn trên bàn phím thông qua thư viện pyautogui. Vì vậy, khi người chơi 0 trên bộ điều khiển bìa cứng di chuyển cần điều khiển sang trái và bộ điều khiển phát ra 'OXL', máy chủ đang chạy trò chơi cho rằng người chơi nhấn nút '1' trên bàn phím. Trò chơi phải được định cấu hình để nhận ra những lần nhấn bàn phím này như có thể được hiển thị trong màn hình tùy chọn ở đây. Trò chơi này chạy tốt với một hoặc hai người chơi, nhưng khi 4 người chơi SuperTuxKart mạnh mẽ, máy chủ bắt đầu thiếu một số dữ liệu từ bộ điều khiển. Tôi không chắc đây có phải là lỗi không: 1. Về phía máy khách (bộ điều khiển) 2. Trên máy chủ (thinkpad) side3. Tích hợp chức năng Linux. Có thể máy tính xách tay Ubuntu của tôi không thể nhận ra một số lượng lớn các lần nhấn phím đồng thời. Vì vậy, nếu người chơi 0, 1 và 2 đều lái lên và sang trái, điều đó có nghĩa là 2 * 3 = 6 nút đang được nhấn cùng một lúc. Tôi không chắc liệu máy tính của mình (hoặc bất kỳ máy tính nào) được thiết kế để xử lý điều đó. Thông thường các phím nóng là 3 nút hoặc ít hơn, ví dụ: CTRL + ALT + DEL. Trong tương lai, tôi sẽ thử khởi động 4 ổ cắm tcp, mỗi ổ cắm cho mỗi bộ điều khiển, sau đó ở phía máy chủ tạo một bảng điều khiển trò chơi ảo. Tôi chưa có thời gian để xem làm thế nào để làm điều đó giữa việc nuôi dạy con cái, làm việc và cắt các hộp các tông.

Bước 3: Tương lai

Đây là một Bằng chứng khái niệm đơn giản. Trong tương lai, mã cần phải tốt hơn. Tôi muốn viết mã kết nối dưới dạng thiết bị bluetooth HID, nhưng bluez5 trên Linux hơi mất thời gian để làm việc - đó là lý do tại sao tôi sử dụng ổ cắm TCP + Python. thích ghê. Với nhiều thời gian hơn, tôi sẽ đầu tư nhiều năng lượng hơn vào việc cắt giảm cẩn thận hơn. Sau đó, tôi sẽ đặt thêm giá đỡ - các mặt của hộp bắt đầu cong lên một chút. Tôi sẽ tiếp tục mày mò nó trong khi chúng ta xem phim vào buổi tối.