必要なもの 1 - 筐体用部品

MDF4mm 600*450mm *1
TRAXXAS #5525 12個入り *1

M2.1 木ネジ 13mm *3 (細いタッピングネジなら可)
M3    皿ネジ 15mm *8
M3    なべネジ 45mm *9
M3    ナット *34
M4    寸切り 285mm *6
M6    なべネジ *3
M6    ナット *3
M6    ワッシャー *3

memo: ネジの種類について

必要なもの 2 - 電子部品

サーボモーター MG995/996 *3
マイコン基板 Arduino Uno *1
USB Aオス-Bオスケーブル *1
ミニブレッドボード *1
単3電池4個用電池ボックス *1
単3電池 *4
ジャンパワイヤ

必要なもの 3 - 工具類

パソコン (Win/Mac/Linux)
3Dプリンター
レーザーカッター

プラスドライバー No.1
小さめのラジオペンチ
木工用ボンド
番手が小さめ(100~150)の紙やすり
(あれば)ナットドライバー
(あれば)M4タップ

ボンドの余りを拭く紙

1. デジタル工作機械での加工

組み立てる前にデジタル工作機械を使って、
これから組み立てるパーツをつくります。

1-1. 3Dプリンター

3Dプリンターを使って、
天板とロッドの間のジョイントパーツを作ります。

このデータをダウンロードし、
3Dプリンターで出力してください。
joint_160614.stl
stlデータの中に必要数が配置してあるので、
このデータをひとつ出力すればOKです。

1-2. レーザーカッター

主要なボディのパーツのほとんどは
MDFをレーザーカットして作ります。

delta_16072801.ai をダウンロードし、
レーザーカットしてください。
ラスター部分は2mm前後削れるように
パラメーターを調整すると、
ちょうど皿ネジの頭を埋められます。

memo: ベクターデータとラスターデータ

2. 手加工 (接着とやすりがけ)

残りのパーツも、組み立てる準備をします。

2-0. 接着をする前に注意

接着した各パーツにある穴が
そのままパラレルリンクの機構の軸となるので、
曲がっていると動きに支障をきたしてしまいます。
一見簡単な工程ですが、丁寧に行いましょう。

ボンドをつけすぎてネジ穴にまで到達してしまうと、
やはり動きに支障をきたします。
ボンドを塗り終えたあと、パーツ同士を圧着する過程で
塗った時の見た目よりもかなりボンドが広がるので、
ボンドを塗る時は少なすぎるくらいにするとうまくいきます。
もし少なすぎても、接着部分はあとからネジで補強されるので、
そちらの方が問題は起きにくくなります。

2-1. 腕パーツの接着

腕のパーツを木工用ボンドで糊づけします。
溝がついている1枚と表面に何もない3枚の
合わせて4枚を1組として3組に分け、
先端のカギ型が右を向くよう、
木工用ボンドで接着します。

ボンドを塗ってパーツを重ねたら、
穴をのぞきこんでズレがないか確認してから、
M3 45mmなべネジを上下の穴に通し、
反対側からナットをはめこんで、
ずれないように、きつく固定しておきましょう。
(これは、仮留めと圧着を兼ねています。)

2-2. やすりがけ

MG995/MG996のサーボホーンには凹凸があって、
腕に接着するのに邪魔になるので、やすりで削り取ります。

100番前後の紙やすりでしばらくこするとよいでしょう。
あまり硬い材質ではないので、
削りすぎて逆にへこんでしまわないよう、
気をつけてください。

3. 組み立て (下半分)

カットしたMDFをメインに、まずは下から筐体を組んでいきます。

3-1. 台

写真のように組みます。

ゆるすぎてすぐ外れてしまうようなら、
軽くボンドをつけてもよいでしょう。
きつすぎる場合は、割れないように気をつけながら
ゴムハンマーやドライバーの背などで
叩いて押し込みます。

3-2. 台を取りつける

メインとなる大きな板の下に、
3-1の台を取りつけます。
表裏に気をつけてください。

3-3. Arduinoを取りつける

Arduinoの端の穴2つに
M3 15mm皿ネジを通し、
ナットでArduinoをはさみます。

そして、さらにナットを使って、
3-2の板にあいている穴に
ネジを合わせて、Arduinoを固定します。

