スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

壁の有無を判定する1

こんにちは!
前回までで好きな距離を任意の速度で進めるようになりました。
具体的には

・任意の速度でモーターを回せる
・MTU割り込みを設定できる

という前提を獲得しています。

そしてついにタイトルが変わりました!
今回からは姿勢制御や迷路探索の基本となる、壁の有無を判定できるという前提を獲得しに向かいます。

そのために知らなければいけないことは、

・壁からの距離はどうやって認識しているのか →LEDとPTの話
・得た情報をマイコンはどう認識しているのか →AD変換の話
・得た情報をどう使うか →壁関連のプログラムの話

となります。
この構成で話を進めるつもりですが、前回までのように必要が出たらその度に寄り道していこうと思います~

では、壁からの距離をどう認識するかの話
これにはLEDとフォトトランジスタ(PT)を使うのが一般的かと思います。
これの原理等は昨年の夏くらいに講義をしました。部室のUSBに“電子回路”というWordファイルがありますのでその資料を見てもらえればと思います。簡単に説明すると、ノイズを軽減するようにLEDをパルス発光させる。LEDから出た光が壁に反射し、壁から反射してきた光量に応じてPTを通る電流が変わり、マイコンに来る電圧が変わる。(うーむ分かりづらいか)
つまり、壁からの距離を電圧の大小という形に替えて、マイコンで認識するということです。

次に壁からの距離を変換して得た、電圧の大小をマイコンはどうやって認識するかという話。
これには、マイコンの機能の1つであるAD変換というものを行います。
AD変換はアナログ・ディジタル変換のこと。つまりアナログの情報をディジタルの情報に変換するということです。
例えばSH7125のAD変換について見てみると、こんな説明が書いてあります。
01251.png

分解能 10bitというところに注目してください。
AD変換で言う分解能とは、どれくらいの細かさでアナログ情報を表現できるかということです。
2^10は1024なので、SH7125では0~1024の値でアナログ情報である電圧が表現されるということになります。

では具体例として、720という値は何Vに相当するか考えてみましょう。
これを求めるためにはアナログ電源電圧が何Vになっているかという情報が必要となります。秋月で買うマイコンボードだとマイコンのVCC(電源電圧を示す)という端子に5Vを繋いだ瞬間AVCC(アナログ電源電圧)も同じ電圧の5Vに設定されるようになっています。しかし、AVCCをVCCと違う値にするということもできますので、頭の片隅に置いてもらえればと思います。
さて、AVCCの値で何が決まるかという話に戻ります。
例えばAVCCが5Vのとき、AD変換の最高値は5Vということになります。先ほどの分解能10bitの例では、1024が5Vに相当するということです。
ですので、720という値は 1024:5=720:x で x=3.5 くらいと分かり、720は3.5Vくらいを指しているということになります。

このようにAD変換を行うことでマイコンに電圧が何V来ているかということが分かり、それを使って壁からの距離を判定しているということになります。
このことから分解能が高いとアナログ情報をより正確にディジタル情報にできるということが分かるかと思います。

それでは、AD変換で得た数値を使ってどのように壁の有無を判断するか考えましょう。
壁があるってことは、壁がないときよりも光の跳ね返りが大きいので、得られる数値が大きくなることが想像できるかと思います。これを利用して、ある値よりも大きな値を得た時、壁があると判断します。
ここで言う、ある値が部室などでよく耳にしたであろう 閾値(しきいち) です。
閾値以下の値:壁なし 閾値以上の値:壁有 となる重要な値のため、勘で決めたりせず実際に値をPCに出力して決める必要があります。

まとめ
LEDとPTで壁からの距離を電圧に変換する。
マイコンでその電圧を読み取って数値にする。(プログラムは次週)
閾値を決めることで壁の有無を判断する。

って感じです。
次週はLEDをパルス発光させる話と、AD変換を行うためのプログラムについて見ていきましょう!
ではでは( ..)φ

コメントの投稿

非公開コメント

時計
カテゴリ
最新記事
12月14日開始
RSSリンクの表示
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。