一、基础设置
选择的是unity2019.4.12f,Visual Studio2019
1.VS中的设置
新建一个unity工程,然后新建一个arduino的C#脚本,在脚本的头文件中添加System.IO,System.Threading,System.IO.Ports,using System。
此时程序会显示出错,即System.IO.Ports无法识别,此时需要更改.net 版本,详见
unity2019.4.12f无法添加System.IO.Parts头文件的解决方法
二、例子
通过VS代码控制一个小灯泡的开关
首先建立一个C#脚本,并挂在一个物体上。
定义基本信息;
//定义基本信息
string portName_1 = "COM4";
int baudRate = 9600;
Parity parity = Parity.None;
int dataBits = 8;
StopBits stopBits = StopBits.One;
SerialPort serialPort_1 = null;
//打开端口
public void OpenPort()
{
serialPort_1 = new SerialPort(portName_1, baudRate, parity, dataBits, stopBits);
try
{
serialPort_1.Open();
Debug.Log("Open port success.");
}
catch(Exception ex)
{
Debug.Log(ex.Message);
}
}
关闭端口
public void ClosePort()
{
try
{
serialPort_1.Close();
}
catch(Exception ex)
{
Debug.Log(ex.Message);
}
}
写入数据
public void WriteData(string dataStr)
{
if(serialPort_1.IsOpen)
{
serialPort_1.Write(dataStr);
Thread.Sleep(50);
}
else
{
Debug.Log("Port is not opened");
}
}
调用
void Start()
{
OpenPort();
char temp1 = ‘h’;
WriteData(temp1.ToString());
}
即可完成在VS部分的设置。
arduino中的代码
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(6,OUTPUT);
pinMode(9,OUTPUT);
}
int delayTime=167;
int voltage;
int p1=4;
void loop() {
// put your main code here, to run repeatedly:
char key2=Serial.read();//读取来自VisualStudio的数据
if(key2!=-1)
{
if(key2=='h')
{
voltage=153;
analogWrite(p1,voltage);
}
}
}
版权声明:本文为qq_39503828原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。