- RCカー用コアレスDCモーター
- 必要な材料
- Arduinoを使用したRCカー用RFジョイスティック
- ArduinoRCカーの回路図
- ArduinoRCカー用のPCBの製造
- PCBの組み立て
- 3Dプリントホイールとモーターマウント
- Arduinoのプログラミング
- ArduinoRCカーの動作
RCカーはいつでも楽しく遊べます。私は個人的にこれらのラジコンカーの大ファンであり、 広範囲にわたって遊んでいます(今でもそうしています)。今日のこれらの車のほとんどは、起伏の多い地形を処理するために大きなトルクを提供しますが、常に遅れていたものがあります、その速度!!..したがって、このプロジェクトでは、メインのArduinoを使用してまったく異なるタイプのRCカーを構築します この車の目的は最高速度を達成することであるため、RCカー用のコアレスDCモーターを試してみることにしました 。これらのモーターは通常ドローンで使用され、定格は 39000RPMです。 これは私たちのスピードの渇きを癒すのに十分すぎるはずです。車は小型リチウム電池で駆動され、nRF24L01RFモジュールを使用してリモート制御できます。または、シンプルなものをお探しの場合は、このSimple RFRobotおよびRaspberryPi BluetoothCarプロジェクトを確認することもできます。
RCカー用コアレスDCモーター
コアレスDCモータ、このプロジェクトで使用される以下の画像に示されています。ミニドローンで広く使用されているので、簡単に見つけることができます。8520磁気マイクロコアレスモーターを探すだけで、これらを見つけることができます。
現在、RCカーにDCモーターを使用することにはいくつかの欠点があります。まず第一に、それらは非常に低い始動トルクを提供するので、私たちのRCカーは可能な限り軽量でなければなりません。そのため、SMDコンポーネントを使用してPCB上に車全体を構築し、ボードサイズを可能な限り小さくすることにしました。 2つ目の問題は、高速で39000 RPM(シャフトのRPM)が扱いにくいため、MOSFETを使用して構築したArduino側の速度制御回路が必要です。 3つ目は、これらのモーターは、動作電圧が3.6V〜4.2Vの単一のリチウムポリマーバッテリーで駆動されるため、3.3Vで動作するように回路を設計する必要があるということです。これが、3.3V Arduino Prominiを使用した理由です。私たちのRCカーの頭脳として。これらの問題を整理したので、このプロジェクトを構築するために必要な材料を見てみましょう。
必要な材料
- 3.3V Arduino Pro Mini
- Arduino Nano
- NRF24L01 –2個
- ジョイスティックモジュール
- SI2302 MOSFET
- 1N5819ダイオード
- コアレスBLDCモーター
- AMS1117-3.3V
- リチウムポリマー電池
- 抵抗器、コンデンサ、
- 接続線
Arduinoを使用したRCカー用RFジョイスティック
前述のように、RCカーはRFジョイスティックを使用してリモート制御されます。このジョイスティックも、ArduinoとnRF24L01 RFモジュールを使用して構築されます。また、ジョイスティックモジュールを使用して、必要な方向にRCを制御しました。これら2つのモジュールにまったく慣れていない場合は、ArduinoとnRF24L01のインターフェイスおよびジョイスティックとArduinoのインターフェイスの記事を読んで、それらの動作と使用方法を学ぶことができます。ビルドするには、あなたのArduinoのRFリモートジョイスティックあなたは回路図の下に従うことができます。
RFジョイスティック回路は、ナノボードのUSBポートを使用して電力を供給できます。nRF24L01モジュールは3.3Vでのみ動作するため、Arduinoでは3.3Vピンを使用しました。ブレッドボード上に回路を構築しましたが、以下のようになります。必要に応じて、このためのPCBを作成することもできます。
RFジョイスティック回路のArduinoコードは非常に単純です。ジョイスティックからX値とY値を読み取り、nRF24L01を介してRCカーに送信する必要があります。この回路の完全なプログラムは、このページの下部にあります。上記で共有したインターフェースプロジェクトのリンクですでに説明しているので、その説明には触れません。
ArduinoRCカーの回路図
リモート制御のArduinoカーの完全な回路図を以下に示します。回路図には、2つのTCRT5000IRモジュールを車に追加するオプションも含まれています。これは、ラジコンカーがラインフォローロボットとして機能し、外部から制御されることなく自力で動作できるようにするために計画されました。ただし、このプロジェクトのために集中することはしません。「最速のラインフォロワーロボット」の構築を試みる別のプロジェクトチュートリアルに注目してください。構築を容易にするために、両方の回路を1つのPCBに組み合わせました。このプロジェクトでは、IRセンサーとオペアンプのセクションは無視してかまいません。
RCカーは端子P1に接続されたLipoバッテリーから電力を供給されます。AMS117-3.3Vは、当社のnRF24L01と私たちのプロのミニボード用の3.3Vを調節するために使用されます。Arduinoボードに直接rawピンで電力を供給することもできますが、pro miniのオンボード3.3V電圧レギュレーターはRFモジュールに十分な電流を供給できないため、外部電圧レギュレーターを使用しました。
2つのBLDCモーターを駆動するために、2つのSI2302MOSFETを使用しました。これらのMOSFETが3.3Vで駆動できることを確認することが重要です。まったく同じ部品番号が見つからない場合は、以下の伝達特性を持つ同等のMOSFETを探すことができます。
モーターは最大7Aのピーク電流を消費する可能性があるため(連続は負荷で3Aであることがテストされています)、MOSFETのドレイン電流は7A以上で、3.3Vで完全にオンになる必要があります。ここでわかるように、選択したMOSFETは2.25Vでも10Aを供給できるため、理想的な選択です。
ArduinoRCカー用のPCBの製造
このプロジェクトを構築する上での楽しい部分は、PCB開発でした。ここにあるPCBは回路を形成するだけでなく、車のシャーシとしても機能するため、モーターを簡単に取り付けることができるオプションを備えた車の形状を計画しました。上記の回路を使用して独自のPCBを設計することもできます。または、完了したら、以下のようなPCB設計を使用することもできます。
ご覧のとおり、バッテリー、モーター、その他のコンポーネントを簡単に取り付けることができるようにPCBを設計しました。このPCBのガーバーファイルはリンクからダウンロードできます。ガーバーファイルの準備ができたら、それを作成します。PCBGOGOでPCBを簡単に実行するには、以下の手順に従います。
ステップ1: www.pcbgogo.comにアクセスし、初めての場合はサインアップします。次に、[PCBプロトタイプ]タブで、PCBの寸法、層の数、および必要なPCBの数を入力します。私のPCBは80cm×80cmなので、タブは下のようになります。
ステップ2: [今すぐ見積もり ]ボタンをクリックして 続行し ます。使用するトラック間隔など、必要に応じていくつかの追加パラメータを設定するページが表示されます。ただし、ほとんどの場合、デフォルト値で問題なく動作します。ここで考慮しなければならないのは、価格と時間だけです。ご覧のとおり、ビルド時間はわずか2〜3日で、PSBの費用はわずか5ドルです。次に、要件に基づいて希望の配送方法を選択できます。
ステップ3: 最後のステップは、ガーバーファイルをアップロードして支払いを続行することです。プロセスがスムーズであることを確認するために、PCBGOGOは、支払いを続行する前に、ガーバーファイルが有効かどうかを確認します。このようにして、PCBが製造に適していて、コミットされたとおりに到達することを確認できます。
PCBの組み立て
ボードが注文された後、数日後に私に届きましたが、きちんとラベルが貼られた箱に入った宅配便で、いつものようにPCBの品質は素晴らしかったです。私はあなたが判断するために以下のボードのいくつかの写真を共有しています。
はんだごての電源を入れて、ボードの組み立てを始めました。フットプリント、パッド、ビア、シルクスクリーンは適切な形状とサイズで完璧なので、ボードの組み立てに問題はありませんでした。箱を開梱してからわずか10分でボードの準備が整いました。
はんだ付け後のボードの写真を 以下に示します。
3Dプリントホイールとモーターマウント
上の写真でお気づきかもしれませんが、ロボットのモーターマウントとホイールを3Dにする必要があります。上記で共有したPCBGerberファイルを使用したことがある場合は、このthingiverseリンクからダウンロードして3Dモデルを使用することもできます。
私はCuraを使用してモデルをスライスし、Tevo Terantualaを使用して印刷しました。サポートはなく、重量を減らすために0%の面材を使用しています。プリンターに合わせて設定を変更できます。モーターは非常に速く回転するので、モーターシャフトにぴったりとぴったり合うホイールを設計するのは難しいと思いました。したがって、以下に示すように、ホイール内のドローンブレードを使用することにしました
これはより信頼性が高く頑丈であることがわかりましたが、さまざまなホイールデザインを試してみて、コメントセクションで何が効果的かをお知らせください。
Arduinoのプログラミング
このプロジェクトの完全なプログラム(Arduinonanoとprominiの両方)は、このページの下部にあります。RCプログラムの説明は以下の通りです
必要なヘッダーファイルをインクルードすることでプログラムを開始します。nRF24l01モジュールでは、ライブラリをArduino IDEに追加する必要があることに注意してください。このリンクを使用して、GithubからRF24ライブラリをダウンロードできます。それとは別に、ロボットの最低速度と最高速度はすでに定義しています。最小範囲と最大範囲は、それぞれ0から1024です。
#define min_speed 200 #define max_speed 800 #include
次に、セットアップ関数内で、nRF24L01モジュールを初期化します。混雑しておらず、モジュールが低電力で動作するように設定されているため、115バンドを使用しました。これらの設定を試してみることもできます。
void setup(){Serial.begin(9600); myRadio.begin(); myRadio.setChannel(115); // WIFI信号より上の115バンドmyRadio.setPALevel(RF24_PA_MIN); //最小電力低怒りmyRadio.setDataRate(RF24_250KBPS); //最低速度}
次にメインループ関数で、トランスミッタージョイスティックモジュールから送信された値を常に読み取るReadData関数のみを実行します。プログラムに記載されているパイプアドレスは、トランスミッタプログラムに記載されているものと同じである必要があることに注意してください。また、デバッグの目的で受け取った値を出力しました。値が正常に読み取られたら、Control Car関数を実行して、
Rfモジュールから受け取った値に基づいてRCカーを制御します。
void ReadData(){myRadio.openReadingPipe(1、0xF0F0F0F0AA); //読み取るパイプ、40ビットアドレスmyRadio.startListening(); // Transmintingを停止し、Reveicingを開始しますif(myRadio.available()){while(myRadio.available()){myRadio.read(&data、sizeof(data)); } Serial.print( "\ nReceived:"); Serial.println(data.msg); 受信= data.msg; Control_Car(); }}
コントロールカー機能内では、アナログ書き込み機能を使用してPWMピンに接続されたモーターを制御します。私たちの送信機プログラムでは、アナログ値をNanoのA0ピンとA1ピンから1から10、11から20、21から30、31から40に変換して、車をそれぞれ前進、後進、左、右に制御しました。以下のプログラムは、ロボットを順方向に制御するために使用されます
if(received> = 1 && receive <= 10)//前進{int PWM_Value = map(received、1、10、min_speed、max_speed); AnalogWrite(R_MR、PWM_Value); AnalogWrite(L_MR、PWM_Value); }
同様に、以下に示すように、リバース、左、および右の制御用にさらに3つの関数を作成することもできます。
if(received> = 11 && receive <= 20)// Break {int PWM_Value = map(received、11、20、min_speed、max_speed); AnalogWrite(R_MR、0); AnalogWrite(L_MR、0); } if(received> = 21 && receive <= 30)//左に曲がる{int PWM_Value = map(received、21、30、min_speed、max_speed); AnalogWrite(R_MR、PWM_Value); AnalogWrite(L_MR、0); } if(received> = 31 && receive <= 40)//右折{int PWM_Value = map(received、31、40、min_speed、max_speed); AnalogWrite(R_MR、0); AnalogWrite(L_MR、PWM_Value); }
ArduinoRCカーの動作
コードが完成したら、プロミニボードにアップロードします。テストのために、FTDIモジュールを介してバッテリーとボードを取り外します。コードを起動し、シリアルバッテリーを開くと、送信機のジョイスティックモジュールから値を受け取るはずです。バッテリーを接続すると、モーターも回転し始めます。
プロジェクトの完全な作業は、このページの下部にリンクされているビデオで見つけることができます。ご不明な点がございましたら、コメント欄にご記入ください。また、フォーラムを使用して、他の技術的な質問に対する迅速な回答を得ることができます。