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見て察してくだしあ