メカキネを使って自動人形を作りたいと考えています。
イメージしている動きは以下のようになります。
1 舞台のカーテンが上がる
2 少年が立っている 背景は雪がやさしく降っている絵
3 舞台のカーテンが下がる
4 舞台のカーテンが上がる
5 青年が立っている 背景は雪がやや強く降っている絵
6 舞台のカーテンが下がる
7 舞台のカーテンが上がる
8 大人が立っている 背景は雪が激しく降っている絵
9 舞台のカーテンが下がる
さっそく質問があります。
ホーミングをする際、CNCのように軸を直線運動するときは
リミットスイッチが押されることで原点が設定されますが、
軸が回転運動をする場合、メカキネではどのような方法で原点を設定すれば良いでしょうか?
(例えば、軸が時計回りに回転するとして、
最初に反時計回りに回ってリミットスイッチを押し、原点を設定して、
それから時計回りに回転するとリミットスイッチを逆側から押してしまいます。。。)
ちなみにArduinoを使って作品制作をしたとき、同様のケースでは透過型光電センサを使って
非接触で原点を設定していました。
nyaru
2
こんにちは。
回転物の原点検出方法は悩みますよね・・・。
原点検出センサーの基本的な考えとしてはリミットスイッチと同じように、ホーミングのセンサーを探して動く時に電気的にオン→オフ、あるいはオフ→オンにされれば原点として認識されます。
Duet制御基板にはハードリミット(駆動中にリミットスイッチを押されると停止)の機能がないので、通常の駆動中にスイッチが押されてしまうことに関しては気にしなくても問題ありません。
スイッチの検出はホーミング時のスイッチを検出しながら動く特殊な移動の時のみ検出されます。
なので、原点設定後に時計周りをしてスイッチを押しても原点が再設定されないです。
ただし、現状のhomingファイルは直線駆動向けになっていたと思うので、ホーミングするときの移動量の調整は必要かもしれません。(home◯.gとかhomeall.gを編集して調整することになります。)
同じようにフォトインタラプタ(透過型光電センサ)を使ってもよいと思います。
あるいは、スイッチやボタンを押すような突起を作ってそれらを押すハード的解決でもいいかもしれません。
一応、フォトインタラプタ(透過型光電センサ)を使う場合の配線例をあげておきます。
ほぼリミットスイッチと同じで、追加でモジュールのVに制御基板の3.3Vを繋ぐだけです。
画像のような3Dプリンター向けの光学式リミットスイッチモジュール(フォトインタラプタ)を使ったことがあるのですが、その時は上記のような配線で特に問題なく機能していました。
モジュール品以外にも単品のセンサーなど色々なセンサーがあるので、必ず上記の配線でいけるとは言いませんが、もし使う場合は3Dプリンター向けのものを選んでおくと接続関係は楽かもしれません。
「いいね!」 1
↑まさに知りたかったことでした。
とても助かります。
どうもありがとうございました!!
光学式リミットスイッチモジュールをDUET3に配線したところ、
センサーに障害物がないときにTriggeredがyesとなり、
センサーを障害物があるとTriggeredがnoとなります。
期待したのと逆の動きをするのですが、これを解決するにはどうすればよいでしょうか?
confin.gは以下のようになっています。
; Endstops
M574 X1 S1 P"!^io0.in" ; configure active-high endstop for low end on X via pin io0.in
追記
解決しました。
!を消したら良かったのですね。
「いいね!」 1