基于OpenMV的智能兵乓球拾取小车_第1页
基于OpenMV的智能兵乓球拾取小车_第2页
基于OpenMV的智能兵乓球拾取小车_第3页
基于OpenMV的智能兵乓球拾取小车_第4页
基于OpenMV的智能兵乓球拾取小车_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要当我们跟随着现代化科学技术的脚步缓缓向前走去,社会也以一种现代化、高科技、智能时代的姿态向我们走路。无论是日常刷着微信朋友圈的智能手机、办公室中协助完成工作的台式电脑、物联网控制下的智能家居。这些无孔不入地高科技产品逐渐成为我们日常生活和工作中的一部分。说到智能化,就不得不提及人工智能。而在人工智能研究领域极里面,机器视觉又占据着极其重要的一部分。一些基于机器视觉系统的智能化机器设备除了很大程度带动了科技社会的发展和进步,也使得人们的工作和生活更加便利。本文便是设计了一款以Arduino开发板作为主控制器,便利人们在乒乓球比赛和训练中不需要进行人工手动捡球的捡球小车。该智能兵乓球拾取小车是基于OpenMV机器视觉模块对目标物体进行视觉识别,摄像头获取到的图像通过相关算法检测出目标兵乓球距离以及位置信息,通过TTL串口通讯将数据传递给小车Arduino开发板控制机器运动,机器操作部分则是控制舵机转动将车身前方由亚克力板和弹力绳组成的捕获笼通过定点下落来拾取检测到的地面上固定位置的兵乓球。用户可以通过ESP8266无线终端模式在移动端发送相关指令控制车身实现捡球小车在一定区域内进行前进、后退、左右转向、遇到障碍物进行躲避、拾取地面上散落的兵乓球功能。关键词:OpenMV;Arduino;乒乓球;摄像头;机器视觉AbstractWhenwefollowthepaceofmodernscienceandtechnology,thesocietyiswalkingtowardsusinamodern,high-techandintelligentera.Whetherit'sasmartphonewithWeChatcircleoffriends,adesktopcomputerintheofficetohelpcompletethework,orasmarthomeunderthecontroloftheInternetofthings.Thesehigh-techproductshavegraduallybecomeapartofourdailylifeandwork.Whenitcomestointelligence,wehavetomentionartificialintelligence.Inthefieldofartificialintelligence,machinevisionplaysanimportantrole.Someintelligentmachineequipmentbasedonmachinevisionsystemnotonlygreatlypromotethedevelopmentandprogressofscienceandtechnologysociety,butalsomakepeople'sworkandlifemoreconvenient.Inthispaper,wedesignakindofballpickingcarwhichusesArduinodevelopmentboardasthemaincontroller,sothatpeopledon'tneedtopickuptheballmanuallyintabletenniscompetitionandtraining.Theintelligenttabletennispick-upcarisbasedontheOpenMVmachinevisionmoduleforvisualrecognitionofthetargetobject.Theimageobtainedbythecameradetectsthedistanceandpositioninformationofthetargettabletennisthroughtherelevantalgorithm.ThedataistransmittedtothecarArduinodevelopmentboardthroughTTLserialportcommunicationtocontrolthemachinemovement.Themachineoperationpartistocontroltherotationofthesteeringgearandtheacrylicplateinfrontofthebodythecapturecagecomposedofelasticropeandelasticropepicksupthedetectedping-pongballatafixedpositiononthegroundbyfallingatafixedpoint.ThroughESP8266wirelessterminalmode,theusercansendrelevantinstructionstocontrolthecarbodytorealizethefunctionsofmovingforward,backward,turningleftandright,avoidingobstaclesandpickingupthescatteredping-pongballsonthegroundinacertainarea.Keywords:OpenMV;Arduino;Tabletennis;Thecamera;Machinevision目录TOC\o"1-3"\h\u第一章绪论 绪论1.1课题的背景和意义乒乓球虽然只是比赛当中的一个小球,但却是我们中国的国球。除了专业的兵乓球手,业余爱好者也是常常会在空闲地时间与二三个志同道合的球友去兵乓球馆内进行对练。只是每次长时间的训练结束后,地板上都能看到四处散落的兵乓球,给场地工作人员带来困扰的局面。因此,为了便利人们在日常生活种的需求,同时减少一部分不必要的人力。专门针对兵乓球进行拾取的捡球机器便由此应运而生。目前市面上出售的捡球机器参差不齐,有的捡球机器进行兵乓球拾取的效率可以说是相当高效,但是其机器本身的造价也可以说是十分之昂贵,性价比并不高。市面上也有相对便宜且无需弯腰便能进行拾取的轻便捡球网框。后者价格虽然相比之前者要来得实惠,然而其仍然需一定的人力来进行拾取,这就相对于前者而言来得没那么便利了。伴随着机器视觉技术跨过一个个门槛逐步“破冰”,机器视觉领域的逐步发展使得捡球器制造行业迈入新的发展阶段。简单说来,机器视觉就像是我们自己的眼睛,用摄像头代替我们自己的眼睛来观察这个世界,同时又利用人工智能相关技术对物体进行测量和判断。结合机器视觉技术,本文设计了基于OpenMV机器视觉模块、Arduino控制模块以及ESP8266通信模块的智能拾取兵乓球小车。这样就方便了人们在打乒乓球时不用多次进行弯腰拾取,该智能拾取兵乓球小车通过抓取系统中机器视觉模块的标定、目标小球的识别匹配、机器小车对目标小车的定位抓取。不仅能够简单的检测和识别乒乓球,并能够对多个小球进行拾取。如此提高了拾取的效率,减轻了工作人员身上的包袱。1.2智能捡球机在国外发展状况如果把某种技术的发展史比作人的年龄,那么机器视觉就像是一位迈入而立之年正在逐渐走向成熟的中年男子。其中智能捡球机可以算是智能制造的一个显著例子,它通过机器代替人工节省了不必要劳动力地浪费,让拾取小球的工作效率更高。纵观整个发展,机器视觉在其中起到不可替代的作用。在全球机器视觉市场中,美国和日本不仅占领着大半的份额,并且处于一个相当高的一个水平,像是日本的基恩士、美国的康耐视等都是有名的机器视觉公司。美国在机器视觉方面已经从最初的实验室阶段步入了工业实际生产的应用阶段。并且,美国在技术研发、产品生产和实际应用方面,处于一种较为均衡的状态。像最近的一款自动捡球机器人Teninibot就是来自美国波士顿的团队设计.该机器自带的传感器能帮助其检测散落在周围的网球,通过计算机视觉和人工智能技术自动定位,机器臂就会抓取前方的小球放进后方的收纳篮里。如果用户相应让Teninibot在规定的区域内捡球,可以在使用手机伴侣APP进行连接上Teninibot之后对其进行相应的设置。整体方案设计2.1系统整体方案项目以智能小车为载体,OpenMV机器视觉模块进行实时图像采集以及兵乓球定位,通过ESP8266实现网页配置。因此基于OpenMV的智能兵乓球拾取小车一共分为三部分:第一部分是OpenMV视觉识别的模块数据采集部分,第二部分是Arduino控制的小车行进拾取部分,第三部分是用户使用移动终端通过ESP8266对小车进行网页控制。如图2.1为各部分功能模块:OpenMVOpenMV视觉模块进行数据采集WeMosD1控制小车车身行进拾取用户通过ESP8266在移动终端进行控制TTL串口通讯串口通讯图2.1各部分功能模块OpenMV是以STM32H743II为内核的机器视觉模块,通过对OV5640传感器的控制获取视频信号,然后视频信号经OpenMV分析和处理,判断出乒乓球的位置,进而将视频信号中抽象出的信息通过TTL串口实现通信传递给机械运动控制终端。同时,通过WiFi接收到的信号来控制数据的采集时间。WeMosD1控制小车机器部分主要完成功能是:通过TTL串口通信接收OpenMV发来的数据,判读数据后控制车身前进到对应距离,转动舵机落下捕获笼拾取乒乓球。该模块主要由SG90舵机控制捕获笼升降、电机控制移动和避障三部分组成,其中避障主要由超声波组成,这样避免小车在寻找乒乓球过程中撞上前方障碍物。ESP8266网页控制部分就是使用它的无线终端工作模式,作为一个无线终端连接空间内的WiFi路由器,路由器给连接的ESP8266网络设备分配独立的IP地址。首先的就是将data文件夹相关网页上传到板载Flash,然后需要连接到一个现有的网络,通过查看手机连接热点信息可以看到IP地址,在浏览器输入IP地址可以打开网页在移动终端控制小车。2.2系统整体框架图供电外部电源供电外部电源CMOS摄像头CMOS摄像头供电供电供电供电HC-SR04超声波模块数字信号HC-SR04超声波模块数字信号数据传输主控板WeMosD1PWM主控板WeMosD1PWM信号输出L9110S电机驱动数据传输OpenMv机器视觉模块距离感测距离感测PWMPWM信号输出SG90SG90舵机模块图2.2系统整体框图外部电源供电部分是通过18650锂电池进行供电,由于供电系统需要提供5V电压。因此,通过将两节18650电池串联起来以便提供合适的电压电源给主控板以及各子模块。CMOS摄像头将被拍摄的物体转换成数字化信号传送给OpenMV机器视觉模块,内置程序对这些信号进行相关算法的运算抽取兵乓球的特征,当程序通过面积阈值、颜色阈值匹配到眼前的物体是我们需要的进行拾取的兵乓球时就会通过参照物比例测距来定位兵乓球的位置以获取当前距离数值。同时机器视觉模块通过PWM端口输出信号到SG90舵机模块,让舵机驱动模块等待执行相应的动作。WeMosD1主控板与OpenMV建立软串口通讯后获取兵乓球位置信息数据,同样通过条件判断控制小车执行相应的动作,其点击驱动控制由PWM端口进行信号输出到L9110S控制电机驱动模块。在小车执行相应动作的过程中若是遇到障碍物,超声波模块会接收到之前发送出去遇到障碍物后传回的超声波,主控板识别非接触式距离感测到的数据后会带动舵机转动超声波模块,识别左右方向是否具有空旷区域。若有,则车身后退一定距离进行转向以躲避前方障碍物。硬件设计分析3.1硬件总体设计基于OpenMV的智能兵乓球拾取小车的整体构成主要硬件是WeMOSD1主控板模块、超声波测距传感器、舵机驱动、L9110S控制驱动电路以及机器视觉模块。OpenMV的P7、P8、P9口是PWM口,舵机连接机器视觉模块上的PWM端口以及GND端口,由外部电源进行供电。WeMosD1主控板与机器视觉模块之间通过TTL串口通讯传输数据。通过相关代码识别数据,设置SG90舵机模块以及L9110S直流电机驱动模块相应输出端口为需要的高低电平,以控制小车执行相应的动作和主动避障。其硬件功能框如图3.1所示:5V5V稳压基准电路电源切换电路基准电路电源切换电路ESP8266ESP8266物联网芯片舵机驱动舵机驱动图像传感器接头电路机器视觉模块超声波测距传感器舵机驱动图像传感器接头电路机器视觉模块超声波测距传感器舵机驱动超声波发射电路超声波接收电路主控板L9110控制驱动电路L9110控制驱动电路图3.1硬件电路功能框图主控板上有电源切换电路。如图3.1.1所示:图3.1.1电源切换电路[1]运放作为比较器存在,运放输入一端接3.3V,另一端接在两个串联分压电阻中间。两个电阻上端接外部电源,运放的另一个输入的电压为外部电源的一半。在运放的输出端接的是PMOS的G极也就是控制端。PMOS管相当于一个开关。开门条件为VGS<VTP,VGS是指门极-源极电压VTP是一个门限电压,对于PMOS来说是一个负值。若源极电压固定,那么G极电压上升,则PMOS管就会被关闭。VIN作为外部电源,在VIN输入小于6.6V的时候使用USBVCC作为5V电源,当VIN大于6.6V的时候切断USBVCC,通过开发板上黑色圆形的电源接口连接外部电源,经过稳压后的5V对芯片进行供电[1]。3.2WeMosD1开发板介绍3.2.1低功耗主控芯片介绍WeMosD1是基于ESP8266物联网芯片的Arduino类开发板。它与其他ESP8266板是相同的Wi-Fi板,具有D0~D15个口,有IIC、SPI、串口、AD,和板子上带了个CH340的USB转TTL的芯片。这意味着可以使用ArduinoIDE对其进行编程。其开发板实物图如3.2.1所示:图3.2.1WeMosD1主控板实物图主控板上的物联网芯片ESP8266利用WiFi联网时有三种工作模式。第一种模式是接入点模式(ACCESSPOINT):ESP8266建立起一个WIFI网络向外界发送WIFI信号,这个WIFI有名称,也可以设立密码。而其他移动设备也就是我们平常使用的手机或者笔记本电脑可以通过ESP8266发射出来的WIFI信号与其进行网络连接,从而实现设备之间的通讯。第二种模式为无线终端模式(WIRELESSSATION):ESP8266可以作为一个无线终端连接空间内的WIFI路由器,路由器给连接的ESP8266网络设备分配独立的IP地址。第三种模式则是混合模式:即ESP8266同时处于接入点模式与无线终端模式的工作模式。其连接电路图如图3.2.2所示:图3.2.2ESP8266连接电路图3.3OpenMV机器视觉模块OpenMV是一个完全开源的项目,这个项目在github上有完整的硬件以及软件内容。支持热成像和全局快门的摄像头,就像是一个机器视觉版的Arduino。OpenMV图像处理的方法包括颜色识别、边缘检测、模块匹配、神经网络模型、特征点检测、测距等。可以用来检测室内是否有外人随意进入、筛选工业生产中检测到的不合格的产品、对标记物进行跟踪等。本次设计的基于OpenMV的智能乒乓球拾取小车在对散落在地面上的兵乓球进行识别检测的时候就使用到了颜色形状识别功能。如图3.3为OpenMV4的PCB以及原理图:图3.3OpenMV4的原理图以及PCB[2]根据OpenMV4的原理图,我们可以基本知道部分子模块的作用。其中USB模块为USB接口与芯片供电电路。不仅能为芯片提供电源,而且OpenMV固件把内置2MB+外置32MB的FLASH虚拟成U盘,通过电脑上的集成开发环境OpenMVIDE与USB处接口的连接对该机器视觉模块进行代码编写、程序调试和更新固件版本等操作。SDCARD模块电路是用来读取存储卡信息电路。它配置了用来插入大容量TF卡存储设备的卡槽,方便用户存放程序和相关视频图片。LED是电源指示灯模块,能够及时把OpenMV机器视觉模块的情况反映给我们使用者。接通电源,指示灯亮起。烧录程序,指示灯闪烁。MT9V034为图像传感器接头电路模块,机器视觉模块集成了OV5640摄像头芯片,图像视频透过镜头照在感光芯片上把光照的强度和波长等信息转换成为电脑可以识别的数字信号,也就是我们认识的分辨率和像素。STM32F7XXMCU:在以STM32H74VIT6芯片为核心的单片机内部集成了一个MicroPython解释器,编写代码的时候其实是拿Python去写代码,然后保存到单片机里面运行代码。3.4HC-SR04超声波模块工作原理超声波模块具有四个引脚,使用时在VCC引脚接上5V电源,在GND引脚接上电源负极,然后拉低Trig端口电平后给10微秒脉冲信号,这样传感器模块就会发射超声波,超声波遇到物体返回,传感器接收到返回的超声波。ECHO端口会有一个持续的高电平输出,持续的时间就是超声波到发射到接收的时间。通过高电平脉冲时长,我们就可以算出传感器到被测物体之间的距离。其计算公式为:距离=高电平持续时间(微秒)÷29微秒/厘米(音速)÷2(来回距离)此时测试的距离单位为厘米,转换为米则是:距离=高电平持续时间(微秒)÷340秒/米(音速)÷2(来回距离)我们用函数pulsen(端口,val)来读取高电平持续的脉冲时长,而这个函数有两个参数和一个返回值,第一个参数是数字端口号,第二个参数是HIGH或者LOW,它的返回值就是持续的时间,单位为微秒。函数的功能是读取引脚的脉冲信号,被读取的脉冲信号可以是HIGH或者LOW。例如我们要检测HIGH脉冲信号,模块将在引脚变为高电平时开始计时,当引脚变为低电平时停止计时,并返回脉冲持续时长[11]。如果在超时时间内没有读到脉冲信号的话将返回零。超声波测距传感器工作原理以及实物图如图3.4.1所示:测量距离超声波发射器测量距离超声波发射器超声波接收器实际距离障碍物图3.4.1HC-SR04超声波模块工作原理以及实物图[3]3.5SG90舵机模块的工作原理在频率固定的情况下,调节脉宽的绝对时长可以控制舵机转动的角度。一般用0.5-2.5ms的脉宽来控制舵机的角度。以转动角度为0-180度的舵机为例,当脉宽小于0.5ms时为死区,舵机输出轴转角保持零度或稍小于零度,当脉宽等于0.5ms时,舵机输出轴转角为0度、当脉宽等于1ms时,舵机输出轴转角为45度、当脉宽等于1.5ms时,舵机输出轴转角为90度、当脉宽等于2ms时,舵机输出轴转角为135度、当脉宽等于2.5ms时,舵机输出轴转角为180度。当脉宽大于2.5ms时为死区脉宽,舵机输出轴转角会保持在180度或稍大于180度。舵机输出轴转角只跟脉宽时长绝对值有关系。舵机的工作原理实际很简单,舵机的控制电路中有个脉宽比较器,通过脉宽的比较计算舵机输出轴应该保持的角度,舵机输出轴实际角度用电位器的阻值来反馈。当实际角度与应保持的角度不一致时,舵机电路驱动电机正转或反转,通过齿轮组把舵机的输出轴调节到应该保持的位置。如图3.5为转角与脉宽时长关系以及实物图:图3.5转角与脉宽时长关系以及实物图[4]3.6L9110S直流电机驱动模块L9110是为控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件,主要用于小车马达控制驱动。[5]两个直流电机分别由OA和OB输出控制,它们对应的控制端分别为L9110A的IA、IB和L9110B的IA、IB.当接通VCC和GND时电源指示灯亮起。当L9110A的IA输入高电平而IB输入低电平时,电机向正方向转动;当L9110B的IA输入低电平而IB输入高电平时,电机向反方向转动。L9110S直流电机驱动模块原理图以及L9110S实物图如图3.6所示:图3.6L9110S直流电机驱动模块原理图以及L9110S实物图软件设计分析4.1主程序设计采用ArduinoIDE作为编程软件来进行相关程序的编程。基于OpenMV的智能兵乓球拾取小车包含HC-SR04超声波模块、SG90舵机拾取模块、L9110S直流电机驱动控制小车运动模块、OpenMV机器视觉模块,通信系统模块等。由于ESP8266可以作为一个无线终端连接空间内的WIFI路由器,同时路由器给连接的网络设备分配独立的IP地址。使用前对ESP8266相关初始化设置,首先建立网络服务器对象ESP8266WebServer,该对象用于响应HTTP请求,监听端口80。设置连接其作为无线终端连接的局域网的名称以及密码。连接之后打开分配的IP地址,浏览器就会自动请求芯片内存中SPIFFS区域的网页资源。用户可以在打开的移动端上选择相应的功能将指令发送到小车的主控板上执行相应的动作。功能分别有前走、后退、左转、右转、停止、避障、捡球。其中,捡球指令是通过主控板与机器视觉模块之间的双向数据传输实现的。WeMOSD1板内置的引脚0和2支持串口通信,使用SoftwareSerial库可以与OpenMV进行软串口通讯进行数据传输。其整个数据传输过程大致为:主控板发送捡球指令-机器视觉模块开始实时传输数据到主控板上-主控板程序根据数据判断相应动作执行的条件。总体程序流程图如图4-1所示。初始化初始化连接局域网连接局域网ESP8266ESP8266无线终端模式NYNY发送捡球指令?发送捡球指令?有小球?区域移动、避障有小球?区域移动、避障NNYY捡球偏移避障前进捡球偏移避障前进用户发送结束指令用户发送结束指令图4.1总体程序流程图4.2子程序设计4.2.1小车行进控制子程序小车在行进过程中,超声波模块遇到障碍物会反射超声波,通过函数读取脉冲时长获得小车与障碍物之间的距离。当距离过近时,Arduino首先控制电机停止转动,之后舵机控制超声波模块左右转动,比较传感器传回来的左右区域距离数值,区域较为空旷的区域,小车转向,继续前进,流程图如图4.2.1所示:开始开始初始化小车前进小车前进发射超声波发射超声波传回传感器传回传感器N前方有障碍物?N前方有障碍物?YY距离过近?距离过近?YY小车停止小车停止左右转向测距左右转向测距小车转向距离大的方向小车转向距离大的方向图4.2.1子程序流程图4.2.2拾取兵乓球子程序在这一过程中,OpenMV同时会实时拍摄前方地面图像,图像中出现圆形黄色色块时,通过参照物距离的三角几何函数关系公式的计算,得出与兵乓球相距的距离。小车一边前进,一边接收从OpenMV传过来逐渐减小的距离数值。当兵乓球进入抓取范围,距离数值接近小车上方捕获笼到舵机的距离时,OpenMV控制两个舵机同时以相反方向转动一定角度让兵乓球落入捕获笼,流程图如图4.2.2所示:开始开始初始化OpenMVOpenMV实时摄像检测到前方有兵乓球检测到前方有兵乓球计算距离计算距离抓取范围内小车停止抓取范围内小车停止舵机控制捕获笼下落舵机控制捕获笼下落拾取结束拾取结束图4.2.2小车行进控制子程序流程图实时摄像之前要进行相应的初始化设置。首先要先清除掉之前摄像头存在的代码对于图片的设置,然后设置图片格式RGB565,这个565是说存储RGB三个通道每个通道存储像素值所对应的二进制位分别是5,6,5[2]。同时还要设置采集到图片的分辨率,跳过一些刚开始不稳定的时候再开始读取图像。由于在机器视觉模块中白平衡是默认开启的,所以在颜色识别中,一定要关闭白平衡。之后就是追踪帧率以及设置串口通讯的波特率[6]。相关代码如下:sensor.reset()sensor.set_pixformat(sensor.RGB565)sensor.set_framesize(sensor.QQVGA)sensor.skip_frames(10)sensor.set_auto_whitebal(False)clock=time.clock()uart=UART(3,115200,timeout_char=1000)OpenMV通过接收到ESP8266作为无线终端传来的指令执行相应命令,此时机器视觉模块接收到的是字符串数据类型。因为JSON通常用于在Web客户端和服务器数据交换,即把字符串类型的数据转换成Python基本数据类型或者将Python基本数据类型转换成字符串类型[7]。若小车前进直到处于拾取兵乓球的范围内,舵机反向转动同样的角度使得捕获笼落下,设定拾取过程持续5秒,之后舵机重新转动返回原位。相关代码如下:iflength<=70anda==b'a\r\n':foriinrange(-30,30):s1.angle(i)s2.angle(-i)time.sleep(5)4.3文件应用4.3.1ESP8266闪存文件应用这个文件系统可以帮助我们存储一些变更频率不频繁的文件例如网页、配置或者是某些固化的数据等。将网页和图片、html、css、javaScript等相关资源存入到flash的SPIFFS区域。这样WIFI配置信息就不用放在代码里了可以更容易适配不同的应用场合而且代码本身因为不记录WLAN配置信息就可以打包成固件。配置环境的时候有FlashSize的选项来分配程序和SPIFFS空间。系统代码主要是增加了获取状态码的方法返回信息给浏览器,引导请求用户访问根目录到网页文件上并将相关的网页文件压缩成gz格式。浏览器中支持这种格式的压缩文件,优点是能够减少请求访问的数据量,节约传输的带宽[8]。除此之外,在代码里边设置了还文件检查函数,如果找到相同命名以及压缩格式的文件就优先返回此格式文件,如果没有找到相关文件就跳转到404页面或者内置的页面上来处理不在预设中的页面。[9]文件检查函数相关代码如下:voidhandleNotFound(){Stringpath=server.uri();StringcontentType=getContentType(path);StringpathWithGz=path+".gz";if(SPIFFS.exists(pathWithGz)||SPIFFS.exists(path)){if(SPIFFS.exists(pathWithGz))path+=".gz";Filefile=SPIFFS.open(path,"r");size_tsent=server.streamFile(file,contentType);file.close();return;}Stringmessage="FileNotFound\n\n";message+="URI:";message+=server.uri();message+="\nMethod:";message+=(server.method()==HTTP_GET)?"GET":"POST";message+="\nArguments:";message+=server.args();message+="\n";for(uint8_ti=0;i<server.args();i++){message+=""+server.argName(i)+":"+server.arg(i)+"\n";}server.send(404,"text/plain",message);}4.4兵乓球识别原理4.4.1兵乓球距离识别原理在捡乒乓球时,采用OpenMV机器视觉模块作为图像采集与处理平台。由于OpenMV采用的是单目摄像头,想要实现测距,就需要选取摄像头里乒乓球做参照物,利用参照物的大小比例来计算摄像头与乒乓球之间的距离。主要利用参照物的大小比例的几何原理,计算摄像头与乒乓球之间的距离[10]。运用Python语言进行目标识别与扫描定位算法的研究,对摄像头的图象采集进行预处理。根据像素阀值获得识别小球,将参照与直径像素的关系计算得到距离数据传输给Esp8266控制小车实现抓取。对于参照物距离的三角几何函数关系如图4.4.1所示:摄像头里的图像Hm真实的摄像头里的图像Hm真实的Rmdc RmdcCpixDpixCpixDpix真实环境真实环境里的图像LmLm图4.4.1星瞳科技官网所示几何关系由左边摄像头的几何关系可知:①由右边的真实环境里的几何关系得知:②②代入①得:上面就是最终我们知道的关系,等号左边的Lm是长度,Dpix是摄像头中,球所占的直径的像素。等号右边,Rm是球真实的半径[11],Cpix是是固定的像素,C是视角的一半。这个公式告诉我们的就是:实际长度和摄像头里的像素成反比。简化就是:距离=一个常数/直径的像素因此,在代码里面我们设置一个常数K:K=5000为了便于追踪兵乓球设置了ROI,也就是regionofinterest,即感兴趣区域。一般如果不设置ROI就默认为是整个图像区域。当绘制矩形感兴趣区域时一般通过四个参数来确定ROI,ROI左顶点坐标以及矩形区域的宽高。像素坐标为(x,y)包括横坐标x参数和纵坐标y参数两个参数,矩形区域宽w参数,高h参数两个参数。找到目标颜色后从左上角圈出一个矩形,该矩形区域便是色块们的外框。而在blob色块的对象中,[2]代表目标区域的宽,[3]代表目标区域的高。max_blob[2]返回色块的外框的宽度,max_blob[3]则返回色块的外框的高度。计算直径的像素为:Lm=(max_blob[2]+max_blob[3])/2综上可得:length=K/Lm4.4.2兵乓球颜色识别原理利用颜色阈值取出跟踪目标。兵乓球的颜色是识别目标的一个比较突出的特点,RED,GREEN,BLUE是彩色图像的三基色,在此基础上建立的模型是RGB模型,然而这里我需要的是LAB模型。LAB模型由三个通道组成,但不是R、G、B通道。它的其中一个通道是表示明亮度,即L分量。另外两个是色彩通道,用A和B来表示。在转换到LAB之前要先将RGB转换到XYZ[12],因为RGB无法直接转换到LAB。即整个流程下来:从RGB——到XYZ——再到LAB[13]因此RGB颜色空间转换到LAB颜色空间的公式分两部分:RGB转XYZ其中由X、Y、Z转换到L、a、b的函数f(x)为:通过计算上面两个公式,得出LAB色彩空间三个通道的值。颜色阈值分割就是利用LAB的相关特性,设置一个范围将所需要区别于背景的目标颜色提取出来。就比如当我们需要捕捉的兵乓球的颜色是黄色时,通过OpenMVIDE中的阈值编辑器获取的颜色阈值的范围如图4.4.2所示:图4.4.2LAB阈值范围然后将获取到的颜色阈值范围的相关数值填入yellow_threshold函数:yellow_threshold=(0,100,12,127,34,127)通过颜色阈值分割我们能很直观的提取出画面中的兵乓球,但是阈值的选取最大的缺点就是容易受到背景颜色的干扰。为避免背景色块的影响,可以设置面积阈值和像素个数阈值,当阈值大于色块被框起来的面积以及色块像素数量时,就可以过滤掉那些不必要的背景色块,这样就能在一定程度上排除背景颜色对小球的干扰。部分代码如下:img=sensor.snapshot()blobs=img.find_blobs([yellow_threshold],pixels_threshold=100,area_threshold=100)4.4.3兵乓球形状识别原理在识别兵乓球形状时主要使用了霍夫圆变换,它是霍夫变换的一种特殊形式。霍夫圆变换和霍夫直线的检测完完全全是一样的,只是算法的复杂度会高一个指数,即n的4次方复杂度,直线的话是的3次方的复杂度,所以检测出圆形会慢一些。霍夫变化寻找直线可以根据两个参数确定一条直线,而圆需要三个参数,半径的长度以及圆心的位置。圆心的位置是两个参数,一个是x,一个是y,所以一共是三个参数。其中(a,b)是圆的中心,r是半径。如果二维点(x,y)是固定的,则可以根据上述公式找到参数。如图4.4.3为参数空间圆:(X3,Y3)(X3,Y3)(X1,Y1)(X2,Y2)ba0r图4.4.3参数空间中的圆检测圆形时首先还要进行图像灰度图的转换,通过canny边缘检测算法获得二值图,给出图像的边缘。由于此时具有三个参数,所以要在三维空间内进行“投票”。a和b代表圆心的位置,也就是选定二值图片上的每一个亮点作为圆心通过公式计算出半径,接着在半径的位置投一票。没同一个圆上的边缘点进行投票时,由于圆心相同,故投到的都是同一个半径。因此找半径投票数最多的那一组参数就是一个圆。简单点说,一条圆的大小是组成圆所有索贝尔滤波像素大小的总和。通过在霍夫参数空间中进行“投票”,然后在累加器矩阵中选择局部最大值来生成候选圆。当图片上可能有多个圆时可以设置一个阈值来获取想要检测到的圆。本算法最大的缺点就在于复杂度高,故为减少圆检测时长可以使用霍夫梯度法。通过圆心与圆切线方向垂直的线的方向就是梯度方向。圆周上面的点在它的梯度方向做一条直线,这条直线必过圆心。利用这个性质我们可以先找出二值图片上每一个边缘点通过索贝尔卷积核找到它的梯度方向,在梯度方向做一条直线,然后把这条直线上所有像素点的位置都投一票,全部都加一,累加起来得票数最多的便是圆心,再通过圆心确定半径,这就是霍夫梯度法的思路。当你要查找半径未知的圆参数时,由于参数空间是3D,因此累加器矩阵也将是3D。我们可以迭代可能的半径。然后在3D累加器矩阵中找到局部最大值。累加器数组在3D空间中应为A[a,b,r]=0。投票应针对每个像素、半径和theta进行A[a,b,r]+=1的计算。实物功能与测试结果为实现拾取兵乓球的功能,根据硬件设计制作出了基于OpenMV的智能兵乓球拾取小车。本设计硬件实物图如图5.2所示:图5.1本设计硬件实物图在测试中,我们利用WiFi-ESP8266搭建服务器,手机开启对应热点,智能兵乓球拾取小车通过热点连接网页,应用于小车捡球功能的网页端控制界面如图5.2所示:图5.2网页端控制界面示意图智能捡球小车在接收了网页传输的数据指令之后可以立刻实现相应动作,根据测试结果,设计的基于OpenMV的智能乒乓球拾取小车能够检测和识别到众乒乓球中最大的那个,如图5.3和图5.4所示。图5.3为寻找乒乓球过程中找到单个小球。图5.4则是当视野内出现多个乒乓球时,比较兵乓球获取色块的像素个数值得大小,圈出像素个数较多的兵乓球,并反馈回物体坐标,面积信息。图5.3识别单个乒乓球图5.4识别多个乒乓球在成功识别了乒乓球后,小车会依次进行:小车自转寻找物体识别到物体,根据反馈的距离走到小球跟前进行一定距离地自动捕获。同时根据测试结果,智能兵乓球拾取小车在电量充足的情况下可以连续工作2小时以上。结论从经济便利的角度出发,基于OpenMV的智能兵乓球拾取小车具有超声波避障、兵乓球检测拾取、手机用户通过网页端控制移动等功能,基本能够完成用户在实际使用过程中的相关要求。且具有物体体积不大、方便用户携带的优势。从需要改进的部分出发,智能捡球小车仍存在一些可能影响实际应用的问题。首先是OpenMV视觉识别的模块受光线干扰较大,选中圆形物体的红色圆框有点不稳定,会时常跳动。在本设计中,为了降低环境光对小球识别的影响,因此只进行对小球颜色的识别,但是,这会对物体识别准确度明显下降,影响小球定位效果,今后的工作主要是对识别程序代码进一步完善优化解决以上可能影响实际应用的问题,从而让智能捡球小车更智能。参考文献[1]csshuke.电路知识--认识原理图(四)-csshuke的专栏-CSDN博客[Z]./csshuke/article/details/80514503,2018-05-30.[2]翠筱傲严霜.OpenMV学习笔记(一)-renhaofan的博客-CSDN博客[Z]./renhaofan/article/details/79135061,2018-01-23.[3]ZONE画派.20141120【Arduino-电平时间测量(pulseIn)】用pulseIn函数测量按键时电平高低时间[Z]./wilson1068/article/details/41311545,2014-11-20.[4]李华,刘鸣.机器人关节及转向装置——舵机的原理及应用[J].高校实验室工作研究,2010.[5]梁睿坤.L9110-电机控制[Z]./p/0eb7e5053317,2017-02-09.[6]云敬山.手把手教你制作捡球小车2018年9月12日93万+纪念[Z]./qq_42807924/article/details/82634923,2018-09-18.[7]Adlereden.5Python标准库系列之json模块[Z]./edeny/1925721,2017-05-15.[8]fantor.WiFi-ESP8266入门开发(七)-文件系统[Z]./solar_Lan/article/details/74231360,2019-8-13.[9]Mr.Lanson.WiFi-ESP8266入门开发(六)-路由系统-solar_Lan的博客-CSDN博客[Z]./solar_Lan/article/details/74230883,2017-07-03.[10]庄琼云.基于OpenMV的智能寻迹小车设计与实现[A].黎明职业大学学报,2018(4).[11]熊杰,兰智高,谢伟.基于Lab特征模型的兵乓球追踪机器人的设计与实现[A].计算机测量与控制,2018(12).[12]郭玉坤.基于多特征融合的图像匹配算法及应用[D].济南大学2017.[13]钟新秀,景林,林耀海.基于Lab颜色空间阈值分割的原木端面区域识别[A].龙岩学院学报,2017(35).2致谢在这里首先要感谢我的指导老师黄海老师,若不是老师一开始悉心指导我的论文选题,让我能够有一个确切的目标,后面一步步的论文撰写也不会这么顺利。后面一些格式细节上的错误,老师也细心的一一指出让我能够完善自己的论文。同时,我也要感谢我的父母,是他们对我的照顾才让我能够把所有精力放在论文的撰写之上,不被外界的环境影响而导致分心。在这里的最后,我还要感谢我大学四年的母校,在学校里我度过了充实而有意义的四年。在这四年里,老师和同学们在学习上都给予了我莫大的帮助。我认为学校的图书馆是建的最好的地方,馆内不仅有许多书籍能让我查阅相关资料文献,还提供了一个安静舒适的环境能人静下心来做事。感谢遇到的每一个帮助了我的人,是他们让我得到成长,让我能够直面未来生活中的挑战。对此,铭记于心!  

怎样提高电脑系统运行速度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模式是否已启动,一般来说如果设备支持,系统就会自动打开DMA功能,如果没有打开可将“传输模式”设为“DMA(若可用)”(在BIOS里也应该要先设为支持DMA)。

◆4、关闭自动播放功能

运行“组策略”程序,在组策略窗口左边栏中打开“计算机配置”,选择“管理模板”下的“系统”,然后在右边的配置栏中找到“关闭自动播放”并双击它,会弹出“关闭自动播放属性”对话框,在其

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论