こんにちは、shotaです。
社員研修として、オリジナルマウスの製作しています。
[前回の記事]では電源回路について書きました。
今回は物体検出センサ回路(通称:壁センサ回路)について書きます。
物体検出センサ回路
物体検出センサ回路のブロック図はこのようになりました。
点線から左側が内部回路で、上半分が発光回路、下半分が受光回路です。
点線から右側が外部回路です。回路はありませんが、赤外線を反射する壁があります。
物体の検出にはフォトリフレクタ[LBR-127HLD]を使用します。
フォトリフレクタには赤外線発光ダイオードとフォトトランジスタが内蔵されており、ダイオードが発光した赤外線が壁で反射し、フォトトランジスタで受光されることで壁を検出できます。
壁がない場合は、赤外線が反射されず、フォトトランジスタが受光できません。
回路図はこのようになりました。
自分のマイクロマウスには、この検出回路が4つ搭載されます。それぞれ、前(左)・左・右・前(右)の壁を検出します。
それでは発光回路・受光回路について説明します。
発光回路
回路図は[HM-StarterKit]を流用していますが、より詳しい発光回路の動きについては[マイクロマウスのセンサについて②]を参考にしました。
参考記事に書いてあるとおり、環境光による壁の誤検知を防ぐため、発光ダイオードをパルスでON/OFFさせます。パルスの周波数は1kHzとします。
発光ダイオードを1kHzでON/OFFすると、それに伴い電源電流が変動します。この変動をなだらかにするためにローパスフィルタを搭載しています(回路図のR5とC11)。
素子の定数はHM-StarterKitの値をそのまま使用しています。電源ICがHM-SterterKitのものから変わっているので、実際に動かした時の波形を見て定数を変えようと思います。(もしかしたらフィルタ回路が不要かもしれません。)
ON/OFFするパルスは、ESP32から出力します。発光した赤外線が別の受光部に入らないように、4つのダイオードを別々のタイミングで発光させたいです。
そのためには、パルスの出力端子も4つ必要ですが、ESP32の端子数が足りないため出力端子を2つに減らしています(回路図のIRLED_R_FLと、IRLED_L_FR)。
本来は別々に点灯させる、RとFLを同時に点灯させます。同じようにLとFRも同時に点灯させます。
RとLのセンサは角度が傾いているので、センサRとFL、LとFRのペアで発光すれば、誤検知しません(おそらく)。
受光回路
こちらも、HM-StarterKitの回路図を流用します。
フォトリフレクタに内蔵されているフォトトランジスタは、ベース電流の入力が光の入力に置き換わったトランジスタです。
フォトリフレクタが壁に近づくと、光の反射量が増加し、フォトトランジスタの受光量も増えます。そうすると、フォトランジスタのコレクタ電流が流れ始めるので、センサ信号(回路図中のAN_IRLED_L)を読み取ることができます。
※受光に関しては、ADC端子を4つ分確保しています!
余談:ESP32の端子が足りない問題
Q.インジケータ(LED)の搭載をやめたら良いのでは?
A.デバッグが辛いので許してください・・・
次回の内容
次回はモータドライバとエンコーダ回路について説明します。