我使用两个mpu6050传感器,2个arduino板(1个arduino Mega和1个Arduino Uno)和统一3d。 每块板都连接了一个mpu6050,它应该将收到的信息发送到统一。 我有麻烦从统一获取数据(我从Arduino的IDE查看信息没有问题) 我使用两个不同的COM,每个板1个。
使用我当前的统一代码我遇到了问题,因为当我尝试调试它时它会崩溃,当它发生故障时它会发送一个例外情况,例如:
Ports.io access denied
我有以下arduino代码(仅恢复影响此问题的部分):
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(map((ypr[2] * 180/M_PI),-90,90,0,360));
delay(20);
}
注意:MPU从-90到90发送值,所以我使用map函数来转换0到360范围内的值
这是统一代码(我有两个不同的代码,但唯一的区别在于它所说的" COM4"另一个说" COM3"):
using UnityEngine;
using System.Collections;
using System.IO.Ports;
public class Mover_Con_Arduino : MonoBehaviour
{
SerialPort sp = new SerialPort("COM4", 9600);
void Start()
{
}
void Update()
{
if (!sp.IsOpen)
{
sp.Open();
}
float rot = float.Parse (sp.ReadLine ());
transform.localEulerAngles = new Vector3 (rot, 0, 0);
print (rot);
}
}
我正在做的是使用从arduino发送到Unity的值来旋转游戏对象
答案 0 :(得分:0)
我最好的猜测是sp.Open()无法打开COM端口并在sp.ReadLine()上抛出异常;