シャープの測距モジュールGP2Y0A21YKであるが、
ふざけた仕様で、3つあるケーブルは、
白:出力
黒:+5V
赤:グランド
というものである。赤黒逆じゃないのかと。
余裕で逆接続しましたとも。電源装置に接続したのだが、設定していた電流リミットの1.5Aまで流してしまったよ。電流制限ない電源だったら壊れていたかも。ふう。皆さん、電源装置は電圧・電流の設定できるものにしましょうね。
余談でした。
さて、このモジュールですが距離は出力電圧の逆数に比例である。なのでArduinoなどのマイコンに入力したあとに計算させるときは逆数計算して処理したらいい。
エレキジャックのページ(2017/8で消滅した)でシャープ測距モジュールGP2Y0A21YKの距離-出力電圧の評価結果が書いてあるが、複雑な関数(指数関数だか)でフィッティングしている。ちょっとマイコンには負荷高いんじゃ無いのかその計算。
ということで、検討。逆数になりそうなのはなんとなくアタリをつけてあったのでもう逆数でいけるだろうの決め打ち。
|
うん。出力電圧は距離に反比例ですね。
個体差により上記の計算方法は異なるだろうから、実測で合わせ込むのがよろしいかと。80cmの彼方でもADCで1の変化があれば1cm刻みで値が計算出来る見込み。そんなに精度良く対象物に赤外ビームを照射できるかは不明。
原理的にも反比例なのを確認してみた。
装置の原理としては、三角測量であり、人間の目が奥行きを感じる視差を使ったものである。じゃあ、幾何学的に計算できそうですので、ちょっと計算してみましょうか。
スクリーン(オブジェクト表面)までの距離をx、投光器の軸と受光器の軸のオフセットをp(ピッチ?)、ディテクタのレンズの焦点距離をf、一次元イメージセンサー上の軸からのずれをdとすると、d=fp/xとなり、dは1/xに比例することが分かる。
装置としてもおそらく受光したピーク位置を出力するだけの単純な機構だろうから、きっと、距離はセンサー出力値の逆数をいじってあげればいいんじゃないかと思う次第。
別に三角関数使わなくとも、x:p=f:d だから、pf=xdでd=fp/xであることは計算できますな。
さて、当該機種、外からの光の影響を除去するために、赤外線リモコンのように点滅させて運転させているだろうと思う。しらべたら、http://cyberworks.cocolog-nifty.com/blog/2010/04/psd-gp2y0a21y-1.htmlで調査しているひとがいた。繰り返し周期1024usのうち、発光時間128usとのことで、点滅周期は約1kHzのようだ。
実際にモジュールを買ってみたので、測定してみた。60cmくらいから値がちょっとずれるが、電源装置のツマミをひねってしまったようで、電源5Vで開始したけど測定終わったら電源装置が4.7Vになっていた。まあ、いいか。
|
そして、80cm以上も測定できるんじゃないかと思う人はいないだろうか?できそうな見込み。もう一度測定したけど、やっぱり手で装置を移動していくと値がふらふらする。