3-4. 電池ボックスとブレッドボードを取りつける

写真のような位置に、
電池ボックスとブレッドボードを固定します。

電池ボックスの固定には、両面テープを使います。
ブレッドボードは、裏面に粘着テープがついています。

板にあいている穴のほとんどは、
後の工程で何かを装着するためにあいています。
不用意にふさがないよう、注意しましょう。

3-5. 縦の板を取りつける

縦向きの板を、はめこんでいきます。

細いパーツの向きに気をつけてください。

3-6. サーボモーターを取りつける

サーボモーターを、溝に合わせて置きます。

3-7. 上板を取りつける

まず、上板の穴に、サーボの導線を通します。

それから、
サーボモーターと縦板のすべての突起を
上板にあいている穴に合わせ、
全体をはめこみます。

はまりがゆるい場合などは、
M6 60mmなべネジを使って仮止めをしておきましょう。

3-8. 配線

右の図を参考に配線してください。

なお、今回使っているMG995/996サーボは
茶色の線がGND(配線図の黒端子)
赤色の線がVCC(配線図の赤端子)
橙色の線が信号線(配線図の黄端子)になっています。

電子回路の配線は人間の脳内の神経回路のようなものです。

神経回路が壊れると人間が壊れてしまうように、
配線を間違えると部品が一発で壊れてしまいます。
なるべく慎重に、ていねいに行いましょう。

Memo: ざっくり分かるArduino 概要編
Memo: ざっくり分かるArduino 拡張編

3-9. サーボモーターの原点出し [要改訂]

このファイルを自分のパソコンに
ダウンロード・解凍してください。
OCPC_dlpArduino.zip

Arduinoに挿したUSBケーブルを自分のパソコンに挿し、
ArduinoIDEを起動して、servo_zero.inoを書き込みます。
その時、
サーボモーターが3つともギュルっと回れば成功ですが、
1つでも回らなかった場合はミスがある可能性が高いので、
配線を再度見なおしてください。
(回るのは一瞬だけなので、注意深く観察してください。)

無事に成功したら、reset.inoを書き込んでおきましょう。

Memo: ざっくり分かるArduino 動作編

5. 組み立て (駆動部分)

下の本体以外の、動きまわる部分を組んでいきます。

5-1. 腕にサーボホーンを取りつける

2-1で接着していたパーツが
乾いていることを確認してください。

写真のように、
M3 45mmなべネジをガイドとして使いながら、
小さい木ネジを使って、
2-2のサーボホーンを腕に取りつけます。

2-1同様、このパーツがずれると
機械全体が動かなくなるので、注意が必要です。

5-2. ロッドを組み立てる

ロッドエンドとM4 寸切り 285mmを組み合わせて、
パラレルリンクのロッド部分を6セット作ります。

両端の穴にM3のネジを通して持ち手をつくり、
寸切りの両端にロッドエンドをまっすぐあてがい、
ロッドエンドをねじって寸切りに嵌めていきます。
なるべく深くまで嵌めこむと、完成した時に安定します。

また、ネジを切る道具が手元にある場合は
先にネジを切ってもよいです。


すべてのロッドエンドの向きが平行になるように、
またすべてのロッドの長さが同じになるように、
それぞれのロッドエンドをねじって調整します。
これを怠ると正しく動作しないので、
(本来手作業で行うようなことではないのですが)
なるべく精密に揃えてください。

5-3. サーボモーターに腕をつける

サーボホーンに刻まれているギアが、
そのままサーボモーターに嵌まるようになっているので、
なるべく低い角度に、かつ3つとも同じ角度になるように
5-1の腕をサーボモーターの奥まではめこみます。

5-4. サーボモーターの軸を通す

サーボモーターの向かいの縦板から
サーボモーターに向かって、
M3 45mmなべネジを通します。

サーボモーターの中にネジが切られているので、
サーボを傷めないように気をつけながら、
軽く締めていきます。

ネジは長さが余って構いません。

5-5. 天板にジョイントをつける

天板パーツの穴に
3Dプリントパーツの穴をそれぞれ下面側から合わせて、
M3 15mm 皿ネジを天板の上面側から通し、
ナットで固定します。

ラスター彫刻の部分に
皿ネジの頭が埋まる形になります。

5-6. ロッドを取りつける 1

