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

Wi-FiRCカー-Qi対応

コンポーネントと消耗品

>
IDT Qi5W送信機プロトタイプキット
× 1
IDT Qi5Wレシーバープロトタイプキット
× 1
Arduino MKR1000
× 1
•Arduino用の2WDロボットカーシャーシ
× 1
L293DNE
× 1
CN6009-ステップアップブーストパワーコンバータモジュール
× 1
3.7VLi-Poバッテリー
× 1
1N4007 –高電圧、高電流定格ダイオード
× 8
LED(汎用)
× 1
抵抗221オーム
× 1
タイラップ
× 5
ブレッドボード(汎用)
(オプション)
× 1

必要なツールとマシン

>
はんだごて(汎用)
ホットグルーガン(汎用)
ドライバー
電圧計

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

>
Arduino IDE

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

このプロジェクトで何を構築しますか?

これは、駐車中にワイヤレスで自動的に充電されるWi-Fi制御のRCカーを作成する方法を段階的に示すプロジェクトです。

どのように機能しますか?

プロジェクトの頭脳はArduinoMKR1000であり、Wi-Fiを介してモバイルデバイスに接続されています。 Arduinoボードは3.7VLi-Poバッテリーで駆動されます。モーターコントロールには、L293DNEモータードライバーが使用されます。ただし、動作するには少なくとも4.5Vが必要です。昇圧ブースト電力変換モジュールを使用して電圧を3.7Vから5Vに昇圧し(低速電圧を高電圧に変換)、このようにしてモータードライバーに5Vで電力を供給します。

バッテリーを充電するために、ArduinoMKR1000ボードはLi-Poバッテリー用の自動充電システムを備えています。外部電源(5V DC)が接続されている場合、ボードに接続されているバッテリーは充電されています。つまり、 IDT P9025AC-R-EVK – Qi 5W 受信機は外部ソース(5V DC)としてArduinoボードに接続されます。車が充電ステーション( IDT P9038-R-EVK – Qi 5W )の上に駐車するとき 送信機)、バッテリーが充電されます。

制御システムには、高速と低速の2つの速度モードがあります。

ビルドする方法は?

ハードウェアパーツ

モーターポールとIDTレシーバーボードのはんだワイヤー(赤いワイヤーでピンアウト、黒いワイヤーでピンGND)。このステップでは、はんだごてと6本のワイヤーが必要になります。

<図> <図> <図> <図>

電子回路を作る。ブレッドボードを使用して回路を作成するか、すべての接続をはんだ付けすることができます。

<図>

注意:少なくとも700mAhの容量の3.7V Li-Poバッテリーを使用してください!そうしないと、バッテリーが過熱して爆発する可能性があります!

CN6009の調整。電力変換モジュールを5Vにステップアップします。 CN6009の出力値を調整するには、ドライバーを使用します。 必ず出力電圧を確認してください(電圧計をピンOUT +とOUT-に接続して)。

<図>

IDTワイヤレスパワーQi5Wレシーバーの接続。車の底にあるワイヤレスパワーレシーバーのベースを作るために、プラスチック片(プラスチックカードなど)を用意します。次に、プラスチック片とレシーバーをシリコンで車の底に接着します。最後に、IDTレシーバーの赤いワイヤーをarduinoのVINピンに接続し、黒いワイヤーをGNDピンに接続します。

<図> <図>

車両を安定させる。結束バンドで固定すると、バッテリーとブレッドボードが車両に巻き付けられます。

<図>

ソフトウェアパート–Wi-Fi接続

この部分では、コードをコピーするだけです。コードファイルにネットワークのSSIDとパスワードを入力します(コードファイルの12、13行目)。コメントの指示に従う必要があります。コードは現在、WPA / WPA2ネットワークで動作するように設定されています。 WEPまたはオープンネットワークに接続する場合は、コードのコメントの指示に従ってください(34〜37行目)。

<図>

使い方は?

ステップ1:ArduinoMKR1000に接続する

車両を制御するにはWi-Fi接続が必要です。あなたは2つの方法でそれを達成することができます。 1つ目は、モバイルデバイスでWi-Fiホットスポットを有効にし、ボードをホットスポットに接続することです。 2つ目は、モバイルデバイスとArduinoボードを同じWi-Fiルーターに接続することです。 ArduinoボードにアップロードされるコードファイルにルーターのSSIDとパスワードの設定を必ず入力してください。

注:最初の方法(Wi-Fiホットスポット)を使用することをお勧めします。この方法では、ルーターを必要とせずに車両を制御できるためです。

