2013-01-24 17 views
5

Tôi đang mã hóa C++ trên Linux (đặc biệt là Ubuntu 12.04) và muốn sử dụng bộ điều khiển PlayStation SixAxis (loại đi kèm với PS3) làm thiết bị đầu vào. qua bluetooth.Truy cập Bộ điều khiển Sony Playstation SixAxis bằng C++ trên Linux

Ứng dụng của tôi sẽ chạy không đầu. Không có trình quản lý cửa sổ nào chạy trên nền tảng đích. Mục tiêu là small robot đang chạy Ubuntu Server 12.04, mặc dù tôi đang phát triển trên máy tính để bàn.

Có bất kỳ thư viện hoặc kỹ thuật nào mà tôi có thể sử dụng không?

+0

Bạn đang tìm một số thư viện tương tự như văn bản mousedev, nhưng đối với bộ điều khiển PS3? Có thư viện để di chuyển - http://thp.io/2010/psmove/ có thể hỗ trợ bạn một chút. Câu hỏi của bạn là một chút mơ hồ, mặc dù. – Petesh

+0

@Petesh, đó là một chút mơ hồ bởi vì tôi không hoàn toàn chắc chắn những gì tôi đang tìm kiếm. Kết quả cuối cùng là lấy mẫu trạng thái của bộ điều khiển định kỳ, hoặc để nhận các cuộc gọi lại để đáp ứng với các thay đổi trạng thái. Hoặc là sẽ ổn thôi. Thư viện đó dường như không hỗ trợ trình điều khiển SixAxis. Gần nhất tôi đã tìm thấy cho đến nay là sáu, đó là thư viện cơ bản cho QtSixA. Tôi đã không quản lý để có được rằng làm việc được nêu ra mặc dù. –

+0

QtSixA đưa tin nhắn vào 'uinput', và bạn đọc từ thiết bị tiếp xúc/dev/input. Nó sẽ được điều khiển sự kiện - bạn sẽ nhận được tin nhắn khi dữ liệu thay đổi. Hooking thông qua libevent để xử lý các tin nhắn có thể làm cho mọi thứ đơn giản hơn để chương trình. – Petesh

Trả lời

3

giải pháp hiện tại của tôi liên quan đến việc sử dụng ppa này trên ubuntu 12,04

sudo apt-add-repository ppa:falk-t-j/qtsixa 
sudo apt-get update 
sudo apt-get install sixad -y 
# plug controller into machine (via wire) 
sudo sixpair 
# unplug controller 
sixad --start 
# hold PS button 

sau đó tôi tìm thấy c++ library của bạn, và nó hoạt động tuyệt vời. Bây giờ tôi có robot điều khiển sáu trục!

Các vấn đề liên quan