基于stm32控制的双直流电机电脑鼠系统的制作方法
【专利摘要】本发明涉及一种基于STM32控制的双直流电机电脑鼠系统,属于微型机器人领域。包括主控芯片、探知模块、H桥驱动模块、直流微电机、磁式编码器、UART接口、陀螺仪、人机界面、电源模块和PCB板等,探知模块为六组红外线传感器,用于探知墙壁距离与迷宫墙壁信息;陀螺仪用来校正电脑鼠在转弯时的姿态;H桥驱动电路实现直流电机的正反转与加减速;直流微电机上的磁式编码器获得并反馈电机转速及定位信息;UART接口可外接转串口或者蓝牙模块;人机界面显示不同的工作模式。优点在于:主控芯片提供了强大的外设资源,直流微电机作为驱动单元提高系统的运行速度。体积小、重量轻,降低了电脑鼠完成任务的时间,提高了电脑鼠的运行稳定性实用性强。
【专利说明】基于STM32控制的双直流电机电脑鼠系统
【技术领域】
[0001]本发明涉及一种电脑鼠系统,特别涉及一种基于STM32控制的双直流电机电脑鼠系统,更具体地说,它涉及一种基于STM32控制的、双直流电机作为驱动单元的微型轮式搜索机器人系统。
【背景技术】
[0002]电脑鼠是嵌入式微控制器、传感器和机电运动部件构成的一种智能行走机器人,它能够在未知的迷宫中自动搜索路径并找到终点,并根据在搜索过程中记录的墙壁信息找出迷宫从起点到终点的最短路径,再以最快的速度从起点冲刺到终点。
[0003]目前,国内电脑鼠采用的主控芯片为Luminary公司生产Cortex_M3内核的ARM处理器一LM3S615,五组红外传感器,电机为步进电机,控制容易。但是纵观国际电脑鼠走迷宫大赛,步进电机的电脑鼠由于体积大,重量重,运行速度慢,已经逐渐被淘汰,同等价位的LM3S615主控芯片性能上也不如STM32。
【发明内容】
[0004]本发明的目的在于提供一种基于STM32控制的双直流电机电脑鼠系统,解决了现有技术存在的上述问题,降低了电脑鼠完成任务的时间,提高了电脑鼠的运行稳定性,从而在一定程度上促进电脑鼠的发展。
[0005]本发明的上述目的通过以下技术方案实现:
基于STM32控制的双直流电机电脑鼠系统,PCB板9作为系统的车体,中间两侧留有空间,用来安装车轮,左、右车轮同轴布置,结构相同;轮毂23与直流微电机3转动轴通过齿轮啮合,直流微电机3固定在支撑板28上,支撑板28固定在PCB板9上,电机驱动芯片布置在直流微电机3附近,PCB板9前端设置探知模块2,尾部为电源模块8 ;陀螺仪6布置在PCB板9中间位置,人机界面7布置在PCB板9后端;主控芯片I设置在PCB板9上,磁式编码器4连接在直流微电机3上。
[0006]所述的轮毂23为镁铝合金材质,右端外侧设有圆形凸缘,圆形凸缘外侧设有齿轮,与直流微电机3转动轴上的齿轮啮合,传动比为55:11,电机的扭矩扩大了 5倍;轮毂23中间有通孔,通孔内安装高速轴承25,高速轴承25内圈安装支撑轴26,支撑轴26为不锈钢材质,外侧锁紧螺钉24与支撑轴26螺纹连接,高速轴承25内圈分别通过左侧锁紧螺钉24螺帽端面和支撑轴凸台轴向固定,高速轴承25外圈通过轮毂通孔小过盈配合,轮毂23外侧有环形凸缘,与轮胎22套装在一起,轮胎22材质为硅橡胶,抓地能力强;支撑轴26右侧与内侧锁紧螺钉27螺纹连接,通过内侧锁紧螺钉27螺母端面和支撑轴26的右侧凸台端面将支撑板28轴向固定,支撑板28通过螺栓连接固定在PCB板9上,直流微电机3通过螺钉连接固定在支撑板28上,左、右车轮同轴布置在PCB板9两侧中间位置。
[0007]所述的探知模块2为六组红外线传感器,即在PCB板9前端左、右两侧各布置三组红外线传感器,其中最左红外线发射传感器、最左红外线接收传感器14、15和最右红外线发射传感器、最右红外线接收传感器20、21的竖直布置,是探知前方迷宫中的墙壁信息的,摆放在两侧是因为电脑鼠在走斜线的时候,可以根据此两组传感器的探测来判断是否有碰撞的危险;左中红外线发射传感器、左中红外线接收传感器12、13和右中红外线发射传感器、右中红外线接收传感器18、19斜向45度布置,主要是用来校正车体的方向,确保电脑鼠在运行的过程中走在迷宫的正中间;左前红外线发射传感器、左前红外线接收传感器10、11和右前红外线发射传感器、右前红外线接收传感器16、17水平布置,用来检测电脑鼠两侧有无墙壁信息,用来检测迷宫路口。
[0008]所述的PCB9采用双层板,顶层横向走线,底层纵向走线,尾部为电源模块7,前部为探知模块2,这样尽量把模拟信号和数字信号分割开来;由于稳压芯片、主控芯片I和电机驱动芯片发热严重,所以在电源模块8、电机驱动芯片和主控芯片I下均进行覆铜。
[0009]所述的主控芯片I上的PAO和PAl作为输入口与H驱动模块右电机驱动电路5、6口连接,主控芯片I上的PA6和PA7作为输入口与H驱动模块左电机驱动电路5、6 口连接,主控芯片I上的PA9作为输出口与下载与调试电路4 口连接,主控芯片I上的PAlO作为输入口与下载与调试电路5 口连接,主控芯片I上的PAll和PA12作为输入口与人机界面电路key2、key3连接,主控芯片I上的PB6和PB7作为输出口与H驱动模块右电机驱动电路
2、4 口连接,主控芯片I上的PB8和PB9作为输出口与H驱动模块左电机驱动电路2、4 口连接,主控芯片I上的PBlO到PB15作为输出口与人机界面电路Rl、R2、R3、R4、R5和R29 口连接,主控芯片I上的PCO到PC5作为输入接口分别与收传感器相连,主控芯片I上的PC6到PC9作为输出接口分别于传感器发射电路ini到in4相连接。
[0010]本发明的工作过程过程是:电脑鼠系统放到初始位置,按起始键,此时电脑鼠系统开始初始化,然后直流微电机3和探知模块2协同工作,探知模块2会每隔一段时间(自己设定)扫描一次墙壁信息,将扫描信息反馈给主控芯片1,陀螺仪6校正电脑鼠系统在转弯时的姿态,两组H桥驱动电路配合PWM信号控制,直流微电机3上的磁式编码器4获得并反馈电机转速及定位信息,修正行走路线,遇到路口和障碍时,程序调用迷宫搜索算法做出反应,直到电脑鼠系统搜索完整个迷宫然后返回起点,从起点做迷宫冲刺。本发明的主控芯片I为STM32,拥有强大的存储、运算能力,抗干扰能力强,能快速、准确的完成任务,保证电脑鼠系统的稳定性和可靠性。本发明主控芯片I内嵌入了新的迷宫算法,运算速度快,减少了运行时间。本发明采用直流微电机3作为驱动单元,体积小,重量轻。
[0011]本发明的有益效果在于:
1、本发明所述的基于STM32控制的双直流电机电脑鼠系统的主控芯片拥有强大的存储、运算能力,抗干扰能力强,能快速、准确的完成任务,保证电脑鼠系统的稳定性和可靠性。
[0012]2、本发明所述的基于STM32控制的双直流电机电脑鼠系统采用新的迷宫算法,运算速度快,减少了运行时间。
[0013]3、本发明所述的基于STM32控制的双直流电机电脑鼠系统采用直流微电机作为驱动单元,体积小,重量轻。
【专利附图】
【附图说明】
[0014]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实例及其说明用于解释本发明,并不构成对本发明的不当限定。
[0015]图1为本发明的整体结构示意图;
图2为本发明的系统控制示意图;
图3为本发明的主控芯片最小系统配置图;
图4为本发明的红外线发射传感器电路图;
图5为本发明的红外线接收传感器电路图;
图6为本发明的H驱动模块右电机驱动电路图;
图7为本发明的H驱动|旲块左电机驱动电路图;
图8为本发明的下载与调试电路图;
图9为本发明的电源模块电路图;
图10为本发明的人机界面电路图;
图11为本发明的PCB尺寸图;
图12为本发明的机械机构示意图;
图13为本发明的机械机构剖视图;
图14为本发明的红外线传感器排列方式示意图;
图15为本发明的红外线传感器模块算法流程图;
图16为本发明的直流电机速度控制PI控制示意图;
图17为本发明的直线校正控制框图;
图18为本发明的拐弯子程序流程图;
图19为本发明的88迷宫;
图20为本发明的电脑鼠无迷宫初始化后的迷宫;
图21为本发明的电脑鼠全迷宫初始化后的迷宫;
图22为本发明的搜索到终点时的MazeMap信息;
图23为本发明的搜索到终点时的MazeBlock信息;
图24为本发明的电脑鼠搜索到的最优路径。
[0016]图中:1.主控芯片,2.探知模块,3.直流微电机,4.磁式编码器,5.UART接口,6.陀螺仪,7.人机界面,8.电源模块,9.PCB板,10.左前红外线发射传感器,11.左前红外线接收传感器,12.左中红外线发射传感器,13.左中红外线接收传感器,14.最左红外线发射传感器,15.最左红外线接收传感器,16.右前红外线发射传感器,17.右前红外线接收传感器,18.右中红外线发射传感器,19.右中红外线接收传感器,20.最右红外线发射传感器,21.最右红外线接收传感器,22.轮胎,23.轮毂,24.外侧锁紧螺钉,25.高速轴承,26.支撑轴,27.内侧锁紧螺钉,28.支撑板。
【具体实施方式】
[0017]下面结合附图进一步说明本发明的详细内容及其【具体实施方式】。
[0018]参见图1所示,本发明的基于STM32控制的双直流电机电脑鼠系统分为硬件部分、软件部分和机械机构部分,硬件部分包括主控芯片1、探知模块2、H桥驱动模块、直流微电机3、磁式编码器4、UART接口 5、陀螺仪6、人机界面7、电源模块8和PCB板9 ;软件部分包括运动控制算法、传感器算法和迷宫求解算法;机械机构包括轮胎22、轮毂23、高速轴承25、支撑轴26和支撑板28。PCB板9作为系统的车体,中间两侧留有空间,用来安装车轮,左、右车轮同轴布置,结构相同,轮毂23与直流微电机3转动轴通过齿轮啮合,直流微电机3固定在支撑板28上,支撑板28固定在PCB板9上,电机驱动芯片布置在直流微电机3附近,PCB板9前端左右两侧各布置3组红外线传感器,陀螺仪6布置在PCB板9中间位置,人机界面7布置在PCB板9后端。
[0019]参见图2所示,PCB板9上设置的主控芯片I为STM32F103RET6 ;探知模块2共有六组红外线传感器,用来探知墙壁距离与迷宫墙壁信息,以及校正电脑鼠运行过程中的位置与方向的偏差;陀螺仪6用来校正电脑鼠在转弯时的姿态;两组H桥驱动电路配合PWM信号控制,可以实现直流电机的正反转和加减速;直流微电机3上的磁式编码器4获得并反馈电机转速及定位信息;预留UART接口 5可外接RS232转串口或者外接蓝牙模块,当需要传输资料给计算机时,可通过此接口进行传输;电脑鼠的人机界面7由两个按键与六个LED灯组成的,可用来显示不同的工作模式和探知的墙壁信息,便于现场实时调试。
[0020]参见图3至图10所示,主控芯片I的型号为STM32F103RET6,它是ST公司所推出的ARM 32-bit Cortex-M3内核控制器,512K的闪存(Flash),64K的静态存储(SRAM),8个定时器(2个高级定时器,4个通用定时器,2个基本定时器),3个SPI,5个USART,I个USB,
I个 CAN,51 个 GPIO 口,3 路 16 通道(Channel) 12-bit ADC,2 路 2 通道 12-bit DAC,CPU运算频率最大可达72MHz,供电电压2.0-3.6V。最需要注意的就是Β00Τ0和BOOl的设定问题,当Β00Τ0为O时,无论B00T1为O或1,复位后启动区指向主闪存,系统即开始跑程序,当B00T1为0,Β00Τ0为I时,复位后启动区指向系统存储器,由于本设计选择串口烧录程序,所以主控芯片的程序下载时需要此模式,所以需要B00T1和Β00Τ0的组合,其中把B00T1直接置低,Β00Τ0配置成开关模式,这样就可以分别下程序和复位跑程序。
[0021]红外线传感器就是用来探知迷宫墙壁信息的,红外线发射传感器用来探测迷宫墙壁信息以及校正运行姿态。选用的红外线发射传感器型号为SFH4511,其波长950nm,消耗功率165mW,顺向电流100mA,脉冲式电流1A,发射强度150mW/sr (顺向电流IOOmA时),如果使用脉冲发射,发射强度可以达到1200mW/sr (脉冲电流IA脉冲长度IOOus),逆向偏压5V,顺向导通压降1.3V。用达林顿晶体管ULN2003作为开关,这样便于利用脉冲的方式让红外线传感器工作,而且可以选择较大的脉冲电流,使红外线发射传感器的瞬间功率变大,以探测更远的距离。
[0022]红外线接收传感器型号为TEFT4300,TEFT4300是NPN型光电晶体管,它可以将接收到的红外线能量转化为电流信号,并且成正比例关系,光电晶体管的输出端串联以电阻,将电流值转化为电压值输出给微控制器的ADC。
[0023]MOS管前加入MAX4427驱动MOS管,MOS管提供输入电压7.4V,输出电流最高达1.5A,对寄生电容进行瞬间充电,提高MOS管的开关特性,STM32的PWM输出引脚驱动MAX4427以提供一个大电流,进而驱动全桥电路来控制电机的运行,全桥电路芯片选用ZXMHC3A01T8,从而控制MOS管的导通顺序就可以控制电机的正转与反转,再配合主控芯片I对直流微电机3实施PWM调节,就可以控制直流微电机3的转速与位置。
[0024]电源模块8选用锂聚合物电池,因为锂聚合物电池具有密度高,小型化,超薄型和轻量化的优点,选用的电池规格为:电压3.7V,容量200mAh,放电系数为17C,所以此电池的放点能力约为:200mA X17 = 3.4 A。由于系统中的微控制器等是3.3V供电,红外线发射传感器等是5V供电,所以需要将电池所供应的电源电压做稳压的动作,所以采用LMl117-5和LMl117-3.3将电源电压先稳成5V,然后再将5V稳压为3.3V供给微控制器和NPN光电晶体管。系统中的地分为三个级别,分别为MGND,GND和AGND。各个独立的地之间通过O Ω电阻单点相连。由于电机在运行过程中会对整个系统的地形成很大的干扰,严重干扰了光电晶体管的稳定性,但经过两级滤波后,模拟地对光电晶体管的数字地的影响就非常的小了,就能保证红外传感器的稳定运行。为了保证数字地的稳定性,滤掉一些毛刺,在3.3V稳压输出后再经过一个IOOuH的电感滤波,然后给微控制器的AVCC和NPN光电晶体管供电。保证传感器与控制器的系统内部干扰最小。
[0025]用微控制器UART接口 5作为电脑鼠在调试阶段与电脑端的资料传输,使用USB转串口模块和蓝牙模块实现无线或者有线的数据传输。人机界面7包括两组按键和六个LED灯。在运行过程中,电脑鼠可能会根据情况选择不同的模式运行,其中按键用来选择电脑鼠在运行时的模式选择,LED灯可以用来显示传感器的状态,或者电脑鼠的运行状态,这个可以通过程序进行配置选择LED指示为何功能。
[0026]主控芯片I上的PAO和PAl作为输入口与H驱动模块右电机驱动电路5、6 口连接,主控芯片I上的PA6和PA7作为输入口与H驱动模块左电机驱动电路5、6 口连接,主控芯片I上的PA9作为输出口与下载与调试电路4 口连接,主控芯片I上的PAlO作为输入口与下载与调试电路5 口连接,主控芯片I上的PAll和PA12作为输入口与人机界面电路key2、key3连接,主控芯片I上的PB6和PB7作为输出口与H驱动模块右电机驱动电路2、4 口连接,主控芯片I上的PB8和PB9作为输出口与H驱动模块左电机驱动电路2、4 口连接,主控芯片I上的PBlO到PB15作为输出口与人机界面电路Rl、R2、R3、R4、R5和R29 口连接,主控芯片I上的PCO到PC5作为输入接口分别与传感器接收传感器相连,主控芯片I上的PC6到PC9作为输出接口分别于传感器发射电路ini到in4相连接。
[0027]参见图11所示,PCB9采用双层板,由于信号线密集,采取顶层横向走线,底层纵向走线的原则,在设计印刷电路板的时候尾部为电源模块7,前部为探知模块2,这样尽量把模拟信号和数字信号分割开来。由于稳压芯片、主控芯片I和电机驱动芯片发热比较严重,所以在电源模块8、电机驱动芯片和主控芯片I下均进行覆铜,利于散热,保证各芯片在运行中正常工作。
[0028]参见图12至图13所示,系统的机械机构由轮胎22,轮毂23,外侧锁紧螺钉24,高速轴承25,支撑轴26,内侧锁紧螺钉27,支撑板28组成,轮毂23为硬度较高的镁铝合金,比其它金属轻,右端外侧有圆形凸缘,圆形凸缘外侧有齿轮,与直流微电机3转动轴上的齿轮啮合,传动比为55:11,电机的扭矩扩大了 5倍;轮毂23中间有通孔,通孔内安装高速轴承25,高速轴承25内圈安装支撑轴26,支撑轴26为不锈钢材质,内圈有M2螺纹,外侧锁紧螺钉24规格为M2,通过与支撑轴26螺纹连接,高速轴承25内圈分别通过左侧锁紧螺钉24螺帽端面和支撑轴凸台轴向固定,高速轴承25外圈通过轮毂通孔小过盈配合,轮毂23外侧有环形凸缘,与轮胎22套装在一起,轮胎22材质为硅橡胶,抓地能力强。支撑轴26右侧与内侧锁紧螺钉27螺纹连接,通过内侧锁紧螺钉27螺母端面和支撑轴26的右侧凸台端面将支撑板28轴向固定,支撑板28通过螺栓连接固定在PCB板9上,直流微电机3通过螺钉连接固定在支撑板28上,左、右车轮同轴布置在PCB板9两侧中间位置。
[0029]参见图14所示,PCB板9前端左、右两侧各布置3组红外线传感器,最左红外线发射传感器、最左红外线接收传感器14、15和最右红外线发射传感器、最右红外线接收传感器20、21的竖直布置,是探知前方迷宫中的墙壁信息的,摆放在两侧是因为电脑鼠在走斜线的时候,可以根据此两组传感器的探测来判断是否有碰撞的危险;左中红外线发射传感器、左中红外线接收传感器12、13和右中红外线发射传感器、右中红外线接收传感器18、19斜向45度布置,主要是用来校正车体的方向,确保电脑鼠在运行的过程中走在迷宫的正中间;左前红外线发射传感器、左前红外线接收传感器10、11和右前红外线发射传感器、右前红外线接收传感器16、17水平布置,用来检测电脑鼠两侧有无墙壁信息,用来检测迷宫路□。
[0030]参见图15所示,在迷宫搜索过程中,六组传感器不能同时工作,因为每组传感器之间距离比较小,同时开通工作会对彼此造成很大的影响,所以传感器之间要间歇式的协同工作。2ms中断一次,如果flag为O则左发射传感器开启,如果flag不为O,为I的话左接受传感器开启,左发射传感器关闭,以此类推,来判断接受和发射传感器的开关。
[0031]参见图16所示,系统速度的控制采用PI控制器,给定一个速度,通过编码器的反馈,测出当前电脑鼠的实际速度,计算出偏差e (η),通过比例环节对偏差进行放大给定,然后通过积分环节消除静态误差,最后通过主控芯片对PWM的输出,把u(t)输出给执行机构直流电机,来控制直流电机的运行速度。系统为两个直流伺服电机独立工作,但是在运行的过程中两电机亦需协同工作,所以对两电机的控制采用整体控制,假设两个电机为一个整体的两个分支,那么给定的速度就同时给到了两个电机上,实际速度也就是左右两电机速度的平均值,速度偏差就等于给定速度减去实际速度,然后输出给电机的速度就是比例环节和积分环节的和。
[0032]参见图17所示,当电脑鼠在迷宫中进行运行时,虽然双轮都是给定相同的速度,但是由于电机本身的特性和机械部分摩擦力的不同,双轮的实际速度会稍稍有差距,这时候电机开环运行时,会与迷宫墙壁发生碰撞,通过红外传感器对电脑鼠运行进行校正,通过左中传感器和右中传感器对电脑鼠的位置信息进行实时反馈,在程序编写过程中,给左、右电机各设一个变量LineL和LineR。把两个变量加到主控芯片给电机的PWM输出上,当电脑鼠在直线运行时,LineL和LineR均为O,如果电脑鼠在运行过程中偏左,则LineL加I,LineR减1,由于电脑鼠的实际速度为左右电机速度的平均速度,所以实际运行速度不变。同理,如果运行中偏右行驶,那么LineR加1,LineL减1,关于电机是否走直线,每Ims检测一次,检测子程序放到定时器中断里。如图17所示,V-Left是给左电机的PWM值,V-PWM是PI调节后反馈给电机的值。同理,V-Right是给右电机的PWM值。
[0033]参见图18所示,当电脑鼠遇到路口时,需要拐弯和转弯,本发明采用陀螺仪闭环控制来校正拐弯的角度,陀螺仪6为角速度传感器,由于迷宫的限制,拐弯只有90度和180度两种情况,所以需要的是测出90度和180度的积分值,当电脑鼠检测到前方有路口或者需要拐弯时,那么就进入了拐弯子程序,这时陀螺仪6开始积分,直到积分值为我们实际测量到的值,那么就跳出拐弯子程序重新直线行驶,遇到死巷时也是一样的,向后转时角度会被设定为180度。这样,无论轮胎是否打滑,电脑鼠都能精确的转弯和转向。
[0034]参见图19至图24所示,电脑鼠出发后开始对迷宫进行搜索,试图对尽量多的迷宫信息进行处理才能通过一定的算法算出最优路径。所以电脑鼠在运行时要记录下来所有走过的路径的墙壁信息,为了节省时间还必须尽量少的重复走过的路。本算法在于尽量减少运行时间。用88迷宫来讲解迷宫算法,为了让电脑鼠能记住所走过的路,要对迷宫进行编号,一般情况下是用坐标标号,横向设为X轴方向,纵向设为Y轴方向。电脑鼠在运行中到达某一个方格时,应当根据传感器的检测结果对当前方格的墙壁信息进行存储,为了方便,用一个字节的低四位分别存储一个方格四周的墙壁信息bit3,bit2,bitl,bitO分别代表上,右,下,左。O表示无墙壁,I表示有墙壁。高四位为保留位。迷宫共有8X8个方格,所以用一个8X8的二位数组(MazeMap[8] [8])来保存整个迷宫的墙壁信息。当小鼠走进某个单元格时,不仅要对当前单元格进行位运算赋值,还要对其上下左右的单元格进行位运算赋值。假设电脑鼠现在位于(x,y)时,其上右下有墙,即Value (x,y)= 0000IllOB那么(x,y)点的上就是(X,y-1)的下,所以置 Value (x, y_l)的 bitO 为 I。同理,Value (x+l,y)的 bit2置为l,Value (x,y+1)的bit3置为1,Value (x_l,y)的bitl置为0。所有这些迷宫墙壁操作都智能为位操作,否则会发生错误。这样电脑鼠走过的迷宫墙壁信息以及前后左右四个方向上的迷宫信息就会被记录下来。
[0035]首先定义一块8X8的二维数组空间(MazeSt印[8] [8])其中每一个元素代表迷宫中的一个方格,用来计算后存储各方格至起点的最短路径步数(所指的步数就是电脑鼠所经过的迷宫格数)。
[0036]电脑鼠运行时中等高图的绘制步骤:
(I)设等高值的变量为Step ;把所有迷宫格上的等高值设为OxfT。
[0037](2)起点坐标(0,O)处,步数 Step=I。
[0038](3)同时把(0,O)坐标存入堆栈(STACK)。
[0039](4)向前运行,每走一个格,Step=Step+l。
[0040](5)每当遇到支路,把支路坐标(X,Y)压入STACK.同时记录此时的变量StepA。
[0041](6)接着向前运行,遇到死胡同,返回上一个支路坐标(X,Y),并从此坐标向另一个支路方向运行;Step=StepA+l。
[0042](7)当前一个格的St印值比当前格的St印值大于或等于2时,覆盖运行此单元格。
[0043](8)直至运行到终点。
[0044]迷宫搜索就是从迷宫的起始点运行到迷宫的终点的一个过程:
首先设两个数组MazeMap [8] [8]和MazeBlock [8] [8],对两组数组分别初始化,MazeMap初始化为全没有墙壁;MaZeBl0Ck初始化为四周全有墙。两个迷宫信息都是必不可少的,无迷宫的是用来以终点为基准点做等高图以确定电脑鼠的运行方向的,而全部墙壁信息的迷宫是用来在冲刺的时候屏蔽掉未搜索过的路径,防止电脑鼠在迷宫中出现迷宫漏洞,在程序更新的过程中,两者同时更新。当MazeMap和MazeBlock两数组初始化后,电脑鼠开始从起始点(0,0)向前运行,搜索终点为坐标(7,7)点。当运行到迷宫的(0,2)点时,出现了一个路口,这时候电脑鼠需要选择运行的方向一直走或者向左运行。这时候程序进入中断以(7,7)点为基点,以洪水法则向迷宫四周作等高图,直到作到电脑鼠所在坐标,
【权利要求】
1.一种基于STM32控制的双直流电机电脑鼠系统,其特征在于:PCB板(9)作为系统的车体,中间两侧留有空间,用来安装车轮,左、右车轮同轴布置,结构相同;轮毂(23)与直流微电机(3)转动轴通过齿轮啮合,直流微电机(3)固定在支撑板(28)上,支撑板(28)固定在PCB板(9)上,电机驱动芯片布置在直流微电机(3)附近,PCB板(9)前端设置探知模块(2),尾部为电源模块(8);陀螺仪(6)布置在PCB板(9)中间位置,人机界面(7)布置在PCB板(9 )后端;主控芯片(I)设置在PCB板(9 )上,磁式编码器(4 )连接在直流微电机(3 )上。
2.根据权利要求1所述的基于STM32控制的双直流电机电脑鼠系统,其特征在于:所述的轮毂(23)右端外侧设有圆形凸缘,圆形凸缘外侧设有齿轮,与直流微电机(3)转动轴上的齿轮啮合,传动比为55:11,电机的扭矩扩大了 5倍;轮毂(23)中间有通孔,通孔内安装高速轴承(25 ),高速轴承(25 )内圈安装支撑轴(26 ),外侧锁紧螺钉(24 )与支撑轴(26 )螺纹连接,高速轴承(25)内圈分别通过左侧锁紧螺钉(24)螺帽端面和支撑轴凸台轴向固定,高速轴承(25)外圈通过轮毂通孔小过盈配合,轮毂(23)外侧有环形凸缘,与轮胎(22)套装在一起;支撑轴(26)右侧与内侧锁紧钉(27)螺纹连接,通过内侧锁紧螺钉(27)螺母端面和支撑轴(26)的右侧凸台端面将支撑板(28)轴向固定,支撑板(28)通过螺栓连接固定在PCB板(9 )上,直流微电机(3 )通过螺钉连接固定在支撑板(28 )上,左、右车轮同轴布置在PCB板(9)两侧中间位置。
3.根据权利要求1所述的基于STM32控制的双直流电机电脑鼠系统,其特征在于:所述的轮毂(23)为镁铝合金材质,支撑轴(26)为不锈钢材质,轮胎(22)为硅橡胶材质。
4.根据权利要求1所述的基于STM32控制的双直流电机电脑鼠系统,其特征在于:所述的探知模块(2)为六组红外线传感器,即在PCB板(9)前端左、右两侧各布置三组红外线传感器,其中最左红外线发射传感器、最左红外线接收传感器(14、15)和最右红外线发射传感器、最右红外线接收传感器(20、21)的竖直布置,是探知前方迷宫中的墙壁信息的,摆放在两侧是因为电脑鼠在走斜线的时候,可以根据此两组传感器的探测来判断是否有碰撞的危险;左中红外线发射传感器、左中红外线接收传感器(12、13)和右中红外线发射传感器、右中红外线接收传感器(18、19)斜向45度布置,主要是用来校正车体的方向,确保电脑鼠在运行的过程中走在迷宫的正中间;左前红外线发射传感器、左前红外线接收传感器(10、11)和右前红外线发射传感器、右前红外线接收传感器(16、17)水平布置,用来检测电脑鼠两侧有无墙壁信息,用来检测迷宫路口。
5.根据权利要求1所述的基于STM32控制的双直流电机电脑鼠系统,其特征在于:所述的PCB (9)采用双层板,顶层横向走线,底层纵向走线,尾部为电源模块(7),前部为探知模块(2),这样尽量把模拟信号和数字信号分割开来;由于稳压芯片、主控芯片(I)和电机驱动芯片发热严重,所以在电源模块(8)、电机驱动芯片和主控芯片(I)下均进行覆铜。
6.根据权利要求1所述的基于STM32控制的双直流电机电脑鼠系统,其特征在于:所述的主控芯片(I)上的PAO和PAl作为输入口与H驱动模块右电机驱动电路5、6 口连接,主控芯片(I)上的PA6和PA7作为输入口与H驱动模块左电机驱动电路5、6 口连接,主控芯片(I)上的PA9作为输出口与下载与调试电路4 口连接,主控芯片(I)上的PAlO作为输入口与下载与调试电路5 口连接,主控芯片(I)上的PAll和PA12作为输入口与人机界面电路key2、key3连接,主控芯片(I)上的PB6和PB7作为输出口与H驱动模块右电机驱动电路2、4 口连接,主控芯片(I)上的PB8和PB9作为输出口与H驱动模块左电机驱动电路.2、4 口连接,主控芯片(1)上的PBlO到PB15作为输出口与人机界面电路Rl、R2、R3、R4、R5和R29 口连接,主控芯片(1)上的PCO到PC5作为输入接口分别与收传感器相连,主控芯片(1)上的PC6到PC9作为 输出接口分别于传感器发射电路ini到in4相连接。
【文档编号】G05D1/02GK103869816SQ201410126849
【公开日】2014年6月18日 申请日期:2014年4月1日 优先权日:2014年4月1日
【发明者】刘富, 梁艳磊, 陈亚东, 康冰, 侯涛, 高雷, 张潇, 魏祺韡, 姜奕含, 郭宇 申请人:吉林大学