下の写真のようにして、
5-2のロッドをサーボの腕に取りつけます。

1本のM3 45mmなべネジに対して、
ナットを4つずつ使う形になります。

Memo : ダブルナット

5-7. ロッドを取りつける 2

さきほどと同じ要領で、
5-2のロッドを5-5の天板に取りつけます。

さきほど同様、
1本のM3 45mmなべネジに対して
ナットを4つずつ使う形になります。

6. 完成

ひとまず完成です。お疲れさまでした。

使わない間、配線を抜いておく場合は、
露出している他の線などに線が触れて
ショートしてしまう危険を避けるため、
ブレッドボード上で全く使っていない列の穴、
回路に関係のない穴に差しておくのがおすすめです。

[注意] 本当に完成してる?

見た目にできあがっていても、
つっかえながら動いていたり、
サーボモーターの動きが筐体にぶつかっていたりなど、
少し動きが悪いことがあります。
そういった場合には、決してそのまま放置しないでください。

そうした現象には必ず原因があります。
(そして、想定されるトラブルの多くは、
該当する各工程や、すぐ下の7-1に注意書きとして書いてあります。)
トラブルを抱えた状態のまま動かし続けると、
サーボモーターやArduinoを壊してしまうことも少なくありません。
きちんと原因を究明しましょう。

7. 動作確認 [以下要改訂]

動かしてみましょう。

7-1. 上下に動かしてみる

deltaTest_dlp.zipからdeltaTest_dlp.inoを開き、
Arduinoに書き込んで動かしてみましょう。
まっすぐ上下に動けば成功です。

deltaTest_homeAll.inoを書き込むと、
サーボに負荷をかけずに元の位置に戻せます。

  • サーボの動きはじめ/終わりのタイミングが違う
→サーボが原因の可能性が高いです。
腕/サーボホーンを外して、4-7をやり直してください。
  • 斜めに動いている/天板が傾いている
→ロッドが原因の可能性が高いです。
5-3, 5-4の注意点を守っているか確認してください。
  • 動きながら天板がガタガタする
→ネジが原因の可能性が高いです。
きつく締め直してください。

7-2. 3つのサーボを独立に動かしてみる

このプログラムをArduinoIDEから直接書き込んで、
3つのサーボモーターを同時ではなく「それぞれ独立に」動かしてみます。

deltaTest2_dlp

3つのサーボが等価に動くかどうかを確認しましょう。
また、台座の動く最大範囲を把握しましょう。

7-3. ArduinoとProcessingを通信し、マウスで動かしてみる 1

ArduinoのソースコードとProcessingのソースコードが入っています。

deltabot-master_20160107.zip

Control P5 Libraryの入ったProcessing2.2.1と、Arduinoが必要です。
http://www.sojamo.de/libraries/controlP5/
(通常はProcessingのソフト内からインストールできます。)

Arduino側にソフトウェアを書きこんだあと、
PC上でProcessingを実行してマウスで操作します。

Memo: Processingについて

7-4. ArduinoとProcessingを通信し、マウスで動かしてみる 2

Processingを実行すると右のような画面が立ち上がります。
最初は"SERVO POWER OFF"になってしますので、
[ENABLE]ボタンを押してPOWER ONにします。
ここでサーボモータが反応するはずです。

※作動しない場合は、
myPort = new Serial(this, Serial.list()[X], 9600)
という行の[X]部分の数字を
0,1,2...と順番に変えてみてください。

[RECORD]ボタンを押すと
動作を記録するモードに入ります。(制限時間あり)
[PLAY]ボタンを押すと記録された動作を反復再生します。
また、[RECORD]は何度でもやり直すことができます。

7-5. 録画再生をつかわず自分でプログラミングをする

Processingの知識が多少あれば、自分でOCPCを動かすことができます。

void draw(){}の中で
xp=15; yp=15; zp=-40; 
と指定すると座標が設定され、
setThetasfromXYZ();
を実行すると機械にその座標値が送信、
updateGuiElements();  
を実行すると座標値が画面上に反映されます。

xyzが機械の範囲外になると動かず反映もされないので、
まずはマウスで可動範囲を調べてください。
(なおzは±が逆になっています)

7-6. G-CODEから制御する(開発中)

DeltaBot_GUI_GCODEFIN.pde