SpotMicro(mini) その7 ーリモートコントローラにも気をつけろ(その2)ー [ROBOT]
前回の記事で、XBOXOneのコントローラには、Bluetoothに接続できるものとできないものがあり、できるものをてにいれて、接続できたところまでは書いた。
SpotMicroaiのページによると、jstest コマンドを使うと、接続状態を確認でき、ボタンやスティックを稼働させると変化が出力される。
このコマンドを実行すると、接続されているボタン等のリストが出力される。
? !なんかおかしい。
ここで、SpotMicroaiのプログラムを動かし、Startボタンを押すと、エラーが発生して止まる。
エラーの内容は”Ryがない。”
で、上のスティックの列を見ると確かに、Ryはない。
そこで、USBケーブルを使用して、Bluetoothではないコントローラを接続して、jstestを起動すると
こっちにはRyがある!
さらに
Bluetooth で接続できたものをUSBでつないてみると
あれ?こっちにもあるなあ。おんなじコントローラなのに。だけど、名前が違うのか。
GamePadのプロファイルは誰がどうやって認識してるんだろう。
多分、接続時に、プロファイルを読み取り、認識してるんだろうと思う。
だとするともう手においえないので、スティックの対応を読み替えることにした。
SpotMicroのプログラムは、RemoteControllerを自前で認識している。であれば、
報告されたスティック番号を入れ替えればいい。
スティックの名前つけマップを以下のようにした。
とりあえずこの変更で、起動するところまで行った!
レストポジションになるみたいだ。
そこで、起こったことは、
”パチッ!!”と言って煙が”?”の形で上がった。
いろいろ起こるなあ
SpotMicroaiのページによると、jstest コマンドを使うと、接続状態を確認でき、ボタンやスティックを稼働させると変化が出力される。
このコマンドを実行すると、接続されているボタン等のリストが出力される。
Driver version is 2.1.0. Joystick (Xbox Wireless Controller) has 8 axes (X, Y, Z, Rz, Gas, Brake, Hat0X, Hat0Y) and 15 buttons (BtnA, BtnB, BtnC, BtnX, BtnY, BtnZ, BtnTL, BtnTR, BtnTL2, BtnTR2, BtnSelect, BtnStart, BtnMode, BtnThumbL, BtnThumbR). |
? !なんかおかしい。
ここで、SpotMicroaiのプログラムを動かし、Startボタンを押すと、エラーが発生して止まる。
エラーの内容は”Ryがない。”
で、上のスティックの列を見ると確かに、Ryはない。
そこで、USBケーブルを使用して、Bluetoothではないコントローラを接続して、jstestを起動すると
\
Driver version is 2.1.0. Joystick (Microsoft X-Box One pad) has 8 axes (X, Y, Z, Rx, Ry, Rz, Hat0X, Hat0Y) and 11 buttons (BtnA, BtnB, BtnX, BtnY, BtnTL, BtnTR, BtnSelect, BtnStart, BtnMode, BtnThumbL, BtnThumbR). |
こっちにはRyがある!
さらに
Bluetooth で接続できたものをUSBでつないてみると
Driver version is 2.1.0. Joystick (Microsoft X-Box One S pad) has 8 axes (X, Y, Z, Rx, Ry, Rz, Hat0X, Hat0Y) and 11 buttons (BtnA, BtnB, BtnX, BtnY, BtnTL, BtnTR, BtnSelect, BtnStart, BtnMode, BtnThumbL, BtnThumbR). |
あれ?こっちにもあるなあ。おんなじコントローラなのに。だけど、名前が違うのか。
GamePadのプロファイルは誰がどうやって認識してるんだろう。
多分、接続時に、プロファイルを読み取り、認識してるんだろうと思う。
だとするともう手においえないので、スティックの対応を読み替えることにした。
SpotMicroのプログラムは、RemoteControllerを自前で認識している。であれば、
報告されたスティック番号を入れ替えればいい。
スティックの名前つけマップを以下のようにした。
if js_name == 'Xbox Wireless Controller': print('remap axis_name') axis_names = { 0x00: 'lx', 0x01: 'ly', 0x02: 'rx', 0x03: 'ry', 0x04: 'ry', 0x05: 'ry', 0x06: 'ry', 0x07: 'rz', 0x08: 'wheel', 0x09: 'rz', 0x0a: 'lz', 0x10: 'hat0x', 0x11: 'hat0y', 0x12: 'hat1x', 0x13: 'hat1y', 0x14: 'hat2x', 0x15: 'hat2y', 0x16: 'hat3x', 0x17: 'hat3y', 0x18: 'pressure', 0x19: 'distance', 0x1a: 'tilt_x', 0x1b: 'tilt_y', 0x1c: 'tool_width', 0x20: 'volume', 0x28: 'misc', } |
とりあえずこの変更で、起動するところまで行った!
レストポジションになるみたいだ。
そこで、起こったことは、
”パチッ!!”と言って煙が”?”の形で上がった。
いろいろ起こるなあ
コメント 0