NextMindのBMI機器を使って、LGのwebOS TVを操作する
前回は↓
環境
- Unity(2020.2.1f1)
- Node-Red(1.2.7)
- Node.js(14.15.4)
Node-Redの環境を以前別のPC上に構築していたので、
今回はそちらからGETする。
BMI機器 -> Unity -> Node-Red -> TV
といった感じ。
※Unity、Node-redのインストール方法は割愛
Unity側
-
Developers resources | NextMind Dev Kit からダウンロードできるNextMindSDK_Full.unitypackageをインポートする
- Hierarchy ウィンドウ上で右クリック->NextMind->NeuroManagerを選択
- NeuroManagerのInspectorウィンドウで、NeuroManager->Scene ConfigrationのSimulate device、Simulate focusのチェックを外す
- NextMindSDKフォルダ内の、ConnectedDeviceStatus PrefabをHierarchy ウィンドウ上にドラッグ
- Hierarchy ウィンドウ上で右クリック->3D Object->Sphereを選択
- SphereにNeuroTagコンポーネントを設定
- 以下のFixを選択すると、Materialに Neuro Tag Material_unlitが設定される
- NextMindSDKフォルダ内の、TriangleFeedback PrefabをSphereの子階層にドラッグ
- http request用に、Hierarchy ウィンドウ上でGameObjectを作成(名前をHttpRequestとかにする)
- 作成したGameObjectに、HttpRequest用のscriptをアタッチする
using System.Collections; using UnityEngine; using UnityEngine.Networking; public class HttpRequest : MonoBehaviour { private const string URL = "http://xxx.xxx.xxx.xxx:xxxx/turnoff"; public void OnTriggerd() { StartCoroutine("OnSend", URL); } IEnumerator OnSend(string url) { UnityWebRequest webRequest = UnityWebRequest.Get(url); yield return webRequest.SendWebRequest(); if (webRequest.isNetworkError) { Debug.Log(webRequest.error); } else { Debug.Log(webRequest.downloadHandler.text); } } }
- SphereのNeuroタグコンポーネント->Tracking Events->Ontriggerd()に、HttpRequest.Ontriggerdを設定
- Hierarchy上の各オブジェクトのTransformを変更し、以下のように見えやすくする
Node-Red側
- node-red-contrib-lgtvパレットをインストール
- 追加されたlgtvパレットからcontrolノードを追加
- controlノードのプロパティ「Host」に、使用するTVのIPアドレスを入力
- connectボタンをクリックすると、テレビに接続確認画面が表示されるので、はいを選択
- Node-redの画面で追加->完了ボタンをクリック
- templateノードを設定
今回はテレビの電源をOFFする - http in ノードを追加する
- あとはノードを並べて繋げて
- できあがり
さて、さっそく試す
これが
こうなる。
テレビの電源消しただけだけど、脳で操る感覚、凄く楽しい。