Используют ли контроллеры PS3 SPP для отправки состояния кнопок?

Я делаю небольшую схему Arduino, и я хотел бы использовать контроллер PS3 для управления моим проектом (пока). Я знаю, что есть такие вещи, как MotionJoy для ПК, но как работает это программное обеспечение? Потребуется ли много обратного инжиниринга, чтобы перевести кнопки с контроллера PS3 на чип Bluetooth на UART?

Причина, по которой я спрашиваю, заключается в том, что у меня уже есть контроллер. Если это невозможно сделать, у меня есть другая идея, но я не хочу тратить на это больше денег. Из-за этого я ценю ответы, связанные с контроллером PS3, а не ответ об альтернативах.

Спасибо!

Посмотрите, можете ли вы найти программу с открытым исходным кодом или программу на базе Linux для чтения их с ПК. Если документация прямо не объясняет, как это работает, это должно быть относительно легко определить из кода. Мое первое предположение было бы расширением джойстика HID, а не SPP, но проприетарные системы иногда делают новые вещи.

Ответы (1)

Я сделал что-то подобное с оригинальным контроллером Xbox. Это использовало «собственное» USB-соединение. Это был USB 1.1 плюс пятый провод, который использовался как идентификатор или типа того. Я просто проигнорировал это. USB просто отправлял HID-пакеты, которые было легко интерпретировать.

Контроллер PS3 кажется очень похожим, но, похоже, использует только стандартную связь USB в формате HID ( Human Interface Device ) или связь Bluetooth через HCI ( интерфейс хост-контроллера ) и снова отправляет команды в формате HID. Таким образом, вы можете подключить контроллер PS3 напрямую через USB к Arduino Host Shield или подключиться через Bluetooth с помощью ключа Bluetooth.

В этой статье дается подробный обзор обоих типов соединений, включая ссылки на различные стандарты и исходный код LGPL, которые вы можете попробовать. Вот еще одна статья , где раздел USB ссылается на первую статью. Но раздел Bluetooth дает краткий обзор формата пакета HCI и пошаговые инструкции по сопряжению с ним.