前回紹介した基板を使い、デバイスを試作して評価した。
2つの回転ボリュームの位置情報を、BLEで送信する。USBコネクタは電源を供給するためのものである。
テストアプリでの評価
BLEでPCに接続し、以前に作成したテストアプリを使って評価した。
左上の数値が送信レートで、毎秒50回程度であった。マイクロビットで試作したものでは16回程度だったので、それに比べるとだいぶ速い。つまりは入力の遅延を感じにくい。
しかし一方で、精度があまり良くない。ボリュームを動かさない状態で、右のMAXとMINの数値が振れ幅を示している。マイクロビットの場合はほとんど値が変化しなかったのに、こちらでは20くらいの幅で振れてしまっている。これでは入力として使った際に、ボリュームを動かさなくてもプルプルと震えるような現象につながってしまう。
ボリュームの電源の影響
精度が改善されないか、いろいろと試してみた。
まずはボリュームにかける電源を変えてみたが、状況はほとんど変わらなかった。
M5Stampから3.3Vが出力されているのだが、これは結構不安定かと思い、基板上にレギュレータを入れて別途3.3Vを生成し、これをボリュームにかけるようにしていた。テストではこれをM5Stampから出力されている3.3Vに変更したわけだが、状況が変わらなかったということは、基板上のレギュレータの効果はほとんどなかったということである。
ボリュームにかかる電源を安定化したところで、M5Stamp内のアナログ系にかかる電源を改善できるわけではないので、これはまあ仕方のないところかもしれない。
BLE通信の影響
調べてみるとBLE通信が結構電流を消費するようで、ノイズ源となっている可能性は十分考えられる。そこで、BLE通信を止めて、シリアル経由で値を見てみるようにした。
結果は、これもほとんど変わらなかった。
まとめ
今回の評価では結局、ノイズの状況は改善されなかった。他にもシールドを入れてみるなど試してみたが、M5Stamp内のアナログ系を触れるわけではない以上、できることには限界があった。
やはりADコンバータを外部に追加する形が、確実だろうと思う。今回の評価結果を受けて、今後は外部にADコンバータを追加する構成を検討していきたい。