注目キーワード

【Arduino】ディスプレイ付きマイコン「M5StickC Plus」 Bluetooth(無線)でPCにデータを送信する!(Bluetooth Serial)

すけろく
これまで、M5StickC PlusでWi-Fi接続を使ったデータの
やり取りは見てきたが、Bluetoothはまだだな。
げんろく
確かに。
Bluetoothについてはまだだった。
すけろく
近距離ならBluetooth通信も有効だ。
何か作れないかの。
げんろく
では、今回はBluetoothを使った通信の一つ、
Bluetooth Serialについて触れてみよう。
この記事では、ディスプレイ付きマイコン「M5StickC Plus」に搭載されている「Bluetooth」を使って、パソコンとの通信してみます。
Bluetoothを使った通信はいろいろありますが、今回は「Bluetooth Serial」というものを使います。
「M5StickC Plus」の6軸IMU(慣性測定装置)から、本体の傾きを計算し、それをパソコンに送信してグラフ化してみます。

今回使用するマイコンはこちら!

M5StickC Plus
画面付きで小型のマイコンです。旧版のM5StickCから、ディスプレイサイズ、バッテリ容量が変更になっています。ブザーも実装されました。通信(WiFi/Bluetooth)機能、6軸加速度センサーも搭載されています。
Aruduino で開発できます。Amazonで確認

これからはじめる方にお勧めの参考図書はこちら!

Bluetooth Serialって何?

Bluetoothとは、無線通信技術のひとつです。

10m程度の短距離の通信規格で、主にスマホ、タブレット、やパソコンの周辺機器を無線で繋ぐ技術として使われていますよね。

具体的には無線イヤホンやスピーカー、マウスやキーボードといった機器がBluetoothを使って、ワイヤレス接続しています。

 

また、IoTを開発する際に、Arduinoで開発されたデバイスを、PCなどと連携させたいパターンは多くあります。

例えば、

  • PCからArduinoデバイスへ設定値を上書きする
  • Arduinoデバイスで取得したデータをPCに送信する

などが、具体的な利用シーンではないでしょうか。

 

このような場合、有線であれば、ケーブルをデバイスにつないで、シリアル接続でデータのやり取りをします。シリアル接続は、Arduino標準機能にもなっていて、連携先のPCなどでもサポートされているので使い勝手が良いからです。

しかし、有線接続するとデバイスとPCなどの配置などが制限されてしますので、無線でデータのやり取りができたほうが良いのではないでしょうか。

そこで使用できるが、「Bluetooth Serial」です。正式にはBluetoothのSPP(Serial Port Protocol)といいます。

SPPとは、Bluetoothのプロファイルのひとつで、Bluetooth搭載機器を仮想のシリアルポート化するためのプロファイルのこと。

Bluetooth Serialを使ってデータを送信する

それでは、実際にプログラミングしてみましょう。

 

6軸IMU制御に関する内容は、次の記事で紹介していますので、ご覧ください。

6軸IMU制御方法はこちら

関連記事

すけろく M5StickC Plusには、筐体の動きや傾きを検知する センサーが標準で搭載されているらしいな。 げんろく 6軸IMUのことか。 加速度、角速度を測るセンサーだ。 計算で姿勢角度も分[…]

 

Bluetooth Serialを使うためには次のヘッダーをプログラムに追加して、生成します。

#include "BluetoothSerial.h"
BluetoothSerial SerialBT;

 

Bluetooth Serialでデータを送信する際には、次の関数で制御します。

関数 説明
begin(“DeviceName”); シリアル接続を開始します。DeviceNameで識別されます。
println(“出力内容”); 出力内容を送信します。

 

Bluetooth Serialを使った6軸IMUデータ送信プログラム

Arduino IDEを起動して、「ファイル」メニューから「新規ファイル」を選択し、表示されるスケッチに以下のように記述します。

 Arduino IDE スケッチ例

 

 M5StickC Plusへの書き込み

  1. 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
  2. 「ツール」メニューから「ボード」情報を確認し、M5StickC Plusであるか確認します。
    この際、「シリアルポート」にマイコンを接続したCOMポートが指定されているかも確認します。
  3. 「ツール」メニューから「Patition Scheme」を「”No OTA(Large APP)”」にします。
    ※ここを変更しないと、スケッチが大きいというエラーになります。
  4. 「ツール」メニューから「シリアルモニタ」を選択してシリアルモニタを起動します。
  5. 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。

 

 プログラム実行結果

プログラムの書き込みが終了したら、M5StickC Plusのディスプレイ上には次のように表示されています。

 

上部にある名前が「デバイス名」になります。

次の手順で、WindowsOSにデバイスをペアリングして、シリアルモニターでデータを確認します。


メインメニューから「設定」を選択します。

「Bluetoothとデバイス」の設定を確認し、Bluetoothが「オン」になっていることを確認します。
確認後、「デバイスの追加」ボタンを押します。

「デバイスを追加する」ウィンドウで、「Bluetooth」を選択します。

デバイスが検知されますので、M5StickC Plusの画面上にあるデバイス名と同じものを選択してください。
ペアリングができたら「完了」を押します。

次にメインメニューを右クリックして表示されるメニューから「デバイスマネージャー」を開きます。

デバイスマネージャー画面から、ポート(COMとLPT)を展開します。
「Bluetoothリンク経由の標準シリアル(COM~)」というものが2つ追加されます。
※後で接続に使うのは番号の大きいほうなのでそちらを覚えます。

Arduino IDEで「ツール」から「シリアルポート」を選択して、先ほど追加されたCOMポートを選択します。

Arduino IDEで「ツール」から「シリアルモニタ」を選択して起動します。

シリアルモニタが起動して、左の画像のようにデータが表示されればOKです。

 

取得したデータをグラフにしてみました。

M5StickC Plusを手にもって動かすとそれぞれの値が0から遠くなり山が現れます。

これを使うと面白いものができるかもしれませんね!

 

 

編集後記

いかがだったでしょうか。

M5StickC Plusの傾きデータがPC上のシリアルモニタに無線で送信され、無事見ることができました。

これでデータロギング中は、PCとの接続等なくデータの送信ができますね!

今後、いろいろと使えそうです。

 

記事は以上になります。

最後までご覧いただきありがとうございました。

今回使用するマイコンはこちら!

M5StickC Plus
画面付きで小型のマイコンです。旧版のM5StickCから、ディスプレイサイズ、バッテリ容量が変更になっています。ブザーも実装されました。通信(WiFi/Bluetooth)機能、6軸加速度センサーも搭載されています。
Aruduino で開発できます。Amazonで確認

これからはじめる方にお勧めの参考図書はこちら!