以前、エクセルVBAの「Cells(,).interior.color」を使ってワークシートにビットマップ画像を表示するという記事を見つけて、「ActiveMovie control type library」でWEBカメラの画像をワークシートに表示させる物を作りました。
(画像を全部処理すると時間がかかり過ぎるので、適当に間引きました。また、画像設定中はワークシートを非表示にしておかないと、とても時間がかかります。)
これで簡単な画像処理は、VBAで出来るようになります。
画像処理はOpenCVがすでにあったのですが、アプリ間の連携が面倒なため他の手段を探していたので、大変助かりました。
参考にしたURLは忘れてしまったのですが、上記のキーワードで検索すればヒットしました。
直近に使用予定は無かったので、「画像処理ブック」が出来てしばらくは放置していたのですが、ある時、調整にとても時間のかかる製品の自動化案件が発生しました。
対象の製品はコスト的な制約で、通信ポートを設ける事が出来ず、生産ライン用のプログラム(ファクトリーモード)の搭載も出来ませんでした。
そのため、作業者が手順書に従って、7セグ表示と操作用タクトスイッチで動作テストを行うのですが、ミスしやすい上に大変時間がかかりました。
しかも見積で失敗しており、標準の工数を適用した出荷価格になっていました。
特にこの場合、以下のように損失が2重に発生します。
- 当該製品の製造コストを回収できない
- 本来できるはずだった他の作業が出来なくなる
自動化の話が持ち上がるのも当然です。
しかし、見積に自動化のコストは含まれていないので、経費はほとんどかけられません。
そこで「画像処理ブック」が役に立ちます。
7セグの画面を取り込んで、特定のセルの色を調べれば表示されている数字を認識することができます。
タクトスイッチは製品のキースキャンをエミュレートすればOKですが、タイミングがシビアだったのでArduinoを使いました。