ステップ2:ArduinoMKR1000のIPアドレスを取得する

Arduinoボードがモバイルデバイスのホットスポットに接続されている場合は、Wi-Fiホットスポット設定に移動すると、ボードのIPアドレス(例:192.168.1.1)が表示されます。

ArduinoボードがWi-Fiルーターに接続されている場合は、ルーターの設定から確認する必要があります。

車のLEDは、指定されたネットワークへの接続が成功し、サーバーがアクティブ化されたことを示します。

ステップ3:ArduinoMKR1000のWebサーバーにアクセスする

ブラウザに移動し、URLボックスにArduinoのIPアドレスを入力します。

ステップ4:充電ベースを接続する

IDT P9038-R-EVK – Qi5Wトランスミッターを5VDCアダプターを使用して壁のコンセントに接続します。

ステップ5:楽しんでください!

充電時間!!

テストドライブ:

PCBWebのガーバーファイル

コード

  • Arduino_IDT_Wi-Fi_Car.ino
Arduino_IDT_Wi-Fi_Car.ino Arduino
12〜13行目の例とパスワードをそれぞれssidとパスワードに置き換えます。
 #include  #include  const int motor1Control =2; //右motorconstint motor2Control =3; //左motorconstint motor1Input1 =4; const int motor1Input2 =5; const int motor2Input1 =8; const int motor2Input2 =9; const int wifiLed =10; // Wi-Fi接続が成功したことを示すためにcharssid [] ="example"; //ネットワークに入力しますSSID(name)char pass [] ="password"; //ネットワークに入力しますpasswordintkeyIndex =0; //ネットワークキーのインデックス番号を入力します(オプション-WEPにのみ必要)int status =WL_IDLE_STATUS; String readString; WiFiServer server(80); // serverStringのポートを定義しますspeedMode ="fast"; void setup(){pinMode(motor1Control、OUTPUT); pinMode(motor2Control、OUTPUT); pinMode(motor1Input1、OUTPUT); pinMode(motor1Input2、OUTPUT); pinMode(motor2Input1、OUTPUT); pinMode(motor2Input2、OUTPUT); pinMode(wifiLed、OUTPUT); // Wifiネットワークへの接続を試みます:while(status!=WL_CONNECTED){// WPA / WPA2ネットワークに接続します。オープンネットワークまたはWEPネットワークを使用している場合は、次の行を変更します。//WEPネットワークの場合は、次のように置き換えます。status=WiFi.begin(ssid、keyIndex、pass); //オープンネットワークの場合は、次のように置き換えます。status=WiFi.begin(ssid);ステータス=WiFi.begin(ssid、pass); //接続を10秒待ちます:delay(10000); } // Webサーバーを開始しますserver.begin(); //サーバーが実行中であることを示しますdigitalWrite(wifiLed、HIGH);} void loop(){//着信クライアントをリッスンしますWiFiClient client =server.available(); if(client){// httpリクエストは空白行で終了しますbooleancurrentLineIsBlank =true; while(client.connected()){if(client.available()){char c =client.read(); //行の終わりに到達し(改行文字を受信)、行が空白の場合、httpリクエストは終了しているため、//(readString.length()<100の場合に応答を送信できます。 ){//文字を文字列に格納するreadString + =c; } if(c =='\ n'){//標準のhttp応答ヘッダーを送信client.println( "HTTP / 1.1 200 OK"); client.println( "Content-Type:text / html"); client.println(); client.println( "<!DOCTYPE HTML>"); client.println( ""); client.println( ""); client.println( ""); client.println( ""); client.println( ""); //転送するためのボタンclient.println( " FORWARDS 
"); client.println( "
"); //左に曲がるボタンclient.println( " "); //車を停止するためのボタンclient.println( " STOP " ); //右に曲がるボタンclient.println( " "); client.println( "
"); //後方に移動するためのボタンclient.println( " BACKWARDS "); client.println( "
"); client.println( "
"); //後方に移動するためのボタンclient.println( "

SPEED MODES

