0.1度単位で秒間10回、方角を取得できるようになった
公開日:
:
最終更新日:2014/01/28
電脳メガネ
記事内に広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
秋月のTDS01Vというデバイスで、方角を取得できるようになった。
ソースはCodeReposに上げておきました。
Changeset 8533 ? CodeRepos::Share ? Trac
/lang/c/tds01v/sample.c ? CodeRepos::Share ? Trac
コンパイルは以下のように。
% gcc -o sample sample.c
実行は以下のように。
% ls /dev/*usb*
/dev/cu.usbserial-0000103D /dev/tty.usbserial-0000103D
% ./sample /dev/tty.usbserial-0000103D
dir_dig = 222.800000
dir_dig = 222.800000
dir_dig = 222.800000
dir_digが秒間10回ほど出力されます。これが方角を表しています。
方角 | dir_dig |
---|---|
北 | 0.0 |
東 | 90.0 |
南 | 180.0 |
西 | 270.0 |
のようです。
現在のコードはデータ受信前にnanosleepで100msほどスリープするという超適当な対応をしているんですが、本来はバッファの受信サイズをチェックしてからreadするような動きにしないと駄目なんだと思う。んで、「同期・非カノニカル」にすればおそらくそれに近い動きになるはず。ここら辺は後で直すとしよう。