Получите доступ к контроллеру Sony Playstation SixAxis с помощью C++ в Linux

Я пишу код на C ++ в Linux (в частности, Ubuntu 12.04) и хотел бы использовать контроллер PlayStation SixAxis (тип, который поставляется с PS3) в качестве устройства ввода, в идеале через Bluetooth.

Мое приложение будет работать без головы. На целевой платформе нет оконного менеджера. Целью является небольшой робот, работающий под управлением Ubuntu Server 12.04, хотя я разрабатываю для настольного компьютера.

Существуют ли какие-либо библиотеки или методы для этого, которые я мог бы использовать?


person Drew Noakes    schedule 24.01.2013    source источник
comment
Вы ищете какую-нибудь библиотеку, похожую на текстовую mousedev, но для контроллера PS3? Для перемещения есть библиотека — thp.io/2010/psmove, которая может вам немного помочь. Однако ваш вопрос немного расплывчатый.   -  person Petesh    schedule 25.01.2013
comment
@Petesh, это немного расплывчато, потому что я не совсем уверен, что ищу. Конечным результатом является периодическая выборка состояния контроллера или получение обратных вызовов в ответ на изменения состояния. Любой был бы в порядке. К сожалению, эта библиотека не поддерживает контроллер SixAxis. Самое близкое, что я нашел на данный момент, это sixad, основная библиотека для QtSixA. Однако мне еще не удалось заставить это работать.   -  person Drew Noakes    schedule 25.01.2013
comment
QtSixA вводит сообщения в uinput, и вы читаете их с открытого устройства /dev/input. Это будет управляться событиями — вы будете получать сообщения при изменении данных. Перехват через libevent для обработки сообщений может упростить программирование.   -  person Petesh    schedule 25.01.2013
comment
Кроме того, 5 секунд поиска в Google показывают эту страницу: help.ubuntu.com/community/Sixaxis   -  person DanielKO    schedule 15.02.2013
comment
Поскольку вы упомянули, что пытаетесь управлять роботом, я оставлю это здесь: ros.org/ вики/ps3joy   -  person Nicu Stiurca    schedule 19.02.2013
comment
Привет, Дрю, я член команды NUbots Robocup, и после покупки контроллера PS3 именно для этой цели я нашел этот вопрос! Вы чего-нибудь достигли с этим проектом? Я был бы очень заинтересован в любой информации, которую вы нашли!   -  person Brendan Annable    schedule 14.03.2014


Ответы (2)


Мое текущее решение включает использование этого ppa на 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

Затем я нашел вашу библиотеку C++, и она прекрасно работает. Теперь у меня есть шестиосевые управляемые роботы!

person Brendan Annable    schedule 07.04.2014

person    schedule
comment
Пожалуйста, а) объясните, как работает ваш код б) объясните, как ваш код помогает в) отформатируйте более полезно ( stackoverflow.com/editing-help ) d) форматировать менее шумно e) не публиковать электронные письма f) не исправлять неработающее электронное письмо, удалить его - person Yunnosch; 07.12.2019