Bluetoothは、組み込みシステムでの短距離無線通信用の最も単純で最も一般的なプロトコルです。Bluetoothは、あるデバイスから別のデバイスにデータを転送するためだけでなく、デバイスをワイヤレスで制御するためにも使用されます。現在、ほとんどすべての電子ガジェットがBluetoothをサポートしているため、組み込みアプリケーションにBluetooth制御オプションを含めることをお勧めします。
このチュートリアルでは、MATLABでBluetoothを使用してワイヤレスで通信する方法を学習します。片側にMATLABを備えたコンピューターの内蔵Bluetoothを使用し、反対側にArduinoを備えたHC-05を使用します。Bluetoothを介してMATLABとArduinoの間の通信を設定するには、コマンドウィンドウを使用する方法とMATLABGUIを使用する方法の2つがあります。両方の方法のArduinoコードは同じままです。MATLABを初めて使用する場合は、MATLABを使用した単純なLED点滅プログラムを開始し、MATLABで使用される基本的な用語を学習することをお勧めします。さらに多くのMATLABプロジェクトを探索できます。
- MATLABとArduino間のシリアル通信
- MATLABとArduinoを使用したDCモーター制御
- MATLABとArduinoを使用したステッピングモーター制御
- MATLABを使用した画像処理入門
必要なコンポーネント
- MATLABがインストールされたラップトップ(設定:R2016a以降のバージョン)
- Arduino UNO
- Bluetoothモジュール(HC-05)
- LED(任意の色)
- 抵抗器(330オーム)
- ジャンパー線
HC-05とArduinoとのインターフェースの詳細については、次の記事を確認してください。
- Arduinoを使用したBluetooth制御サーボモーター
- ArduinoとBluetoothを使用した音声制御LED
- ArduinoとBluetoothを使用した携帯電話制御AC
回路図
MATLABとArduino間のBluetooth通信の 回路図を 以下に示します。
MATLABコマンドウィンドウを使用したBluetooth通信
これは、ArduinoとMATLAB間のBluetooth通信をセットアップする簡単な方法です。ここで、MATLABはラップトップのBluetoothを使用して、Arduinoに接続されたHC-05を接続します。まず、MATLABからのシリアル着信データを読み取るようにArduinoをコーディングする必要があります(ラップトップのBluetoothを使用)。
次に、MATLABから送信されたこのBluetoothデータを使用して、Arduinoに接続されているすべてのものを制御できます。ここでは、 MATLABを使用してラップトップから制御できるLEDをArduinoに接続しました。
まず、指定されたArduinoコードをArduino UNOにアップロードしてから、MATLABコマンドウィンドウでコーディングを開始します。
#include
次に、MATLABとArduino間のBluetooth通信用のコマンドウィンドウに、以下のMATLABコードをコピーして貼り付けます。
instrhwinfo( 'Bluetooth'、 'HC-05'); bt = Bluetooth( 'HC-05'、1); fopen(bt);
以下のコードでは、コマンド fprintf(bt、 '0') を使用して、Arduinoに '0'を送信してLEDをオフにします。ここで、LEDをオンにしたい場合は、以下のコマンドを使用して、「0」ではなく「1」を送信します。
fprintf (bt、 '1');
使用可能なハードウェアに関する情報を確認するには、以下のコマンドを使用します
instrhwinfo ( 'type'、 'デバイスの名前');
ブルートゥースポートを開くには、以下のコマンドを使用します
fopen (bt);
Bluetoothを使用してMATLABからArduinoにデータを送信する完全なプロセスを理解するには、以下のビデオを確認してください 。
MATLABGUIを使用したBluetooth通信
MATLAB GUIを使用してBluetooth通信をデモンストレーションするために、MATLABで3つのグラフィカルボタンを作成して、Arduinoに接続されているLEDをオン、オフ、点滅させます。これらのグラフィカルボタンをクリックすると、データがBluetooth経由でMATLABからHC-05に送信されます。Arduinoには、MATLABからHC-05にBluetoothで送信されたデータを受信し、受信したデータに従ってLEDを制御するためのコードが含まれています。Arduinoコードは前のコードと同じままですが、違いは、以前はMATLABのコマンドウィンドウからデータ「1」と「0」を送信していましたが、3つのグラフィカルボタンをクリックすると同じデータが送信されることです。
GUIを起動するには、 コマンドウィンドウに 次のコマンドを 入力します
ガイド
ポップアップウィンドウが開き、下の画像に示すように、新しい 空白のGUI を選択します。
次に、以下に示すように、LEDをオン、オフ、および点滅させるための3つのプッシュボタンを選択します。
押しボタンのサイズを変更したり、形を変更したりするには、押しボタンをクリックするだけで、ボタンの角をドラッグできます。押しボタンをダブルクリックすると、その特定のボタンの色、文字列、タグを変更できます。下の写真に示すように、3つのプッシュボタンをカスタマイズしました。
あなたはあなたの選択に従ってボタンをカスタマイズすることができます。これを保存すると、MATLABの エディターウィンドウ にコードが生成され ます 。MATLAB GUIを使用してBluetoothデータを受信するときにArduinoが実行するタスクに従って、このコードを編集します。以下では、MATLABコードを編集しました。コマンドウィンドウ、エディターウィンドウなどの詳細については、MATLABチュートリアルの開始を参照してください。
このプロジェクトの最後に、MATLABからBluetooth経由でLEDを制御するための完全なMATLABコードを示します。さらに、ここにダウンロード用のGUIファイル(.fig)とコードファイル(.m)が含まれています。これらを使用して、要件に応じてボタンをカスタマイズできます。以下は、Arduinoに接続されたLEDを制御するために行ったいくつかの調整です。
以下のコードをコピーして、行番号に貼り付けます。74をセットアップするか、MATLABをラップトップのBluetoothに接続します。
すべてクリア; グローバルBT; instrhwinfo( 'Bluetooth'、 'HC-05'); bt = Bluetooth( 'HC-05'、1); fopen(bt);
ここで、 fopen(bt) は、データを送信するためのBluetoothポートを開くために使用されます。
これで、下にスクロールすると、GUIの3つのプッシュボタンに対して3つの関数が作成されていることがわかります。次に、クリックで実行するタスクに応じて関数にコードを記述します。
LEDのON ボタンの機能、コピーして、LEDをONにするだけで、関数の終了前にコードの下に貼り付けます。以下のコードでは、 fprintf(bt、 '1') は、ラップトップのBluetoothを使用してMATLABからHC-05に「1」を送信するために使用されます。ArduinoはHC-05を介してこのデータ「1」を受信し、11番目のピンをHIGHにすることでLEDを点灯させます。
グローバルBT; fprintf (bt、 '1');
では LED OFFの ボタンの機能、コピーして、LEDをオフにするだけの機能の終了前に、コードの下に貼り付けます。以下のコードでは、 fprintf(bt、 '0') は、ラップトップのBluetoothを使用してMATLABからHC-05に '0'を送信するために使用されます。ArduinoはHC-05を介して「0」を受け取り、11番目のピンをLOWにすることでLEDをオフにします。
グローバルBT; fprintf (bt、 '0');
で BLINKの ボタンの機能、LEDを点滅させるコードの下に使用します。A 用の ループはLED 10回点滅するのに使用されます。
グローバルBT; for i = 1:10 fprintf(bt、 '1'); 一時停止(0.5); fprintf(bt、 '0'); 一時停止(0.5); 終わり
MATLAB GUIコーディングを完了し、回路図に従ってハードウェアをセットアップした後、実行ボタンをクリックするだけで、編集したコードを.mファイルで実行できます。
MATLABが応答するまでに数秒かかる場合があります。以下に示すように、画面の左下隅に表示されるBUSY表示が表示されるまで、GUIボタンをクリックしないでください。
すべての準備ができたら、LED-ON、LED OFF、およびBLINKボタンをクリックして、それぞれLEDをオン、オフ、および点滅させます。このプロジェクトのすべてのコードファイルは、ここからダウンロードするか、以下のコードを使用できます。
以下のビデオをチェックして、MATLABGUIを使用してBluetooth経由でMATLABからArduinoにデータを送信する完全なプロセスを理解し てください。