当前位置:文档之家› 电脑鼠设计与制作——文档资料

电脑鼠设计与制作——文档资料

P1.0—P1.7: 通用I/O口(准双向口),有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可作输入口用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可作输入口用。作输入用时,被外部拉低的引脚因内部电阻,将输出电流(IIL)。此外,P1.0及P1.2分别作定时器/计数器2之外部计数输入(P1.0/T2)及时器/计数器2之触发输入(P1.1/T2EX),详见表1所示。在flash编程及校验时,P1口接收低8位地址字节。表1:
图7传动部件实物图
2.2电子部分
电脑鼠的硬件电路结构图如下。
图8硬件电路结构框图
(1)微控制器
微控制器是电脑鼠的核心,可以选择单片机,若RAM需求量大或者算法复杂或者性能要求高时,需要使用ARM等高性能的微处理器。
(2)传感器
传感器的作用是用来感知环境,探测电脑鼠的左、前、右是否有路可走。本设计中采用的是红外线方式,发射和接收分别受微控制器控制。由硬件电路部分结构框图可知,在电脑鼠的前、左、右、左前、右前方共有5组,其中左、右、前三组传感器是用于探测电脑鼠在当前迷宫格左、右、前三个方向上是否有支路的,左前、右前两组传感器呈45度安装,用于电脑鼠行进过程中进行பைடு நூலகம்态矫正,防止电脑鼠走偏而撞到迷宫墙。
例子:一个电脑鼠在迷宫中的搜索时间为4分钟,没有碰触过,运行时间使用了20秒,这次运行的排障时间就是:
20+(240×1/30)-10=18秒
1.
电脑鼠是指由车身、轮子、和相关软件构成。车体是电脑鼠最基本的架构,它的设计在电脑鼠的整体规划中战友想到重要的地位,应当遵守整体结构坚固耐用、材质轻、重心低的原则。在设计中,既要考虑到符合各零件的规格,又要考虑到配合迷宫的规格。
2
可根据实际需要选择直流电机、带减速的直流电机、步进电机、伺服电机等。不同的电机,其控制是不同的,本次选择伺服电机。
电脑鼠在探索迷宫的过程中需要知道当前所处的位置,记忆每一个迷宫格的通行状况以及根据当前所处的位置来进行路径选择。由IEEE电脑鼠走迷宫竞赛规则可知每一个迷宫格大小是相同的,因此可以通过计算电脑鼠走的距离与方向来确定相对于起点的迷宫格位置。基于计算距离的考虑,在选择电脑的驱动电机时不能选用普通的直流电机,可选的电机有步进电机、伺服电机等都可以控制行走距离。相对来说,步进电机的速度没有伺服电机快,并且容易出现失步现象影响电脑鼠对位移距离的计算。因此在实际制作时,选用带光电码盘的伺服电机作为电脑鼠的驱动。通过光电码盘输出脉冲的反馈,不仅可以计算电脑鼠行走距离,实现对位置坐标的确定,加上PWM调速和PID控制还可以对电脑鼠进行复杂的运动控制让电脑鼠完成复杂的动作。如图3所示,是实际制作时选用的334线AB相伺服电机实物图。
图9实际制作的电脑鼠
3.
3.0了解单片机
选用AT89S52,低功耗高性能CMOS 8位单片机,片内8kBytes ISP(In-systemprogrammable)的可反复擦写1000次的FLASH只读程序存储器,器件采用ATMEL公司之高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
AT89C52及AT89S52之别,在于C及S,C表示需用并行编程器下载(接线多且复杂),S表示可支持ISP下载,可在89S52系统板上面预留ISP下载接口。ISP下载线可方便地自制,一74HC373,若干电阻,连接电脑并口就可用软件将hex文件下载至89S52。
相比较AT89C52及AT89S52,以方便计,选用AT89S52。
单芯片上,拥有8位CPU及在系统可编程FLASH,使AT89S52为众多嵌入式控制应用系统提供高灵活、超有效之解决方案。
AT89S52之特点:
40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
图4驱动轮实物图
整个车体仅由两个驱动轮驱动,通过两个驱动轮的差速比来转弯,调整电脑鼠行走方向。为了使电脑鼠可以很灵活原地转弯,驱动轮在底盘上的安装位置应靠近中间,将转弯轴心设计在车体中心。很明显只通过两个驱动轮来支撑电脑鼠搭载底盘,是不能让电脑鼠站稳的。因此需要在底盘前后位置增加两个辅助万向轮,使车体保持平稳。如图5所示,是选用的辅助轮实物图,图6为行走轮安装图。
电脑鼠是机电一体化装置,是使用微控制器、传感器和机电运动部件构成的一种智能行走装置,是一种具有人工智能的小型机器人。电脑鼠可以在不同“迷宫”中自动记忆和选择路径,采用相应的算法,快速地达到所设定的目的地。集成了计算机、电子和机械、电机、自动化和传感器等技术,是真正具有独创性的东西,其制作为学生提供了创意、制作、实计
微处理器
传感器
(2)机械结构
(3)算法设计
0.2电脑鼠的设计目标
本项目要实现的是用电脑鼠找出迷宫中通往终点的最短路径并以最快速度到达迷宫的终点。
电脑鼠从迷宫起点位置前进,由程序判断通过前视距离探测器探测到的迷宫状况,控制驱动机构前进或转向并记录路径和距离(控制车轮编码器可完成),由于起点位置和终点位置是已知的,虽然不知道具体路径,但通过编写算法程序即可找到最短路径,在重新开始时便可以最快速度从最短路径到达终点。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这须是该器件是使用12V编程电压Vpp。
ALE/PROG:地址锁存允许控制端/程序写入输入引脚。访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般,ALE仍以时钟振荡频率的1/6输出固定之脉冲信号,故它可对外输出时钟或用于定时目的。需注意:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚亦用于输入编程脉冲(PROG)。若必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX及MOVC指令方能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
电解电容,长脚一端接正极:
发光二极管,长脚一端接正极:
开关的焊接:
轻触开关,只需用焊锡将1处两个脚用焊锡连接到,同理2处也要短接。然后AB对角接线接出去。
2.4成品
如下图所示,是实际制作的电脑鼠。迷宫4角中的任意一个角作为电脑鼠运行的起点(坐标为0,0),起点的对角是电脑鼠要寻找的终点(坐标为7,7)。对于有支路的情况,电脑鼠通过比较当前坐标与终点坐标来确定选择走那一条路。从起点到终点的路是不唯一的,要想找到最近的路,就需要尽可能多的对迷宫进行搜索,探明迷宫布局情况,选择一条最佳路径。
注:搜索结束,从终点返回到起点的时间不算在迷宫时间内;
运行时间:电脑鼠从起点走到终点的时间;
如果电脑鼠在比赛时需要手动辅助,这个动作就成为“碰触”。若“碰触”了,则需要失去10秒的奖励时间。
比赛使用者三个参数,从速度、求解迷宫的效率和电脑鼠的可靠性三个方面来进行评分。
成绩=迷宫时间/30+运行时间-奖励时间(非碰触)
设计的电脑鼠应该具有三种最基本的能力:
拥有稳定、准确、快速的行走能力
能争取判断环境的能力(如有墙、有路)
记忆路径的能力
图1 8*8迷宫布局图
总之,电脑鼠的设计目标是:在最短的时间内找到一条通往总店的最短路径,并以最快速度从起点到达终点。如何衡量:
迷宫时间(搜索时间):电脑鼠激活到每次运行开始的时间;
EA/Vpp:寻址外部ROM控制端。低有效,片内无ROM时必须接地;片内有ROM时应当接高电平。要CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端须保持低电平(接地)。需注意:若加密位LB1被编程,复位时内部会锁存EA端状态。若EA端为高电平(接Vcc端),CPU则执行内部程序存储器之指令。
图3334线AB相伺服电机实物图
2.1.3
电脑鼠行走轮子分为驱动轮和辅助轮两类,驱动轮直接由驱动电机动力带动,驱动轮转动通过与地面的摩擦力使得轴心相对于地面产生位移,从而带动整个底盘的运动。要求驱动轮与地面要有一定的静摩擦力,尽量采用与地面静摩擦系数大的驱动轮,减小打滑对电脑鼠位移计算的影响。为了使设计的电脑鼠具有更好的机械灵活性,基于降低重心的考虑,驱动轮的直径大小不能太大,使得难于降低底盘和地面的高度,造成重心过高。实际制作时选用成本较为低廉的直径30mm的塑料轮外套橡胶圈作为电脑鼠驱动轮。如图4所示,是选用的电脑鼠驱动轮实物图。
各引脚说明:
图10AT89S52引脚图DIP封装
51单片机的8个特殊引脚
Vcc,GND:40、20电源和接地端
XTAL1,XTAL2:片内振荡电路输入、输出端,XTAL1,振荡器反相放大器及内部时钟发生电路之输入端。XTAL2,振荡器反相放大器之输出端。
RESET:复位端正脉冲有效(宽度10mS)复位输入。振荡器工作时,RST引脚有两个机器周期以上高电平将使单片机复位。
PSEN:是外部程序存储器之读选通信号,AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
51单片机的4个8位的I/O口
P0.0—P0.7:8位数据口和输出低8位地址复用口(复用时是双向口;不复用时也是准双向口)。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。访问外部程序和数据存储器时,P0口亦被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。在FLASH编程时,P0口亦用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需外部上拉电阻。
相关主题