工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

組み立てられた復讐者:アイアンマンヘルメット&アークリアクター

コンポーネントと消耗品

>
Arduino UNO
× 1
Adafruit NeoPixelリング:WS2812 5050 RGB LED
× 1
Adafruit容量性タッチセンサーブレイクアウト-MPR121
× 1
サーボ(Tower Pro MG996R)
× 1
4xAAバッテリーホルダー
× 1
9Vバッテリークリップ
× 1
ジャンパー線(汎用)
× 1

必要なツールとマシン

>
3Dプリンター(汎用)
1年以上完全に機能しているLulzbotMiniを使用しました(フレキシストルーダーヘッドを除く)動作しなかった:()

アプリとオンラインサービス

>
Arduino IDE
Autodesk Netfabb
fritzing

このプロジェクトについて

組み立てられたアベンジャー:3DプリントおよびArduino制御のアイアンマンヘルメットとアークリアクター。

紹介と動機:

このヘルメットを作ることの背後にある私の動機は、私の最初のヘルメットから始まりました。それは私がオンラインで見つけたいくつかのビデオからの段ボールのアントマンヘルメットでした。本当にかっこよかった(驚異の大ファンだった)ので、アイアンマンのヘルメットを作りたいと思いました。ワシントンD.C.のNationalMaker Faireに行ったばかりで、誰もがアントマンのヘルメットを愛していました。これにより、私はアイアンマンを1つにするためにさらに動機付けられました。私は別のボール紙のヘルメットから始めて、いくつかのプロトタイプを試しました。そのヘルメットは小さすぎたので、自分でヘルメットをデザインしました。今回は、映画のヘルメットよりも頭の上のボールのように見えました。最後に、ペーパーモデルに行きました。このペーパーモデルは見た目が素晴らしかったのですが、もう1つ問題が発生しました。ペーパーモデルは薄すぎました。直そうとしたのですが、うまくいかなかったので、ヘルメットを3Dプリントすることにしました。とうとう安定していて、頭とモーターが収まる大きさのものを作りました。

  • ヘルメットとアークリアクターの作成:

3Dプリント:

1)それを細かく分割する-ソフトウェア

このヘルメットを作成するための最初のステップは、ファイルをオンラインで見つけて印刷することでした。私が見つけたファイルは、電動のアイアンマンヘルメットでした。私がthingiverseからダウンロードしたファイルは、本体、あご、フェースプレートの3つに分かれていました。 3つすべてがプリンターのビルドプレートには大きすぎるため、ヘルメットをパーツに切断できるソフトウェアを見つける必要がありました。オンラインで調べていると、netfabbbasicという無料のソフトウェアがオンラインで見つかりました。ツールをダウンロードして、ファイルをアップロードしました。 Netfabb basicは非常に使いやすく、ヘルメットのパーツを切り取ることができました。次に、パーツをメインヘルメット、あご部分、フェースプレートに印刷しました。プリントをしながら、私はピースを一緒にダクトテープで留めて、サイズが良いかどうかを確認しました。すべてのピースが印刷を終了し、フィラメントの1½ロールが使い果たされたとき、私は24ピースのヘルメットを手に入れました。

2)適切な接着剤の選択

次の課題は、部品を接着するための適切な接着剤を見つけることでした。接着剤が機能するには、次の3つの要件を満たす必要があります。

  • 強力な結合でピースをまとめる必要がありました。
  • 硬化時間が短い
  • 砂になりやすい。

E6000、JB Weld KwikWeld、JB Weld Plastic Bonder、Loctite PlasticBonderエポキシの4種類の接着剤をテストしました。最終的に、3つの要件すべてを満たしたため、最終的にKwikWeldを使用することになりました。ピースを取り付けるための最初のステップは、接着する予定の側面を粗くすることです。やすりを使って滑らかな面を粗くし、溝やポケットの少ない粗い面を作りました。これは、ピースがくっつくのに役立ちます。次に、JB KwikWeldを等量の硬化剤と鋼と混合し、フィールドの両側に均等に広げて、一緒にプレスしました。クランプがある場合は、クランプにスライドさせて、余分な接着剤を拭き取ります。乾くのに約10分かかりますが、それより長く放置すると効果的です。

<図>
  • 3)サーボ機構の設計

