基于AT89C51单片机的智能避障遥控机器人的设计

2011-03-17 10:32陈海松李益民
湖北理工学院学报 2011年3期
关键词:数码管遥控测距

陈海松 李益民

(深圳职业技术学院工业中心,广东深圳 518055)

0 引言

机器人有很多种类型,常见的有:搬运机器人、加工机器人、海底机器人、运动机器人、排障机器人、炒菜机器人、音乐机器人等。机器人制造技术的水平甚至可以反映一个国家科技和工业的发展水平。机器人是多学科技术集成的产物,它涉及机械设计与制造技术、计算机控制技术、传感器技术、机电一体化技术等多学科领域。通过制作简易机器人,熟悉单片机在机电一体化技术中的综合应用,熟练掌握开发复杂单片机系统的一般方法。本文介绍一种运动机器人的设计方法。

1 系统方案及硬件设计

在制定运动机器人制作方案时要预先确定机器人的运动方式、驱动方式、控制单元、智能控制功能。这里选择带有 2个后驱动轮、1个前从动轮的电动车作为运动机构;采用AT89C51单片机作为主控制单元;用 2个直流变速电机来驱动左右2个后车轮转动;用超声测距技术测试小车距前方障碍物的距离来控制小车运行状态,并用 4个数码管显示距离障碍物的距离;用红外遥控技术实现无线遥控小车运行状态[1]。

系统硬件设计如图 1所示,单片机 P1口的P1.4、P1.5、P1.6模拟数码管串行显示的启动、时钟端、串行数据输入端;P1口的 P1.0~ P1.3来控制左右2个电机;P3.0、P3.1、P3.3、P3.4、P3.5作为红外接收端,分别控制机器人的前进、左转、红外遥控与超声测距蔽障转换、右转以及后退;P3.6作为超声发射端;P3.2作为超声接收端。

2 系统软件设计

2.1 模块划分

根据任务要求分析,首先把任务划分为相对独立的功能模块,系统模块划分如图 2所示,可分为以下几个功能模块。

图1 简易机器人硬件原理图

图2 简易机器人程序模块框图

1)主函数模块main:完成系统初始化,包括 I/O口、定时/计数器初始状态的设定、中断初始化以及超声测距存储数组的初始化等。

2)数码管串行显示模块SEG-SHOW:串行显示超声测距测到的距离。

3)红外遥控模块Car-Telecontrol:通过红外遥控机器人前进、左转、右转、后退以及实现机器人红外遥控和超声测距蔽障的转换。

4)超声测距避障模块Supersonic-Wave:采用中值滤波法,多次测量,取超声波测到距离的平均值的子函数Average-Filter,实现超声波测距及蔽障功能。

2.2 各模块流程图设计

1)主程序模块main完成系统初始化,包括 I/O口、定时/计数器初始状态的设定、中断初始化以及超声测距存储数组的初始化等,流程如图 3所示。

图3 主函数main流程框图

2)数码管串行显示模块SEG-SHOW完成超声波所测距离的显示,采用单片机 P1口的P1.4、P1.5、P1.6模拟数码管串行显示的启动、时钟端、串行数据输入端,流程如图 4所示。

图4 数码管串行显示模块SEG-SHOW流程框图

3)红外遥控模块。利用红外遥控编码与解码技术[2],实现用手持式遥控器控制简易机器人,如图1所示。采用 P3.0、P3.1、P3.3、P3.4、P3.5作为红外接收端,分别控制机器人的前进、左转、红外遥控与超声测距蔽障转换、右转以及后退,程序流程图如图 5所示。

图5 红外遥控模块Car-Telecontrol流程框图

4)超声测距避障模块。在小车前进运行时,根据小车与前方障碍物间的距离来控制小车前进、停止或后退。如图 1所示,用单片机的P3.6端口发40 kHz方波信号,用P3.2端口接收超声回波信号,程序流程如图 6所示。

图6 超声测距避障模块流程框图

超声测距、激光测距、红外测距、微波测距等非接触式测距方法被广泛用于探测、汽车、运动机器人等方面。超声测距分为发送探头和接收探头 2部分,它的原理是利用压电效应将电脉冲与机械谐振产生的超声波相互转化而构成发射与接收装置,通过发射探头将 40 kHz的电脉冲信号转换为机械谐振而产生超声波,实现将电能转换为机械能的转换[3];而接收探头则是将超声波引起的机械振动再转换成电脉冲信号。超声波探测器件可以发射超声波并接收回波,我们利用单片机准确地记录从发射超声波的时刻起到接收到回波时刻之间所需的时间 t,再根据超声波在空气中的传播速度为n=331.45 m/s,可以计算出超声波从发射探头到被测障碍物之间的距离m=n×t/2,再将计算得到的距离数据送数码管显示[4]。超声波发射与接收电路可用超声波传感器和分立元件自己搭建,也可直接利用已有的超声波测距模块,本设计选择发射与接收一体的TCT40-10超声波探测模块。为保证测量结果的准确性,可采用外部中断方法对接收探头接收到的回波上升沿进行检测。

3 系统调试与脱机运行

系统调试包括硬件调试和软件调试 2部分,硬件调试一般需要利用调试软件来进行,软件调试也需要通过对硬件的测试和控制来进行,因此软、硬件调试是不可能绝对分开的。

运行主程序,通过手持遥控控制简易机器人前进、左转、右转以及后退,看是否能够实现相应功能;按转换按键来切换超声测距蔽障功能,观察简易机器人自动运行。

程序的调试应一个模块一个模块地进行。首先单独调试各子模块功能,测试程序是否能够实现预期的功能,接口电路的控制是否正常等,再逐步将各子程序连接起来总调,联调需要注意的是各程序模块间能否正确传递参数,最后脱机运行,完成简易机器人的设计。

4 结论

本设计涉及红外遥控、超声波测距、数码管显示距离、中断等多种应用技术,对各种基本技能、方法、技巧等进行了更高层次的训练,使操作者对单片机资源调配、接口技术的应用、外围功能器件的使用、复杂程序的编制、已有子程序的调用、单片机应用技术与实用技术和器件的集成与转化等方面有了更加深入的领悟与体会,为今后开发各类单片机产品奠定了基础。

[1] 王静霞,杨宏丽,刘俐.单片机应用技术(C语言版)[M].北京:电子工业出版社,2009:2-10

[2] 刘明星,王红霞.红外遥控温度报警器设计[J].硅谷,2011(4):72-73

[3] 龙桂铃,徐磊,侯英龙 .基于单片机的智能车避障的实现[J].计算机与数字工程,2011(3):53 -54

[4] 顾斌.基于单片机的机器人视觉传感系统硬件设计[J].现代农业科学,2008(5):64-65

猜你喜欢
数码管遥控测距
如何遥控引爆的
微课教学设计之“数码管动态显示”
类星体的精准测距
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
他是如何遥控引爆的
浅谈超声波测距
基于PSOC超声测距系统设计
相对差分单项测距△DOR