今回は、光学フィルタを取り付けて信号機の色が識別できるか実験しました。
3つ組み立てる
オペアンプの交換
信号機のLEDの色は3色あるので、3色分の3つ組み立てます。組み立てといっても、JLCPCBですでに部品は実装してもらっているので、DIP部品のボリウムを取り付けるくらいです。PCBAサービスってとっても楽できますね。
前回の実験で分かったことですが、実装してもらった中華LM358互換品のノイズや入力オフセット電圧特性などいろいろ性能が悪く、ノイズしか出力されないのでonsemi製のLM358に全て交換しました。
光学フィルタの取り付け
光学フィルタを取り付けるマウントを、レーザーカッターで切り出して作ります。素材はMDFです。
マウントの部品が切り出されました。
光学フィルタは一部の波長のみ通すものを使います。信号機のLEDの波長は、以前の自作分光計で測定したことがありまるので、その値に近い物を選びます。
この時の実験によると、信号機のLEDの色は
- 青:495nm
- 黄:585nm
- 赤:630nm
程度でした。そこで、これに近い光学フィルタを探します。Aliexpressでいい感じのフィルタを見つけました。
レンズフィルター、510nmナローバンドフィルター、510バンドパス
光学レンズフィルター630nmナローバンドフィルター630バンドパスフィルター赤色フィルター
これらの光学フィルターがとてもシャープな波長選択性を持っています。ピーク波長から±15nm程度の光の波長しか通しません。これであれば、LEDの色を識別できるのではないでしょうか。
自作のマウントに光学フィルタを貼り付けます。
マウントが完成しました。
左から490nm、510nm、590nm、640nmです。LEDの青は495nm程度だったので、490nmか510nmか迷ったので2つ購入しました。510nmの方がセンサの感度がいいので510nmを使うことにします。
信号検出器完成
光センサの上に、光学フィルタのマウントを取り付けて、信号機検出器の完成です。
左側の棒状に光るLEDはレベルメータです。信号レベルが上がって行くと、LEDが赤から黄色・緑・水色と光るLEDが増えていきます。1つLEDが点灯するごとに信号レベルが2倍になるようにしました。例えば、黄色から緑になると信号レベルは2倍、黄色から水色になると信号レベルは2x2x2=8倍です。
丸く配置されたLEDは、レベルメータが緑色以上の信号レベルの時に点灯するようにしました。青い光学フィルタのLEDは青色に、黄色は黄色、赤い光学フィルタは赤色にそれぞれ光るようになっています。
実際の信号で実験
それでは作った回路を信号の近くに持って行って、検出器が反応するか実験してみましょう。
この日は晴れで、太陽の光と信号機の光が一緒にセンサに入射します。太陽の光がセンサに入ると、信号レベルが少し増えます。ノイズが増えているような感じです。
センサは、信号機の方向を向けないと検出できませんでした。しかも、信号機が点灯してもレベルメータが黄色から緑に1段階上がる程度です。これはノイズレベルと信号レベルの違いが2倍程度しかないことを意味しています。もっと強く反応するかなと思ったのですが、思ったよりも信号機の光が弱いです。
青と黄色はそれなりに識別して検出できることがわかりました。
しかし、赤もつられて光ってしまうことがあります。赤はノイズレベルと信号レベルの違いがとても少ない感じです。
赤は、ノイズレベルと信号レベルの違いが少ないために、調節がとても難しいです。光学フィルタを2枚重ねてフィルタの効果を上げたら、少しマシになるのかもしれません。
赤信号の時には、青も黄色も点灯しないので、赤だけ何かしら対策が必要そうです。
実験の様子はこちらになります。
赤信号ではない時に、赤の検出が少し発生していますね。青と黄色はいい感じです。
一応動作はしましたが...
信号機を代わりに見てくれる装置は、一応は動作することがわかりました。
赤の識別能力が低いので改善する必要があります。赤い光学フィルタを2枚重ねるのもいいかもしれません。
センサが信号機の方向を向いている必要があります。これは、レンズ付きの明るさセンサを使っているためだと思います。おおまかな向きでも信号を検出するためには、レンズなしの明るさセンサにする必要があります。しかしその分、感度が低下てしまいます。回路を改善してノイズと信号機の光の成分の比率をもっと上げる必要があります。
現状の回路では、ノイズと信号機の光の成分との比率が2倍しかありません。この比を改善するにはフィルタの低ノイズ化とバンドパスフィルタの帯域を狭くする方法があると思います。フィルタ回路を2段にするのもいいかもしれません。そのためには、オペアンプにLM358よりももっと低ノイズな物を選定する必要があります。
また、今回の回路はゲインが1000倍近くあるので、入力オフセット電圧が1000倍になって出力に現れました。1mVの入力オフセットでも1Vの出力オフセットが発生してしまい、入力オフセット電圧が大きいと大問題です。今回はそのまま使いましたが、それによって振幅レベルが電源電圧範囲よりはるかに狭い範囲に制限されてしまいます。低入力オフセットのオペアンプである必要もあることがわかりました。
実際に使えるようにするには、低ノイズ化と高ゲイン化が必要なことがわかりました。ちょっと難しいので、今回はこれで終了しようと思います。
JLCPCBで基板に部品を実装してもらった状態で受け取ったので、実装する手間は省けてとても楽に実験まで進めました。安価に実装してもらえるので、これからもJLCPCBのPCBAを使いたいと思います。
あと、PCBAで実装手数料のかからないBasic品のLM358は性能が悪いで、$3の手数料を払っても有名どころのLM358を使った方がいいでしょう。
マイコンにはCH552を使っています。CH552の書き込み機にはこれを使いました。なくても書き込みはできますが、あると便利です。
これまでの履歴は以下の通りです。
コメント