LoginSignup
3
0

More than 3 years have passed since last update.

スタンプ型デバイス(2) ~UnityとBluetoothSerial通信~

Last updated at Posted at 2020-08-21

まえがき

前回はデバイスを完成させましたので次は利用できるアプリケーションを作成していきたいと思います.

本題

Unityと端末がBluetoothで通信できるようにする

機器概要

・Windows10 Laptop
・Unity 2019.3.2f1
・スタンプ型デバイス(M5StickC)

手順

デバイスからの送信は前回実装したので今回はUnity側で受信するscriptを実装する

1.新規プロジェクトを作成

image.png

2.設定を変更

File/Build Settings...からUWPに変更
Switch Platformする
image.png

3.script作成

受信するためのscriptはこちらをありがたく使わせていただきます.

以下のscriptをAssetsに作成

ColorChanger.cs
using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class ColorChanger : MonoBehaviour
{
    public SerialHandler serialHandler;
    private bool flag = false;

    int num = 0;
    public Material[] array = new Material[5];
    void Start()
    {
        serialHandler.OnDataReceived += OnDataReceived;
    }
    void OnDataReceived(string message)
    {
        var data = message.Split(
            new string[]{"\n"}, System.StringSplitOptions.None); //受信する
        Debug.Log(message);

        switch (data[0]){
            case "ON":  //ONの時
                if(flag == false){  //一度だけ実行する
                    //オブジェクトの色を用意したMaterialの色に変更する
                    GetComponent<Renderer>().material.color = array[num].color;
                    num++;
                    if(num > 4) num = 0;
                    flag = true;
                }
                break;
            default:
                if(flag == true) flag = false;
                break;
        }
    }
}

image.png

4.objectにアタッチ

Demo用にCubeを作成
Cubeに作成したscriptをアタッチする

Serial Handler
Port Name:作成したデバイスのBluetooth接続Portに変更
※今回はBluetoothがCOM6となっていた
ColorChanger
Serial Handler:Cubeをアタッチ
Array:変化させる色のマテリアルをいくつか作成してアタッチ
image.png

実行例

あとがき

次はHoloLens2での利用,スタンプデバイスの位置を取得する手法を考えようかと思います

参考

【Unity】ESP32マイコンでBluetoothでUnityと接続するコントローラを作る
Unity2018でシリアル通信できない問題

BluetoothSerialでお手軽無線通信(M5StickC)
Bluetoothの自作デバイスを作りたい
UnityでC#によりCOMポートからのデータ入力

Serial Port Utility Pro
【Unity】Serial Port Utility Proをつかってシリアル通信する(Unity2019 & Win10 ※System.IO.Portsは使用しない)

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0