簡単なことから始める
止まらない機械をつくるコストよりも、止まっている時間を短くする工夫の方が簡単かもしれない。止まったことに直ぐに気づけば再始動も出来るし、止まったタイミングから原因を調査する手がかりも見つかるかもしれない。
選択肢あれやこれや
最近は昔々と違って数百円から数千円程度の選択肢が数多く存在します。いつものラズパイでも良いかもしれませんが、もっと条件に適したマイコンがあるはずです。
- RaspberryPi
- Arduino
- ESP32(ESP-WROOM-32)
- M5Stack
- トワイライトワイヤレスモジュール
- micro:bit
- PIC
例えば、パトライトの点灯を知りたい
異常停止の際にパトライトを点灯させて知らせるという方式が多いが、その場に居なければ知ることができない。
そんなとき、光ったことをインターネットに繋がった機器で読み取れれば、あとはメールでもLINEでも通知する方法はいくらでも存在する。
「センサーに何を使うかが鍵」
候補になるセンサーと検討事項
- (1) 光を感知するセンサー
=>周辺の光の影響を考慮する必要がある。取付に工夫が必要。 - (2) 電圧または接点を読み取るセンサー
=>仕様を調べる必要がある。接続する端子が無いときがある。 - (3) 画像処理で分析する
=>ソフトウェアの知識が必要になる。画像処理の経験が必要。 - (4) 画像を用いた機械学習で分析する
=>専門的な知識が必要になる。
アプローチ その1
候補(1) の光を感知する方法としてCdSを使った例。
ESP32(WiFiで通信)にCdSの電気抵抗の変化を利用し抵抗の分圧で電圧変化に変換して点灯を判断する。
(写真1)では、CdSにボールペンのキャップを被せてあります。
ブレッドボードを使うことで簡単な回路を手軽に試すことができます。
周辺の光の影響を減らす工夫
キャップ(先端にスリット状の穴が開いている)によって横方向からの光の影響を減らせるかどうかを評価しました。
しきい値の微調整が難しい
CdSは、同じ規格の製品でも抵抗値のバラツキが大きく電圧のしきい値の微調整が難しいので回路設計を工夫する必要があります。
アプローチ その2
候補(4) の画像を用いた機械学習を使った例。
予め消灯時と点灯時の画像を複数枚準備し学習させます。
その学習モデルを用いて実際のWEBカメラで撮影した画像から点灯の有無を判定させます。
下の写真(写真2、写真3)は判定結果がグリーン、パープルで表示されるように設定したデモの画面です。
それぞれ、消灯時(写真2)はグリーン。点灯時(写真3)はパープルと判定されていれば正解です。
精度を上げるためには学習に使う教師データの準備(質と量)がとても重要になります。
パトライトが消灯時の画像ではグリーンに割り当てたデータと判定された。
パトライトが点灯時の画像ではパープルに割り当てたデータと判定された。
機械学習は見た目に明らかである「・・・であろう」という特徴の違いがあるものに関しては判別結果は比較的良好になります。
そこが機械学習の奥の深さと難しいところでもあります。