USB-связь от Arduino to Unity: ошибка тайм-аута

70
6

Я пытаюсь настроить простейшую возможную связь USB между Arduino и Unity 3D: отправив несколько байтов из 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 [], смещение Int32, количество Int32) System.IO.Ports.SerialPort.read_byte() System.IO.Ports.SerialPort.ReadByte() (удаление-удалять обертку -with-check) System.IO.Ports.SerialPort: ReadByte() ardCom.Update() (at Assets/ardCom.cs: 20)

Какая странность в том, что я смог получить связь, работающую по-другому, от Unity до Arduino-- вы, старая Blinky LED-учебник, отлично работает.

Я пробовал практически каждую перестановку этого кода, о которой я могу думать, изменяя скорость передачи, время задержки, последовательные вызовы записи и чтения по коду Arduino и Unity и были в сети, ищущие решения. Не повезло.

спросил(а) 2015-07-03T14:39:00+03:00 5 лет, 3 месяца назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема