Deltabotのある朝

Created Date: 2015-12-05/ updated date: 2018-03-13
    Owner & Collaborators
    License
    Summary
    朝から意志力を消耗したくありません.
    Deltabotが,朝を様々に手伝ってくれたらいいなと考えこの動画を作りました. Deltabotの活躍によって生み出される,ゆとりある朝をイメージしています.

    ## やってること
    - 猫じゃらしで目を覚ます
    - 熱いコーヒーを混ぜる
    - 卵をとく
    - フライパンで卵をかき混ぜる
    - フライパンでベーコンをかき混ぜる
    - 食パンにハチミツをかける

    Materials

      Tools

        Blueprints

          Making

          • まずはMDFをレーザーカッターで切ります。
            ocpc_lasercut_20151216.ai
            青線にしてある外縁部は切らなくても組み立てられますが、
            切るとA3*2枚になり、
            封筒などに入れて持ち運びがしやすくなります。
            (右の写真は上のデータと細部が異なります。)

            ラスター部分は皿ネジを埋めるための
            彫刻(≒切削)として設定しています。
            ややイレギュラーな使い方ですが、
            2mm程度削れるパラメーターを見つけてください。

            • 接着が必要なパーツは乾くのに時間がかかるので、
              先にすませてしまいます。

              なお、
              これ以降の説明では、MDFパーツを番号で表記します。
              パーツ番号対応図を確かめながら作業を進めてください。
              • どちらのパーツも、接着した各パーツにある穴が
                そのままパラレルリンクの機構の軸となるので、
                曲がっていると動きに支障をきたしてしまいます。
                一見簡単な工程ですが、丁寧に行いましょう

                ボンドをつけすぎてネジ穴にまで到達してしまうと、
                やはり動きに支障をきたします。
                どのパーツも結果的にあとからネジなどで補強されるので、
                ボンドは少なめにつけるのがおすすめです。

                軽く接着できたら、机などに側面を押しつけて、
                可能な限りまっすぐに接着されるように修正します。
                後の工程で使うM3のネジを穴に差し込むと、
                確実にまっすぐにできるほか、
                ナットと組み合わせて圧着することも可能です。
              • 腕のパーツ[1][2]を木工用ボンドで糊づけします。
                溝やくぼみがある[1]1枚と表面に何もない[2]3枚の
                合わせて4枚を1組として3組に分け、
                [1]のラスター彫刻がある面が表出するように接着します。

                裏返しに接着してしまうと取り返しがつかないので、
                注意してください。
              • 天板[5]とパラレルリンクを接続する部品を接着します。

                こちらは突起がない[3]2枚とあるもの[4]2枚の
                合計4枚を1組として、やはり3組に分けます。
                突起のある[4]・ない[3]・ない[3]・ある[4]の順に、
                順番を間違えないよう、重ねて接着してください。
            • カットしたMDFを中心に、まずは下から筐体を組んでいきます。
              • [7]と[8]を十字に組み合わせます。
                ややきついかもしれませんが、
                材を割らないように注意しながら、
                しっかり奥まではめこんでください。

                そして、[9]にその十字をはめこむと、
                十字が全体の台となります。
                [9]の表裏に注意してください。

                接合がゆるい場合などは、
                ボンドをつけて軽く接着しても構いません。
              • サーボモーター以外の電子部品を、
                [9]に取りつけていきます。

                Arduino Unoと電池ケースは、
                [9]にあいている穴に、M3 15mmの皿ネジで止めます。
                対になった穴が2組ありますが、
                正しい部品にしかピッチが合わないようになっています。
                写真のような向きに取りつけて、
                裏からM3ナットで固定してください。

                電池ケースのネジはなるべくきつく締めないと、
                電池が入りません。
                逆に、
                Arduinoはきつく締めるとArduinoが浮いてしまうので、
                極力ゆるめに締めるようにしてください。
              • 続いて、9V電池とブレッドボードを配置します。

                電池は、電池ケースに嵌めこんでください。
                カチッとしっかり噛み合う仕組みなので、
                手応えがない場合は極性があっているか確認してください。
                (極性が間違ったまま進めると、大変危険です。)

                ブレッドボードは、裏面のフィルムを剥がして、
                [9]の表面の使いやすそうな場所に貼ってください。
                貼り直しがあまり効かないので慎重に。
              • [10]と[11]を、それぞれ[9]に嵌めこみます。

                [10]は丸い穴のある方が上にくるように嵌めます。

                また、[10]を[9]に嵌めこむ穴の縁が薄いので、
                力をこめすぎて割ったりしないように気をつけてください。
              • サーボモーターを[9]の穴に合わせて置きます。
                3-4までで組んだものとサーボモーターの上部の突起が
                穴が対応するように[12]をかぶせ、
                サーボモーターのケーブルを穴に通します。

                ケーブルを通したら、
                上に出ているすべての突起を[12]に嵌めこんでください。
                一度にすべてを嵌めるのはほぼ不可能なので、
                板をややたわませながら、
                順番に嵌めていくことをおすすめします。

                最後に、M6 60mmの皿ネジを上の穴から通し、
                下から同じくM6のナットをあてがって、
                上下に開いてしまわないように仮留めします。
              • 箱状になった本体の中の電子部品を配線していきます。
                この配線図のように配線してください。
                なお、今回使っているMG995(サーボモーター)は
                茶色の線がGND(配線図の黒端子)
                赤色の線がVCC(配線図の赤端子)
                橙色の線が信号線(配線図の黄端子)になっています。

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

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

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

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

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

            • この頃には2-2で作ったものが乾いていると思います。
              乾いていることを確認したら、
              [5]の穴の間、中央部分に軽くボンドを塗り、
              [5]の穴にに2-2で作ったものを差し込んで固定します。

              乾く前に差し込むと、
              穴のきつさに負けて[3]や[4]がはがれてしまうので
              必ず乾いてから行いましょう。

              • 下の本体以外の、動きまわる部分を組んでいきます。
                • MG995(サーボモーター)の付属品の小袋の中から、
                  黒い片方向だけに伸びたサーボホーンを取り出します。
                  これを、2-1でつくった腕パーツと合体していきます。

                  まず、サーボホーンのギアが切られている側を上にして、
                  腕のラスター面の上に、穴と向きを合わせて置きます。
                  それから、M3 45mm なべネジを通し、
                  反対側からナットで仮留めします。

                  この仮留めも冒頭の接着同様、
                  完成したときの駆動に大きく影響する部分なので、
                  なるべく正確に穴が通るよう、心がけてください。

                • 腕にあいている四角い穴と
                  サーボホーンの小さい穴の向きを合わせて、
                  小さい穴のうち1つにM2.1 13mm 木ネジをねじこみます。
                  穴よりネジの方が太いのですが、
                  ねじこむとネジが周囲を削りながら進んでいくので、
                  サーボホーンと腕が密着するまでネジを回し続けてください。

                  同様に3つの腕/サーボホーンを組み立ててください。
                • M4 285mm 寸切り1本と#5525ロッドエンド2個を用意し、
                  それぞれのロッドエンドの穴にM3のネジを軽く通します。

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

                  これを6セット作ります。
                • ロッドの微調整をします。

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


                  調整が終わったら、
                  ロッドエンドに差していたネジを外します。
                • サーボモーターに、腕を嵌めこみます。

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

                  先ほど腕をサーボモーターと組んだ反対側から
                  [10]の穴を通じて、
                  M3 45mm なべネジをねじこんでいきます。
                  この時、
                  きつく締めすぎるとサーボモーターが壊れてしまうので、
                  ドライバーを使わずに手で締めることと、
                  [10]の板の面から5mmくらい余裕を残して留めることを
                  心がけてください。
                • 2-3で作ったパーツを[6]に取りつけます。

                  [6]の穴に、
                  2-3で作ったパーツの穴をそれぞれ下面側から合わせて
                  M3 15mm 皿ネジを[6]の上面側から差し、
                  M3 ナットで固定します。

                  ラスター彫刻の部分に
                  皿ネジの頭が埋まっていることを確認してください。
                • 4-6でサーボモーターにとりつけたアームの両側に、
                  4-4で作ったロッドを取りつけます。

                  M3 45mm なべネジとM3 ナットを使って、
                  それぞれのアームにロッドを2本ずつ、
                  写真のように取りつけていきます。
                  なべネジ1本あたり4つナットを使うことになります。

                  端に2つナットが使われているのにも、
                  ちゃんと理由があります。
              • ひとまず完成です。お疲れさまでした。

                電池がすぐに切れてしまわないよう、
                動かさないときは電池を電池ボックスから外すか、
                電池ボックス周辺の配線の一部をはずすなど、
                工夫しましょう。
                (今のところOCPCには『電源スイッチ』がついていません)

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

                  そうした現象には必ず原因があります。
                  (そして、想定されるトラブルの多くは、
                  該当する各工程や、すぐ下の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