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