2017-02-19 76 views
1

我連接我的Kinect(SDK 1.8)以使用Unity控制Arduino(根據手的位置簡單開/關,StandardFirmata協議載入Arduino Mega2560)。它可以在幾分鐘內運行良好,直到Unity重載並停止向Arduino發送數據。 我想在我的代碼中添加一個延遲來解決這個問題,但我不知道它是否能解決問題。Unity + Kinect + Arduino = Nuilnitialize失敗

我在遊戲畫面中收到的錯誤信息是「Nuilnitialize失敗 - 設備不是正版。」

這裏是我的代碼:

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); 
     } 
    } 
} 

感謝由您的幫助! 乾杯,

艾蒂安。

+0

我不確定這個問題是否包含足夠的細節來回答。無論如何,我首先要讓你的類成爲有狀態的**並修改'update()',以便只有在嚴格需要時(例如'x'值在任一方向上越過0),才能更改* pin的值。這應該限制*通信通道*以及通過* Arduino *硬件的壓力。 –

回答

0

如果您有USB 2.0和Unity 4.6以上版本,請提供此錯誤。嘗試插入kinect到USB 3.如果有更少的圖形嘗試下載統一4.6版本並嘗試。