版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于STM32的六足仿生机器人-控制系统设计摘要随着机器人的发展日新月异,各个行业和领域对机器人的要求和需求也日益增长。近十几年来,由于六足仿生机器人在勘测领域的作用显著,其发展尤为迅速。这种新型的足式机器人,借鉴了自然界中诸如蜘蛛,螳螂等昆虫的行进步态和肢体结构,使其在崎岖、松软等复杂地形上行进时,比起履带式或者轮式的机器人更加地稳定灵活,能更好对应勘测,探索等方面的工作。本文主要研究六足仿生机器人的控制系统的实现。通过采用STM32F103VCT6作为控制器,用蓝牙通讯控制与腿部结构相连接的舵机从而实现手控机器人的行进,并简单实现自动行进,超声波避障和拍照功能。关键词:六足仿生机器人;STM32F103VCT6;控制系统;舵机sg90;DesignofHexapodrobotcontrolsystembasedonSTM32AbstractWiththerapiddevelopmentofrobots,therequirementsanddemandsofrobotsinvariousindustriesandfieldsareincreasingdaybyday.Inrecentdecades,thehexapodrobothasdevelopedparticularlyrapidlyduetoitssignificantroleinthefieldofsurveying.Thenewfoot-likerobotborrowsfromthegaitandlimbstructureofnaturalinsectssuchasspidersandmantids,allowingittonavigaterough,softandcomplexterrain,comparedwiththetrackedorwheeledrobot,itismorestableandflexible,andcanbettercorrespondtotheexplorationandexplorationwork.Thispapermainlystudiestherealizationofthecontrolsystemoftherobot.ByusingSTM32F103VCT6asthecontroller,thesteeringgearconnectedwiththelegstructureiscontrolledbyBluetooth,andthefunctionsofautomaticmoving,ultrasonicobstacleavoidanceandphoto-takingarerealized.Keywords:Hexapodrobot;STM32F103VCT6;Controlsystem;SteeringGearSG90;目录TOC\o"1-3"\h\u1绪论 绪论1.1仿生六足机器人的研究背景及意义当今世界,机器人的概念已经不是简单的,由数个机械结构组合成的一个机械体。它包含了众多领域的科技结晶,不论是硬件上的技术如机械制造,电子设计,还是软件上的技术如智能控制,数据传输,都与机器人的发展进步紧密联系在一起。也因此,机器人的研究水平也在一定程度上体现了国家的科技水准。随着时代的发展,过去的轮式、履带式机器人已经无法满足人们的要求,这类机器人在环境条件不利的情况下,如路面崎岖不平,过于松软和潮湿,都会让机器人的稳定性和灵活度大打折扣。而在自然界中,陆地上大多数生物的行进都是以足类运动为主,因此,人们借鉴了这一点,开始了仿生足类机器人的研究和制造。仿生足类机器人又常见为二足,四足,六足。而其中,六足机器人的自由度和灵活度都远优于二足和四足,更不用说轮式和履带式的机器人了。六足机器人可以通过特殊步态来实现原地的旋转,以及重心的稳定。在不平整的路面上,也可以依靠腿部上舵机角度的协调改变来保持平衡。在跨越障碍,上下坡等情况下都拥有良好的表现。同时能胜任多个领域的工作,应用前景广阔如军事侦察、资源开采、海底探索、消防营救等,应用前景广阔。但由于六足机器人的腿部结构较多,相对离散,在高灵活度、高机动性的同时,也导致了结构的复杂和控制的繁琐。但不管怎么说,六足机器人的优点十分显著,在未知的复杂地形上,具有极其优越的适应性,因此也成为了现今机器人研究的一大热门领域。1.2仿生六足机器人在国内外的研究现状及存在的问题在足类行进机器人发展的早期,科学家们更多的是研究与人类贴近的二足机器人,以及外形类似哺乳类陆生生物,如常见的猫狗一般的四足机器人,以运动能力优秀的动物为模板去研究和设计。但是结果并不太顺利,因为当时的科技水平还无法模拟出肌肉的控制系统,而二足和四足的生物,运动时都需要比较大的力量作为基础,以当时的马达和机构设计,想驱动就很困难了,更别提还要对这股力量进行控制。后来科学家们才将目光投向了六足机器人,当他们发现,虽然采用六足结构的机器人,行进速度并不快,但是通过三角步态,重心能很好地落在三只支撑足组成的三角形中,并且灵活度比起普通的四足机器人也十分优越。而现今,仿生昆虫的六足机器人得到了更多的关注和研究,其灵活度和稳定性也得到了更好的体现。近年来国内对于六足机器人的研究依旧火热,而最出名的还要数
Vincross人工智能科技公司研发的HEXA机器人。这款机器人在2017年亚洲消费电子展里首次亮相,荣获了当年由德国汉诺威工业设计论坛颁布的,含金量十足的if设计大奖。HEXA的外观酷似蜘蛛,头部可360°任意旋转,能攀爬15cm高的障碍并以1.2Km/h的速度奔跑。同时,六足机器人对复杂地形的适应力也发挥到了极致,不仅能在各种复杂地形中行走,甚至还能爬梯、下坑、钻洞。辅以夜视摄像头,激光传感器,三轴加速度计等模块,使得HEXA能胜任各种工作和环境。图1-1HEXA机器人而在国外,六足机器人的研究就更加深入了,毕竟研究内容也比较丰富。德国自动化技术厂商Festo发布的BionicWheelBot仿生机器人是一款别有匠心的六足仿生机器人,灵感来自于摩洛哥一种会翻滚的蜘蛛。它能够模仿这种蜘蛛,以翻滚模式在复杂地形上移动,速度是普通三角步态行进方式的两倍。虽然只是说改变了移动方式,但其中所要用到的技术却不能小觑。翻滚时的平衡,以及如何开始如何结束如何切换两种形态,腿部结构的设计都是值得我们研究的技术点。图1-2HEXA机器人翻滚动作图1-3HEXA机器人腿部关节又如英国工程师MattDenton发明的一个名为Mantis的机器人,高2.8米,重2吨,臂展能达到近2米。主要用途是作为载具,辅以其他模块后,能在林区矿区进行勘测,并且采矿的同时无需进行大量的植被清理。图1-4Mantis机器人目前来看,国内外对于六足仿生机器人的研究还存在一些差距,但都还没有特别大的突破,多数的六足机器人仍是以概念和样机出现,用于工业领域的寥寥无几,即使有少数声称能进行勘测的特种机器人,也不具备足够高的可靠性。1.3六足仿生机器人应解决的主要问题对于六足仿生机器人而言,最主要的问题是如何让机器人能够保持重心稳定地进行移动。一是步态的研究,以怎样的方式行进,才能充分发挥多足机器人用点接触来行进的优势。二是舵机之间的协调控制,由于18个关节上的舵机都是独立控制,虽然换来了较大的自由度,但控制也因此变得繁琐,如何将舵机与舵机之间统筹结合起来控制,是系统效率提高的关键。三是腿部机械结构的设计。腿部的结构与机体的稳定性密切相关,采用何种机械结构才能让腿部满足理想的运动轨迹,是科学家研究的热点。
2主要原理2.1仿生六足机器人行进原理本论文仿生六足机器人的行进方式主要参考了六足昆虫的三角步态,行进时通常将六只脚分为两组,每组三足呈三角形交替行走以保证重心的稳定。这种步态依靠腿部的前后摆动将身躯前移,虽然为了让重心保持在三角形内,导致腿部跨度小,行进速度也称不上快,但是其稳定性却无可置疑。在下列分析中假定左前、右中、左后为A组足,右前、左中、右后为B组足。前进的流程,可分解为两个过程,以及三个状态间的转换。假设A组足先动,状态a为初始状态,左三和右三足呈对称形态。状态b为A组足角度较初始状态不变并抬起,B组足组成的重心较初始状态滞后。状态c为B组足角度较初始状态不变并抬起,A组足组成的重心较初始状态滞后。过程x为B组足落地,A组足抬起并恢复初始位置,随后B组足以足尖为支点带动身躯前移。过程y为A组足落地,B组足抬起并恢复初始位置,随后A组以足尖为支点带动身躯前移。控制流程图图如图1,状态图如图2。图2-1前进控制流程图图2-2前进步态图而定点转弯的实现,其实也是一样的原理,甚至更加简单。通过控制落地足相对机身的角度,从而实现方向的改变。定点转弯的流程可分解为三个状态。从左转弯来看,状态a为初始状态,状态b时,B组足抬起,A组足角度改变,状态c则为B组足落地,A组足恢复原始角度。当转弯时,B组足抬起,同时A组足控制方向改变,随后B组足落地,A组足抬起恢复角度后落地,状态从a-b-c-a(d)进行循环。由于转弯的过程实际就是抬脚与落地,因此过程不进行具体讲述。控制流程图如图3,状态图如图4。图2-3定点转弯流程图图2-4定点转弯步态图2.2STM32F103系列单片机定时器输出PWM原理定时器输出PWM波首先要对CCMR1:OC1M[2:0]进行设置,PWM模式1为[110],PWM模式2为[111],并设置TIMx_CR1中的DIR寄存器,DIR=0为向上计数,DIR=1为向下计数。定时器输出PWM的过程主要是由CNT、ARR、CCRx三个寄存器控制。CNT寄存器的功能为计数,储存当前值。ARR寄存器的功能是自动重装载,计数值达到设定值后会归零重新加载。CCRx寄存器的功能是捕获或比较,这里是为了改变占空比,用到的是比较功能。接下来说明一下,向上和向下计数,PWM模式1和模式2的区别。当处于向上计数时,占空比的比较条件为CNT的值小于CCRx的值,而向下计数时,则与之相反,条件CNT的值大于CCRx的值。在PWM模式1下,条件为真,则输出有效电平,假输出无效电平,相反,在PWM模式2下,条件为真时,输出无效电平,反之输出有效电平。因此,我们可以通过设定ARR的值,当CNT计数值达到ARR的设定值时,ARR就会归零,并自动重新装载,达到控制PWM输出频率的改变。而占空比的控制则通过改变CCRx寄存器的值。当不同的值与CNT的值进行比较,同一周期内输出的有效电平和无效电平的比例也随之改变,意味着占空比也随之改变。2.3图像传感器数据输出、读取原理图像传感器的数据输出是在三个输入信号的控制下进行的,这里采用了QVGA模式输出像素。如下图:图2-5图像输出行时序图图2-6图像输出帧时序图第一个信号是像素时钟PCLK,在PCLK信号的一个周期里,输出半个或者一个像素数据。第二个信号是帧同步信号VSYNC,当检测到该信号的上升沿时,代表着要开始输出一帧的数据,检测到第二个上升沿则代表结束这一帧的输出,同时开始下一帧的输出。最后一个信号是行同步信号HREF或HSYNC,当HREF处于高电平时,代表着此时的数据为有效数据,PCLK每过一个周期,输出一个有效的字节数据,当HREF回到低电平时,代表结束这一行像素的输出。对于HSYNC信号而言,当检测到下降沿时,代表此时输出的数据有效,再次检测到下降沿,代表一行像素输出完毕。此次设计采用了QVGA模式,最终输出结果为RGB565格式,一个像素颜色的数据需要两个字节来储存,同时代表着R(红色通道)的值为高字节的前5位,G(绿色通道)的值为高字节的后3位加上低字节的后三位,B(蓝色通道)的值为低字节的后5位。因此要输出一张320×240的图片,一行则要输出640个字节,共输出640个PCLK周期。PCLK的速率可达到24Mhz,因此要注意MCU速率是否低于PCLK,如没有降低PCLK的速率,MCU速率又没有PCLK快,则会造成数据丢失,无法得到正确图像。
3硬件选型3.1六足机器人控制系统芯片选型在市面上,可作为控制器的产品主要分为单片机、嵌入式两大类,而实际上其实这两者的界限也挺模糊,有些高性能单片机并不是不能搭载计算机系统,只是效率不高,没有必要罢了,而嵌入式大部分也是基于单片机设计的,也可以说是微型计算机的裁剪版。因此,在此只是大概划分了这两类产品,并介绍其细分种类下不同系列的产品的优劣势。对于机器人控制和学生市场而言,单片机主要考虑用51单片机,stm32系列单片机和arduino板。51单片机是由\t"/item/51%E5%8D%95%E7%89%87%E6%9C%BA/_blank"ATMEL公司推出的一种8位单片机,它的功能相对比较基础,基于汇编语言跑程序的同时,芯片处理速度慢,导致其运行速度也慢,只能进行一些简单的控制,优点是使用简单,只要将寄存器配置好,载入程序就行,并且比起其他8位单片机,具有乘除法运算,无需调用子程序来实现乘除算法。Stm32系列单片机是ST厂商推出的一款以arm为内核的32位单片机,特点是高性能、低成本、低功耗。其最高72Mhz的工作频率,大大提升了单片机的运行速度,并提供了丰富的外围接口。Stm32系列单片机较51较为复杂,主要在于大量寄存器的配置和使用,也因此可以关掉不需要使用的功能,降低功耗。而arduino板实际上是一种基于AVR单片机设计的开发板,它更多的是提供软件上的支持,而不是硬件上的支持。官方提供了丰富的库函数资源,开发者不需要去了解内部的硬件结构和寄存器的设置,只需要知道端口的作用,就能够避开底层驱动和硬件进行开发。同时在官方的开源社区,也提供了大量、具有不同功能的函数库封装,方便业余爱好者使用。图3-151单片机图3-2STM32系列单片机图3-3arduino板嵌入式通常是指一种搭载了计算机系统的开发板,它在软硬件的方方面面上都是根据用户需求、功能、可靠性、成本、体积、功耗、环境等多种因素而进行增减的,从而更好地贴合环境实际情况,实现最高效率。对于学生而言,很难说真正去为了某个功能而去设计专用的嵌入式系统和开发板,而树莓派作为一款微型计算机,搭载了linux系统,通过外围接口的使用,也可以将其当做嵌入式开发板来使用。所以单纯就开发和使用而言,很多想学习嵌入式开发的人往往选择了树莓派作为嵌入式开发板来使用。树莓派基于arm11而设计,工作频率高达700Mhz,通常在需要某种算法,需要强大的计算能力时才会选择,比如人脸识别,AI算法等功能,这时采用一般的单片机实现起来就会很复杂很慢。图3-4树莓派本次设计主要是研究六足机器人的控制原理,需要一定的运算能力和响应速度,但暂未考虑人脸识别等高级算法的功能,因此经过经济和需求考虑,决定采用以ARMCortex-M为核心的STM32系列单片机。又根据定时器的使用个数,I/O口功能及数量,选定了STM32系列中的STM32F103VCT6。STM32F03VCT6以ARM32位的Cortex™-M3为内核,工作频率可高达72MHz,拥有256K字节的闪存程序存储器、48K字节的SRAM、80个I/O口、3个USART口、2个UART口、3个SPI口、2个I2C口和11个定时器,其中有四个16位定时器以及两个高级定时器均可输出多路PWM。3.2舵机驱动电池选型可用于驱动电机舵机的电池类型非常多,如市面上常见的一次性电池,通常为碱性或者碳性的干电池。碳性电池电量要远少于碱性电池,并且由于发生化学反应,长期使用后会有漏液情况发生,同时因为含有镉元素,会对环境造成污染,需要进行回收,虽然碳性电池功能不强,还有一些缺陷,但是其胜在价格低廉,一般都使用在耗电量不强的设备上。而碱性电池电容量大,持续输出稳定,并且不会漏液和污染环境,已基本取代了碳性电池的地位,不论是高端的电子产品,还是普通的小家电,碱性电池都能很好的适用。尤其适合适用在耗电量大,持续时间久的情况下。碱性电池还有一个特点,当电量耗尽后静置,电量又会恢复一部分,断续适用能让碱性电池能加耐用。图3-5碱性电池图3-6碳性电池又如蓄电池,比较常见的是酸性的铅酸蓄电池和碱性的镍镉蓄电池。这类电池主要以呈酸/碱性水溶液作为\t"/item/%E9%85%B8%E6%80%A7%E8%93%84%E7%94%B5%E6%B1%A0/_blank"电解质,因此原料简单资源多,价格也比较低廉。同时放电稳定,工作电压高,温度限制较低,可多次充电反复使用等优势也让蓄电池得以发展,现今已广泛使用在工业领域,通常用来驱动需要较大的电流电压的设备。其缺点也十分明显,虽然原料便宜,但是需要占用的体积重量也很大,电池的能量密度往往也不高,并且还有着自放电的问题,即使没有使用,放置一阵子后电量也会耗尽。图3-7铅酸蓄电池图3-8镍镉蓄电池在能进行充电的电池类型中,还有很多类电池广泛应用于电子产品领域,最出名的莫不是锂电池。它的能量密度非常高,能达到每千克460至600瓦时,是铅酸电池6至7倍,也变向地突出了该电池重量轻体积小的特点。其使用寿命很长,能进行10000次的充放电,且自放电率极低,几乎可以忽略不计。对于环境也十分友好,一是生产过程不消耗水资源。二是本身及相关生产过程都不存在有害有毒的重金属元素和物质,不会对环境造成污染。并且对于温度的限制也不高,一般的锂电池都可在-20℃到60℃的环境下使用,甚至可以经过特殊处理以适应更低或更高的温度。锂电池最主要的缺点就是生产工艺比较复杂。由于锂电池不允许过充过放电,并且安全性一般,容易发生爆炸,自然就需要在生产上使用保护电路、特殊材料和元件来解决安全和损坏问题。图3-9锂电池图3-10手机锂电池由于该电池需要装载在六足机器人身上,用于驱动18个使用电压3.6v至6v、使用电流500mA至600mA的舵机,因此蓄电池,碱性电池和锂电池理论上都是可以使用的,但是鉴于锂电池通常只有以3.7V为倍数的电压值,离舵机最低工作电压太近,有可能无法较好地驱动,而镍镉电池充电性能一般,有记忆效应,电量也没有碱性电池高,最后还是采用了碱性电池作为舵机的驱动电源。3.3摄像头选型本次研究中,对摄像头的功能并无过多要求。选型的主要因素为摄像头模块的工作速度、抗干扰能力、价格和学习资源。最后匹配STM32F103系列的控制器后,选用以PB-0300系列的CMOS图像传感器制作的OV7725模块。该模块的需要的占用空间很小,工作电压只需要2.5v到3v,提供多种格式的图像数据如常见的RGB、YUV、YCbCr等,并且从VGA到CIF以下的尺寸都能输出。同时该摄像头最多能输出有效像素76800个,对应的是640×480大小的图像。数据的传输则是通过SCCB总线控制,能输出整帧、子采样、取窗口等方式的各种分辨率8位影像数据。最后,该摄像头还应用了独特的图像传感器技术,能通过减少光线和硬件本身的缺陷对图像造成的干扰,从而得到更加清晰完整的图像。图3-11CMOS图像传感器图3-12OV7725摄像头模块
4控制系统设计对于六足机器人而言,主要应用于探索勘测领域。为了能够被控制和检测,并拥有一部分自动探查的能力,采用手机蓝牙实现通讯,并搭载摄像头以获得环境数据。4.1控制系统硬件设计图4-1硬件系统4.2控制器STM32F103VCT6电路原理图图4-2单片机系统原理图4.3控制系统程序框图图4-3控制系统程序框图4.4六足机器人主要功能的实现4.4.1蓝牙串口通讯蓝牙模块初次使用时,最好先通过usb转ttl模块,将蓝牙模块hc-05与电脑相连接,用串口调试软件XCOM查询或配置好hc-05的波特率,配对密码,姓名等。在接收数据时,通常使用检测接收数据的标志位USART_IT_RXNE或USART_FLAG_RXNE。前者是接收中断发生标志位,后者是接收状态标志位,当中断未开启时,USART_IT_RXNE不工作,当中断开启后,两者实际用途无差异。在接收完数据后,要使用USART_ClearITPendingBit或USART_ClearFLAGPendingBit函数对标志位进行清零。如下列代码所示:发送完数据时,数据发送标志位会硬件自动清零,因此只需要在发送数据后等待标志位自动清零。发送数据相关的标志位有四个:USART_FLAG中的TXE和TC,USART_IT中的TXE和TC。FLAG和IT的区别和接收标志位一样,不再阐述。而想知道TXE和TC的区别就得先知道usart传输的相关原理。在usart的发送端,是由两个寄存器组成的,一个为USART_DR寄存器,另一个为移位寄存器。当数据发送时,USART_DR寄存器会先将数据存放着,然后转移给移位寄存器,再由其发送给接收端。当USART_DR寄存器中无数据时,TXE就会置1。当移位寄存器发送完最后一个数据时,TC就会置1。两者在功能上最大的区别是:使用TXE来判断数据发送情况的话,发送数据时能保证USART_DR寄存器里总是有数据,保证数据连续不断地发送;使用TC来判断的话,就能准确得知发送完成的时间点,在效率上和数据的连续性上,不如采用TXE方便。因为发送数据不写在中断函数里,于是使用了USART_FLAG_TXE,代码如下列所示:下图为手机蓝牙发送数据后,stm32单片机接收并发送回所接收到的数据。图4-4蓝牙通讯4.4.2超声波测距向超声波模块的TRIG脚发送一段10us的高电平,模块就会发出超声波,等待接收到回波,ECHO引脚就会置1,并持续从发出超声波到接收所用的时间。根据此功能,只要用定时器来计算ECHO高电平持续的时间,就可以算出距离障碍物的距离。本次研究中,将周期值设为1000,预分频数设置为72,定时器时钟频率也默认等同于工作频率72Mhz(可改变),计算后得出每次计数为1us。音速在通常环境下为340m/s,转换单位后位0.0343cm/us,也可以看作29.15us/cm。除去一半路程,实际障碍物与机器人的距离和时间关系可看作,每微秒58.3厘米。为了运算方便,将58.3us/cm约等于58us/cm。具体代码如下列所示:在功能加入了发送数据的代码,通过手机可看到数据是否正确,最终实现如下图。图4-5接收长度数据图4-6超声波模块实物图4.4.3行走功能六足机器人的行走,实际上就是舵机角度的改变,而舵机角度的改变实际就是控制信号PWM波占空比的改变。显示在程序里,就是对定时器进行配置,然后根据步态不断地改变定时器输出的PWM波的占空比。下列是前进状态下其中一个动作的代码:加入循环代码后,调整占空比,实现如流水灯的效果,等效于PWM波占空比的改变。图4-7PWM占空比控制4.4.4拍照功能部分代码由于使用了带FIFO的摄像头模块,图像传感器传输的数据都被缓存在了FIFO模块中。因此读数据时不需要对时序进行过多的控制,只要读取FIFO中的前76800个像素(QVGA格式)就是所需要的图片。而对于rgb565格式的像素数据,需要用16位的空间来存储。每个PCLK周期只读半个像素,因此需要分别读低8位和高8位的像素数据。读取数据的基本代码如下列所示:由于没有上位机来,转换数据成图片,暂时使用LCD来读取像素数据,以验证数据的正确性,模拟效果如下图。图4-8lcd读取照片数据
5总结与展望本次研究,主要实现了:1.六足机器人以三角步态的方式行走:用stm32的定时器输出占空比可变的PWM波,以驱动舵机角度的改变。2.摄像头数据的读取。3.利用超声波模块进行测距避障。4.使用蓝牙对六足机器人进行控制和双向通讯。主要问题有:1.超声波测距功能在对比较靠近的细长物体的测距时效果很差。2.蓝牙模块能稳定通讯的距离太短了。3.程序效率一般,还有待优化。在这次设计中,使用了STM32系列的芯片来实现六足机器人的控制。由于第一次使用stm32单片机,繁多的寄存器确实给我带来了不少麻烦。在调试各种功能的过程中,往往会遇到某个寄存器没有使能或者配置错误而导致的失败。最好的解决方法就是仔细查看数据手册里的相关内容和官方所提供的相关库函数的定义,了解更底层的实现原理。经过这次毕业设计,我已能较好的掌握stm32芯片的学习方法和使用,深入了解了其封装和最小系统。同时学习了各种接口串口以及模块的原理和使用,也明显感觉到自己C语言编程的能力还不够熟练。本次的六足机器人设计,只简单实现了其控制,以及结构上和步态上的仿生,各种功能上也仍有很大局限性。此设计后,会将超声波替换成多个红外线传感器,已达到更精确的测距和更智能的避障。蓝牙通信也应用无线通信替代,来实现更远的控制距离。并且应该搭载一个陀螺仪模块,自适应调整姿态,让机器人看起来更加仿生。希望未来有一天能做出活灵活现的,能真正称得上仿生的六足机器人。
参考文献[1]周海涛,吴冬燕,吴阳江,等.基于STM32的六足机器人研究[J].电子制作,2019,7:29-30.
[2]姜树海,孙培,唐晶晶,等.仿生甲虫六足机器人结构设计与步态分析[J].南京林业大学学报:自然科学版,2012,36(6):115-120.[3]李朝青,卢晋,王志勇,等.单片机原理及接口技术(第5版)[M].北京航空航天大学出版社:北京,2017:25.[4]谢鑫,李琼麟,郭建,等.仿生六足机器人的设计与实现[J].机械制造,2017,55(638):20-23.[5]赵涓涓,李强,任美荣,等.六足仿生机器人运动控制系统的设计[J].机电工程技术,2008,37(12):444-45.[6]玩转单片机.舵机控制原理与单舵机调速算法解析[EB/OL]./article/608940.html,2017-12-29.[7]霁风AI.蓝牙模块——基础知识介绍[EB/OL]./wwtarticle/details/77833602,2017-09-04.[8]坏坏成不坏.基于STM32的OV7670摄像头总结[EB/OL]./HouQi02/article/details/51712994,2016-06-19.[9]Yngz_Miao.【STM32】GPIO工作原理(八种工作方式超详细分析,附电路图)[EB/OL]./qq_38410730/article/details/79858906,2018-04-10.[10]STMicroelectronics.Datasheet-STM32F103VC[EB/OL]./resource/en/datasheet/stm32f103vc.pdf,2018-7.谢辞首先要感谢大学生活里,为我们学生付出精力和心血的全体老师们。在这四年的学习时间里,身边永远少不了老师们的循循教诲和陪伴,他们都在帮助我更好更快地成长和学习。在此要特别感谢我们的班导师卢桂萍老师,不论是在日常生活方面还是学习方面,又或是发展相关的问题,都会用心的为我们提供帮助和解答,无微不至。其次是身边的同学和朋友,在我灰心或者低迷的时候,会给予我帮助,互相鼓励,让我有信心继续努力下去。也会在我遭遇难题的时候,为我提供意见和帮助,缓解我的压力。最后还要由衷感谢本次毕业设计的指导老师李琳老师,不管是在以前的各门专业课上,还是在本次毕设的指导上,都给予了我莫大的帮助。在李琳老师的指导下我们敲定选题,建立好论文框架,完成初稿定稿,并且每周还会开一次小会议督促我们毕设进度,解决每一阶段里存在的问题。在这如同白马过隙的四年里,我觉得我何其有幸能够认识这么多优秀的同学和老师。非常感谢成长的一路上有你们的陪伴,你们的心意和恩情我会永远铭记心中。附录附录1部分程序源代码主程序 intmain(void){u8sr04_front,sr04_left,sr04_right; delay_init();//延时初始化delay_ms(1000); //等待上电稳定 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//中断分组方式,抢占4,响应4hc05_init();//蓝牙初始化Hcsr04Init();//超声波初始化 TIM_PWM_Init(1999,719);//设置周期值2000,预分频系数720while(1){ if(usart_flag==1)//接收到数据{ USART_SendData(USART3,rev_data);//向usart3通道发送数据 usart_flag=0;//接收标志清零while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==RESET); //等待数据发送中断自动清零 } if(rev_data=='1')//自动模式 { sr04_front=Hcsr04GetLength1();//获取前方障碍物距离 sr04_left=Hcsr04GetLength2();//获取左方障碍物距离 sr04_right=Hcsr04GetLength3();//获取右方障碍物距离 if(sr04_front<=3)//前方有无障碍物 if(sr04_left<=3)//左方有无障碍物 if(sr04_right<=3)//右方有无障碍物 walk_back();//向后走 else walk_right();//向右走 else walk_left();//向左走 elsewalk_front();//向前走 } switch(rev_data){case'2':walk_stop();break;//停止case'3':walk_front();break;//前进case'4':walk_left();break;//左转case'5':walk_right();break;//右转case'6':walk_back();break;//后退case'7':photo();break; //拍照后停止default:break; }}超声波程序floatHcsr04GetLength1(void){u32t=0;floatlengthTemp=0;TRIG1_Send=1;//发送10us的高电平delay_us(10);TRIG1_Send=0; while(ECHO1_Reci==0);//等待接收回波,若完全接收不到,硬件会置1并取长度为56cm,以防卡死。 OpenTimerForHc();//开启定时器并计数 while(ECHO1_Reci==1); CloseTimerForHc(); t=msHcCount*1000;//周期值*周期数 t+=TIM_GetCounter(TIM6);//加上当前计数值 lengthTemp=((float)t/58); //计算距离,以厘米为单位;也可用(float)t*17/1000,但计算量大。 TIM6->CNT=0;//定时器当前计数值清零 returnlengthTemp;//返回距离值}蓝牙中断接收程序voidUSART3_IRQHandler(void){if(USART_GetITStatus(USART3,USART_IT_RXNE)!=RESET){rev_data=USART_ReceiveData(USART3);//接收数据usart_flag=1;//接收标志USART_ClearITPendingBit(USART3,USART_IT_RXNE); //接收中断标志位清零}}前进程序voidwalk_front(void){//抬脚TIM_SetCompare4(TIM1,b);TIM_SetCompare3(TIM2,f); TIM_SetCompare1(TIM3,b);TIM_SetCompare2(TIM3,f); TIM_SetCompare2(TIM5,b);TIM_SetCompare3(TIM5,f); delay_ms(20); //落地脚前移,抬起脚恢复TIM_SetCompare4(TIM2,d); TIM_SetCompare3(TIM3,d);TIM_SetCompare4(TIM5,d); TIM_SetCompare3(TIM1,e); TIM_SetCompare2(TIM4,e);TIM_SetCompare1(TIM5,e); delay_ms(20); //放脚 TIM_SetCompare4(TIM1,c);TIM_SetCompare3(TIM2,e); TIM_SetCompare1(TIM3,c);TIM_SetCompare2(TIM3,e); TIM_SetCompare2(TIM5,c);TIM_SetCompare3(TIM5,e); delay_ms(20); //抬脚TIM_SetCompare1(TIM1,b);TIM_SetCompare2(TIM1,f); TIM_SetCompare4(TIM3,b);TIM_SetCompare1(TIM4,f); TIM_SetCompare3(TIM4,b);TIM_SetCompare4(TIM4,f); delay_ms(20); //落地脚前移,抬起脚恢复TIM_SetCompare3(TIM1,d); TIM_SetCompare2(TIM4,d);TIM_SetCompare1(TIM5,d); TIM_SetCompare4(TIM2,e); TIM_SetCompare3(TIM3,e);TIM_SetCompare4(TIM5,e); delay_ms(20); //放脚TIM_SetCompare1(TIM1,c);TIM_SetCompare2(TIM1,e); TIM_SetCompare4(TIM3,c);TIM_SetCompare1(TIM4,e); TIM_SetCompare3(TIM4,c);TIM_SetCompare4(TIM4,e); delay_ms(20); }拍照程序voidphoto(void){ u8lightmode=0,effect=0;s8saturation=0,brightness=0,contrast=0;//LCD_Init(); //初始化LCD,用于调试拍照功能usart1_init(115200);//usart1初始化while(OV7725_Init());//摄像头初始化 OV7725_Window_Set(OV7725_WINDOW_WIDTH,OV7725_WINDOW_HEIGHT,0);//QVGA模式输出OV7725_Light_Mode(lightmode);OV7725_Color_Saturation(saturation);OV7725_Brightness(brightness);OV7725_Contrast(contrast);OV7725_Special_Effects(effect);OV7725_CS=0;//使能摄像头EXTI8_Init(); //检测VSNCY信号上升沿的中断初始化//LCD_Clear(BLACK);//清屏 OV7725_camera_shot();//读取一帧像素 while(rev_data==’7’);}读取一帧像素程序voidOV7725_camera_shot(void){u32i,j;u16color; while(ov_sta){ /*LCD_Scan_Dir(U2D_L2R);//从上到下,从左到右扫描 LCD_Set_Window((lcddev.width-OV7725_WINDOW_WIDTH)/2,(lcddev.height-OV7725_WINDOW_HEIGHT)/2,OV7725_WINDOW_WIDTH,OV7725_WINDOW_HEIGHT);//将显示区域设置到屏幕中央 LCD_WriteRAM_Prepare();//开始写入GRAM */ OV7725_RRST=0; //开始复位读指针 OV7725_RCK_L; OV7725_RCK_H; OV7725_RCK_L; OV7725_RRST=1; //复位读指针结束 OV7725_RCK_H; for(i=0;i<OV7725_WINDOW_HEIGHT;i++) { for(j=0;j<OV7725_WINDOW_WIDTH;j++) { OV7725_RCK_L; color=GPIOC->IDR&0XFF; //读并储存低8位数据 OV7725_RCK_H; color<<=8; OV7725_RCK_L; color|=GPIOC->IDR&0XFF; //读并储存高8位数据 OV7725_RCK_H; //LCD->LCD_RAM=color;//用lcd显示代替图像储存USART_SendData(USART3,color);//向usart3通道发送数据while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==RESET); //等待数据发送中断自动清零 } } ov_sta=0; //清零帧中断标记 break;}}初始化程序之一:超声波初始化程序voidHcsr04Init(void){//设置相关GPIO口,TIM6TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(HCSR04_CLK,ENABLE);//使能对应时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE);//使能计数用定时器 GPIO_InitStructure.GPIO_Pin=HCSR04_TRIG1|HCSR04_TRIG2|HCSR04_TRIG3;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出模式GPIO_Init(HCSR04_PORT,&GPIO_InitStructure);GPIO_ResetBits(HCSR04_PORT,HCSR04_TRIG1|HCSR04_TRIG2|HCSR04_TRIG3);GPIO_InitStructure.GPIO_Pin=HCSR04_ECHO1|HCSR04_ECHO2|HCSR04_ECHO3;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;//浮空输入模式GPIO_Init(HCSR04_PORT,&GPIO_InitStructure);GPIO_ResetBits(HCSR04_PORT,HCSR04_ECHO1|HCSR04_ECHO2|HCSR04_ECHO3);TIM_DeInit(TIM6);TIM_TimeBaseStructure.TIM_Period=(1000-1);//溢出周期值TIM_TimeBaseStructure.TIM_Prescaler=(72-1);//预分频值TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM6,&TIM_TimeBaseStructure);//设置TIM6中断优先级并使能中断NVIC_InitTypeDefNVIC_InitStructure;NVIC_InitStructure.NVIC_IRQChannel=TIM6_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;NVIC_InitStructure.NVIC_IRQChannelSubPriority=2;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);TIM_ClearFlag(TIM6,TIM_FLAG_Update);//清除标志位TIM_ITConfig(TIM6,TIM_IT_Update,ENABLE);//开启更新中断TIM_Cmd(TIM6,DISABLE);//关闭定时器6}
怎样提高电脑系统运行速度WindowsXP的启动速度比Windows2000要快30%左右,但相对于Windows98仍然要慢了不少,不过,我们可以通过优化设置,来大大提高WindowsXP的启动速度。加快系统启动速度主要有以下方法:尽量减少系统在启动时加载的程序与服务;对磁盘及CPU等硬件进行优化设置;修改默认设置,减少启动等待时间等。这些方法大部分既可减少系统启动的时间,又可以节省系统资源,加快电脑运行速度。1.加快系统启动速度WindowsXP的启动速度比Windows2000要快30%左右,但相对于Windows98仍然要慢了不少,不过,我们可以通过优化设置,来大大提高WindowsXP的启动速度。加快系统启动速度主要有以下方法:尽量减少系统在启动时加载的程序与服务;对磁盘及CPU等硬件进行优化设置;修改默认设置,减少启动等待时间等。这些方法大部分既可减少系统启动的时间,又可以节省系统资源,加快电脑运行速度。(1)MsconfigWindowsXP的启动速度在系统安装初期还比较快,但随着安装的软件不断增多,系统的启动速度会越来越慢,这是由于许多软件把自己加在了启动程序中,这样开机即需运行,大大降低了启动速度,而且也占用了大量的系统资源。对于这样一些程序,我们可以通过系统配置实用程序Msconfig将它们从启动组中排除出去。选择“开始”菜单中的“运行”命令,在“运行”对话框中键入“Msconfig”,回车后会弹出“系统配置实用程序”对话框,选择其中的“启动”选项卡(如图1),该选项卡中列出了系统启动时加载的项目及来源,仔细查看每个项目是否需要自动加载,否则清除项目前的复选框,加载的项目越少,启动的速度就越快。设置完成后需要重新启动方能生效。(2)BootvisBootvis是微软提供的一个启动优化工具,可提高WindowsXP的启动速度。用BootVis提升WindowsXP的启动速度必须按照正确的顺序进行操作,否则将不会起到提速的效果。其正确的操作方法如下:启动Bootvis,从其主窗口(如图2)中选择“工具”菜单下的“选项”命令,在“符号路径”处键入Bootvis的安装路径,如“C:\ProgramFiles\Bootvis”,单击“保存”退出。从“跟踪”菜单中选择“下次引导”命令,会弹出“重复跟踪”对话框,单击“确定”按钮,BootVis将引导WindowsXP重新启动,默认的重新启动时间是10秒。系统重新启动后,BootVis自动开始运行并记录启动进程,生成启动进程的相关BIN文件,并把这个记录文件自动命名为TRACE_BOOT_1_1。程序记录完启动进程文件后,会重新启动BootVis主界面,在“文件”菜单中选择刚刚生成的启动进程文件“TRACE_BOOT_1_1”。窗口中即会出现“CPU>使用”、“磁盘I/O”、“磁盘使用”、“驱动程序延迟”等几项具体图例供我们分析,不过最好还是让BootVis程序来自动进行分析:从“跟踪”菜单中选择“系统优化”命令,程序会再次重新启动计算机,并分析启动进程文件,从而使计算机启动得更快。(3)禁用多余的服务WindowsXP在启动时会有众多程序或服务被调入到系统的内存中,它们往往用来控制Windows系统的硬件设备、内存、文件管理或者其他重要的系统功能。但这些服务有很多对我们用途不大甚至根本没有用,它们的存在会占用内存和系统资源,所以应该将它们禁用,这样最多可以节省70MB的内存空间,系统速度自然也会有很大的提高。选择“开始”菜单中的“运行”命令,在“运行”对话框键入“services.msc”后回车,即可打开“服务”窗口。窗口的服务列表中列出了系统提供的所有服务的名称、状态及启动类型。要修改某个服务,可从列表双击它,会弹出它的属性对话框(如图3),你可从“常规”选项卡对服务进行修改,通过单击“启动”、“停止”、“暂停”、“恢复”四个按钮来修改服务的状态,并可从“启动类型”下拉列表中修改启动类型,启动类型有“自动”、“手动”、“已禁用”三种。如果要禁止某个服务在启动自动加载,可将其启动类型改为“已禁用”。WindowsXP提供的所有服务有36个默认是自动启动的,实际上,其中只有8个是必须保留的(见下表),其他的则可根据自己的需要进行设置,每种服务的作用在软件中有提示。4)修改注册表来减少预读取,减少进度条等待时间WindowsXP在启动过程中会出现一个进度条,我们可以通过修改注册表,让进度条只跑一圈就进入登录画面。选择“开始”菜单中的“运行”命令,在“运行”对话框键入“regedit”命令后回车,即可启动注册表编辑器,在注册表中找HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\PrefetchParameters,选择其下的EnablePrefetcher键,把它的键值改为“1”即可。(5)减少开机磁盘扫描等待时间当Windows日志中记录有非正常关机、死机引起的重新启动,系统就会自动在启动的时候运行磁盘扫描程序。在默认情况下,扫描每个分区前会等待10秒钟,如果每个分区都要等上10秒才能开始进行扫描,再加上扫描本身需要的时间,会耗费相当长的时间才能完成启动过程。对于这种情况我们可以设置取消磁盘扫描的等待时间,甚至禁止对某个磁盘分区进行扫描。选择“开始→运行”,在运行对话框中键入“chkntfs/t:0”,即可将磁盘扫描等待时间设置为0;如果要在计算机启动时忽略扫描某个分区,比如C盘,可以输入“chkntfs/xc:”命令;如果要恢复对C盘的扫描,可使用“chkntfs/dc:”命令,即可还原所有chkntfs默认设置,除了自动文件检查的倒计时之外。2.提高系统运行速度提升系统运行速度的思路与加快启动的速度类似:尽量优化软硬件设置,减轻系统负担。以下是一些常用的优化手段。(1)设置处理器二级缓存容量WindowsXP无法自动检测处理器的二级缓存容量,需要我们自己在注册表中手动设置,首先打开注册表,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”,选择其下的“SecondLevelDataCache”,根据自己所用的处理器设置即可,例如PIIICoppermine/P4Willamette是“256”,AthlonXP是“384”,P4Northwood是“512”。(2)提升系统缓存同样也是在“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”位置,把其下的“LargeSystemCache”键值从0改为1,WindowsXP就会把除了4M之外的系统内存全部分配到文件系统缓存中,这样XP的内核能够在内存中运行,大大提高系统速度。通常来说,该优化会使系统性能得到相当的提升,但也有可能会使某些应用程序性能降低。需要注意的是必须有256M以上的内存,激活LargeSystemCache才可起到正面的作用,否则不要轻易改动它。(3)改进输入/输出性能这个优化能够提升系统进行大容量文件传输时的性能,不过这只对服务器用户才有实在意义。我们可在中新建一个DWORD(双字节值)键值,命名为IOPageLockLimit。一般情况下把数据设置8~16MB之间性能最好,要记住这个值是用字节来计算的,例如你要分配10MB的话,就是10×?1024×1024,也就是10485760。这里的优化也需要你的机器拥有大于256M的内存。(4)禁用内存页面调度在正常情况下,XP会把内存中的片断写入硬盘,我们可以阻止它这样做,让数据保留在内存中,从而提升系统性能。在注册表中找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”下的“DisablePagingExecutive”键,把它的值从0改为1即可禁止内存页面调度了。(5)关闭自动重新启动功能当WindowsXP遇到严重问题时便会突然重新开机,可从注册表将此功能取消。打开注册表编辑器,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\”将AutoReboot键的Dword值更改为0,重新启动后设置即可生效。(6)改变视觉效果WindowsXP在默认情况下启用了几乎所有的视觉效果,如淡入淡出、在菜单下显示阴影。这些视觉效果虽然漂亮,但对系统性能会有一定的影响,有时甚至造成应用软件在运行时出现停顿。一般情况下建议少用或者取消这些视觉效果。选择桌面上“我的电脑”图标,单击鼠标右键,在弹出的快捷菜单中选择“属性”命令,打开“系统属性”对话框。选择“高级”选项卡,在其中的“性能”栏中单击“设置”按钮,会弹出“性能选项”对话框(如图4),可选择“调整为最佳性能”单选框来关闭所有的视觉效果,也可选择“自定义”然后选择自己需要的视觉效果。(7)合理设置页面虚拟内存同样也是在“性能选项”对话框中,选择“高级”选项卡,在其中的“虚拟内存”栏中单击“更改”按钮,接下来选择虚拟内存为“自定义大小”,然后设置其数值。一般情况下,把虚拟设为不小于256M,不大于382M比较合适,而且最大值和最小值最好一样。(8)修改外观方案WindowsXP默认的外观方案虽然漂亮,但对系统资源的占用也多,可将其改为经典外观以获得更好的性能。在桌面空白位置单击鼠标右键,从弹出的快捷菜单中选择“属性”命令,会打开“显示属性”对话框,在“主题”选项卡选择主题为“Windows经典”,即可将外观修改为更为经济的Windows经典外观。(9)取消XP对ZIP支持WindowsXP在默认情况下打开了对zip文件支持,这要占用一定的系统资源,可选择“开始→运行”,在“运行”对话框中键入“regsvr32/uzipfldr.dll”,回车确认即可取消XP对ZIP解压缩的支持,从而节省系统资源。(10)关闭Dr.WatsonDr.Watson是WindowsXP的一个崩溃分析工具,它会在应用程序崩溃的时候自动弹出,并且在默认情况下,它会将与出错有关的内存保存为DUMP文件以供程序员分析。不过,记录DUMP文件对普通用户则毫无帮助,反而会带来很大的不便:由于Dr.Watson在应用程序崩溃时会对内存进行DUMP记录,将出现长时间硬盘读写操作,要很长一断时间程序才能关闭,并且DUMP文件还会占用大量磁盘空间。要关闭Dr.Watson可打开注册表编辑器,找到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\AeDebug”分支,双击其下的Auto键值名称,将其“数值数据”改为0,最后按F5刷新使设置生效,这样就取消它的运行了。同样,我们可以把所有具备调试功能的选项取消,比如蓝屏时出现的memory.dmp,可在“系统属性”对话框中选择“高级”选项卡,单击“启动和故障恢复”栏中的“设置”按钮,并在弹出的“启动和故障恢复”对话框中选择“写入调试信息”为“无”(如图5)。(11)启动硬盘/光驱DMA模式打开“系统属性”对话框,选择“硬件”选择卡中的“设备管理器”按钮,打开“设备管理器”窗口,在设备列表中选择“IDEATA/ATAPI控制器”,双击“主要IDE通道”或“次要IDE通过”,在其属性对话框的“高级设置”选项卡中检查DMA模式是否已启动,一般来说如果设备支持,系统就会自动打开DMA功能,如果没有打开可将“传输模式”设为“DMA(若可用)”。(12)关掉不用的设备WindowsXP总是尽可能为电脑的所有设备安装驱动程序并进行管理,这不仅会减慢系统启动的速度,同时也造成了系统资源的大量占用。针对这一情况,你可在设备管理器中,将PCMCIA卡、调制解调器、红外线设备、打印机端口(LPT1)或者串口(COM1)等不常用的设备停用,方法是双击要停用的设备,在其属性对话框中的“常规”选项卡中选择“不要使用这个设备(停用)”。在重新启动设置即可生效,当需要使用这些设备时再从设备管理器中启用它们。(13)关闭错误报告当应用程序出错时,会弹出发送错误报告的窗口,其实这样的错误报告对普通用户而言几乎没有任何意义,关闭它是明智的选择。在“系统属性”对话框中选择“高级”选项卡,单击“错误报告”按钮,在弹出的“错误汇报”对话框中,选择“禁用错误汇报”单选项,最后单击“确定”即可。另外我们也可以从组策略中关闭错误报告:从“运行”中键入“gpedit.msc”,运行“组策略编辑器”,展开“计算机配置→管理模板→系统→错误报告功能”,双击右边设置栏中的“报告错误”,在弹出的“属性”对话框中选择“已禁用”单选框即可将“报告错误”禁用。(14)关闭自动更新“自动更新”功能对许多WindowsXP用户而言并不是必需的,可将其关闭以节省系统资源。在“我的电脑”上单击鼠标右键,从快捷菜单中选择“属性”命令,选择“系统属性”对话框中的“自动更新”选项卡,勾选“关闭自动更新,我将手动更新计算机”单选框,单击“确定”按钮即可关闭自动更新功能。如果在“服务”已经将“AutomaticUpdates”服务关闭,“系统属性”对话框中的“自动更新”选项卡就不能进行任何设置了。(15)去掉菜单延迟去掉菜单弹出时的延迟,可以在一定程度上加快XP。要修改的键值位置在“HKEY_CURRENT_USER\ControlPanel\Desktop”。修改其下的“MenuShowDelay”键,把默认的400修改为0,按F5刷新注册表即可生效。(16)清除预读文件WindowsXP的预读设置虽然可以提高系统速度,但是使用一段时间后,预读文件夹里的文件数量会变得相当庞大,导致系统搜索花费的时间变长。而且有些应用程序会产生死链接文件,更加重了系统搜索的负担。所以,应该定期删除这些预读文件。预计文件存放在WindowsXP系统文件夹的Prefetch文件夹中,该文件夹下的所有文件均可删除。(17)关闭自动播放功能在WindowsXP中,当往光驱中放入光盘或将USB硬盘接上电脑时,系统都会自动将光驱或USB硬盘扫描一遍,同时提示你是否播放里面的图片、视频、音乐等文件,如果是拥有多个分区的大容量的USB硬盘,扫描会耗费很长的时间,而且你得多次手动关闭提示窗口,非常麻烦。这种情况下我们可以将WindowsXP的自动播放功能关闭。运行“组策略”程序。在组策略窗口左边栏中,打开“计算机配置”,选择“管理模板”下的“系统”,然后在右边的配置栏中找到“关闭自动播放”并双击它,会弹出“关闭自动播放属性”对话框。在其中“设置”选项卡中选择“已启用”,“关闭自动播放”下拉列表中选择“所有驱动器”(如图6)。这样以后就不用担心WindowsXP的“自动播放”功能带来的麻烦了。如果你只是想禁止系统扫描某个驱动器(如USB硬盘)上的文件,可采用下面的方法。先连上你的USB硬盘,让系统将它识别出来。然后打开“我的电脑”,选择USB硬盘上的某个分区,按鼠标右键,会弹出磁盘属性窗口,选取“自动播放”选项卡,将所有内容的类型都选择为不执行操作。如果USB硬盘有多个分区,对所有分区都进行同样的操作,这样当你将USB驱动器拔掉再重新接上时,系统会将USB硬盘识别出来,而不会反复问你是否播放USB硬盘中的文件了。3.加快关机速度WindowsXP的关机速度要慢于启动速度,特别有些任务还需要手工结束,更加延缓了关机速度。因此,要加快关机速度,首先要开启WindowsXP的自动结束任务功能。具体步骤是:从注册表中找到“HKEY_CURRENT_USER\ControlPanel\Desktop”,把“AutoEndTasks”的键值设置为1即可。然后再修改“HungAppTimeout”为“4000(或更小)”(预设为5000),该键值同样也在“HKEY_CURRENT_USER\ControlPanel\Desktop”下;最后一步再找到“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\”,同样把WaitToKillServiceTimeout设置为“4000”;通过这样设置后的关机速度明显要加快了。够全面吧~~◆二、硬件优化设置◆1、关掉不用的设备
在设备管理器中,将PCMCIA卡、调制解调器、红外线设备、打印机端口(LPT1)或者串口(COM1)等不常用的设备停用,在要停用设备属性对话框中的“常规”选项卡中选择“不要使用这个设备(停用)”。当需要使用这些设备时再从设备管理器中启用它们。◆2、内存性能优化
WindowsXP中有几个选项可以优化内存性能,它们全都在注册表下面位置:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession
ManagerMemory
Management
1)禁用内存页面调度(Paging
Executive)
XP会把内存中的片断写入硬盘,我们可以阻止它这样做,让数据保留在内存中,从而提升系统性能。256M以上内存才使用这个设置。把“DisablePagingExecutive”的值从0改为1就可以禁止内存页面调度了。
2)提升系统缓存
必须有256M以上的内存,才激活它。把LargeSystemCache键值从0改为1,一般来说,这项优化会使系统性能得到相当的提升,但也有可能会使某些应用程序性能降低。
3)输入/输出性能
内存大于256M才更改这里的值,这个优化只对server(服务器)用户才有实在意义,它能够提升系统进行大容量文件传输时的性能。建一个DWORD(双字节值)键值,命名为IOPageLockLimit,数值设8M-16M字节之间性能最好,具体设什么值,可试试哪个值可获得最佳性能。这个值是用字节来计算的,比如你要分配12M,就是12×1024×1024,也就是12582912。◆3、启动硬盘/光驱DMA模式
“系统属性”-“硬件”-“设备管理器”,在设备列表中选择“IDE
ATA/ATAPI控制器”,双击“主要
IDE
通道”或“次要
IDE
通道”,在其属性对话框的“高级设置”选项卡中检查DMA模式是否已启动,一般来说如果设备支持,系统就会
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年生成式AI在建筑方案设计中的创新应用
- 2026年热力管网补偿器安装与保温质量控制方案
- 2021-2022学年浙江省宁波市余姚市九年级(上)期中数学试卷-带答案详解
- 2023-2024学年人教版小学数学五年级下册第四单元《分数的意义和性质》 单元测试(含答案解析)
- IQC、IPQC、FQC、OQC……这些基础术语如何区分与运用
- 禽类产品购买服务协议书
- 外出行医协议书
- 专题活动策划方案特点(3篇)
- 照明工厂活动策划方案(3篇)
- 策划活动方案ai生成(3篇)
- GB/T 40692-2021政务信息系统定义和范围
- GB/T 19022-2003测量管理体系测量过程和测量设备的要求
- (完整版)英语常用词素表
- 5循证医学基础证据 课件
- 赣美版小学五年级美术下册全套课件
- 华东理工大学分析化学第2章-分析化学中的数据处理及评价课件
- 电厂工程热工专业施工方案
- DB32T 4111-2021 预应力混凝土实心方桩基础技术规程
- 华中农业大学(横向项目研究)技术合同参考样本
- 2022年云南省特岗教师招聘考试《初中化学教师专业课考试大纲》
- 医疗器械培训计划年
评论
0/150
提交评论