2010年2月12日金曜日

小型で安価な回転角を検出する装置

ホビーでロボット系の工作をする際に,モーターの回転角や回転速度の検出が良く問題になると思います.RCサーボがこの手の工作で頻繁に使われている理由として,角度の検出部を自分で工作することが困難なことがあげられると思うのですがどうでしょう?

アナログ型光学式ロータリーエンコーダ


そこでここでは,アナログ型の光学式ロータリーエンコーダによって角度を検出する方法を提案してみます.通常光学式のロータリーエンコーダにおいては下の図のようなスリットを持った回転円板を用います.
このような円板は手作りすることが困難であり,高精度の物は高価になります.また,絶対値型のエンコーダはスリットやセンサーの数が多く,自作は非常に困難で大型になってしまいます.そこで,ここでは以下のようなグレースケールを持つ円板
を用いて,以下の図のように配置されたセンサーを用いることを考えます.


グレースケールを持つ円板はプリンタで簡単に作成できますし,センサの組み付け精度などもそれほど必要とされないのでこのような装置は比較的簡単に作成することが出来ます.

試作機

次に実際に試作品を作ってみた結果を示します.
円板はプリンタで印刷したもので,後ろの田宮の小型ギアボックスは回転軸の固定&テスト用です.


センサー部は適当に買ってきた反射型のフォトインタラプタを2個,回転軸について90度対称な位置に配置しただけです.


組み合わせると下の写真のような感じになります.


動作テストの様子です.


動画で使っている円板は黒い部分の半径を変化させてグラデーション円板の代用とした物です.透過型のフォトインタラプタを用いる場合やグレーが使えない場合に有用なのではないかと思います.
いい加減な工作ですが,それらしい波形が出ていることが確認できます.もう少し真面目に作れば,実用的な角度センサになるのではないでしょうか.

6 件のコメント:

Shin さんのコメント...

初めまして.
動画のモノクロの回転板(黒円の半径を変化)の方は,回転速度に対してコントラストの円周長の比が1:1になる様に,速度毎にセンシング位置を変えているのでしょうか…(多分違うのだとは思いますが)

後,MouseoverDictionaryは,FireFox3.6以降は対応のご予定はないのでしょうか.

丸田 一郎 (Ichiro Maruta) さんのコメント...

センシング位置は常に一定ですので,
おっしゃるような複雑なことはしていないと思います.

MouseoverDictionaryに関しては,
今使ってるPCに入れる英辞郎のライセンスを持っておらず,古いPCを引っ張り出さないと開発できないためにちょっととまっています.
新しい版を購入したら対応するかもしれません.

joe さんのコメント...

ブログ投稿をありがとうございます。
このプロジェクトを続けてきた?
今まで円板をグレースケール試してみましたか?

(私の悪い日本語を許してください。アメリカ人です。)

丸田 一郎 (Ichiro Maruta) さんのコメント...

Thank you for your comment!
I also tried the disk with grey-scale (not used in the movie, but appears in above photos) and it works well.

joe さんのコメント...

Thank you! This is a great technique. I have blogged about it here:

http://botscene.net/2012/10/18/make-a-low-cost-absolute-encoder/

Tobias さんのコメント...

This looks very interesting. How fine was the resolution you were able to achieve with this approach? Would you care to elaborate what kind of sensors you used specifically?