アイアンマンのヘルメットを作る際の次の課題は、サーボ機構の設計でした。モノバースページの写真でサーボをヘルメットに取り付ける方法を見つけるのに苦労していたので 自分で作ることにしました。まず、サーボの位置を計画し、サーボから取り付け場所までの直線を測定しました。次に、サーボの角度を推測しました。最初のデザインは少しずれていて、角度が鋭すぎました。私が修正した次のものはちょうど良かったです。次に、アームをサーボと取り付け場所にねじ込んで、フィットするかどうかを確認しました。やった!最後に、サーボの周りに合うようにクランプを設計し、それを印刷しました。私はすべてを組み立てて、最初のテストを行いました。不安定で、フェースプレートがスムーズかつ均等に上がらなかった。この問題を解決するために、私は金属製のハンガーを長方形に曲げて、3Dプリントされた部分が入るはずのスロットに入れました。次に、ハンガーが落ちないように、ハンガーの下にクリップをデザインしました。ヘルメットの上部に弓のこでスロットを切り、すべてを元に戻しました。 2回目に試しましたが、うまくいきました!

<図>

4)組み立てと塗装

最後に、ペイントする準備が整いました。私はすべてを分解し、最初の白のプライマーコートを行いました。プライマーが完成したら、あごの部分をペインターテープでマスキングし、ヘルメットを赤く塗りました。フェースプレートはオールゴールドで塗装しました。金は乾きが早いのですぐに出来上がりましたが、赤い絵の具の乾きがとても遅いので、そのままにして乾かしました。すべての部品が乾いた後、私はあごの部分からテープをはがし、まだ白い部分の近くのすべてを覆い隠しました。次に、スズ箔を使用して、ヘルメットの残りの部分に配置しました。それから白い部分を金色に塗り、それが乾くのを待ちました。次に、ヘルメットを再組み立てしました そしてそれをすべてまとめます。それから私は最終テストをしました、そしてそれはうまくいきました!

5)アークリアクター:

次はアークリアクターの製作でした。私は最初にネオピクセルリングのサイズを測定し、それを保持するためのケースを設計しました。次に、ふたには、thingiverseの誰かのデザインを使用して、ニーズに合わせて変更しました。元のモデルは次の場所にあります。http://www.thingiverse.com/thing:33021新しいデザインは、一部が少し不均衡ですが、ほぼ同じ機能を備えていました。私はケースとトップを印刷しました、そしてそれらはかなりよく合います。唯一の問題は、Neopixelがケースに対して小さすぎることでした。計算が間違っていたことが判明したので、戻って変更しました。今回はぴったりです。次に、ワイヤーを通すための2つの穴と、弦を通すためのバーを上部に追加して、首に装着できるようにしました。最後に、ケースにぴったりとフィットする半透明のABSフィラメントで作られたデフューザーを追加しました。ついに印刷部分が完成しました!

エレクトロニクス:

3D印刷が完了すると、いくつかの電子機器を埋め込むための優れたプラットフォームがあることがわかりました。このプロジェクトでは、ヘルメットのフェースプレートに取り付けられている1つのサーボモーターを制御したいと思います。また、ArcReactorのNeopixelリングを制御したいと思います。このプロジェクトの制御システムの基盤として、ArduinoUnoを使用しました。ただし、他にも使用できるボードの種類は多数あり、このため、ソフトウェアとハ​​ードウェアは汎用的なものにしています。実際のところ、このプロジェクトではUnoとArduino101の両方を同じ意味で使用しています。これにより、将来の拡張と、101のオンボードBLEで接続されたヘルメットを作成できる可能性もあります!

アイアンマンは、ヘルメットのサーボモーターとアークリアクターのネオピクセルリングを作動させる必要があります。 MPR121 ADAFRUIT 12-KEY CAPACITIVE TOUCH SENSOR BREAKOUTを使用して、タッチベースのインターフェイスを提供しました。このブレークアウトボードは12の異なる入力を可能にし、I2Cを使用してUnoと通信します。 12個の接点は将来の拡張に十分な余地を残し、I2CはArduinoファミリの標準IDEパッケージの一部であり、再プログラミングせずにボードを交換する機能を提供します。それは十分に文書化されており、提供されているソフトウェアの例により、スケッチでの使用方法を簡単に理解できます。

静電容量式タッチスイッチとして機能するように、裸の端にワイヤーを取り付けました。機械式スイッチで見られるような従来の「スイッチバウンス」は見られませんが、1回のタッチで loop()として複数のヒットが生成されます。 arduinoスケッチでボードをポーリングします。これらのヒットに応答するサーボの「チャタリング」を回避するために、タッチを読み取るときに1/4秒のソフトウェア遅延メカニズムを実装しました。 UnoとMPR121をテストした後、サーボモーターと電源を追加しました。

