ZV-1とImaging Edge Remote


現在一般で入手できる960fpsに対応するカメラの初代ZV-1をさわっている。このカメラはPCからの遠隔操作ができるため、そのソフトImaging Edge Remoteも試してみた。
通常の録画モードの場合にはImaging Edge Remote経由で録画の操作ができたけれど、残念ながらハイフレームレート録画モードでは上図に示すようにPCからの録画操作はできなかった

追記
通常の録画モードでは最速で120fpsの設定にでき、Imaging Edge Remoteから録画の開始と停止を操作することができた。ただし録画したファイルはカメラ内のSDカードに保存されて、カメラ側の操作でUSB接続設定を変えないとPCからファイルにアクセスできない。

同社のソフトのImaging Edge Webcamを使った場合は、操作性はWebカメラと同じになるが、肝心のフレームレートは30fpsしか設定できなかった。

メタルマスク版エンコーダの手触りとエンコーダディスクの追記


しばらく使った感覚では、先の基板版のエンコーダに劣る部分はなさそう。
さらに、もしかしたらLEDの電流をもっと小さくできるかもしれない。これは来年度試す


さて、このメタルマスク版エンコーダディスク。メタルマスクで作成したのは前の記事で触れていたのだけど、そのオプションについては書きそびれていた
このメタルマスクはJLCPCBで作成していて、作成時にElectropolishingのオプションを選択している。日本語で電解研磨というもので表面の凸凹を溶かして平滑で光沢のある仕上げにする処理だそう。
本来は狭ピッチ部品の実装品質をあげるためのオプションだけれど、今回はその処理がエンコーダディスクにうまく合致したようだ。

次に、話は変わって、このエンコーダディスクをメタルマスクの板から切り出すときの方法。今回はエンコーダディスクから延びる4つのタブ部分をカッターで切ってみたら、カッターの刃先と切断部の伸び?のせいでエンコーダディスクに応力がかかって、薄板なエンコーダディスクが曲がってしまった。
少しまがったエンコーダディスクでもセンサの読み取りには問題は見られなかったけれど、たぶん、リューターをつかって応力を少なくする切り出し方を試したほうがよさそうだった

メタルマスク版エンコーダ付きホイールの組み立て


光学式エンコーダNJL5820Rの続報で、エンコーダホイールをメタルマスクで作ってみた。その組み立て編

3Dプリンタで作ったホイールにPOM製の平ギヤと、ステンレスのエンコーダ孔を組付けたもの。ホイールは回転軸中央が凸形状になっいて、その凸部に平ギヤの中心の孔と、エンコーダ板の中心の孔とをはめ込み、接着して組み立てる

ホイールと平ギヤの接着にはセメダインPPXを使う(作業時間的に瞬間接着剤は使いたくないけれど)。接着剤はホイールの凸部から少し離れた周辺に塗布する(図の黄色箇所)。凸部のエッジにも塗布するとホイールと平ギヤとの間に隙間ができてしまう。これは平ギヤをはめ込んだ際に接着剤の逃げる場所がなくなるためなのか?

平ギヤとエンコーダ板の接着は時間余裕的に瞬間接着剤ではないものを使用したほうがよさそう。

クラッシュ時の止め方

 この記事はMicro Mouse Advent Calendar 2023の2日目の記事で、昨日の記事はなおフィスさんの「マイクロマウスで使ってるテストについて」でした。丁寧にモードを準備していると開発サイクルも短くできそうです。そして、「導入:テストの重要性」の項は必読

 マイクロマウスを走行させると壁にぶつかったり制御を失敗したりしてクラッシュする時が多々ある。クラッシュした後にさらに駆動モータやファンモータを動かし続けているとそれらのモータが故障したり、マイクロマウス本体が破損したりする
 そのため、クラッシュ時には即時に各モータを止めたいと思うものの、一方で、軽微な壁への接触や制御目標値との差で止めるてしまうと完走できるはずの走行を諦めてしまうことになる
 そこで、今回はそのようなジレンマを解消できるかもしれない異常状態の判定を紹介する
 マイクロマウスSpangle V5にはクラッシュ判定として①直線走行時に速度が閾値を下回る時間が続く場合②目標角度との差が閾値よりも大きい場合③ターン走行中に制限時間を超えた場合、の3つを搭載している

 一つ目の処理は具体的には、速度が目標値の半分よりも遅い時間が0.5秒続いた場合に異常状態と判定する。こうすることで、駆動モータが停止にいたらない状態を検出できる。また、一瞬の壁への接触などで一時的に速度が低下した場合の誤判定を防げる。
 二つ目の処理は具体的には、直線走行(斜め直線も含む)に中に目標角度に対して30度ずれた場合、ターン中に目標角度に対して90度ずれた場合に異常状態と判定する。これによりターン中にスリップして角度が著しくずれた場合、斜め直進中に壁に触れて大きく姿勢を崩した場合といった場合を検出できる。
 三つ目の処理は具体的には、各ターンの曲がり始めから曲がり終わりまでに0.5秒の制限時間を設けるもので、その時間を超えた場合、すなわち壁に当たった状態が続く場合、あるいは、(バグで)処理が終わらず回転を続けた場合を異常状態と判定する。

 そして、上述の3つの判定のいずれかで異常状態を検出した場合は停止処理に移行する。停止処理は駆動PWMを0%(ON-Break方式のBreak状態)に設定して、機体の回転と速度が止まるのを待ち、止まったのを確認できたら吸引ファンの回転を止める。これにより安全に機体を停止でき、(吸引ファンを回し続けることによる)モータの消耗も抑制できる

明日は「私のセンサ回路について」です。どんな回路構成が出るか楽しみです