前回Arduinoを紹介しましたが、Arduinoボードには接続モジュール(Wifi、Bluetooth)が付いていません。従いまして外部の接続を設定しなければなりません。例えば:Bluetoothモジュール HC-05、HC-06です。今回はESP32というボードでの接続方法をご紹介したいと思います。
今回のデモはHoloLens2とESP32ボードを接続してHololens2でLEDをON/OFFするようにご紹介します。

HoloLen2とIoTデバイスを接続する方法。
M5StickCとは
M5StickCはM5という会社が発売したIoTデバイスです。基本的にはESP32-PicoボードとIMUユニットとバッテリーと液晶画面を全部小さなデバイスに入れています。
開発フラットフォームはArduino、Micropython、UIFlowです。
今回Arduinoフラットフォームでの開発を紹介します。
Arduinoのインストール方法は下記のURLを参照ください。
M5ライブラリをArduinoにインストールする方法
インストールしたArduinoを開く。
ファイル➞環境設定を選択する。

M5ライブラリをArduinoにインストールする方法
下記のURLを「追加のボートマネージャーのURL」に貼り付ける。
https://dl.espressif.com/dl/package_esp32_index.json

下記のURLを「追加のボートマネージャーのURL」に貼り付ける。
次に、タスクバーからツール➞ボード➞ボードマネージャを選択する。

ボードマネージャを選択する
検索フィールドで「esp32」を検索してesp32ボードをインストールする。

esp32ボードをインストールする
インストールできたら、ツール➞ボード➞M5Stick-Cを選択する。

M5Stick-Cを選択する
現在、M5Stick-Cのボードはインストール完了となりましたが、コードが書けません。
ライブラリをまだインストールしていないため、M5Stick-Cのライブラリをインストールしましょう。
タスクバーにスケッチ➞ライブラリをインクルード➞ライブラリを管理を選択する。

ライブラリを管理を選択する
ライブラリマネージャが表示され[m5stickc]で検索して「M5StickC」をインストールする。

で検索して「M5StickC」をインストールする
現在、M5StickCの設定が完了しました。次はBluetoothとLEDのハンドルをご紹介いたします。
次はLEDをM5StickCに設置する。
画像のように設置する。
LEDの短い方の足とGNDをつないで長い方の足とG26をつなぎます。

次はLEDをM5StickCに設置する
M5StickCプログラミング
PCとつないでコードを書きましょう。

PCとつないでコードを書きましょう

Connect-Hololens-Demo-C#
#include <M5StickC.h>
#include <BluetoothSerial.h>
int led = 26; //LEDの長い方の足のアドレス
char message; //Hololensからの取得するデータ
String sta = “”; //LEDの状態
BluetoothSerial bluetooth; //Bluetooth作成
void setup()
{
M5.begin(); //M5Stickの機能を立ち上げる
bluetooth.begin(“M5Led”); //Bluetoothのデバイス名を作成
pinMode(led, OUTPUT); //OUTPUTモードをLEDに設定
M5.Lcd.setRotation(3); //M5Stickの画面の回転を水平方向に設定
M5.Lcd.fillScreen(BLACK); //画面の色を黒くする
M5.Lcd.setTextSize(1); //フォントのサイズ
M5.Lcd.setCursor(40, 0); //表示する座標値
M5.Lcd.println(“test”); //表示内容
}
void loop()
{
M5.update(); //M5StickC更新
while(bluetooth.available()) //Bluetooth接続がアクティブな場合
{
message = bluetooth.read(); //Hololensのデータを取得
if (message == ‘1’) //データは1の場合、LED ON
{
digitalWrite(led,HIGH); // LED ON
message = ‘2’; // 1回だけLED処理
sta = “ON”;
}
else if (message == ‘0’) //データは0の場合、LED OFF
{
digitalWrite(led,LOW); // LED OFF
message = ‘2’; // 1回だけLED処理
sta = “OFF”;
}
}
M5.Lcd.setCursor(40, 40);
M5.Lcd.println(sta); //現在の状態を画面に表示する
}
コードが完了しましたら、接続しているポート名を選択する。

接続しているポート名を選択する
最後にアップロードボタンを押して完了です。

最後にアップロードボタンを押して完了です
HoloLens2プロジェクト作成
UnityHubを開いて新しいプロジェクトを始めます。

UnityHubを開いて新しいプロジェクトを始めます
下記のURLを開いてMicrosoftのMRTKライブラリを全部ダウンロードする。
https://github.com/Microsoft/MixedRealityToolkit-Unity/releases

下記のURLを開いてMicrosoftのMRTKライブラリを全部ダウンロードする
プロジェクト作成が終わったら、Assets→Import Package→Custom Packageを選択する。
ダウンロードしたMRTKライブラリファイルを全部インポートする必要があります。

Custom-Packageを選択する
全部をインポートしたら「Mixed Reality Toolkit」というメニューが表示され、「Add to Scene and Configure…」を選択して自動でシーンにHoloLensの基本的なオブジェクトが追加されます。

Add-to-Scene-and-Configure…
HoloLens用のプロジェクトの設定が完了です。
Bluetoothで接続
次はIoTデバイスを接続する方法をご紹介したいと思います。
新しいC#ファイルを作成する。
下記のコードは接続の部分となります。

ConnectUMP
次はHoloLensからIoTデバイスへデータを送信のしかたを紹介します。
簡単のON/OFFボタンを作成してみて上記の「sendUWP」機能で「1」と「0」を入れてLEDの電源をコントロールすることができます。

onPressLedButton
動画で紹介
Video HoloLen 2とIoTデバイスを接続する方法。
以上となります。最後まで読んでいただいてありがとうございました!