M5Stackでソレノイド検査治具を作ってみた

今流行りのマイコンM5Stackシリーズ

タカハソレノイドコンテストでも、近年M5Stackを使った発明品が数多く届くようになりました。

そんなM5を今回は、ソレノイドの動作検査治具として使ってみました。

治具を作る背景

タカハで製造販売している自己保持ソレノイド🧲

ネットショップで販売しているタイプは、

  • 通電して吸引
  • 永久磁石の力で保持
  • 逆極性で通電して磁力を打ち消して復帰

というとても便利な仕組みです。

しかし今回検査したいソレノイドは、この自己保持タイプのちょっと特殊版で、二層巻・三線式コイルのタイプです。

下巻が吸引用、上巻が復帰用というように、コイルを二重に巻いているタイプのため、極性反転ではなく、どちらのコイルに電流を流すかで動作が決まります。

回路図はこちら↓

回路図で見ると簡単そうですが、実際の巻線後の状態がこちら↓

いや、絶対間違うやろこれ……。

見た目では判断しづらく、この後3色のリード線を結線する工程があるのですが、それを間違えると動作しません。

巻線後にリード線を付ける様子

タカハのパートさん達は毎回正確に結線してくれますが、とはいえ検査は必須!

上巻と下巻の抵抗が違えば抵抗計で検査できますが、困ったことに今回はなんとどちらも30Ω。

つまり、ソレノイドを組み立ててから、実際に動作させて確認するしかありません(泣)

全数検査なので、組立ラインでスムーズに使える検査治具が必要です。

検査治具の構成

それでは早速治具の制作に取り掛かります。

今回の動作フローはこのように設計しました。

メカ設計

3DCADで治具の絵を描いてみました。

治具を構成する部品はこちら↓

一般的にラインの治具や自動機の制御にはシーケンサを使いますが、今回はあえてM5Stackを選択しました。なぜなら……

  • シーケンサよりも安価
  • M5本体の画面にOK/NGを表示できる
  • M5内蔵スピーカーでブザーが鳴らせる
  • コンパクトで組み込みやすい
  • Wi-Fi/BLE内蔵で、IoT化・DX化の布石になる

だからです。

今回は、M5シリーズの中でも、タッチパネルや内臓スピーカーがついたM5Stack CORE2を使用します。

作業性重視のため、スタート・リセットは物理スイッチを採用しました。

また、今回動かしたいソレノイドは、DC24V仕様でM5からは直接動かせないため、ドライバーとしてタカハ製マルチコントローラーAを使います。(会社にいっぱいあったので)

ケース等は社内で作成しました。

制御部のケースは3Dプリンターで作成
Creality K1 Max
ソレノイドを置くところは
モデリングマシンで削り出し
Roland MODELA MDX-40A

配線

次は配線です。

M5にポート拡張モジュールを付けて、すべてGROVE端子で接続できるようにしました。

GPIOの割り当てはこちら↓

機能 役割 接続ポート GPIO番号 入出力 備考
マルチコントローラーAのCH1制御 ソレノイド吸引 GROVE A GPIO 33 OUTPUT HIGH:吸引
マルチコントローラーAのCH2制御 ソレノイド復帰 GROVE A GPIO 32 OUTPUT HIGH:復帰
リセットスイッチ リセット GROVE C
(拡張ユニット)
GPIO 13 INPUT_PULLUP LOW:押下
スタートスイッチ 検査開始 GROVE D
(拡張ユニット)
GPIO 22 INPUT_PULLUP LOW:押下
動作検出スイッチ ソレノイド吸着/復帰の状態確認 GROVE E
(拡張ユニット)
GPIO 27 INPUT_PULLUP HIGH:吸着状態
LOW:復帰状態

配線図はこちら↓

組み立てて……

ハードが完成しました!

プログラム

プログラムを組んでいきます。

今回はVisual Studio CodePlatformIOを使用して、Arduino(C/C++)言語で書きました。

<ピン配置>

配線時に割り当てた通り、以下のようになっています。

const int PIN_SOL_RELEASE = 32;  // ソレノイド復帰
const int PIN_SOL_PULLIN  = 33;  // ソレノイド吸引
const int PIN_RESET_SW    = 13;  // リセットスイッチ
const int PIN_START_SW    = 22;  // スタートスイッチ
const int PIN_STATE_SW    = 27;  // 動作検出スイッチ

<ソレノイドの動作>

スタートスイッチが押されると、以下の動作を自動で行います。

  1. 復帰コイルを1秒ON
  2. 吸引コイルを1秒ON
  3. 両方OFF

コードは以下の通りです。

if (elapsed < RELEASE_MS) {
    setSolenoid(true, false);   // 復帰
} else if (elapsed < RELEASE_MS + PULL_MS) {
    setSolenoid(false, true);   // 吸引
} else {
    allOff();                   // 終了
}

<ソレノイドの動作検出>

検出スイッチのON/OFFを読み取り、二層巻ソレノイドが正しく動作しているかを判定します。

  • 最初:ON(吸着状態でセット)
  • 復帰:OFF
  • 吸引:ON

つまり、「ON→OFF→ON」の動作が検出できれば合格です。

コードでは次のようにフラグで管理しています。

if (!stateOn && prevStateOn) sawOff = true;         // ON→OFFを検出
if (stateOn && !prevStateOn && sawOff) sawOnAgain = true; // OFF→ONを検出

<状態表示>

M5の画面に状態を表示します。

わかりやすいように、背景色+文字のみの表示にしました。

  • READY(灰)→待機
  • TEST(青)→検査中
  • OK(緑)→合格
  • NG(赤)→異常、RESET ボタンが押されるまで表示維持

また、検査結果は画面だけでなく、ブザーでも知らせるようにしています。

  • OKの場合→「ピッ」と短い音
  • NGの場合→リセットスイッチを押すまで「ピーーー」となり続ける

完成!

治具が完成しました!

実際に動作させてみました。

動画はこちら↓

OK動画
NG動画

この治具があれば、もし結線ミスがあっても一発で分かるので安心です(コラ)

M5Stack CORE2を使ったことで、画面+ブザー+マイコン が1台にまとまり、治具全体がとてもスッキリしました✨

将来的には、検査ログの保存遠隔監視など、さらに発展させることもできそうです。

M5StackとマルチコントローラーAを組み合わせれば、実はソレノイドの制御って結構簡単にできるんです。

ソレノイドをちょっと動かしてみたいときには、ぜひこの組み合わせを試してみてください。

1月のソレコンにもピッタリかもしれませんよ??

タカハ機工の製品ラインナップにも、M5Stack を使用した新商品が登場する日が来るかも……?😲

今後の展開もぜひお楽しみに!

おすすめ

コメントを残す

メールアドレスが公開されることはありません。