必要なもの 1 - 筐体用部品
MDF 4mm 600*450mm 1枚
TRAXXAS社製ロッドエンド #5525 12個入り1セット
M2.1 木ねじ 13mm 3本
M3 皿ねじ 15mm 10本
M3 なべねじ 45mm 9本
M3 ナット 34個
M4 寸切り 285mm 6本
M6 皿ねじ 60mm 3本
M6 ナット 3個
必要なもの 2 - 電子部品
サーボモーター MG995 x3
マイコン基板 Arduino Uno Rev3 x1
USBAオス-Bオスケーブル x1
ミニブレッドボード x1
9V電池 x1
9V電池ケース x1
(リンク先以外のものを使う場合は
レーザーカットのデータを修正してください)
ジャンパワイヤ
必要なもの 3 - 工具類
プラスドライバー No.1~No.2
小さめのラジオペンチ 2本
木工用ボンド
[あるとよいもの]
ボンドの余りを拭く紙
圧着用のクランプ
1. レーザーカット
まずはMDFをレーザーカッターで切ります。
ocpc_lasercut_20151216.ai
青線にしてある外縁部は切らなくても組み立てられますが、
切るとA3*2枚になり、
封筒などに入れて持ち運びがしやすくなります。
(右の写真は上のデータと細部が異なります。)
ラスター部分は皿ネジを埋めるための
彫刻(≒切削)として設定しています。
ややイレギュラーな使い方ですが、
2mm程度削れるパラメーターを見つけてください。
Memo:
ラスターデータとベクターデータ
Memo:
レーザーカッターについて
Memo:
ネジの種類について
2. 接着
接着が必要なパーツは乾くのに時間がかかるので、
先にすませてしまいます。
なお、
これ以降の説明では、MDFパーツを番号で表記します。
パーツ番号対応図
を確かめながら作業を進めてください。
2-0. 作業をする前に注意
どちらのパーツも、接着した各パーツにある穴が
そのままパラレルリンクの機構の軸となるので、
曲がっていると動きに支障をきたしてしまいます。
一見簡単な工程ですが、丁寧に行いましょう。
ボンドをつけすぎてネジ穴にまで到達してしまうと、
やはり動きに支障をきたします。
どのパーツも結果的にあとからネジなどで補強されるので、
ボンドは少なめにつけるのがおすすめです。
軽く接着できたら、机などに側面を押しつけて、
可能な限りまっすぐに接着されるように修正します。
後の工程で使うM3のネジを穴に差し込むと、
確実にまっすぐにできるほか、
ナットと組み合わせて圧着することも可能です。
2-1. 腕パーツ
腕のパーツ[1][2]を木工用ボンドで糊づけします。
溝やくぼみがある[1]1枚と表面に何もない[2]3枚の
合わせて4枚を1組として3組に分け、
[1]のラスター彫刻がある面が表出するように接着します。
裏返しに接着してしまうと取り返しがつかないので、
注意してください。
2-2 天板とのアダプター部品
天板[5]とパラレルリンクを接続する部品を接着します。
こちらは突起がない[3]2枚とあるもの[4]2枚の
合計4枚を1組として、やはり3組に分けます。
突起のある[4]・ない[3]・ない[3]・ある[4]の順に、
順番を間違えないよう、重ねて接着してください。
3. 筐体の下半分を組む
カットしたMDFを中心に、まずは下から筐体を組んでいきます。
3-1. 台
[7]と[8]を十字に組み合わせます。
ややきついかもしれませんが、
材を割らないように注意しながら、
しっかり奥まではめこんでください。
そして、[9]にその十字をはめこむと、
十字が全体の台となります。
[9]の表裏に注意してください。
接合がゆるい場合などは、
ボンドをつけて軽く接着しても構いません。
3-2. 電子部品の配置 1
サーボモーター以外の電子部品を、
[9]に取りつけていきます。
Arduino Unoと電池ケースは、
[9]にあいている穴に、M3 15mmの皿ネジで止めます。
対になった穴が2組ありますが、
正しい部品にしかピッチが合わないようになっています。
写真のような向きに取りつけて、
裏からM3ナットで固定してください。
電池ケースのネジはなるべくきつく締めないと、
電池が入りません。
逆に、
Arduinoはきつく締めるとArduinoが浮いてしまうので、
極力ゆるめに締めるようにしてください。
3-3. 電子部品の配置 2
続いて、9V電池とブレッドボードを配置します。
電池は、電池ケースに嵌めこんでください。
カチッとしっかり噛み合う仕組みなので、
手応えがない場合は極性があっているか確認してください。
(極性が間違ったまま進めると、大変危険です。)
ブレッドボードは、裏面のフィルムを剥がして、
[9]の表面の使いやすそうな場所に貼ってください。
貼り直しがあまり効かないので慎重に。
3-4 縦の板
[10]と[11]を、それぞれ[9]に嵌めこみます。
[10]は丸い穴のある方が上にくるように嵌めます。
また、[10]を[9]に嵌めこむ穴の縁が薄いので、
力をこめすぎて割ったりしないように気をつけてください。
3-5. サーボモーターと上板
サーボモーターを[9]の穴に合わせて置きます。
3-4までで組んだものとサーボモーターの上部の突起が
穴が対応するように[12]をかぶせ、
サーボモーターのケーブルを穴に通します。
ケーブルを通したら、
上に出ているすべての突起を[12]に嵌めこんでください。
一度にすべてを嵌めるのはほぼ不可能なので、
板をややたわませながら、
順番に嵌めていくことをおすすめします。
最後に、M6 60mmの皿ネジを上の穴から通し、
下から同じくM6のナットをあてがって、
上下に開いてしまわないように仮留めします。
3-6. 配線
箱状になった本体の中の電子部品を配線していきます。
この
配線図
のように配線してください。
なお、今回使っているMG995(サーボモーター)は
茶色の線がGND(配線図の黒端子)
赤色の線がVCC(配線図の赤端子)
橙色の線が信号線(配線図の黄端子)になっています。
電子回路の配線は人間の脳内の神経回路のようなものです。
神経回路が壊れると人間が壊れてしまうように、
配線を間違えると部品が一発で壊れてしまいます。
なるべく慎重に、ていねいに行いましょう。
Memo:
ざっくり分かるArduino 概要編
Memo:
ざっくり分かるArduino 拡張編
3-7. サーボモーターの原点出し
このファイルを自分のパソコンに
ダウンロード・解凍してください。
OCPC_dlpArduino.zip
Arduinoに挿したUSBケーブルを自分のパソコンに挿し、
ArduinoIDEを起動して、servo_zero.inoを書き込みます。
その時、
サーボモーターが3つともギュルっと回れば成功ですが、
1つでも回らなかった場合はミスがある可能性が高いので、
配線を再度見なおしてください。
(回るのは一瞬だけなので、注意深く観察してください。)
無事に成功したら、reset.inoを書き込んでおきましょう。
Memo:
ざっくり分かるArduino 動作編
4 接着のつづき
この頃には2-2で作ったものが乾いていると思います。
乾いていることを確認したら、
[5]の穴の間、中央部分に軽くボンドを塗り、
[5]の穴にに2-2で作ったものを差し込んで固定します。
乾く前に差し込むと、
穴のきつさに負けて[3]や[4]がはがれてしまうので
必ず乾いてから行いましょう。
5. 筐体の駆動部分を組む
下の本体以外の、動きまわる部分を組んでいきます。
5-1. 腕にサーボホーンをつける 1
MG995(サーボモーター)の付属品の小袋の中から、
黒い片方向だけに伸びたサーボホーンを1つずつ取り出します。
これを、2-1でつくった腕パーツと合体していきます。
まず、サーボホーンのギアが切られている側を上にして、
腕のラスター面の上に、穴と向きを合わせて置きます。
それから、M3 45mm なべネジを通し、
反対側からナットで仮留めします。
この仮留めも冒頭の接着同様、
完成したときの駆動に大きく影響する部分なので、
なるべく正確に穴が通るよう、心がけてください。
5-2. 腕にサーボホーンをつける 2
腕にあいている四角い穴と
サーボホーンの小さい穴の向きを合わせて、
小さい穴のうち1つにM2.1 13mm 木ネジをねじこんでいきます。
穴よりネジの方が太いのですが、
ぐりぐりとねじこむとネジが周囲を削りながら進んでいくので、
サーボホーンと腕が密着するまでネジを回し続けてください。
同様に3つの腕/サーボホーンを組み立ててください。
5-3. ロッドを組む 1
M4 285mm 寸切り1本と#5525ロッドエンド2個を用意し、
それぞれのロッドエンドの穴にM3のネジを軽く通します。
寸切りの両端にロッドエンドをまっすぐあてがい、
両側を同時にねじってロッドエンドを寸切りに嵌めていきます。
なるべく深くまで嵌めこむと、稼働させたときの安定がよいです。
これを6セット作ります。
5-4. ロッドを組む 2
ロッドの微調整をします。
すべてのロッドエンドの向きが平行になるように、
またすべてのロッドの長さが同じになるように、
それぞれのロッドエンドをねじって調整します。
これを怠ると正しく動作しないので、
なるべく精密に揃えてください。
調整が終わったら、ロッドエンドに差していたネジを外します。
5-5. サーボモーターに腕をつける 1
サーボモーターに、腕を嵌めこみます。
サーボホーンに刻まれているギアが、
そのままサーボモーターに嵌まるようになっているので、
なるべく低い角度に、かつ3つとも同じ角度になるように、
腕をサーボモーターの奥まで嵌めこみます。
5-6. サーボモーターに腕をつける 2
腕に軸を通していきます。
先ほど腕をサーボモーターと組んだ反対側から
[10]の穴を通じてM3 45mm なべネジをねじこんでいきます。
この時、きつくねじこみすぎるとサーボモーターが壊れてしまうので、
ドライバーを使わずに手で締めることと、
[10]の板の面から5mmくらい余裕を残して留めることを
心がけてください。
小さな丸いパーツがあるバージョンの板をもらった班は、
ここで5mmの間を測るために、
間にはさみこんで留めてもよいと思います。
(板の厚みが4mmです。)
5-7. 天板にジョイントをつける
2-3で作ったパーツを[6]に取りつけます。
[6]の穴に、2-3で作ったパーツの穴をそれぞれ下面側から合わせて、
M3 15mm 皿ネジを[6]の上面側から差し、
M3 ナットで固定します。
ラスター彫刻の部分に
ちょうど皿ネジの頭が埋まっていることを確認してください。
5-8. ロッドをつける 1
4-6でサーボモーターにとりつけたアームの両側に、
4-4で作ったロッドを取りつけます。
M3 45mm なべネジとM3 ナットを使って、
それぞれのアームにロッドを2本ずつ、
写真のように取りつけていきます。
なべネジ1本あたり4つナットを使う
ことになります。
端に2つナットが使われているのにも、
ちゃんと理由があります。
Memo :
ダブルナット
5-9. ロッドをつける 2
4-8と同様に、
4-7で天板につけたジョイントにも、
ロッドを取りつけます。
6. 完成
ひとまず完成です。お疲れさまでした。
電池がすぐに切れてしまわないよう、
動かさないときは電池を電池ボックスから外すか、
電池ボックス周辺の配線の一部をはずすなど、
工夫しましょう。
(今のところOCPCには『電源スイッチ』がついていません)
配線を抜いておく場合は、
露出している他の線などに線が触れて
ショートしてしまう危険を避けるため、
ブレッドボード上で全く使っていない列の穴、
回路に関係のない穴に差しておくのがおすすめです。
[注意] 本当に完成してる?
見た目にできあがっていても、
つっかえながら動いていたり、
サーボモーターの動きが筐体にぶつかっていたりなど、
少し動きが悪いことがあります。
そういった場合には、決してそのまま放置しないでください。
そうした現象には
必ず原因があります。
(そして、想定されるトラブルの多くは、
該当する各工程や、すぐ下の6-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/
Arduino側にソフトウェアを書きこんだあと、
PC上でProcessingを実行してマウスで操作します。
起動後、まずはじめに、一番上の"Enable"をクリックして
"Servo Power On"にしてください。
Memo:
Processingについて
7-4. ArduinoとProcessingを通信し、マウスで動かしてみる 2
Processingを実行すると右のような画面が立ち上がります。
最初は"SERVO POWER OFF"になってしますので、[ENABLE]ボタンを押してPOWER ONにします。ここでサーボモータが反応するはずです。
※反応しないでエラーになる場合には「myPort = new Serial(this, Serial.list()[X], 9600)」という行の「X」部分の数字を0~9まで順番に変えてみて下さい。
[RECORD]ボタンを押すと動作を記録するモードに入ります(制限時間あり)
[PLAY]ボタンを押すと記録された動作を反復再生します。
何度でも[RECORD]をやり直すことができます。
7-5. 録画再生をつかわず自分でプログラミングをする
Processingの知識が多少あれば、自分でOCPCを動かすことができます。
void draw(){}の中で、
xp=15; yp=15; zp=-40;
と指定すると座標が設定され、
setThetasfromXYZ();
を実行すると機械にその座標値が送信、
updateGuiElements();
を実行すると座標値が画面上に反映されます。
xyzが機械の範囲外になると動かず反映もされないので、まずはマウスで可動範囲を調べて下さい(なおzはマイナスですので注意!)