没有合适的资源?快使用搜索试试~ 我知道了~
首页哈工大机器人开发手册:探索智能机器人实验
"哈工大提供的机器人开发手册涵盖了从基础到进阶的各种实验,旨在帮助学习者掌握智能机器人的开发和控制。手册包含了从环境配置、编程方法到具体应用的多个实验,涉及C语言编程、流程图编程、传感器应用、无线通信、语音识别等多个方面。" 在"实验一、智能机器人开发环境"中,主要目标是让学生熟悉基于C语言的编程环境,特别是针对大学版智能机器人的编程工具。实验设备包括计算机、智能机器人和下载线。实验步骤强调了软件的配置,如将光盘中的mtu文件夹复制到C盘,并修改配置文件mtu.ini的工作路径和串口设置,以确保与PC机的串口匹配。编程环境提供了两种模式——流程图和C语言,其中流程图模式特别适合初学者,因为它以图形化的方式表示程序,简化了学习难度。 实验涉及到的具体内容包括打开和配置软件,选择编程语言,以及使用流程图进行编程。流程图模块区包含执行模块、数字信号输入/输出、模拟信号输入和控制逻辑等,通过拖放模块和连接它们,用户可以构建和实现机器人的控制逻辑。 后续的实验则逐步引入更复杂的概念和技术,如无线下载、避障技术(红外线传感器)、遥控操作、音乐播放、碰撞检测、跟随行走、声控、火源追踪、编码器使用、寻迹、光源搜索、无线通信、野外探险、灭火任务、语音报站、图像处理模块的二次开发,以及更多扩展功能。这些实验旨在全面锻炼学生在机器人设计、感知、决策和执行等方面的能力,同时激发他们的创新和二次开发潜能。通过这个开发手册,学习者可以系统地学习和实践智能机器人开发的各个环节,为未来在机器人领域的深入研究打下坚实的基础。
资源详情
资源推荐
16
实验五、PC 机无线遥控智能机器人
一、项目目标:
1.了解无线传输的原理与工作过程。、
2.掌握串行通讯的通信协议,了解 PC 机串口调节方式。
3.掌握无线遥控的工作流程。
二、项目描述:
1.项目描述:
无线技术不仅是一门很流行的技术,而且已经越来越多的应用到我们的日常
生活中,它 的 应 用使我们的生活更加便利,但无线技术并没有我们想象的那样神
秘。
在这里,我们使用的是 DTD462 无线通信模块(如下图 1), 他 具有基于 FSK
的调制方式,采用高效前向纠错信道编码技术,提高了数据抗突发干扰和随机干
扰的能力。
FSK 调制原理:数字频率调制又称频移键控(FSK), 二 进 制 频 移 键 控 记 作
2FSK。数字频移键控是用载波的频率来传送数字消息,即用所传送的数字消息
控制载波的频率。2FSK 信号便是符号“1”对应于载频 ,而符号“0”对应于
载频 (与 不同的另一载频)的已调波形,而且 与 之间的改变是瞬间完
成的。 从原理上讲,数字调频可用模拟调频法来实现,也可用键控法来实现。
模拟调频法是利用一个矩形脉冲序列对一个载波进行调频,是 频 移 键 控通信方式
早期采用的实现方法。2FSK 键控法则是利用受矩形脉冲序列控制的开关电路对
两个不同的独立频率源进行选通。键控法的特点是转换速度快、波形好、稳定度
高且易于实现,故应用广泛。2FSK 信号的产生方法及波形示例如图所示。图中
s(t)为代表信息的二进制矩形脉冲序列, 即是 2FSK 信号。
17
对于我们的用户来说,即使对无线技术不是特别的了解也不影响使用,这里
的无线模块向用户提供了标准的串行接口,用户只需将模块的串行接口与自己使
用的控制器的串口相连接,并用串行方式向无线模块发送数据,数据就能够自动
的发向无线接收端。而在接收端,用户可以用同样的方式 0 接受数据。
2.程序举例
程序思路:使用 PC 机的控制界面以无线的方式控制智能机器人的运动。
操作步骤:
(1):图 1 所示的无线通讯模块与 PC 机相连时需要进行电平的转换。普通
应用时,只需接入一个 MAX232 的芯片即可。为了使系统更加的稳定,我们在
转换电路的周围加入了一些保护电路,制成了下图所示的模块。
使用时,用机器人配件中的串口线将模块和 PC 机相连,然后通上 12 伏的电源。
(2):为了与本项目配和使用,我们编写好了一个 PC 机的控制界面,通过
他可以向外发送一定的控制指令。程序图标:
程序打开界面:
18
(3)将源程序 1 下入智能机器人中,并编译运行。
源程序 1:
#include<stdio.h>
#include<ingenious.h>
unsigned int receivedata = 0;
void move_1();
void back();
void left();
void right();
void main()
{
while(1)
{
int temp=0;
receivedata=serial_receive(1);
temp=receivedata;
if(temp==0x0011)
{move_1();}
else if(temp==0x0017)
{back();}
else if(temp==0x0013)
{left();}
19
else if(temp==0x0015)
{right();}
else if(temp==0x0019)
{stop();}
else
{temp=0;}
}
}
void move_1()
{
/* while(receivedata!=0x0011)
{
receivedata=serial_receive(2);
}
if(receivedata==0x0011)
{ */
move(200,207,0);
}
void back()
{
/* while(receivedata!=0x0013)
{
receivedata=serial_receive(2);
}
if(receivedata==0x0013)
{ */
move(-200,-207,0);
}
void left()
{
20
/* while(receivedata!=0x0015)
{
receivedata=serial_receive(2);
}
if(receivedata==0x0015)
{ */
move(-200,207,0);
sleep(500);
stop();
}
void right()
{
/* while(receivedata!=0x0017)
{
receivedata=serial_receive(2);
}
if(receivedata==0x0017)
{ */
move(200,-207,0);
sleep(500);
stop();
}
(4)打开上位机程序,通过上下左右按纽就可以控制小车的运行。
下位机程序流程图:
剩余95页未读,继续阅读
williamhow
- 粉丝: 10
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功