○Pixyとは
Pixyは、色でオブジェトを認識し、画像(動画)から、オブジェクトの位置と大きさを抽出する機能をもった画像解析ユニットです。
Pixy2はPixyの後継機で性能が向上しています。以前はあまりピンとこなかったモジュールですが、角度計としてもPixy2が使えるのではないかと思いあたり基本的なテストしてみることにしました。

◯角度計とは
プレス機でよく使われる機器で往復運動の位置を角度で表すものです。始点が0度、往路の中間が90度、折り返し地点が180度、復路の中間が270度で、終点が0度です。
角度計には表示だけでなく、指定角度の範囲で信号をON/OFFするという機能があります。弊社の加工数送信機も、この角度計から信号を貰って、加工数をカウントしています。

○IoT加工数送信機の"目"にできるか?
角度計から信号を取って加工数をカウントする方法は確実ですが、設置するには、角度計へのパラメータ設定や、回路図から端子を割り出して配線する工事が必要になります。
目的は、機械が何回動いたかということだけですので、動いた回数がカウントできれば、どんな方法でも良いわけです。
人間が見て数えるかわりに、Pixy2が代わりに見てカウントできるか?というのが今回の課題です。制御盤との接続が不要になるので、うまくすると電気の知識がない人でもIoT機を設置できるようになるかもしれません

今回は、機械の上下運動をカメラ(Pixy2)でとらえ、逆算して角度を割り出して、「イメージ式角度計」を作成してみます。

Pixy2とESP32がSPI接続できない...
 最初SPIで接続しようとしたのですが、ESP-WROOM-02やESP-WROOM-32だと応答が返ってきません。Unoだと問題無く使えます。
Pixy2は5Vで、ESPは3.3Vなので、ロジックレベル変換が必要になります。ネットで検索するとPixyとESP8266の組み合わせで"ロジックレベル変換なしで接続できた"との記事がありましたが、私のところでは再現できませんでした。
オシロでUnoとESPとの波形を比較し、SCK、MOSIが一致することは確認しましたが、なぜかMISOがHのままで応答が返ってきません。
 こんなところで躓いているわけにはいかないので、UARTを試してみたところ、接続に成功しました。UARTは230400bpsでも成功しましたので、いまのところスピードがネックなることはなさそうです。
SPIでの接続は、後日の課題としました。

○Pixy2シールドの作成
まずはPixy2モジュールをターゲットに向けられるように自立(固定)させられないと、テストもなにもできません。
なんとかIoTBaseシールド基板とケースに収まることが確認できましたので、底板に1/4ナットをつけて、カメラの三脚に固定できるようにしました

◯テストの概要
物理的にターゲットが上下する模擬装置をつくるのはコストがかかりすぎるので、プログラムでデモ用のアニメーションを作成しました。
その画面をPixy2に見せてやり、捉えたオブジェクト座標情報から、動作した回数をカウントさせようという試みです。

今回は、テストですので、Pixy2送信機側はオブジェクト座標情報をPCに送信するだけとし、オブジェクト座標から動作カウントする処理PはC側で行っています。
Pixy2は60フレーム/秒を処理し、同時に複数のオブジェクト位置を認識することができます。ということは送信量もかなりの量になるという事です。
通信方法は、ユニキャストでは潰しがきかないので、マルチキャストを使って、PCとM5Stackに送信することにしました。
これで、アニメーションの動作回数と、Pixy2で捉えたオブジェクト位置情報から判定した動作回数が一致すれば、イメージ式角度計(カウント機)として使用できることになります。

その2へつづく
以上