Arrow Electronic Components Online

Arduino Bluetooth Control: ArduinoからArduinoへのBluetoothによる制御

ワイヤレス30 4月 2018
Arduinoボードがブレッドボードに取り付けられ、ジャンパーワイヤー、抵抗器、黄色のプッシュボタンを使ってBluetoothモジュールに接続されているクローズアップビュー。
記事をすべて見る

平均的な人が「Bluetooth」という言葉を聞くと、オーディオヘッドセットやスピーカーを思い浮かべるかもしれません。両方のデバイスはBluetooth技術を使用していますが、電子機器の愛好者は、お気に入りのポッドキャストを聞く以上にこの短距離通信方法を活用できることを知っています。
 
Bluetoothは興味深く革新的な方法で情報を伝達することができます。我々の好きな利用方法の一つは、Arduinoベースのロボットや他のデバイスをスマートフォンに接続して制御することです。
 
次のArduinoロボティクスプロジェクトのためにBluetooth技術を始める方法についての説明です。

ArduinoからArduinoへのBluetooth通信はどのように機能しますか?

Bluetoothシリアル信号を使用することで、電話はまるでハードウェア接続があるかのようにArduinoを完璧に制御します。Bluetooth TerminalやArduinoRCのようなアプリは、このシナリオで電話をインターフェースデバイスにするのに優れた働きをします。   さらに良くなります。適切なセットアップを行えば、コンピュータや電話をまったく使用せずに、2つのArduinoボードを相互に通信させることができます。Arduino同士の通信は、正しく操作するために少し複雑ですが、制御の可能性を大幅に広げます。

ステップ1: 回路を構築する

A wiring diagram showing an Arduino board connected to a breadboard and an HC‑05 Bluetooth module using jumper wires, resistors, and a push button.

このビルドでは、上記のFritzing図に示されているように、同一のブレッドボードを2つ構築する必要があります。これらのうちの各ブレッドボードは、Arduino Nanoを使用してデータをHC-05 Bluetoothモジュール経由で送信し、相手側がこのデータを受信してオンボードLEDを点滅させて応答します。コンピュータのシリアルインターフェイスを介して、一方のArduinoからもう一方に信号を送ることができますが、ボタン入力は文字をワイヤレスで送信するショートカットキーを提供します。   回路を作成するために必要なものは次のとおりです:

  • (2) Arduino Nanos
  • (2) ブレッドボード
  • (2) HC-05 Bluetoothモジュール
  • (2) 押しボタン
  • (2) 1k抵抗
  • (2) 2k抵抗
  • (2) 20k抵抗
  • ジャンパーワイヤー
  • (2) mini-USBケーブル
注意: 多くの部品はお好みに応じて置き換えることができます。例えば、Arduino UnoはNanoと同様にうまく動作します。また、回路図ではHC-05のRXピンに電圧分割回路を使用していることがわかります。HC-05モジュールは3.3Vで動作するため、そのピンに過電圧を提供しないようにこの選択をしました。

Arduino Bluetoothモジュールをペアリングする

Two computer windows side by side showing Arduino serial monitor output, with text indicating the device is ready and displaying test messages over a COM port.

図2:Arduino IDEの別のインスタンスを開くことで、2つの異なるボードを同時に操作できます。   回路のセットアップが完了したら、次に2つのBluetoothモジュールを互いに通信できるように設定する必要があります。次のステップは以下のとおりです:

  1. リンク先のHC-05_AT_MODE_01コードを1つのArduinoボードに転送します。そして、モジュールをオンにしている間にボードのボタンを押し続けることで、HC-05 BluetoothモジュールをATモードにします。
  2. ボードのLEDがゆっくりオンとオフを繰り返します。Arduino IDEでシリアルモニタを開き、「AT」と入力します。すべてが正常に機能していれば、端末から「OK」応答が返されます。
  3. 「AT+ROLE=1」と入力してHC-05をマスターとして設定し、その後「AT+CMODE=1」と入力して任意のアドレス(モジュール)とペアリングできるようにします。
  4. デバイスをリセットすると、マスターとして動作するHC-05が通常スレーブモジュールとして設定されている他のHC-05とペアリングします。
マスターをスレーブに変更する必要がある場合は、上記のようにシリアルでインタフェースし、「AT+ROLE=0」と入力します。スレーブモードでのみ動作するHC-06モジュールを使用することも可能です。詳細はステップ1のリンクからコードを確認してください。また、これらのモジュールを結合する際には高度な指示を使用することもできます。   このように2つのArduinoボードを操作する場合、ショートカットからではなくIDE内のファイル/新規やファイル/開くを使用せずに、2つのArduino IDEインスタンスをロードすることが非常に役立ちます。これはプログラムのロードやシリアルポートの同時モニタリングが可能で、プログラミングとトラブルシューティングが大幅に容易になります。

Arduino Bluetoothモジュールをペアリングする

Two breadboards each containing an Arduino board connected with jumper wires and components, with USB cables attached and indicator LEDs lit on one board.

図 3: ボタンを押すと他の Arduino Nano のライトが点灯します。プログラミング中に各ポートを識別するために、付箋で使われているシリアルポートを示します。   HC-05/Arduinoを接続したら、ここにあるソフトウェアを各Arduinoにロードし、以下のステップに従ってください:

  1. 各IDEインスタンスのためにシリアルモニタを開き、「O」と「F」を入力して試してみてください(大文字小文字を区別します)。
  2. 反対側のボードは、自分のボードのLEDのオンオフで応答するのが見えるはずです。ボタンを押してください。これによって「B」キャラクターが反対側のボードに送信され、LEDが短時間点滅します。
  3. この機能をテストするためにシリアルモニタで「B」を入力することもできます。
  4. すべてが正しく動作していることに満足したら、どちらかのアセンブリを切断し、部屋の反対側に接続し、ライトを点滅させることができます。
2つのArduinoボードを接続したところで、クリエイティブになる時です。Bluetoothで電話を使ってロボットを制御していたかもしれませんが、物理的なキーパッドが欲しいかもしれません。あるいは、リモートで操作するカスタムコンピュータインターフェースを設計したいかもしれません。Bluetooth技術は、あなたのロボット工学プロジェクトに新たなポータブルな次元を加えることができます。

記事タグ

グローバル
ロボティクス
自律機械
オートメーション
ワイヤレス
Arduino S.r.l.

関連コンテンツ