OCPC - Fab Delta Kit 1.6 [For FAB12]

Created Date: 2015-12-05/ updated date: 2018-03-13
    Owner & Collaborators
    License
    Summary
    本バージョンは、FAB12で実施したワークショップに基づいています。
    旧バージョン → http://fabble.cc/gakuhirota/ocpc
    This version is based on what we present as a workshop program in FAB12.
    English translation is available here -> http://fabble.cc/gakuhirota/ocpc-2-en
    --------------------
    OCPCはOne CNC Per Childの略で、
    100ドル以内でつくることのできる3D工作機械の原型となることを目指しています。
    (企画) 慶應義塾大学 田中浩也研究室
    (原案) 増田恒夫 田中浩也
    (設計) 廣多岳 田中浩也研究室
    (協力) FabLab Kamakura / (試作協力) 望月美憂

    Materials

      Tools

        Blueprints

          Making

          • サーボモーター MG995/996 *3
            マイコン基板 Arduino Uno *1
            USB Aオス-Bオスケーブル *1
            ミニブレッドボード *1
            単3電池4個用電池ボックス *1
            単3電池 *4
            ジャンパワイヤ
            • パソコン (Win/Mac/Linux)
              3Dプリンター
              レーザーカッター

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

              ボンドの余りを拭く紙
              • 組み立てる前にデジタル工作機械を使って、
                これから組み立てるパーツをつくります。
                • 3Dプリンターを使って、
                  天板とロッドの間のジョイントパーツを作ります。

                  このデータをダウンロードし、
                  3Dプリンターで出力してください。
                  stlデータの中に必要数が配置してあるので、
                  このデータをひとつ出力すればOKです。
              • 残りのパーツも、組み立てる準備をします。
                • 接着した各パーツにある穴が
                  そのままパラレルリンクの機構の軸となるので、
                  曲がっていると動きに支障をきたしてしまいます。
                  一見簡単な工程ですが、丁寧に行いましょう

                  ボンドをつけすぎてネジ穴にまで到達してしまうと、
                  やはり動きに支障をきたします。
                  ボンドを塗り終えたあと、パーツ同士を圧着する過程で
                  塗った時の見た目よりもかなりボンドが広がるので、
                  ボンドを塗る時は少なすぎるくらいにするとうまくいきます。
                  もし少なすぎても、接着部分はあとからネジで補強されるので、
                  そちらの方が問題は起きにくくなります。
                • 腕のパーツを木工用ボンドで糊づけします。
                  溝がついている1枚と表面に何もない3枚の
                  合わせて4枚を1組として3組に分け、
                  先端のカギ型が右を向くよう、
                  木工用ボンドで接着します。

                  ボンドを塗ってパーツを重ねたら、
                  穴をのぞきこんでズレがないか確認してから、
                  M3 45mmなべネジを上下の穴に通し、
                  反対側からナットをはめこんで、
                  ずれないように、きつく固定しておきましょう。
                  (これは、仮留めと圧着を兼ねています。)
                • MG995/MG996のサーボホーンには凹凸があって、
                  腕に接着するのに邪魔になるので、やすりで削り取ります。

                  100番前後の紙やすりでしばらくこするとよいでしょう。
                  あまり硬い材質ではないので、
                  削りすぎて逆にへこんでしまわないよう、
                  気をつけてください。
              • カットしたMDFをメインに、まずは下から筐体を組んでいきます。
                • 写真のように組みます。

                  ゆるすぎてすぐ外れてしまうようなら、
                  軽くボンドをつけてもよいでしょう。
                  きつすぎる場合は、割れないように気をつけながら
                  ゴムハンマーやドライバーの背などで
                  叩いて押し込みます。
                • メインとなる大きな板の下に、
                  3-1の台を取りつけます。
                  表裏に気をつけてください。
                • Arduinoの端の穴2つに
                  M3 15mm皿ネジを通し、
                  ナットでArduinoをはさみます。

                  そして、さらにナットを使って、
                  3-2の板にあいている穴に
                  ネジを合わせて、Arduinoを固定します。
                • 写真のような位置に、
                  電池ボックスとブレッドボードを固定します。

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

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

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

                  はまりがゆるい場合などは、
                  M6 60mmなべネジを使って仮止めをしておきましょう。
                • 右の図を参考に配線してください。

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

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

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

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

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

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

              • 下の本体以外の、動きまわる部分を組んでいきます。
                • 2-1で接着していたパーツが
                  乾いていることを確認してください。

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

                  2-1同様、このパーツがずれると
                  機械全体が動かなくなるので、注意が必要です。
                • ロッドエンドとM4 寸切り 285mmを組み合わせて、
                  パラレルリンクのロッド部分を6セット作ります。

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

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


                  すべてのロッドエンドの向きが平行になるように、
                  またすべてのロッドの長さが同じになるように、
                  それぞれのロッドエンドをねじって調整します。
                  これを怠ると正しく動作しないので、
                  (本来手作業で行うようなことではないのですが)
                  なるべく精密に揃えてください。
                • サーボホーンに刻まれているギアが、
                  そのままサーボモーターに嵌まるようになっているので、
                  なるべく低い角度に、かつ3つとも同じ角度になるように
                  5-1の腕をサーボモーターの奥まではめこみます。
                • サーボモーターの向かいの縦板から
                  サーボモーターに向かって、
                  M3 45mmなべネジを通します。

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

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

                  ラスター彫刻の部分に
                  皿ネジの頭が埋まる形になります。
                • さきほどと同じ要領で、
                  5-2のロッドを5-5の天板に取りつけます。

                  さきほど同様、
                  1本のM3 45mmなべネジに対して
                  ナットを4つずつ使う形になります。
              • ひとまず完成です。お疲れさまでした。

                使わない間、配線を抜いておく場合は、
                露出している他の線などに線が触れて
                ショートしてしまう危険を避けるため、
                ブレッドボード上で全く使っていない列の穴、
                回路に関係のない穴に差しておくのがおすすめです。
                • 見た目にできあがっていても、
                  つっかえながら動いていたり、
                  サーボモーターの動きが筐体にぶつかっていたりなど、
                  少し動きが悪いことがあります。
                  そういった場合には、決してそのまま放置しないでください。

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

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

                  • サーボの動きはじめ/終わりのタイミングが違う
                  →サーボが原因の可能性が高いです。
                  腕/サーボホーンを外して、4-7をやり直してください。
                  • 斜めに動いている/天板が傾いている
                  →ロッドが原因の可能性が高いです。
                  5-3, 5-4の注意点を守っているか確認してください。
                  • 動きながら天板がガタガタする
                  →ネジが原因の可能性が高いです。
                  きつく締め直してください。
                • このプログラムをArduinoIDEから直接書き込んで、
                  3つのサーボモーターを同時ではなく「それぞれ独立に」動かしてみます。

                  deltaTest2_dlp

                  3つのサーボが等価に動くかどうかを確認しましょう。
                  また、台座の動く最大範囲を把握しましょう。
                • ArduinoのソースコードとProcessingのソースコードが入っています。


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

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

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

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

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

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

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

              Add Card Order

              References

                Usages

                  Project comments