負荷がかかった状態でのサーボモーターの使用と、2016 NYC Maker Faireでこのプロジェクトを「フィールド展開」したいという願望を考慮すると、このプロジェクトの最も重要な考慮事項の1つは電源です。電源の設計は、電気工学の中で最も重要ですが、最も魅力的でない分野の1つであると言われています。私たちのどちらも電気技師ではないので、私たちが思いついた解決策は、私たちが読んだものが機能すること、私たちが理解したこと、私たちが利用できたもの、そして私たちが仕事に取り掛かったものの組み合わせです。したがって、これが最善の解決策であるとは主張せず、改善のための提案を楽しみにしています。

サーボにかかる負荷、逆起電力の可能性、https://www.arduino.cc/en/Reference/Servoからの推奨事項のため、Unoとは別にサーボに電力を供給することにしました。サーボモーターの電源とアースは、4XAAバッテリーパックの電源とアースに接続されていました。非常に重要なのは、回路を完成させるために、宇野のアース、サーボ、バッテリーパックをすべて接続する必要があるということです。これは、Perma-Protoボードのアース線、4XAAバッテリーパック、およびUnoのアースピンからのワイヤーをすべて一緒に接続して行います。これは、以下のフリッツの回路図に示されています。

もともと、Neopixelリングも4XAAバッテリーパックから電力を供給されていました。 Neopixelリングのオンとオフを切り替えているときに、サーボの「チャタリング」が発生したように見えるため、これを変更しました。ただし、これは、テスト時のバッテリー残量が少ないことが原因である可能性があります。残念ながら、Maker Faireの前夜にこれに気づき、すでにPerma-Protoに参加していました。ネオピクセルリングを宇野に直接配線すると同時に、新しい電池に交換することにしました。これで問題は解決しましたが、質問には答えられませんでした。将来的にプロジェクトの改善に取り組む際に、これを追求するかもしれません。

回路全体がブレッドボード上でプロトタイプ化され、Adafruit¼Perma-Protoボードに移動されました。安全なエンクロージャーを使用すると、これはプロジェクトのデプロイ可能なパッケージを迅速に作成するための最も簡単な方法の1つです。以下に示すように、青いHIPSフィラメントでカスタムエンクロージャーを設計および印刷しました。バッテリー付きのユニット全体がMakerFaireのカメラケースに詰め込まれました!

<図>

ソフトウェア:

現在、スケッチには2つのバージョンがあります。 IronMan02.ino および IronMan04.ino 。どちらも、この記事で説明されているハードウェアセットアップで動作します。

最初の IronMan02.ino は、 「完璧は完成の敵です」という精神に沿った「やり遂げる」バージョンです。 締め切りがあり、このバージョンはエレガントではありませんが、仕事を成し遂げました。このバージョンでは、ヘルメットとアークリアクターを表すオブジェクトを作成したことがわかります。これは、将来のバージョンでarduinoにマルチタスクを実装することを見越して行われたため、完全な急ぎの仕事ではありませんでした。 AdafruitのBillEarlによるarduinoマルチタスクに関する3つの記事のシリーズを読むことを強くお勧めします。私たちのコードは、特に IronMan04.ino に基づいています。 この3つのチュートリアルのセットからの例、アイデア、および推奨事項に基づいています。これらの記事は、arduinoプログラミングの基本を超えて、プロジェクトを実際に軌道に乗せることを可能にします!

私たちが直面した問題の1つは、フェースプレートの開閉が速すぎることでした。 delay()を使用してこれを解決しました フェースプレートの動きを遅くして滑らかにする機能。はい、Reallyevilbadguy博士がスーパーデスレーザーでアイアンマンの顔を爆破しようとしている場合は、ヘルメットをすばやく閉じる必要がありますが、デモンストレーションの目的では、ゆっくりとしたスムーズな動きの方がはるかに優れています。

  //ヘルメットを上に動かし、タッチキャップでのチャタリング/バウンスを避けるために1/4秒の時間ブロック。 switch void up(){if((millis()-lastSwitched)> 250){lastSwitched =millis(); if(!helmetUp int currPos =0; while(currPos  

delay()の使用に関する問題 機能は、マイクロコントローラーが delay()の間は他に何もできないことです。 。この問題は、上記の2番目のバージョンであるadafruitチュートリアルのガイダンス IronMan04.ino を使用して解決しました。

