マーカーで時刻を描くPlot Clock

安価なサーボモータ10個セットを買ってみました!SG90の互換品ですね。1個250円ぐらい。

AliExpress なら、もっと安いのがあるみたいです。ギアが金属のMG90Sも安いのでこっちも良さそう。次回はこれ買ってみようと思います。安価なものは、品質のばらつきを覚悟の上で!

SG90 9G Micro Servo Motor
https://www.aliexpress.com/item/4001193386384.html

MG90S Metal gear Digital 9g Servo
https://www.aliexpress.com/item/32679996711.html


ということで、サーボがたくさん手に入りました!

以前から作ってみたかったPlot Clockを作ってみようと思います。


Plot Clockは、ホワイトボードにマーカーで時間を描いてくれます。消してから書くのがかわいい!

必要な部品は、Thingiverse で公開されています。Arduino用のプログラムも!

Plotclock
https://www.thingiverse.com/thing:248009

3Dプリンタで印刷できるSTLファイルに変換してくれている方がいらっしゃいましたので、今回はこちら使わせていただきました。

Plot Clock STL Files
https://www.thingiverse.com/thing:250204


パーツを3Dプリンタで印刷。フィラメント素材はPLAです。

薄くて平らなパーツは、FDM方式3Dプリンタの得意とするところですね。

そして、少々サイズが太ってしまうのもFDMの特徴です…。ここは、現物を削ってサイズ合わせします。

穴は逆に小さくなってしまうので、ピンバイスで広げておきます。

3Dプリンタ使う時、ピンバイスは必須です!



組み立て方法は、いくつか写真が載ってたのですが詳細は書いて無かったので、ネット上の画像など見ながらわからないところは想像で組み立てました。多分合ってる…と思います。

サーボホーンは2mmネジで、アームは3mmネジで止めてます。

上下移動サーボのホーンは、描画台に当たらないように切り取ってます。ちなみに、紙をはさんでいるのは、描画台を平行にするための調整です。

左右のサーボホーンもネジで固定。

アームのネジはすぐ緩んでしまいそうなので、いろいろ考えた結果、2重ナットにしました。


(→2重ナットでもじわじわ緩んできますね。後でインサートナットに変更しました。)

組み立て終わったら、Arduino に接続。5V/GND/G2/G3/G4 を繋ぎます。

5VとGNDは、まとめてつなげられるように簡単なコネクタを作りました。


プログラムは、Thingiverse 公開のファイルに入っていた plotclock_v1_03.ino を使います。

コンパイル時、Time.hでエラーが出ましたので、こちらに従って対応しました。

ねこめも:Arduinoのコンパイルエラー(Time.h)
http://nekomemo2.site/?eid=1319

Topic: ‘setTime’ was not declared in this scope
https://forum.arduino.cc/index.php?topic=415296.0


Plot Clock を正しく動作させるには、いろいろ調整が必要です。

腕の長さ(L1/L2/L3/L4)を測って、以下の項目を設定します。

うちで作ったパーツはこんな感じでした。

#define L1 34.5
#define L2 56
#define L3 15.9
#define L4 45.5

ノギスも3Dプリンタのお供に必須!


次は、サーボの角度調整

#define CALIBRATION // enable calibration mode

を有効にして、プログラムを起動すると、サーボが左右に動きます。

赤矢印方向が、ちょうど横になるように以下の値を

#define SERVOLEFTNULL 1700
#define SERVORIGHTNULL 850

その後、水色矢印がちょうど上になるように以下の値を

#define SERVOFAKTORLEFT 570
#define SERVOFAKTORRIGHT 550

修正しました。値は、各自の環境によって全然異なると思います。

いい感じに、真横、真上の90度で動くようになりましたら、

//#define CALIBRATION // enable calibration mode

ここをコメントに戻して実行すれば、時刻描画の動作が始まります。


ホワイトマーカーが用意できなかったので、マスキングテープと蛍光マーカーで動作させてみました。蛍光マーカがたまたまサイズぴったりでした。

いい感じ!

上下の動きは以下の項目で設定します。ここは、実際に動かしつつ地道に修正しました。

#define ZOFF -70 //ベース値の調整
#define LIFT0 1150+ZOFF // on drawing surface 字を書く時の角度
#define LIFT1 995+ZOFF // between numbers 字を書く途中でマーカーを少し持ち上げたときの角度
#define LIFT2 725+ZOFF // going towards sweeper クリーナーにマーカーを差し込むときの高めの角度

描画面のホワイトボードをダイソーに探しに行ったところ、ちょうどいい感じのホワイトボードがありました!紙製なので、自由な形に切れる!まさにこの目的のためにあるような商品です。

バッチリです!マーカーはちょっと太かったので、アームを少々削ってサイズ合わせました。丸く内側を削るにはノガバーが便利。

クリーナーは、公開されていたクリーナーSTLパーツに、家具すべり止めのフェルトを貼り付けて作りました。

フェルトがちょっと分厚かったので、ハサミで毛をカットして薄くしました。


動作はうまくいった!が、マーカーがすぐに乾いてしまうのだった…。

ホワイトボードマーカーが出ない原因|縦置きNG、乾いたペンの復活方法
http://pasokatu.com/5502

ここを参考にマーカーのメンテナンス。ちょっとだけ復活しました。マーカーは横向きにして保存するのが良いみたいですね。


関節部分、もしかして、インサートナットを使うといい感じになるかも!と思ってやってみました。

内側が空洞にならないように、3Dプリントは重点率100%で。

はんだごて熱でギューッと。

冷えれば、ガチっと固定!

1回目はインサートナットの中にフィラメントが入り込んでしまって失敗でしたw

ちょっと斜めになってしまいましたけど、だいたいいい感じになった!

ひとまず動作は大丈夫でした。しばらくこれで動作させてみます!

僕の使ったインサートナットは、成型時用インサートナットぽいですね。良く知らずに適当に買ってしまってました…。
熱圧入方式が良さそうです。あと、使うはんだごての先も太めのヤツが良さそう。

モノタロウ:インサートナットの種類と特長
https://www.monotaro.com/s/pages/productinfo/insatonato_type/