【发布时间】:2017-02-19 19:23:17
【问题描述】:
我正在连接我的 Kinect (SDK 1.8) 以使用 Unity 控制 Arduino(根据手的位置进行简单的开/关,在 Arduino 中加载 StandardFirmata 协议 Mega2560)。它可以正常工作几分钟,直到 Unity 过载并停止向 arduino 发送数据。 我想过在我的代码中添加延迟来解决这个问题,但我不知道它是否能解决问题。
我在游戏屏幕中收到的错误消息是“Nuilnitialize Failed - Device is not true.”。
这是我的代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Uniduino;
public class GestionRelais : MonoBehaviour {
public Arduino arduino;
public GameObject NoeudATracker;
// Use this for initialization
void Start () {
arduino = Arduino.global;
}
void ConfigurePins() {
arduino.pinMode(13, PinMode.OUTPUT);
arduino.pinMode(9, PinMode.OUTPUT);
}
// Update is called once per frame
void Update () {
if (NoeudATracker.transform.position.x<=0) {
arduino.digitalWrite(13, Arduino.HIGH);
arduino.digitalWrite(9, Arduino.LOW);
} if (NoeudATracker.transform.position.x>0 ) {
arduino.digitalWrite(13, Arduino.LOW);
arduino.digitalWrite(9, Arduino.HIGH);
}
}
}
提前感谢您的帮助! 干杯,
艾蒂安。
【问题讨论】:
-
我不确定这个问题是否包含足够的详细信息来回答。无论如何,我会首先让你的类 stateful 并修改
update()以便仅在绝对必要时更改 pin 的值(例如x值交叉0任一方向)。这应该会限制 通信渠道 以及 Arduino 硬件的压力。