- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京信息科技大学
机器人实训实验报告
姓名:刘新菊
班级:研1206
学号:2012020176
专业:模式识别与智能系统
指导教师:张奇志
2012年—2013年第二学期
VOYAGER控制程序开发教程
一、实训目的与任务:
1.该节实验主要面向初次接触Visual C++的学生,帮助了解和熟悉Visual C++的编程环境。
2.学会用Visual C++的编译环境编写一些简单的窗体程序,为后续实验确定界面。
3.利用现有的框架代码,学习基本的机器人控制。
4.能从机器人底层获取传感器信息并显示在软件界面上,为机器人决策提供依据。
5.学习在现有框架下实现一些简单的机器人自主行为,为复杂决策奠定基础。
6.学习使用控制类读取机器人上电子罗盘的数据信息,为机器人决策提供依据。
二、实训的基本要求:
培养学生综合运用所学的理论知识和基本技能的能力,尤其是培养学生把理论和实际结合起来分析和解决问题的能力。适应实际生产的需要。培养出一批既有理论又有动手能力的人才。
三、实训的地点:
北京信息科技大学南苑实验室。
四、实训的题目:
1.熟悉VC编程环境
2.建立基本界面
3.串口通讯控制机器人
五、实训的内容:
第一部分:基于机器人的串口操作,控制,传感器数据读取
步骤:
1 首先建立串口操作,以便机器人和PC连接起来串口建立的界面。
2 建立能够控制机器人进行基本的移动的界面操作
3 建立控制机器人传感器数据读取的基本界面
4 在各个界面上添加响应函数。
程序:
打开串口的程序是:
void CVoyTestDlg::OnBnClickedOpen()
{
// TODO: 在¨2此??添?¨a加¨?控?件t通a?§知a处?|理¤¨a程¨?序¨°代?¨2码?
UpdateData();
CString str;
str.Format(_T(您打得开的串口号是:“%d),m_nPort);
AfxMessageBox(str);
m_Com.SetCmd(m_Cmd);
m_Com.Create(m_nPort);
}
控制机器人移动的程序是:
void CVoyTestDlg::OnBnClickedBackword()
{
// TODO: 在此添加控件通知处理程序代码
m_Cmd.SetBothMotorsSpeed(-300,-300);//后退
}
void CVoyTestDlg::OnBnClickedTurnleft()
{
// TODO: 在此添加控件通知处理程序代码
m_Cmd.SetBothMotorsSpeed(-300,300); //左转
}
void CVoyTestDlg::OnBnClickedTurnright()
{
// TODO: 在此添加控件通知处理程序代码
m_Cmd.SetBothMotorsSpeed(300,-300); //右转
}
void CVoyTestDlg::OnBnClickedBrake()
{
// TODO: 在此添加控件通知处理程序代码
m_Cmd.Brake(1); //刹车
}
超声红外查询模块:
m_Cmd.AutoQueryInfraRed(m_nInfraRedTime); //自动查询红外信息
m_Cmd.AutoQueryUSonic(m_nUSonicTime); //自动查询超声信息
处理函数:
void CVoyTestDlg::OnBnClickedButton7()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData();
m_Cmd.AutoQueryUSonic(m_nUSonicTime);
SetTimer(0,m_nUSonicTime,NULL);
}
void CVoyTestDlg::OnBnClickedButton9()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData();
m_Cmd.AutoQueryInfraRed(m_nInfraRedTime);
SetTimer(1,m_nInfraRedTime,NULL);
}
显示程序:
void CVoyTestDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CString strTemp;
switch(nIDEvent)
{ case 0:
文档评论(0)