Arduinoを使用してプロジェクトを実行している間、プログラムをアップロードするには、常にArduinoをPCに接続する必要があります。しかし、ロボットプロジェクトのようにボードを常にPCに接続するのは非常に不快な場合があり、ロボットをラボトップの近くに移動して再プログラムする必要があります。この問題は、Arduinoをワイヤレスでプログラミングすることで解決できます。そこで、ここでは、BluetoothモジュールHC-05を使用してArduinoをワイヤレスでプログラムする回路を構築しています。
使用されるコンポーネント:
- Arduino UNO
- HC05Bluetoothモジュール
- パフォーマンスボード
- 男性、女性のヘッダー
- ジャンパー
- 1K、2.2K抵抗
- 0.1uFコンデンサ
- 9V電池
HC-05Bluetoothモジュール
HC05は基本的にシリアルポートプロトコル(SPP)をサポートするBluetoothモジュールであり、多くのワイヤレスアプリケーションで広く使用されています。HC05は、マスターモードとスレーブモードを切り替えるために使用でき、空きスペースでの伝送距離は20〜30メートルです。これまで、HC-05やその他のBluetoothモジュールを使用して多くのBluetoothプロジェクトを作成してきました。
ピンアウト:
ピンの説明:
- + 5V:+ 5Vで供給できるHC05の電源ピン。
- GND:グランドピン。
- TX: UARTのトランスミッタピンとして使用されます。
- RX: UARTのレシーバーピンとして使用されます。
- EN / KEY: HC05のピンを有効にします。フローティング状態のままにすることも、3.3V電源に接続してHC05を有効にすることもできます。グラウンドに接続されている場合、モジュールは無効になります。また、ATコマンドモードでHC05を作成するためにも使用されます。
- STATE:どのデバイスにも接続されていない場合はLOW、どのデバイスに接続されている場合はHIGHのステータスピン。
ATコマンド用のArduinoUNOのプログラミング:
まず、シリアルモニターを介してATコマンドに応答するようにArduinoをプログラムする必要があります。プログラムは非常にシンプルで、このチュートリアルの最後に添付されています。ここでは、プログラムを1行ずつ説明します。
まず、ソフトウェアシリアルライブラリのヘッダーファイルをインクルードし、Arduinoでソフトウェアシリアルのトランスミッターピンとレシーバーピンを定義します。この場合はピン3と2です。
#include
次に、セットアップ機能で、ハードウェアシリアルポートとソフトウェアシリアルポートの両方のボーレートを定義します。ここでは、それぞれ9600と38400と見なしています。
void setup(){Serial.begin(9600); Serial.println( "ATコマンドを入力してください:"); HC05.begin(38400); }
ではループ機能、任意のコマンドをHC05に与えられたときに、2つの条件- 1であるがある、それはArduinoのシリアルモニタでそれらを書き込みます。もう1つの条件は、Arduinoシリアルモニターでコマンドが実行され、HC05に送信される場合です。
void loop(){if(HC05.available())Serial.write(HC05.read()); if(Serial.available())HC05.write(Serial.read()); }
ATコマンドモードでのHC05の構成:
まず、下の回路図に従ってコンポーネントを接続します。次に、以下の手順に従って、モジュールをATコマンドモードにします。
HC05のATモードに入るには、KEYボタンを使用する必要があります。モジュールのLEDが2秒間隔で点滅し始めるまで、最初にキーボタンを長押しします。LEDが2秒間隔で点滅し始める場合は、モジュールがコマンドモードになっていることを意味します。ArduinoIDEのシリアルモニターを使用してATコマンドを与えることができるようになりました。
モジュールにキーボタンがない場合は、モジュールのKEY / ENピンを3.3ボルトのピンに接続して、モジュールをコマンドモードに切り替えることができます。
ワイヤレスプログラミング用にHC05を構成するATコマンド:
スケッチがArudinoにアップロードされたら、9600ボーレートでシリアルモニターを開き、CR + NLを選択すると、ATコマンドをHC-05に送信できるようになります。
上記の手順が正常に完了したら、適切なATコマンドを送信してHC05を構成します。次のATコマンドをArduinoシリアルモニターで1つずつ送信すると、OK応答が返されます。それ以外の場合は、接続を再確認して再試行してください。
AT
HC05の基本的なテストコマンドです。ATを送信するたびに、OKを返す必要があります。
AT + ORGL
このコマンドは、HC05のデフォルト設定を復元します。デフォルト設定は、スレーブモード、パスワード= 1234およびボーレート= 38400ビット/秒です。
AT + NAME = CIRCUITDIGEST
このコマンドは、HC05モジュールの名前を設定します。私の場合、「CIRCUITDIGEST」という名前を付けました。
AT + ROLE = 0
このコマンドは、HC05をスレーブモードに設定します。
AT + POLAR = 1,0
このコマンドは、PIOLEDドライブ構成を設定します。
AT + UART = 115200,0,0
これにより、ボーレートが115200に変更され、ストップビットが0、パリティが0になります。
AT + INIT
これにより、モジュールのSPPプロファイルが初期化されます。
の回路接続
ATコマンドをArduinoに正常に送信したら、すべての接続を削除し、以下の回路図に従って再構築します。
私の場合、Arduinoピンを簡単に取り付けて、Arduinoシールドとして機能できるように、perfboardにはんだ付けしました。はんだ付けが完了すると、次のようになります。
次に、下の画像のようにこのシールドをArduinoに配置し、Arduinoを9Vバッテリー電源に接続します。
その後、PCでBluetooth設定を検索し、[Bluetoothデバイスの追加]をクリックします。これにより、新しいデバイスがスキャンされ、結果としてBluetoothデバイスが取得されます。デバイスを選択し、[次へ]をクリックします。 「デバイスペアリングコードを入力してください」オプションをクリックします。ペアリングコードを要求されたら、パスワードとして「1234」を入力します。次に、デバイスのペアリングが成功したことを確認します。
デバイスのペアリングが成功したら、次のタスクはHC05BluetoothモジュールのCOMポートを見つけることです。これを行うには、[Bluetooth設定の変更]を検索し、[COMポート]タブをクリックします。これにより、2つのCOMポートが表示されます。1つは着信用で、もう1つは発信用です。プログラムのアップロード中にさらに必要になるため、発信COMポート番号を書き留める必要があります。
最後のステップは、サンプルプログラムをArduinoにワイヤレスでアップロードして、このArduinoワイヤレスプログラミングが完全に機能しているかどうかを確認することです。このために、Arduino IDEサンプルプログラムから任意のArduinoプログラムを選択します。ここでは、LED点滅プログラムを選択しました。ボードでArduinoのUNOを選択し、正しいCOMポートを選択し、ポート上図のように、。その後、アップロードボタンをクリックすると、Arduinoボードに正常にアップロードされます。
以下のデモビデオをチェックして、ワイヤレスで手間のかからないプログラミングをお楽しみください!!!