2024年6月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

カテゴリー

ブログパーツ

無料ブログはココログ

« STM32F4 DISCOVERYのAD変換のトラブル対策 | トップページ | 移動テストの動画です »

2012年5月12日 (土)

PSDの出力を距離に変換する簡単な方法

ロボット作ろう:シェーキー製作記

以前、PSDの電圧出力を距離に変換する方法について投稿しました。その記事では変換式については説明しましたが、式の係数の求め方は、5球スーパーのトラッキング調整のように、近い距離、遠い距離で交互に調整していくという方法で、値は目の子で決めるようになっていました。

改めて考えてみると、未知のパラメータが二つの連立方程式なので、これを解けば一発で係数を決めることが出来るはずです。そこで、エクセルでこんな変換表を作ってみました。

Photo

おさらいをしておくと、浮動小数点での変換式は下記のようになっています。
 距離(cm)=係数A / (電圧 + オフセットB)
つまり、PSDの電圧/距離のグラフを双曲線で近似しようという訳です。

PSDを動作させ、最近距離付近での電圧と距離の実測値と、最大距離の70%くらいでの距離と電圧の実測値を黄色のセルに入力すると、自動的にA,Bを計算し、変換式を完成させてくれます。PSDの種類は問いません。シェーキーではミドルレンジのGP2Y0A02YKとロングレンジのGP2Y0A710Kを使っていますが、いずれもこの表で変換式の係数を決めました。

実測するには写真のようにPSDをしっかり固定し、写真のようにPSDの最前面から対象物までの距離を測ります。
Psd

対象物は十分に大きなも白っぽい平面を用意します。写真ではノートパソコン用のトートを使っていますが、壁を使う手もあります。電圧はデジタルテスターで、距離はスチールメジャーなどで測定します。
Dscn2178

先ほどの計算表の値は、実際に手持ちのGP2D12(GP2Y0A21の旧品番)を測定したものです。テストのセルに任意の距離での電圧を入れ、計算値と実測値をくらべたところ、おおむね0.5〜3cmくらいの誤差には入っているようでした。全体的に実際の距離より近めになるようです。また、近い方の距離の実測値がたとえば10cmだったとき、これを10.5cmなどと少し大きめに入力すると、距離の誤差が小さくなるという現象もみられました。
この計算式で別のGP2D12も試してみました。やはり個体差はあり、誤差は大きくなりますが、同じ計算式でも実用上は問題なさそうでした。

計算表のエクセルファイルはこれです。簡単ですがインストラクションも書いてあります。
「psd.xls」をダウンロード
浮動小数点の式だけではなく、mV入力でmm単位の距離を返す32bit整数版の式も同時に作れるようになっていますので、PIC16シリーズなど、浮動小数点演算が苦手のマイクロコントローラにも応用できます。

この計算表で作った変換式をプログラムに組み込んでおけば、距離が直接読めるので何かと便利です。
ただ、もともとPSDの測距結果は対象物によって精度はまちまちですから、この変換式も目安として使うべきでしょう。

« STM32F4 DISCOVERYのAD変換のトラブル対策 | トップページ | 移動テストの動画です »

ロボット作ろう」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: PSDの出力を距離に変換する簡単な方法:

« STM32F4 DISCOVERYのAD変換のトラブル対策 | トップページ | 移動テストの動画です »