基于STC89c52电脑鼠的设计与实现
2018-02-03周杰
周杰
摘要: 采用 STC89c52作為电脑鼠的控制核心,红外发射LED和红外一体化接收头HS0038构成传感器模块完成迷宫路径扫描,单片机控制左右334线AB相伺服电机实现电脑鼠,前进一格,后退一格,左转90°,右转90°的动作,根据设置的迷宫出口坐标,能够完成对整个迷宫的搜索,并找到最佳行走路径。
关键词:STC89c52;传感器;电机;迷宫
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)02-0138-03
1 概述
电脑鼠[1-2]是一种机电一体化装置,是由单片机、传感器、机电运动部件组成的一种能在迷宫行走的小型机器人。本文设计和完成了一种基于STC89c52简易电脑鼠,电脑鼠可以在不同大小的迷宫[3][4]中自动记忆和选择路径,完成前进一格,后退一格,左转90°,右转90°的动作,并可以采用相应的算法,快速完成对整个迷宫路径的搜索,进而找到最佳的走出迷宫的路线。
2 硬件设计
电脑鼠是指由车体、轮子、和驱动软件构成。车体是由STC89c52(相当于人体的大脑部分)、传感器模块(完成迷宫障碍物的扫描)、电机模块(完成相应的机械动作)和定时计数器模块(完成电脑鼠的动作修正),组成的一个综合的系统。
电脑鼠的基本构成如图1所示:
2.1 电源模块
STC89c52单片机的工作电压为3.3v-5.5v,故可以采用电脑鼠采用单节锂离子电池供电。
TP4054是一款完整的单节锂离子电池充电器,TP4054可以适用于USB电源,如图所示当充电完成,输入电压USB电源被拿掉时,可以自动进入低电流状态。CHNG漏极开路状态输出,BAT充电电流输出。
电脑鼠的电源模块电路如图2所示:
2.2 电机模块
STC89c52的I/O口电流输出能力有限,需要将单片机I/O口弱电流放大到足以驱动电机的电流。通过L9110电机驱动芯片,驱动左右两个334线AB相伺服电机,通过L9110驱动芯片上IA、IB输入的逻辑值的组合,可以控制AB相伺服电机停止,正转和反转。
P2.0、P2.1、P2.2、P2.3口是单片机的输出口,Left motor1、Left motor2、Right motor1、Right motor2是左右两个电机驱动电路控制引脚,Left motor和Right motor 3脚是电机光电码盘A相脉冲输出,连接到单片机的定时/计数器外部计数引脚,通过脉冲计数,可以完成电脑鼠左转90°,右转90°等操作。
电脑鼠电机模块电路如图3所示:
2.3 传感器组设计
电脑鼠设计有5组传感器。这5组传感器分别安装于电脑鼠的右前、右、左、左前、前、5个不同的方向。采用74HC138译码器将单片机的3位二进制编码译码为8位控制线,采用分时检测传感器,使单片机能够控制5组传感器的工作。
传感器电路由红外发射LED和红外一体化接收头HS0038构成,红外LED由载波发生器产生的CLOCK信号驱动产生38KHz红外调制光。RP1为可调电阻,通过调节RP1来调节红外LED发光强度,从而调整传感器组检测迷宫墙障碍物的距离。Sensor1用于控制该组传感器是否工作,连接到3-8译码选择电路。红外调制光经障碍物反射由HS0038红外一体化接收头接收,进行放大滤波、解调等处理后输出,单片机通过识别P2.5口的电平高低来判断传感器前面是否有障碍物。
单片机传感器模块电路如图4所示:
3 软件设计
3.1 构建迷宫
按照IEEE要求,迷宫大小为16*16的单元格组成,单元格格大小为18*18cm,电脑鼠PCB底盘大小为迷宫格一半8*8cm左右,现在模拟现场环境,将迷宫设置为8*8,单元格如图5所示,起点坐标为(1,1),终点坐标为(8,8)。
3.2 电脑鼠软件设计
电脑鼠是一个小型智能行走装置,保证其可靠性取决于硬件和软件设计,在电脑鼠的软件设计可以分为两个部分:走迷宫算法部分和底层驱动部分。
3.2.1 搜索迷宫算法程序
假设我们将电脑鼠放在起点坐标(1,1),按下启动键,然后根据设定的终点坐标(8,8),通过到达终点服务程序找到终点,如果到达终点,蜂鸣器发出尖锐的报警声,表明找到了终点坐标。搜索迷宫算法的主流程图如图6所示。
在主程序运行过程中,要调用中断服务程序,即到达终点中断服务程序如图7所示,由于电脑鼠自身没有思维能力,只能根据程序规则运行,电脑鼠到达终点服务程序,就是根据设定的终点坐标,采用一定的规则进行迷宫的搜索。常用的搜索法则有:
1) 右手规则:当电脑鼠走到迷宫的某一单元格时,电脑鼠的传感器开始工作,电脑鼠扫描迷宫格挡板信息,优先检测右方迷宫格是否可行,其次前方,最后才是左方。
2) 左手规则:左手法则与右手法则类似,当电脑鼠走到迷宫的某一单元格时,电脑鼠的传感器开始工作,电脑鼠扫描迷宫格挡板信息,优先检测左方方迷宫格是否可行,其次前方,最后才是右方。
3) 中右规则:优先检测前方迷宫格是否可行,其次右方,最后才是左方。
4) 中左规则:优先检测前方迷宫格是否可行,其次左方,最后才是右方。
5) 向心法则[7]:是右手法则,左手法则,中右规则,中左规则的结合,尽可能的朝着距离终点最近的方向前进。
本文采用向心手法则进行迷宫搜索。如图7所示:电脑鼠根据向心法则[7]扫描坐标进行前进,当到达下一个迷宫格时,用当前迷宫格的坐标与终点坐标进行比较,如果是终点,就发出报警声,如果不是就继续查找,判断当前坐标是否走过,如果走过则返回上一个分叉路口,如果没有走过则采用向心法则搜索路径,直到找到终点坐标为止[1][6]记录下行走路径,就找到了,迷宫的最短路径。
3.2.2 底层驱动程序
底层驱动程序主要完成,电脑鼠的基本操作:左转90°,右转90°。当电脑鼠需要转弯时,停在当前坐标,做原地90°旋转,然后前进。如果是左转,Left Motor反转,Right Motor正转。如果是右转,Left Motor正转,Right Motor反转。
对于挡板信息的获取,调用5路传感器,扫描单元格前左右信息,如果有挡板,则该方向返回1,如果没有挡板返回0。
如图9所示,当电脑鼠到达某一点时,应该处于该单元格的中心,它距离挡板的距离允许在S±2cm,如果扫描到的距离大于该范围,则认为有挡板返回1。当电脑鼠在行进过程中还可以通过S±2cm对电脑鼠进行姿态纠正。
4 结束语
本文给出了基于STC89c52电脑鼠的硬件设计方案以及软件设计思路,电源模块、电机模块、传感器模块、硬件稳定设计简单,且价格低廉。由于采用了模块化设计思想,具有思路可移植性,可扩展性强等特点。
参考文献:
[1] 齐英鑫.基于80C51 单片机的智能电动小车[J].科技信息,2008(31):36-37.
[2] 周立功.IEEE电脑鼠开发指南[M].广州:广州致远电子有限公司,2008.
[3] 方金亮.基于 ARM 的IEEE 标准电脑鼠研究与实现[J].机械制造与自动化,2008(5):99-101.
[4] 周立功.Cortex-M3 开发指南[ M] .广州:广州致远电子有限公司,2008.
[5] 方建军, 何广平.智能机器人[ M] .北京:化学工业出版社,2004.
[6] 邓美清. 基于 STC12C56 单片机的电脑鼠设计与实现[J].科协论坛, 2011 (8) :78-78.
[7] 贺少波.基于向心法则的电脑鼠走迷宫算法设计与优化[J].计算机系统应用计算机系统应用 , 2012 , 21 (9) :79-82.endprint