ジェスチャーセンサー用のプログラムを書いていてつまずいた点

忘れないうちにメモ

 

・ジェスチャーセンサモードに移行するために近接エンジンを使う場合、GPENTH(=Gesture Proximity ENtry THreshold)を適切に設定する。

・近接エンジンのゲイン、PGAIN(=Proximity GAIN)を大きく設定するとセンサから距離があってもジェスチャーセンサモードに入りやすい。PGAIN倍になったPDATA(近接データ)がGPENTHを超えるとGMODEが1になって、ジェスチャーエンジンに入るため。

・センサは赤外線LEDを明滅させて、近接する物体からの反射光をフォトダイオードで検出している(→ひっくり返せばマウスとして使えそう)。で、赤外線LEDの電源と本体の電源を共用した場合、よくPICが落ちる(リセットがかかる)。容量大きめの電解コンデンサをセンサのVDD-GNDにつなぐと改善(秋月のマニュアル通り)。

・きむ茶工房ガレージハウスさんのHP(→リンク)がとても参考になりました。実際にPIC用にC言語で書かれているサンプルをダウンロードしてヘッダファイルはそのまま使わせていただきました(ありがたや)。が、GConfig1_t 構造体の定義が間違っていて(GEXPERSとGFIFOTHが逆)3月8日に修正されましたm(__)m、想定外の動作に悩み、デバッグに時間がかかりました^^;

 

ジェスチャーデータを取得してUSART経由でターミナルに出力し、結果をエクセルでグラフにしてみました。こういうデータだけから物体の移動方向を判断するプログラムを皆さん工夫して書いているようです。指をセンサ上5cmくらいのところで左から右にすばやく移動↓

 

ちなみにマニュアルに記載されているグラフはこんな感じ。下の図(左から右に移動)と実験結果が似ています。

 

フォトダイオードが4方向に配置されていてレンズがカバーされているので左から物体が近づくとRが真っ先に大きな値を示すようです。そして真っ先に低い値に落ちていきます。こういった事情は実際に実験してみるまでよく理解できていませんでした。

 

まだ道のりは遠い・・・