フルオート3DプリントブラシレスNerfBlaster Arduino Control
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 2 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 |
必要なツールとマシン
> |
|
このプロジェクトについて
私はいつも物を作ったり作ったりするのが好きだったので、映画やビデオゲームにあるオブジェクトから小道具やレプリカを作ることにしました。仮想オブジェクトを実現し、同じような興味を持つ人々と私のテクニックを共有します。
私の最新かつ最高の作品は、次のビデオゲーム Cyberpunk 2077 で紹介されるスマートガンであるKangTaoです。 。このような複雑なオブジェクトを作成するために、3Dプリンターを使用して、パーツの美観と機械的取り付けを実現しました。
静的オブジェクトは簡単すぎるでしょうが、私は挑戦したかったのです。そこで、機能的なNerfBlasterとして設計しました。
この機能を実現するには、ブラシレスモーターのソレノイドとESCを制御する必要がありました。リレーや時間遅延などは面倒なので、Arduinoがより実用的なソリューションでした。
この記事は、このプロジェクトのArduinoと電気回路の側面に焦点を当てます(これはArduinoサイトであるため)。 Arduinoの部分は非常に単純なので、これを「簡単」とラベル付けしました。ただし、機械設計と3D印刷は高度です。 Nerf Blasters用のArduinoでブラシレスESC、ブラシレスモーター、ソレノイドを制御したい場合は、このガイドが最適です!
CADデザイン、3D印刷などについては、こちらで説明しています:http://nerfhaven.com/forums/topic/28493-cyberpunk-2077-kang-tao-3d-printed-nerf-gun/
またはここ:https://www.reddit.com/r/nerfhomemades/comments/djmyu0/3d_printed_kang_tao_nerf_blaster_from_cyberpunk/
ここでのビデオビルドチュートリアル:https://www.youtube.com/channel/UCP3j3nmdL5VLFy1indyyzAA/featured?view_as =subscriber
回路図(回路図のセクションを参照)は、すべてがどのように接続されているかを示すために描かれました。サイズが小さいため、ArduinoNanoを使用しています。これは、宇野や他の人にもうまくいくはずです。
以下の用語MS1、C2などについては回路図を参照してください。
参照 から コード セクション オン 説明 の 方法 コード 動作します。
フライホイールとソレノイドによるトリガー <図>
コードが機能する方法は、 MS2 の場合です。 (セカンダリマイクロスイッチトリガー)を押したままにすると、ブラシレスモーターが回転します。
MS1 の場合 (プライマリマイクロスイッチトリガー)を押すか押し続けると、信号がMOSFETゲートに送信され、ソレノイドが発射されます( S )繰り返し。ソレノイドがNerfダーツをマグからフライホイール( M1 )に押し出します。 & M2 )次に、バレルからダーツを加速します。
ただし、 MS1 MS2 のときにのみアクティブになります 保持されています。これは、ダーツが回転していないフライホイールに押し込まれた場合のジャムを防ぐのに役立ちます。コード(コードセクションを参照)では、「&&」が使用されている場所です。
ブラシレスモーターとソレノイドに供給される電力は、マイクロスイッチを通過しません。これは、高電流定格のマイクロスイッチが必要ないことを意味します。
ブラシレスモーター <図>
ここでは、ブラシレスとブラシ付きモーターの違いについては説明しません。いくつかの優れた説明を検索できます。
インランナーがあります および outrunner ブラシレスモーター。 アウトランナーが必要です モーターは形状が平らなので、Nerfブラスターの側面に醜い缶が突き出ていません。アウトランナーモーターには、外部の一部がシャフトと一緒に回転できることもあります。これにより、フライホイールを3Dプリントしてモーターを簡単に通過できます。
後部取り付け穴のあるモーターを入手する 。
モーターの電圧は、少なくとも12.6V(3sリポ)を処理する必要があります。
モーターの電流は、ブラシレスESCの定格電流を超えてはなりません。
モーターの出力は> 60Wである必要があります。このプロジェクトでは、12.6Vの供給電圧x測定された7Aのモーター消費量=それぞれ約80Wを使用します。
ブラシレスモーターのRPMは約25kである必要があり、kV定格x電圧によって決定されます。このプロジェクトでは、12.6Vで2600kVのモーターを使用します。したがって、2600 x 12.6 =〜32、760RPM。モーターはハーフスロットルでしか動かず、ダーツは25m / 82ftで飛ぶ!
ブラシレスESC
これらは基本的にブラシレスモーターの出力を制御します。
ブラシレスモーターはブラシ付きESCでは機能しないため、ブラシレスになります。
モーターごとに1つのESCが必要です。そうしないと、1つのESCに接続された2つのモーターからの逆起電力がESCのタイミングを台無しにし、ESCやモーターに損傷を与えます。
ESCの定格電流は、モーターの電流引き込みよりも高くする必要があります。この場合のモーターは、それぞれ7Aで測定されました。 ESCは20A以上を推奨します。
ESCの定格電圧は少なくとも12.6V(3s Lipo)である必要があります。
ESCには組み込みのBECは必要ありません。 'OPTO'ESCを使用できます。 BECを備えたESCを使用している場合は、回路図に示すように、アースケーブルと信号ケーブルをArduinoに接続します。 接続しないでください ESC 5Vの赤いケーブルで何にでも接続できます。 (特定の目的があり、何をしているのかを知っている場合を除きます)。
バッテリー <図>
すべてに電力を供給する単一のバッテリー。 XT60コネクタの使用をお勧めします。
電圧は12.6V3SLipoバッテリーです。
容量は最低1300mAHを推奨します。
バッテリーの電流放電定格は、すべての負荷の消費電力に対して十分でなければなりません。このプロジェクトでは、負荷電流は約25Aです。
バッテリーの最大放電率は、放電率(25C)x Ah単位の容量(1、300mAh =1.3Ah)で計算されます。
したがって、25 x 1.3 =32Aのバッテリーの最大放電率。これらの数値は、バッテリーの仕様で確認できるはずです。
MOSFET <図>
Arduinoから直接12V / 8Aソレノイドに電力を供給すると、魔法の煙が発生します(Arduinoは死にます)。解決? MOSFET。
パワーMOSFETはソレノイドのオン/オフスイッチとして使用されます。それは基本的にソレノイドに電力を供給する地面を遮断します。これは、 NチャネルMOSFET として知られています。 必ずNチャネルを取得してください。
MOSFETは、Arduino出力ピン( D4 )からMOSFETゲートピンに信号が送信されるため、いつオンとオフを切り替えるかを認識しています。 この場合)。 Arduinoは5Vを出力し、ゲートは5Vで完全にオンになっているはずです。これが機能するには、ロジックレベルMOSFET である必要があります。
ソレノイドからの電流引き込みの定格は8Aです。 MOSFETの最大電流定格が高いことを確認してください。このプロジェクトでは、最大定格30AのMOSFETを使用しています。
MOSFETを介した電圧はソレノイドに電力を供給するために12.6Vです。このMOSFETの定格は最大60Vで、十分なヘッドルームがあります。
この場合、MOSFETの温度は35°C未満です。これは、MOSFETの定格が30Aであるために達成されますが、MOSFETを介して引き出される負荷は約8Aのみです。もう1つの理由は、負荷(ソレノイド)の電源が常にオンになるのではなく、スイッチがオフになる前に一時的にオンになることです。この場合、ヒートシンクは必要ありません。
ソレノイド
これにより、ダーツがフライホイールに押し込まれます。必要なのは、ストローク長35mmの12V定格ソレノイドです。ストロークを短くしても、全長タイプのナーフダーツは十分に押し出せません。
ジャムを防ぐために、スプリングを直径0.9mmのワイヤー、外径14mm、長さ40mmにアップグレードします。
ソレノイドは常にではなく瞬間的に電源がオンになるため、40°Cまでは穏やかに暖まるだけで、冷却する必要はありません。
これらのソレノイドは比較的安価で一般的です。それらはEbay、Aliexpressなどで見つけることができます。
安全スイッチ
SW 安全スイッチは、単に2ポジションのスライダースイッチです。使用される接点は2つだけですが、3つの接点があります。安全がオンのときにArduinoの電源を切り、フライホイールとソレノイドが作動するのを防ぎます。
保護回路
このセクションでは、電子機器の揚げ物を防ぐ方法について説明します!
C1 33μF(100μFを推奨)& C2 100nF(0.1µF)は、Arduino電源入力への電圧変動を低減します。
注意:C1は極性に敏感で、縞模様の面は負です。 その他 それ 行く バン!
D1 ArduinoVINへの逆電圧を防ぎます。極性に注意してください。
D2 フライバック/フリーホイールダイオードです。ソレノイド(または他のインダクタ)が逆起電力を生成するのを防ぎます。この逆起電力は、そうでなければMOSFETを損傷する可能性があります。極性に注意してください。
R1 & R2 MS1およびMS2用の4.7kΩプルアップ抵抗です。これにより、マイクロスイッチでのフローティング電圧が防止されます。
R3 は、MOSFETのゲートでのフローティング電圧を防ぐための10kΩプルダウン抵抗です。
R4 オプションの場合は150kΩです LEDの。私のLEDはそれぞれ2.4V / 50mAで2つの直列になっています。抵抗値は異なる場合があります。これらのLEDはソレノイドと同期して点滅し、銃口の点滅を再現します!
以下のビデオ説明とテストファイアリング!
これでこのガイドを要約します。質問がある場合は、以下にコメントを残してください:)
自分で印刷できるようにファイルをダウンロードしてください!
更新:Thingiverseファイルへのリンクは次のとおりです。お楽しみください!
https://www.thingiverse.com/thing:3984125
コード
- ナーフブラスターブラシレスモーターとソレノイドArduinoコード-Clark3DPR
ナーフブラスターブラシレスモーターとソレノイドArduinoコード-Clark3DPR Arduino
1. Arduinoの電源が安全スイッチを介してオンになると、ブラシレスESCのアーミングシーケンスが実行されます。私のESCは3.7秒かかります(コードでは3700秒)。セーフモードを終了するには、ESCによっては、この値を最大10000(10秒)まで増やす必要がある場合があります。2.セカンダリマイクロスイッチを押し続けてフライホイールを回転させ、次にプライマリマイクロスイッチを押し続けるか押し続けて発射します。
2.throttle.write(92)を変更して、モーターのアイドリング速度を増減するか、オフにします。デフォルトでは、モーターは低速で回転し、スピンアップ時間を短縮します。 (値はモーター/ ESCによって異なります)
モーターの最高速度とダーツ速度を変更するには、throttle.write(97)を変更します。 (値はモーター/ ESCによって異なります)
delay(90)とdelay(100)を変更して、ソレノイドの発射速度を増減します。
4.マイクロスイッチが解放されると、フライホイールのESCPWM信号とソレノイドのMOSETゲートへの信号が回転/アクティブ化を停止します。
5. ESCがArduinoからの信号を失った場合(安全スイッチがオンでArduinoの電源がオフの場合)、ESCはセーフモードに戻り、モーターをオフにします。
const int buttonPinF =2; // FlywheelRevマイクロスイッチのピン番号constint buttonPinS =5; //ソレノイドマイクロスイッチのピン番号intbuttonStateF =0; // FlywheelRevマイクロスイッチのステータスを読み取るための変数intbuttonStateS =0; //ソレノイドマイクロスイッチのステータスを読み取るための変数intsoloidPin =4; //ソレノイドMOSFETゲートピン番号#includeサーボスロットル; intpos =0; int pin =3; // ESC信号pinvoidsetup(){pinMode(buttonPinF、INPUT); // Flywheelマイクロスイッチピンを入力として初期化しますpinMode(buttonPinS、INPUT); //ソレノイドマイクロスイッチピンを入力throttle.attach(pin);として初期化します。 pinMode(solenoidPin、OUTPUT); //ソレノイドMOSFETゲートピンを出力として設定します// ESC Arming Sequence for(pos =90; pos <=91; pos + =1){throttle.write(pos); delay(3700); // ESCが作動するのを待つ/セーフモードを終了する// ESCが作動するのにかかる時間に応じてこの3700の値を増やす}} void loop(){buttonStateF =digitalRead(buttonPinF); // Flywheelマイクロスイッチ値の状態を読み取りますif(buttonStateF ==HIGH){//マイクロスイッチが押されていることを確認します。押されている場合はFlywheel buttonStateがHIGHですthrottle.write(92); // <(92)=モーターオフ/(92)=アイドル速度} else {throttle.write(97); //モーターオン(92)=アイドル速度/〜(115)=最大速度} buttonStateS =digitalRead(buttonPinS); //ソレノイドマイクロスイッチ値の状態を読み取りますif(buttonStateF ==LOW &&buttonStateS ==LOW){digitalWrite(solenoidPin、HIGH); //ソレノイドをオンに切り替えdelay(90); //オン期間digitalWrite(solenoidPin、LOW); //ソレノイドをオフに切り替えdelay(100); //オフ期間} else {digitalWrite(solenoidPin、LOW); //ソレノイドをオフに切り替えます}}
回路図
これがすべての配線方法です。ダイオードとコンデンサの極性に細心の注意を払ってください。 AutoCADで描画されます。 製造プロセス