"); client.println(" FAST "); client.println( " SLOW "); client.println( " "); client.println(" "); break;} //クリックされたボタンを決定します(存在する場合)//高速モードボタンif(readString.indexOf("?fast ")> 0){speedMode ="fast"; //次のコマンドを取得できるようにreadStringをクリアしますreadString ="";} //スローモードボタンif(readString.indexOf( "?slow")> 0){speedMode ="slow"; //次のコマンドを取得できるようにreadStringをクリアしますreadString ="";} //高速モードif(speedMode =="fast"){if(readString.indexOf( "?moveForwards")> 0 ){moveForwards(); //次のコマンドを取得できるようにreadStringをクリアしますreadString ="";} if(readString.indexOf( "?moveBackwards")> 0){moveBackwards(); //クリア次のコマンドを取得できるようにするreadStringreadString =""; }} else if(speedMode =="slow"){//低速モードif(readString.indexOf( "?moveForwards")> 0){moveForwardsSlow(); //次のコマンドを取得できるようにreadStringをクリアしますreadString =""; } if(readString.indexOf( "?moveBackwards")> 0){moveBackwardsSlow(); //次のコマンドを取得できるようにreadStringをクリアしますreadString =""; }} if(readString.indexOf( "?turnLeft")> 0){turnLeft(); //次のコマンドを取得できるようにreadStringをクリアしますreadString =""; } if(readString.indexOf( "?turnRight")> 0){turnRight(); //次のコマンドを取得できるようにreadStringをクリアしますreadString =""; } if(readString.indexOf( "?stopMoving")> 0){stopMoving(); //次のコマンドを取得できるようにreadStringをクリアしますreadString =""; }}} // Webブラウザにデータdelay(1);を受信する時間を与えます。 //接続を閉じます:client.stop(); }} //前進するためのコマンドvoidmoveForwards(){digitalWrite(motor1Control、HIGH); digitalWrite(motor2Control、HIGH); digitalWrite(motor1Input1、LOW); digitalWrite(motor1Input2、HIGH); digitalWrite(motor2Input1、LOW); digitalWrite(motor2Input2、HIGH);} //後方に移動するためのコマンドvoidmoveBackwards(){digitalWrite(motor1Control、HIGH); digitalWrite(motor2Control、HIGH); digitalWrite(motor1Input1、HIGH); digitalWrite(motor1Input2、LOW); digitalWrite(motor2Input1、HIGH); digitalWrite(motor2Input2、LOW);} //右に曲がるコマンドvoidturnRight(){//ゆっくりと曲がるために、より低い電圧が提供されます-より良い制御analogWrite(motor1Control、0); analogWrite(motor2Control、200); digitalWrite(motor1Input1、HIGH); digitalWrite(motor1Input2、LOW); digitalWrite(motor2Input1、LOW); digitalWrite(motor2Input2、HIGH);} //左に曲がるコマンドvoidturnLeft(){//ゆっくりと曲がるために、より低い電圧が提供されます-より良い制御analogWrite(motor1Control、200); analogWrite(motor2Control、0); digitalWrite(motor1Input1、LOW); digitalWrite(motor1Input2、HIGH); digitalWrite(motor2Input1、HIGH); digitalWrite(motor2Input2、LOW);} //カルボイドを停止するためのコマンドstopMoving(){digitalWrite(motor1Control、LOW); digitalWrite(motor2Control、LOW); digitalWrite(motor1Input1、LOW); digitalWrite(motor1Input2、LOW); digitalWrite(motor2Input1、LOW); digitalWrite(motor2Input2、LOW);} //低速前進のコマンドvoidmoveForwardsSlow(){analogWrite(motor1Control、200); analogWrite(motor2Control、200); digitalWrite(motor1Input1、LOW); digitalWrite(motor1Input2、HIGH); digitalWrite(motor2Input1、LOW); digitalWrite(motor2Input2、HIGH);} //低速後方移動用コマンドvoidmoveBackwardsSlow(){analogWrite(motor1Control、200); analogWrite(motor2Control、200); digitalWrite(motor1Input1、HIGH); digitalWrite(motor1Input2、LOW); digitalWrite(motor2Input1、HIGH); digitalWrite(motor2Input2、LOW);}

カスタムパーツとエンクロージャー

Arduino%20IDT%20Wireless%20chargeing%20wifi%20car.cad

回路図


製造プロセス

  1. C# コンストラクター
  2. C# ネストされたクラス
  3. C# コンストラクターのオーバーロード
  4. Wi-Fi対応IoTの脅威の高まり
  5. 精密自動車エンジン部品
  6. 自動車のジャッキシステムを理解する
  7. 自動車エンジンのシリンダー構成
  8. 車のエンジンの仕組みを理解する
  9. 車のガス漏れを修理するにはどうすればよいですか?
  10. 車のアップグレードは保証に影響しますか?
  11. 車のドアハンドルを修理する方法