前提・実現したいこと
Arduinoで得た照度センサーの情報を用いてUnity上のシーンを切り替えたいと思っています。
現在はAキー、Sキー、Dキーで切り替わるようになっています。
この先、Arduinoで得た照度センサーの情報を基に、ある程度以上の値になればAキーを、ある程度以下の値になればDキーを、その中間の値の場合はSキーの入力が入る仕様にしようとしています。
(例えば430<A,430〜400=S,400>Dのように。)
問題点
そこでまず手始めに、Arduinoから受け取った照度センサーの情報をunityで受け取り、consolに表示させたいのですが、コンソールに以下のようなエラーが表示され、出来ません。
InvalidOperationException: Specified port is not open.
System.IO.Ports.SerialPort.CheckOpen ()
System.IO.Ports.SerialPort.ReadTo (System.String value)
System.IO.Ports.SerialPort.ReadLine ()
(wrapper remoting-invoke-with-check) System.IO.Ports.SerialPort:ReadLine ()
SerialTest.OnGUI () (at Assets/script/SerialTest.cs:20)
ジ説明](23cae90e68274e50465356e1e47f91e4.png)
環境
・OS: windows10
・Unity 2017.3.0f3
・Arduino IDE 1.8.12(Windows Store 1.8.33.0)
・Arduino Uno
参考にしたサイト
http://taka8.hateblo.jp/entry/2016/08/29/190112
Api Compatibility Level は,NET 2.0になっています。
###Unityのコード
using UnityEngine; using System.IO.Ports; public class SerialTest : MonoBehaviour { SerialPort serialPort; void Start() { serialPort = new SerialPort("COM13", 9600); serialPort.Open(); } void OnGUI() { GUILayout.Label(serialPort.ReadLine()); } }
###Arduinoのコード
const int AnalogPin = A0; void setup() { Serial.begin(9600); } void loop() { Serial.println(analogRead(AnalogPin)); delay(100); }
###配線の画像
ご相談したいこと
なぜこうしたエラーが出てしまうのか、検索したのですが分かりません。
どなたか、解決策をお教え頂ければと思います。
また、もしお手隙でしたら、コンソールに値を出力するだけでなく、このコードを元にASDキーの切り替えを行なってUnityに入力するためのコードの例なども挙げて下さると助かります。
どうぞ、よろしくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー