文章目录
前言
本周完成机械臂上位机界面各模块程序编写,并借用师兄图像识别代码完成机械臂位置控制,此外本周还进行了srtp结题材料准备,撰写研究报告等
一、上位机功能介绍
(由于博客不能放视频,用图片替代)
1、上、下位机通讯,选择端口号和波特率
2、机械臂位姿初始化及机械爪的状态控制(由于机械爪在实验过程中不小心损坏,这里不贴图了)
3、三维空间目标点定位
4、机械臂点动控制
二、上位机程序设计及所解决问题
1.串口通信
代码如下:
private void SearchAndAddSerialToComboBox(SerialPort MyPort, ComboBox MyBox)
{
string[] MyString = new string[20];
string Buffer;
MyBox.Items.Clear();
int count = 0;
for (int i = 1; i < 20; i++)
{
try//扫描
{
Buffer = "COM" + i.ToString();
MyPort.PortName = Buffer;
MyPort.Open();
MyString[count] = Buffer;
MyBox.Items.Add(Buffer);
MyPort.Close();
count++;
}
catch{}
MyBox.Text = MyString[0];
}
}
思路为轮流打开前20个端口号,如果端口号可以打开,记录该端口号于ComboBox中以供选择,关闭端口号。
需要注意的是创建端口最好使用以下代码,其可以在多窗口使用,而工具箱控件创建的端口不能被其他窗口调用
public static SerialPort serialPort1 = new SerialPort();
2.C#调用matlab函数
参考此篇博客
1.首先配置环境。
Matlab Runtime (MCR)一定要和你的C#项目平台一致。
c#项目平台如下图,可以点击箭头→配置管理器→活动解决方案平台→新建→选择需要的项目平台。
而Matlab Runtime的配置可以在系统的环境变量中查找,具体步骤:我的电脑右键属性→高级系