USB HIDゲームパッド(いわゆるDirectInput対応ゲームパッド)の入力をNucleo F446-REで受けてCANで送信します
標準的なUSB HID(DirectInput)ゲームパッド
- Buffalo BSGP801
- Buffalo BSGP1204
- DragonRise Inc. Generic USB Joystick
- ELECOM JC-U2410T
- Logicool F710
Nucleo F446-RE | |
---|---|
PA12(CN10-12) | USB D+ |
PA11(CN10-14) | USB D- |
PB9(CN10-5) | CAN Tx |
PB8(CN10-3) | CAN Rx |
速度 | 形式 | ID |
---|---|---|
500kbps | Standard | 0x334 |
byte | name | type | range |
---|---|---|---|
1 | LX | int8_t | -100~100 |
2 | LY | int8_t | -100~100 |
3 | RX | int8_t | -100~100 |
4 | RY | int8_t | -100~100 |
5 | number of buttons | uint8_t | 17~24 |
6~8 | button[number of buttons] | bool(1bit) | 0~1 |
ボタンは最低17bit、最大24bit連続し、不足分及びバイトアライメントに到達しない分は0埋め
ボタン配置はW3C Standard Gamepadを参照(機種によって若干変わります))
115200bps
CAN機能付きmbed向け実装例(TODO: C++11を前提としたコードのため、オンラインコンパイラ使用時は適宜修正してください)
Makefile見て察してくだしあ