Translate

2018年11月30日金曜日

Logicool F710 コントローラを使ってDonkey Carを操作するコントローラを作成した

Donkey CarのGitHubリポジトリが2.5.1から2.5.8にかわり
リポジトリ構成がどんどんかわってきている。

その過渡期にDonkey Carに取り組んでしまったのは
不幸かもしれない。

ジョイスティックコントローラもそんなひとつ。

だって、
autorope/donkeypart_ps3_controller

autorope/donkeypart_bluetooth_game_controller
のふたつがあり、
前者は
/dev/input/js0を標準ライブラリで読む
仕様であり、後者は
/dev/input/event0 をevdevパッケージで読み、かつ設定ファイルをyamlで書く
仕様になっている。

どうもBluetooth側が後発であり新しそうなので、
おそらくこっちで統一しようとしているのだと思う。


というわけで上の図で紹介している
Logicool製F710コントローラをDonkey Carコントローラにする
コントローラクラスの親クラスは
autorope/donkeypart_bluetooth_game_controller
を使うことにした。

で、調べてみるとこのF710、上面にD/Xを選択するスイッチがあって、
これを操作することで DirectInput/Xinput仕様どっちもうごかせるようになっている。

さらにevdevパッケージで製品名を調べると、
スイッチ変えるごとに名前が違う事が判明..

しょうがないのでどっちでも動かせるように
作り変えた。
こんなトンデモ仕様のジョイスティックを想定していない
親クラスは、結局YAMLファイルへ個別仕様の封じ込めに失敗することとなる...

で、作ったのがコレ
coolerking/donkeypart_game_controller
 一応oldディレクトリにPS3系パッケージを継承したクラスも用意しています。

詳細は上記リンクを参照のこと。

p.s.
なお、ELECOM製JC-U3912Tというコントローラも
一緒に作ってみました..



0 件のコメント:

ClaudeをOpenAI O1のように思考させるDifyサンプルを試す

 Difyの「探索」タブにはさまざまなサンプルが載っており、その1つに「Thinking Claude (OpenAI O1 Alternative)」というものがある。   このサンプルがどういうものか、未だに自分でも解けない以下の問題をためしに聞いてみることにした。 『人類の...