前回記事にてOctolapse用の照明設置のための準備を行いました。
その記事にて以下2つの対応を行う事でOctolapse用の照明設置を完成させる事にしました。
- ホームポジションに戻った時に照明を点ける
- 印刷終了後はホームポジションから離れる
ホームポジションに戻った時に照明を点ける
当初、リミットスイッチを使う事でホームポジションに戻った事を検知できると考えてリミットスイッチの相乗りを検討しました。
ですが相乗りしても大丈夫だろうか?の懸念が残るためツイッターに相談したところ「ホール素子を使うと良い」との回答を頂いたのでこれを使う事を検討しました。
ホール素子とは
ホール素子(ホールそし)とはホール効果を利用して磁界を検出する素子である。
ウィキペディア
この特徴を使って磁石との距離で抵抗が変化するようにした電子部品がホールセンサでこれを使う事で扉を開ける、閉める事でスイッチのON・OFFを行えるようになるみたいです。
動作としてはトランジスタに似た感じですね。
ホールセンサを購入
ホールセンサの特徴を理解したところでAmazonで検索したところ、いくつか出てきました。

その中で1個当たりの値段が安く、M5Stackシリーズにも使われているA3144というホールICを見つけました。
とりあえずこれで実験して使えそうならこれを使おうと購入しました。
リードスイッチも購入
ホールセンサについて色々調べていると非接触で磁石を使ったリードスイッチという物を見つけました。
これはガラス管の中に電極が入っていて、磁石を近づけると電極が繋がり、磁石を離すと電極も離れるという物です。
ホールセンサに比べて簡素なつくりで分かりやすかったので保険のためにこちらも購入しました。
ホールセンサに大苦戦
ホールセンサとリードスイッチが届き、早速使えそうか試してみました。
ホールセンサのA3144はネット上にデータシートが存在していたので内容を確認してみました。

正直データシートの読み方はいまだによくわからないですがなんとなくSUPPLYへ4.5~24Vの範囲の電圧をかけてGROUNDを繋げればホールセンサが動作し、磁石を近づけたり遠ざける事でOUTPUTに電流が流れたり流れなかったりすると理解しました。
サクッと6Vを使って接続してみたのですが全く動く気配がありませんでした。
おそらく見落としや理解不足があると思いますがネット上を探し回ってもホールセンサ(特にA3144)は見つかりませんでした。
とりあえずこれ以上時間をかけられなかったのでホールセンサは後回しにしてリードスイッチに切り替えて検討する事にしました。
実装はリードスイッチに決定
リードスイッチは完全に単なるスイッチなので電源側に接続したらすんなり磁石の動きに合わせて照明の点灯と消灯をしてくれました。


とりあえず今回はリードスイッチを使う事にしました。
印刷終了後はホームポジションから離れる
次の懸念となっている印刷終了後にホームポジションに留まり続けて証明が消えなくなる問題の対応についてです。
準備編にてCuraの設定でGコード作成時に印刷終了後にホームポジションから移動してもらうようにEnd G-codeにGコードを追加する方法を検討しました。
とりあえず追加してみた
End G-codeにGコードを追加する事でスライスして出来たGコードの最後に追加されそうな事はわかりました。
ここまでわかったので実際にやってみようと設定にG0で原点から少し離れたGコード「G0 X5, Y5」をEnd G-codeの最後に追加してみました。

早速適当な形状をスライスしてみてGコードを確認してみたところ、G28のホームポジション移動命令の後に追加したGコードが入っていました。

これでホームポジションから少し移動してくれるはずなので3DプリンターにGコードを投げて印刷を開始しました。
印刷が終了するとゆっくりホームポジションへ戻り、そのあとにホームポジションから離れていきました。
ただ、問題としてホームポジションが原点(X0, Y0)だとおもっていたらホームポジションがX100, Y100だったのでホームポジションから対角線のところまで移動していきました。
実際にOctoPrintを使ってGコードを送信したところ、X0, Y0はやはりホームポジションの対角線まで移動し、X100, Y100で送信するとホームポジションまで戻ってきました。
この事からEnd G-codeへは「G0 X95, Y95」に変更しました。

まとめ
ホールセンサを使っての実装は一旦見送りする事になりましたが目的だったOctolapse撮影時のみ照明を点灯させる事が出来そうです。
試行としては成功したので次は実装を行い正式運用できるようにしていきます。
また、その工程についてもブログにて紹介していきます。
コメント