2番目のバージョン、 IronMan04.ino 、実装したかった2つの主要な要素が含まれていますが、Maker Faireの前に達成しようとして時間が不足しました:

  • ワンボタン/タッチフェースプレートコントロール
  • マルチタスク

私たちが最初のプロジェクトについて人々に話したとき、みんなの反応は、ヘルメットを上下に動かすためのボタン/タッチセンサーは1つだけでなければならないというものでした。これ以上合意することはできず、時間があるときにこれを実装することにしました。私たちのソリューションには、いくつかの状態変数を使用することが含まれます:

  • フリップ -フェースプレートの状態を維持するため
  • フリッピング -フェースプレートが現在位置を移行しているかどうかを示します
  • 方向性 -フェースプレートを上下に動かすことを示します

setup() ヘルメットは常にオープンまたはアップ構成で起動します。これは絶対に必要というわけではありません。初期状態に関係なく、フェースプレートスイッチを切り替えると、2回押すだけで正しい状態になります。ただし、フェースプレートの初期状態がアップしていることを考慮したコードを記述しているため、最初はボタンを無駄に押す必要がありません。これが最善の方法ですか?よくわかりませんが、最も優れた科学者の何人かが制御理論に長年取り組んできたので、このプロジェクトは大丈夫だったと思います!

ループ内のMPR121からのタッチをポーリングするため、1人のユーザーがタッチを認識すると、多くのタッチ信号が生成されます。これは従来のスイッチバウンスに似ており、ソフトウェアを使用して処理します。タッチセンサーへの高速応答が必要であり、マルチタスクを実装したいので、 loop()のスイッチ/ケースで複数のタッチをブロックする代わりに 関数では、 millis()を使用してタイミングブロックを配置します ヘルメットで機能する および ArcReactor ヘルメットのこのコードフラグメントに見られるオブジェクト オブジェクト:

  void briefFaceplate(){//チャタリング/バウンスから保護するタイミングブロックif((millis()-lastFlipped)> 500){。 。 。 

繰り返しますが、 delay()を使用しないことによって プロジェクトでマルチタスクを保持する機能。変更とテストを可能にするために、500ミリ秒の遅延間隔の変数を使用する方が賢明かもしれませんが、2番目の推測である500で正しく理解でき、ここでは少しずさんでした。

サーボを回転角でスムーズにスイープするために、サーボの回転をゆっくりとインクリメントする必要がありました。 millis()で現在の時刻を確認して、サーボモーターの角度ステップにタイムブロックを配置します。 機能:

  void Update(){if(flipping&(millis()-lastMoved)> =15){lastMoved =millis(); if(方向性==UP){currentPos =currentPos + 3; } else {currentPos =currentPos-3; } Serial.print( "現在の位置:"); Serial.print(currentPos);ヘルメットServo.write(currentPos); } if((currentPos> =upAngle)||(currentPos <=downAngle)){flipping =false; }}};  

また、 delay()なしでこれを実装しました 関数。このプロジェクトをビルドして注意深く見ると、UnoでIronMan04.inoを実行すると、フェースプレートを反転すると同時にNeopixelのオンとオフを切り替えることができます。 IronMan02.inoを使用すると、 delay() サーボの移動が完了するまで、をブロックします。ビル・アールに感謝します!

更新関数のこの最後の行は、 loop()のように、フェースプレートの上部または下部の位置を超えていないことを確認します。 関数呼び出し Update() ヘルメットを最後に動かした後もこれを継続的にチェックし、 反転を設定します。 フェースプレートが上下に移動したことを示すためにfalseに変数。次のサイクルで、 反転 falseの場合、関数全体が本質的にスキップされます。

  if((currentPos> =upAngle)||(currentPos <=downAngle)){flipping =false; }  

今後の方向性:

このプロジェクトでできることはたくさんありますが、どこから始めればよいのか正確にはわかりません。輝く目は一つです。おそらく、arduino101とのBLE接続を追加しますか?音声インターフェース?ジャービスは間違いなくこれを求めています!

コード

アイアンマンヘルメットとアークリアクタープロジェクト!
https://github.com/lachendeKatze/Iron-Man

回路図


製造プロセス

  1. マンホールの蓋
  2. Clothes Iron
  3. 鋳鉄ストーブ
  4. フットボール用ヘルメット
  5. バッテリー
  6. UnifiedWater v1
  7. 鉄人
  8. Arduino Power
  9. Intel Arduino 101 BLEBlynkタンク
  10. 錬鉄を理解する