2011/4/7
Assembly Desk
BItTouchマクロを使う事で、常駐ソフト無しで、BitTouch内部に一連の処理を記録する事が可能です。
様々なPCで使用する時等、常駐ソフトを使わずにBitTouch内部に処理を記述できればとても便利に使うことができます。
BitTouchのスクリプト仕様は、自由度が高く設計されていますので、マウスやキーボードの同時操作など、かなり複雑な処理も実行することができます。
ここでは、BitTouchにマクロ動作をさせるためのスクリプトの書き方と使い方を紹介します。
BitTouchマクロを使うためには以下の準備が必要になります。
それぞれのやり方を説明していきます。
Assembly Deskのページから、[BitTouchマクロ ソースコード]をダウンロードします。
この圧縮ファイルの中にはソースコード一式が含まれています。
この中のHEXファイルがBitTouchマクロのファームウェアになります。
また、同時に[ファームウェア書き込みソフト]もダウンロードしておきます。
これを、マニュアルに記述されている方法で、ファームウェアの更新を行います。
設定ツールで、「ファームウェア書き換え」ボタンを押し、確認ダイアログでOKを押した後、実際にBitTouchが書き込み可能のモードになるまでに10秒ほどかかることがあります。
ファームウェア書き込みソフトで書き込みを行った後、一度BitTouchを抜き指しすると、BitTouchはマクロが使える状態で起動します。
BitTouchマクロ転送ソフトをダウンロードします。
BitTouchにマクロのファームウェアが書き込まれた状態で、BitTouchマクロ転送ソフトを起動します。
BitTouchがきちんと認識されれば準備OKです。
ここでは、具体的なスクリプトの記載方法について、以下の順番で紹介します。
まず、BitTouchマクロ転送ソフトの画面について、見ていきます。
画面左側には、転送するスクリプトが記述されているリストが表示されえちます。
1列目は行数を表します。
2列目は現在BitTouch内部に書き込まれているスクリプト
3列目は編集可能で、これからBitTouchに書き込みたいスクリプトを記述します。
画面真ん中下には「設定」というボタンが2つあります。
左の「設定」は記述したスクリプトをBitTouchに転送します。
右の「設定」はファームウェアアップデートを行います。新しいバージョンのファームウェアや、元のビットタッチに戻したいときなどに使用します。
また、ビットタッチに触れると、「ON」という表示が画面に出ます。
スクリプトの記述方法について、述べます。
なお、スクリプトはすべて16進数で記入します。
頭に0xをつけても、認識されますので、このテキストの中では、わかりやすいように、0xをつけて記載します。
スクリプトの第0行目には0x40という値が入っていますが、これは、センサ感度をあらわしています。
実質的なスクリプトの開始は1行目からになります。
スクリプトの詳細な仕様については、別文書の「スクリプト仕様」をご覧ください。
なお、BitTouchでは、48行目までのスクリプトを実行することができます。
スクリプトの簡単な流れは、以下のようになっています。
「実行する」前に、いくつかコマンドを設定しておけば、そのすべてが同時に実行されます。
また、「実行する」には「一定時間実行する」と「全コマンド終了まで実行する」が選択できます。
これによって、ある動作の途中から別の操作を行うことも可能です。
また、マウスやキーボードを組み合わせた動作も可能です。
それでは、実際に、次のようなマウスジェスチャを記述してみます。
「BitTouchを触ると、右クリックを押しながら、下に100ピクセル次に右に100ピクセル動かし右クリックを離す」
これをBitTouchに登録するために、次のように操作を分解します。
これをスクリプトに変換すると、以下のようになります。
0x40 //センサ感度
0xFE //ヘッダ部
0x00 //対応するSW(BitTouchの場合はタッチスイッチ)が押されるたび、一度だけ実行
0x81 //動作周期を100ms単位で設定
0x02 //200ms
0x14 //右クリック
0x80 //動作周期を1ms単位で設定
0x0A //10ms
0x11 //マウスカーソルをY軸方向に移動
0x0A //10px下へ
0x0A //10回
0x81 //動作周期を100ms単位で設定
0x01 //100ms
0x90 //実行
0x80 //動作周期を1ms単位で設定
0x0A //10ms
0x10 //マウスカーソルをX軸方向に移動
0x0A //10px右へ
0x0A //10回
0xFF //終了(実行される)