ししかわです。
社員研修の一環で、マイクロマウスを自作して大会に出場します。
前回から、作成した回路の中身について説明しています。
今回は迷路の壁との距離を測定する壁センサ回路の説明です。
完成済みの回路図はGitHubで公開しています。
壁センサ回路
壁センサ回路の全体像を次に示します。
概要
マイクロマウスは迷路の情報を持たずにスタートし、走りながら迷路の壁の情報を記憶していきます。壁を検知するために赤外線やToF距離センサなどを使います。M5Mouseは赤外線発光ダイオード(赤外線LED)とフォトトランジスタを使った壁センサを搭載しています。
アーキテクチャ設計で述べたとおり、M5Mouseにおいて、回路はこだわりポイントではありません。回路で新しい試みはせず、実績ある先達の例にならって堅実に走るようにします。センサ回路の構成についてはshotaさんのブログ記事を参考にしました。
shotaのマイクロマウス研修15[回路設計③ 物体検出センサ回路] | アールティ 移動型ロボットブログ
回路ブロック図を下記に示します。実際にはブロック図で示す回路が4つ分(左壁、左前壁、右前壁、右壁)組み合わさって、上記の回路図になります。
センサが動作する仕組みは概ね、次のようになっています。
- 赤外線発光ダイオードを発光させて、壁に反射した赤外線をフォトトランジスタで受光します。
- 壁との距離が近いほど、反射してフォトトランジスタに届く赤外線の光量が増えます。
- フォトトランジスタが受光する光量が増えると電流が増えます。
- 電流が増えると電圧が上がります。
- この電圧を読み取ることで、壁との距離を測定できます。
以下、回路図をもう少し詳しく見てみます。
発光回路、センサ回路
全体の回路図から、ある1方向の壁の距離を測定する回路を抽出すると以下のようになります。
- 赤外線LEDはSFH4550、フォトトランジスタはST-1KL3Aを選定しました。いずれもクラシックマウスでの使用実績が多いです。
- GPIO端子(IRLED_L)からパルス波(電圧のON/OFFの繰り返し)を与えて、赤外線LEDの発光を素早く繰り返します。間にMOSFET(BSS138)を挟むことで、マイコンのGPIO端子に流れる電流は少なくしつつ、LEDの大きな電流の切り替えを可能にしています。また、LEDのON/OFFに伴う電源電圧の変動を抑制するためにローパスフィルタ(R5とC19)を設けています。
- フォトトランジスタの電圧の変動はA/D入力端子(AN_IRLED_L)から読み取ります。
- GPIO端子とA/D入力端子は4本ずつ確保しています。4本の赤外線LEDをタイミングをずらして発光させることで赤外線の干渉を防ぎます。なお、ピン数を節約するために「右前壁と左壁」「左前壁と右壁」のGPIOピンを共通にして同時に光らせる方法もあります(shotaさんの記事参照)。
- 電源回路の回路図と同じように部品選定や係数の計算に必要な情報を回路図に書き込んでいます(図中の青文字)。
- センサ回路はKicadの階層シートという機能を使って、メイン回路と切り離して記述しています。階層ラベル(図中のIRLED_LやAN_IRLED_Lなど)を介してメインの回路図と接続します。メインの回路図側ではセンサ回路が下記のようにブロック化されています。階層シートをうまく使うことで大きな回路図を見やすく保つことができます。
以上です。
次回はモータ・エンコーダ回路について説明します。