范效玮,汤腊梅,袁晓红
(1.中南林业科技大学,湖南长沙,410004;2.湖南工业职业技术学院,湖南长沙,410208)
随着自动控制技术的发展,越来越多的作业是在及其危险、恶劣甚至是人类无法生存的环境中完成的。这种人力无法完成的作业需要由人遥控操作机器人或者由机器人自主来完成,把人从危险繁琐的劳动中解脱出来,如人通过电脑遥控火星车在火星上前进、挖掘、探测、采集标本等。在现代战争和拆除危险爆炸物中,遥控机器人显得越来越重要,在战场上大量使用机器人可以减少人员的伤亡,同样在拆弹方面,遥控机器人代替人操作也能大大降低伤亡的风险[1]。
美国是机器人的诞生地,早在1962 年就研制出世界上第一台工业机器人,比起号称“机器人王国”的日本起步至少要早五六年[2]。70 年代后期,美国政府和企业界虽有所重视,但在技术路线上仍把重点放在研究机器人软件及军事、宇宙、海洋、核工程等特殊领域的高级机器人的开发上[3],致使日本的工业机器人后来居上,并在工业生产的应用上及机器人制造业上很快超过了美国,产品在国际市场上形成了较强的竞争力。80 年代中后期,随着各大厂家应用机器人的技术日臻成熟,第一代机器人的技术性能越来越满足不了实际需要,美国开始生产带有视觉、力觉的第二代机器人,并很快占领了美国60%的机器人市场。尽管美国在机器人发展史上走过一条重视理论研究,忽视应用开发研究的曲折道路,但是美国的机器人技术在国际上仍一直处于领先地位。
本系统以单片机AT89S52 为MCU,通过L298N 电机驱动模块来驱动直流电机,无线传输采用单片机的串口和XL02-232AP1 无线模块来完成,电机测速和循迹模块均用到了红外对管,通过电压比较器LM393 将采集的模拟信号转换为数字信号。系统的整体结构框图如图1 所示。
图1 系统硬件连接框图
图1 无线遥控循迹机器人整体结构框图系统整体电路如图2 所示
图2 多功能单片机音乐播放器原理图
单片机几乎集合了计算机系统的所有部件,包括运算器、控制器、IO 口,主要用来进行数据采集、处理、显示等,用汇编语言和C 语言[4]进行开发。
汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器代码的一种语言。其主要优点是占用的资源少,程序执行效率高。但编程难度大,程序代码可读性差,且对于不同的CPU,语言体系有所差异,不易移植。
C 语言是一种结构化的高级语言。其优点是可读性好,移植容易,应用广泛。
因此,本设计的单片机程序选用C 语言作为程序设计语言。与之对应,选用基于C51 内核的C 程序软件开发平台Keil C51。
Keil C51 是美国Keil Software 公司出品的51 系列兼容单片机C 语言软件开发系统[5]。Kei1 C51 软件提供丰富的库函数和功能强大的集成开发调试工具,Keil C51 内嵌有多种符合目前工业现行标准的开发工具,可以完成从工程建立和管理、编译、连接,目标代码的生成,软件仿真,硬件仿真等完整的开发流程。尤其C 编译工具在产生代码的准确性和效率方面达到了较高水平,可以附加灵活的控制选项,在开发大型项目时非常理想。Keil C51 集成开发调试界面如图3 所示上位机软件
图3 Keil C51 集成开发调试界面
上位机软件是电脑终端和单片机串口进行通信的重要连接部分,负责传递电脑终端和单片机的信息。本设计使用SSCOM作为上位机的软件,作为电脑终端无线遥控机器人的软件。
图4 SSCOM上位机软件界面
启动该系统时,首先将串口初始化并设定初始速度的PWM占空比为70,然后等待用户输入命令。由于上位机软件一次只能发送一个字符,所以前进和后退按钮只需按一下发送一次字符,便于发送加速和减速的字符;在进行左右转向时,则要一直按着按钮直至需要停止时松开,便于控制其转向的角度;需要循迹时,按一下“k”按钮,继电器开启循迹电路的电源便可以开始循迹。机器人运行过程中,每隔1 秒将测量出的运行速度返送回电脑终端。系统主程序流程图5 所示。
图5 系统主程序流程图
本程序是控制串口[7]的子程序。串口初始化时,使用定时器1 来产生波特率,设定波特率为9600。发送和接收数据时,由于发送和接收数据共用一个SBUF 寄存器,传输完一个字节数据时,通过标志位RI 或TI 会置位产生中断。串口初始化程序如下:
电机调速由脉冲宽度调制P WM(PWM,Pulse Width Modulation)[6]来实现,通过调节占空比,调节L298N 的输出电压从而达到控制电机转速快慢的目的,该技术被广泛应用在从测量、通信到功率控制与变换的许多领域中。
占空比是高电平在一个周期之内所占的时间比率,如方波的占空比为50%,占空比为0.5,说明正电平所占时间为0.5 个周期。占空比波形如图6 所示。
图6 占空比波形
在初始化时,占空比设定为70,在机器人运行过程中可以通过无线遥控来对占空比进行加减,以实现对机器人的速度控制。电机驱动程序流程图如图7 所示。
图7 电机驱动程序流程图
机器人有5 路循迹模块,中间1 路,左右各2 路,运行速度设定适中,以防机器人冲出黑线。循迹程序如下:
运行结果
根据程序设定,在电脑上用“w”、“s”、“a”、“d”控制机器人的前进,后退,左转,右转,“+”,“-”控制占空比,调节机器人的运行速度,并将适时转速送回电脑。由于机器人的两边的履带各由一个电机控制,在转弯时一个电机正转,另一个电机反转,从而使机器人可以在原地转360 度转弯,实现了对机器人操作的精准性,运行时如图8 所示。
图8 总体效果图
表1 为机器人运行时,通过调节占空比,得出机器人的运行速度,如表1,机器人处于循迹状态时,在不同的速度下可以循迹的角度如表2。
表1 机器人运行速度与占空比的关系
表2 机器人运行速度与循迹角度的关系
机器人运动速度越快,循迹的角度越小。
本文设计了无线遥控循迹机器人。无线遥控循迹机器人系统是以单片机AT89S52 为核心,采用无线传输模块XL02-232AP1 进行遥控数据传输,L298N 电机驱动模块作为机器人的动力系统,通过终端显示出机器人的运行状态,实现了对机器人进行实时准确的控制。本次设计采用了C 语言来编程,简单、方便、便于理解。本设计基本上达到了设计的目的和要求。
[1]张俊健.单兵遥控机器人控制系统[J].兵工自动化,2009,(6):4-5.
[2]吴振彪.工业机器人(第二版)[M].北京:华中科技大学出版社,2006:10-12.
[3]李云江.机器人概论[M].上海:上海大学出版社,2011:5-8.
[4]王幸之.AT89 系列单片机原理与接口技术[M].北京:北京航空航天大学出版社,2004:189-196.
[5]戴亚文.基于AT89S52 单片机的智能循迹机器人设计[J].机电工程技术,2009,(1):8-9.
[6]Ma, Wuxing.Elevator System and Control to Achieve Based on MCS-51 Singlechip [J].Com-puter Science and Electronics Engineering (ICCSEE),2012:10-12.
[7]梅开乡.电子电路设计与制作[M].北京:北京理工大学出版社,2010:70-76.