从Arduino到Unity的USB通信:超时错误

时间:2015-07-03 11:39:55

标签: c# macos unity3d arduino usb

我试图在Arduino和Unity 3D之间建立最简单的USB通信:从Arduino发送几个字节,然后从Unity读取它们。

我使用旧的MBP,Unity 4.6.6和Arduino Uno与Arduino 1.0.6。

Arduino的:

void setup() {

  Serial.begin(9600);

}

void loop() {

 int val=45;
  Serial.write(val);
  delay(10);   

}

统一:

using UnityEngine;
using System.Collections;
using System.IO.Ports;

public class ardCom : MonoBehaviour {


    SerialPort stream = new SerialPort("/dev/tty.usbmodem621",9600);

    // Use this for initialization
    void Start () {

        stream.Open ();

    }

    // Update is called once per frame
    void Update () {

        int value = stream.ReadByte ();
        Debug.Log (value);

    }

    void OnApplicationQuit() 

    {
        stream.Close();
    }

}

但是...... Unity不断抛出超时错误:

  

TimeoutException:操作已超时。   System.IO.Ports.SerialPortStream.Read(System.Byte [] buffer,Int32   offset,Int32 count)System.IO.Ports.SerialPort.read_byte()   System.IO.Ports.SerialPort.ReadByte()(包装器   remoting-invoke-with-check)System.IO.Ports.SerialPort:ReadByte()   ardCom.Update()(在Assets / ardCom.cs:20)

奇怪的是,我已经能够以另一种方式进行通信工作,从Unity到Arduino--你好,Blinky LED教程工作正常。

我已经尝试过几乎所有我能想到的代码排列,改变波特率,延迟时间,Arduino和Unity代码上的串行写入和读取调用,以及遍布网络寻找解决方案。没有运气。

0 个答案:

没有答案