iPad版ClipStudio
iPad版ClipStudio(以下iPadクリスタ)ではまだ左手デバイスが接続できません。
しかしPC版ClipStudioを左手デバイスを使っているとどうしても作業効率が落ちます。
もっともタッチジェスチャー機能はかなり効果があり、あまり必要とされていませんでした。
そこでなんとか左手デバイスを付けられないか調査しました。
鍵はKeyboard入力
iPadクリスタをよく見るとコマンドのショートカットは確かにあります。
それはBluetoothキーボードを取り付ければ使える機能です。
私はiPad用のキーボードは持っていませんがWindows用のBluetoothキーボードはあります。
そこでiPadにWindowsBluetoothキーボードを接続して実際に打ってみると確かにショートカットが使えるようになっています。
しかしキーの入力がハードウェアキーボードで設定しても色々とキーが打てなかったり不便であると感じましたし、元々の話しの左手デバイスには遠く及びません。むしろ場所が圧迫して使い辛いです。
なんとかキーボードを減らす方向で考えたのがBluetoothキーボードエミュレータです。
動作中の動画
まずは実際に動いている動画をご覧ください。
最初はRaspberryPi
最初はRaspberryPiでエミュレータを考えました。
色々と挑戦していくうちにキーボードエミュレータ部分が結構難しい事が判明しました。
この部分はプログラムができる人が作ってくれる人がいればできるでしょう。
しかし以下のデメリットが大きくのし上がりました。
- RaspberryPi自体の入手が非常に困難で高価である
- 知識が無いとセットアップから行うのは困難。
- 仮にできたとしても左手デバイスとBluetoothキーボードエミュレータを両立するのは物理的に不可能
そこで安くプログラミングができるデバイスを探しました。
ESP32E
Bluetoothキーボードエミュレータ部分を安く手に入れる為にデバイスを探しました。するとそのものずばりを作ってらっしゃる人がいて簡単にプログラミングできそうな物を発見しました。
これは開発キットですがUSB部分の無い物が秋月電子通商で800円で売られているのを発見しました。
私はUSB変換キットを自前で持っていたので秋月電子通商で購入しました。
(以下ESP32E)
ちなみに私が持っているUSB変換キットは
です。これをBluetoothキーボードエミュレータとして稼働させます。
入力はWindowsのキーボード
構想としては以下のような図になります。
ESP32Eには元々プログラムを書き込む為にシリアル通信を使います。そしてAlduinoIDEというソフトで書き込みます。
書き込み後はシリアル通信を行うようにプログラミングしてあり、Windowsからキーボードを押した状態をESP32Eに送信します。送信したらBluetoothキーボードとしてふるまうようにしてiPadに接続しキーの情報を送信します。
プログラムがキーロガーとして認識されてしまうところがネックではありますがウィルス対策ソフトでそのプログラムを除外しておくよう準備します。
joycon入力部分は別プログラムで補う
ここはPCで有名なJoyStick入力をキーボードが押されたと変換できるプログラムJoytoKeyを使います。
これでjoystickを押した情報をキーボードを押した事にしてくれるようになります。
例えば’p’というキーを押したという情報をjoystickのキーに割り付けておきます。
joytokeyの入力があるとキーボードが押されたと判断されてキーコードが送出されます。
キーボード入力のキーコードをシリアル送信する
それを今開発中のプログラムでシリアル送信するように作りました。ただそのままですとWindowsにもキーが送出されてしまうので特に良く使う「Win」キーは「無変換」キーを押した時に「Win」キーとして変換して送信しています。
ほかにもいろいろと変換しながら送信することでBluetoothキーボードエミュレータはあたかもそのキーを押したように振舞います。
まだα版も前のプログラムなので公開できる状態ではないのですが早々にgithubにでも置くようにします。
Bluetoothキーボードエミュレータ
のライブラリを利用させていただいております。ここでも同時押しの処理を対応するようプログラムしています。一度書いてしまえばシリアル通信で送られてきたコードで送信するように作られていていますので簡単ではありませんでした。
このプログラムも出来たらUpしますのでしばらくお待ちください。
色々と書いてきましたが
今の段階では
- joystic(joytokeyで認識できる物)
- WindowsでBluetoothが接続できる物
- USBシリアルケーブル
- ESP32E
と色々と必要ですが目的は達成しそうです。目標はWindows無し、ESP32Eをもう一個で完全にそれだけで完結できるように作っています。
まずは現状報告という事で。(まだ誰もやった事無いよね!?)
追記2024年2月15日
プログラム汚いけど公開しました。
色々言いたい事あると思いますが長い目で見ててください。
コメント