UnityでM5stackのIMUdataをBLE通信で受信。IMU情報を画面に表示 & csvファイルに保存するiOSアプリを作成する。

# 概要紹介
簡単に機能を列挙します。
① M5stack core からIMU情報をBLE通信で送信する。
② Unity側で　IMU情報をBLE通信で受信する。
③ 受信したIMU情報を画面上に表示する。
④ 受信したIMU情報をcsvにて保存する。(内部フォルダ)

アプリ化までの設定手順・紹介もいたします。
※IMUの通信内容・保存内容はあまり整理できていないので、正常な値は未調整です。

# 環境
● macOS Big Sur ver11.2.2
- Unity ver : 2019.2.8f1
- Platform : iOS
- Unity Api Compatibility Level :  .NET 4.x
- Unity asset: Bluetooth LE for iOS, tvOS and Android
- xcode 12.0

● iphone X 
- iOS 14.5

● M5stark Gray　- codeは、Arduino 
今回のM5stack側のコード説明は省きます。

※ xcode, iOS, macOSは常に最新版で合わせています。iOSへのアプリをxcodeで生成するには、Apple developperの登録が必要です。無料でもビルドできますが、ビルド回数が週か月かで制限があります。有料会員だと制限はありません。（ 年会費 12,000円くらい)

# github
・Unityコード
・Arudiunoコード

https://github.com/shohei0990/shohei0992.github.io

# 参考元
https://qiita.com/kengkong/items/3fe34ce5e1af89b2adb3

https://qiita.com/karasu_type0/items/3b019a5907a081accb2a

# Aruduino側設定
今回は、省きます。M5stackの基本的な使い方の説明は多々あると思いますので、そちらをご参照ください。

# Unity側設定
・ファイル → Build Setting  → Platform「iOS」
<img src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1820416/5f918c86-983d-7201-20d6-57c3a64719ef.png width="400" height=456px>

・Player Settings… → Target minimum iOS Version 「14.5」に設定する。
　※ verを合わせておく。xcodeでも設定可です。
　また Configuration の Api Compatibility Level :  .NET 4.x に設定する。
<img src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1820416/ada88e63-a845-5da0-5f66-4c086fc003c9.png width="500" height=456px>

・Unity上で、プログラムの開始ボタンを押した後、cubeの色が赤色になれば、BLE通信の接続ができておりIMUの情報が表示されている状態となります。
<img src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1820416/dd54ab0d-d2e6-b5f0-f356-e2f8b30c43f2.png width="400" height=456px>

# xcode用コード生成
・Build setting の 「Build」します。問題なければ、「Build sucsessful」 が表示され
　xcodeファイル「Unity -iPhone.xcodeproj」が生成されます。

![スクリーンショット 2021-07-29 20.12.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1820416/bdb4e9ce-bd68-2576-d370-b8dd1588409f.png)

# xcode用Build設定
・生成された「Unity -iPhone.xcodeproj」を開きます。「Unity-iPhone」「Product」「info.plist」のcodeを右クリックして　「Open As」「Soruce Code」で開きます。
<img src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1820416/bb6d838c-f518-3326-67dd-38f2d4505cd7.png width="500" height=456px>

・App上で、Bluetoothを使う許可表示をするために、下記のcodeを＜dict＞に追加します。

~~~
<key> NSBluetoothAlwaysUsageDescription</key>
<string> What to use bluetooth </string>
~~~

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1820416/ff6d640f-84a7-4627-9cef-07bd569e0b16.png)
 
・「Unity-iPhone」をダブルクリックして「PROJECT」の「Unity-iPhone」「info」で
　 iOS Deployment Target を最新版に設定します。現在だと「14.5」
・「Identity and Type 」の 「Project format」 のxcodeを最新版に設定します。
　  xcode 12.0 - compatible
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1820416/48e21300-5346-9f82-13be-d664742a78d5.png)

・「Unity-iPhone」をダブルクリックして
　「TARGETS 」「Unity-iPhone」「Signing & Capabilities」を設定します。
　「Automatically manage signing」をチェック
　「Team」の選択で、Apple developperの登録したアカウントを選択します。
　「 Bundle Identifier」 でエラー（既に使われている的な？）が出ていたら
　 登録名を変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1820416/fba82e61-a420-2060-28b8-c019915a5e11.png)

・「TARGETS 」「Unity-iPhone Tests」 でも同様に設定をいたします。
  　 「Signing & Capabilities」を設定します。
・「Unity-iPhone」をダブルクリックして
　「TARGETS 」「Unity-iPhone」「Signing & Capabilities」を設定します。
　「Automatically manage signing」をチェック
　「Team」の選択で、Apple developper 登録したアカウントを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1820416/e9b7865c-8e9e-1b37-7377-09afca71b6df.png)
 
・もし csvファイル保存設定がある場合には
　「TARGETS」「Unity-iPhone」「info」のKeyの欄で＋を押して
　「Application supports iTunes file Sharing」
　「Supports opening documents in place」
　　を追加してYESに設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1820416/0dea1556-2eee-8456-4932-3998b48b7135.png)

# iOSアプリ生成
・上記の設定が終わったら、Appを実装したいiPhoneとMacを接続して、「Any iOS Device」の欄をクリックして、自分のiPhoneを選択します。「▶️」を押して、Build します。成功したら、iPhone上で自動でAppが起動します。
・起動したら、Iphoneとの接続を一回切って、iphone側のAppも一度終了します。( なぜかいつも動かない )
・AppleDevelopperが無料の場合はiphone上で許可設定が必要です。
・AppleDevelopperが無料の場合は、iphone上で、「設定」「一般」「プロファイルとデバイス管理」で〇〇を信頼をクリックする。
・Appを立ち上げて、最初にBluetoothの許可がどうたらこうたら表示されるので「はい」で、Appが起動開始する。

<img src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1820416/87eb6236-04c8-c3e0-7fb8-a9413a92d7ff.jpeg width="300" height=456px><img src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1820416/80e9bca9-0bbb-9027-a44b-c0b0325655ad.jpeg width="300" height=456px>

Qiita, GitHubの初登録、初投稿なのでわかりにくい部分とかあるかと思いますがまた適宜更新します。