吴天亮-160103104883-手持式工程测距仪设计-毕业设计_第1页
吴天亮-160103104883-手持式工程测距仪设计-毕业设计_第2页
吴天亮-160103104883-手持式工程测距仪设计-毕业设计_第3页
吴天亮-160103104883-手持式工程测距仪设计-毕业设计_第4页
吴天亮-160103104883-手持式工程测距仪设计-毕业设计_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

手持式工程测距仪设计摘要随着自动化工作设备在近年来的快速,快速距离检测的实现方案也不断发展完善。当下,快速距离检测主要研究方向是非接触式测距技术。非接触式测距研究已经广泛渗透民用、工业、军事等领域,形成了以红外、超声波、激光等技术为载体的多种测距方法。例如,随着民用汽车的需求量增加,在道路上行驶的智能汽车日益剧增,智能汽车市场前景之所以广阔,与激光、超声波等测距技术在汽车辅助驾驶中的成熟应用密不可分。在激光测距技术加持下,汽车辅助驾驶可以实时监测前后车距,为汽车系统提高快速精确的数据,降低发生事故的风险;在汽车智能辅助倒车方面,超声波测距雷达的推广使得驾驶员可以轻松进行倒车入库操作,降低停车难度。在工程探测领域,采用激光测距技术可以实现低误差、高抗干扰、多种使用场景、便于携带的测距仪方案。尤其在军事侦测领域,激光测距技术减低了侦查的难度,并且提高了探测范围;而通过对角度超声波测距雷达可以实现在复杂水底、地下地形情况下的快速地形判定、绘制等。激光测距与采用其他测量技术相比,具备测距精度高、方向性好、较强的环境抗干扰能力、便于携带、测量速度快的特点。本设计是一款手携式测距仪,开发一款测距操作简便、使用时间长、快速输出测量结果、轻盈便携式的激光测距仪,满足人们日常生活的简单测量使用,提高测量简易性与测量速度。系统设计在分析各主要非接触式测距技术后,采用由BENEWAKE公司开发的TF-Luna激光距离测量模组,设计一款以STM32主控为核心,包含激光测距模块、信息显示模块的便携式低能耗手持工程测距仪。关键词:测距;激光;飞行时间;STM32;TF-Luna

TheDesignofahand-heldrangefinderAbstractWiththerapiddevelopmentofautomatedworkingequipmentinrecentyears,theimplementationofrapiddistancedetectionhasalsocontinuedtodevelopandimprove.Atpresent,themainresearchdirectionoffastdistancedetectionisnon-contactdistancemeasurementtechnology.Non-contactdistancemeasurementresearchhaspenetratedintocivil,industrial,militaryandotherfields,andhasformedavarietyofdistancemeasurementmethodsusinginfrared,ultrasonic,laserandothertechnologiesascarriers.Forexample,withtheincreaseinthedemandforciviliancars,thenumberofsmartcarsdrivingontheroadisincreasingdaybyday.Inthefieldofengineeringdetection,theuseoflaserrangingtechnologycanachievearangefindersolutionwithlowerror,highanti-interference,multipleusescenarios,andportability.Comparedwithothermeasurementtechnologies,laserranginghasthecharacteristicsofhighrangingaccuracy,gooddirectivity,strongenvironmentalanti-jammingcapability,easyportabilityandfastmeasurementspeed.Thisdesignisahand-heldrangefinder.Itdevelopsalaserrangefinderthatiseasytooperate,longinuse,quicklyoutputmeasurementresults,andislightandportable.Itmeetsthesimplemeasurementanduseofpeople'sdailylifeandimprovesthesimplicityofmeasurement.Withmeasuringspeed.Afteranalyzingthemainnon-contactdistancemeasurementtechnologies,thesystemdesignusestheTF-LunalaserdistancemeasurementmoduledevelopedbyBENEWAKEtodesignaportabledevicethatincludesalaserdistancemeasurementmoduleandaninformationdisplaymodulewiththeSTM32maincontrolasthecore.Low-energyhandheldengineeringrangefinder.Keywords:Ranging;laser;timeofflight;STM32;TF-Luna

目录1前言 11.1本设计的目的与意义 11.2研究现状与发展前景 21.3设计目标 32系统硬件方案选择 42.1设计原理 42.1.1红外测距原理 42.1.2超声波测距原理 52.1.3相位式激光测距原理 62.1.4脉冲式激光测距原理 72.2系统方案选择与总体结构 83系统硬件电路设计 93.1STM32F103主控介绍 93.2激光发生、接收单元的选择 93.2.1TF-Luna模块工作原理与关键参数 103.2.2测距有效精度 113.2.3TF-Luna驱动方法 113.2.4TF-Luna低功耗模式 133.3OLED显示模块 143.3.1OLED简介 143.3.2全动电子OLED模块产品特点 143.3.3OLED模块接口说明 143.4按键阵模块 164系统软件部分设计 174.1Arduino开发工具介绍 174.2主函数的设计 174.3系统重要函数 194.3.1OLED模块驱动与仿真 194.3.2TF-Luna驱动与调试 215组装与调试 235.1系统总硬件电路 235.2硬件组装调试 24参考文献 26谢辞 27附录 281前言1.1本设计的目的与意义随着自动化技术的发展成熟,机器人技术在日常生活及工业生产中被广泛使用,机器人在自动化工业中的使用率也越来越高。自动化机器人可以划分为两类:固定机器人、移动机器人[15-16]。其中固定式的机器人,通常以机械臂的形式应用于自动化工业生产线,比如用于产品装配流水线。而对于可移动机器人的应用则更加灵活,例如快递行业的货运机器人,餐厅中的送菜机器人,摇撼控制的远程作业机器人等。无论哪一类的机器人,都要依赖硬件组件和系统的相互协作才能实现最优的作业。在硬件上由感应器、感知系统和控制器组成。机器人对外界环境的自适应和规划执行方案来实现物体检测、移动、避障等功能,其无一例外地需要依赖于环境空间感知系统,而非接触测量技术在感知系统中发挥重要作用。非接触测量技术的完善成熟为机器人技术的发展和应用奠定了基础。如今,非接触式测量技术已经演化出多种实现载体,在工业和民用行业的应用中,红外测距、超声波测距、激光测距因其在不同使用场合中的测量效果不同成为目前主流的测量技术。其中,相比其他测量方法,超声波在短距离测距中拥有成本低、集成难度低等优点,广泛应用于短距离感知,因此超声波测距常常与红外测量技术一同完成自动化的短距离距离测定、环境物体位置监测、机器人感知等作业。但超声波测距不适用于远距离测量,随着测量距离的提高,高频超声波能量衰退严重,对被测目标边长的要求也变得更加严苛。相比于超声波测距技术,激光测距技术是使用激光飞行时间(ToF)技术来测量物体间隔。由于激光特点主要有能量高、在大气中远距离传播能量衰退较慢、激光束发散少、相干性好、方向性强、单色性等特点,使得激光测量技术成为远距离测距的理想载体之一,从而在激光技术基础上发展出测量范围从数米到数十公里得测距设备。本设计的研究是低能耗、有实用和有便携性的激光测距仪。因此本设计是设计一款手携式测距仪,在分析各种非接触式测量技术的原理后选择使用激光测距技术开发一款测距操作简便、使用时间长、快速输出测量结果、轻盈便携式的激光测距仪,提高测量简易性与测量速度,满足人们日常生活的简单测量使用。1.2研究现状与发展前景测量技术的发展历史可以回溯到农业时代,在古代的水利和农业中就有广泛的应用。在古埃及时期,定期而至的尼罗河洪水给土地带来丰富的有机物质,提高农作物的收成;同时泛滥的洪水也冲刷掉了土地的边界,使得每次洪灾后都需要重新划界,由于庞大的工作量使得对测量工作产生了需求。同样的场景也在古老的东方土壤上演,西汉时期的史学家史迁在《太史公书》中记录“左准绳,右规矩,载四时,以开九州、通九道、陂九泽、度九山”。这正是对禹受命治理洪水情形和对我国古代早期用于对物体长度进行测量的工具简单记载。这说明了华夏人民在公元前2世纪的治水过程中,已经掌握测量原理并且发明了简单的测量工具尽管测量技术发展历史久远,但是非接触式测距技术的发展在近代才得到发展。国际上,十九世纪后叶法国著名的物理学家皮埃尔·居里发现电气石可以产生压电效应和反压电效应[1]。压电效应的发现为人造超声波的产生和应用提供物理基础模型。在第一次世界大战中,为了抢先获得海上战争的主动权,法国物理学家保罗·朗之万利用超声波研发出早期声纳系统,其使用晶体传感器监测在水介质中的低频超声波信号,并计算疑似物体的距离。这种方法通过检测水中超声波信号实现判断是否存在可疑物体;1960年美国的Maiman研发出世界上第一款激光器,开启了激光的探索与发展应用的序幕,当时恰逢美苏冷战,使得激光技术首先应用于军事作战武器、航天航空领域。而随着激光技术的不断发展,半导体激光器研发的成功研制使得激光器体积的不断减少,制造和使用成本降低,激光技术从此在民用领域得以飞速发展与推广应用。1964年,NASA在Beacan上加装激光反向飞行器;1969年,激光技术便被应用于天体测距——测定地球到月球的距离。到了上世纪九十年代,激光测距技术已经应用于交通警察对道路上的车辆进行快速测距。国内对超声波技术和激光测量技术的研究都始于上世纪中叶。1952年初,中国科学研究院筹备成立了长春光机所,这是国内在光电领域的新起点。1960年开始从国外引进超声波设备并且成功研发出国产超声波仪。1961年国内自行研究的第一台红宝石激光器在长春光机所研制成功。1975年,中国第一台相位式高精度激光测量仪研发成功,并被应用于地震观测领域。图SEQ图表\*ARABIC1.1世界上第一款激光器(左)和国内第一台红宝石激光器(右)在经过了几十年的发展,超声波测距广泛被应用于汽车倒车测距、机器人感知和地下暗流绘测。超声波汽车雷达通过回波测距,实时测量行车距离,有效减低倒车事故。在机器人领域,超声波主要应用于机器人自主避障、实时构建地图、行进路径判断等。在地形绘制方面,通过使用多超声波探头,可以在复杂海底地形进行多方位、多角度得地形探测;而激光测距技术得发展要从原理上可分为相位法以及脉冲法。从测量距离上,激光测距仪可以分为三大类:首先是测量范围在十米以内的短距离测距仪,主要应用于短距离工程测量,体积小巧,重量较轻,可以随身携带;其次是测量距离在三百米内的中程测距仪,一般体积较大于短距离测距仪,并且其电源容量更大;此外还有测量范围在三百米到十几公里的工程测距仪,体积十分庞大,一般要携带额外的专用电源或者连接市电,主要应用于大范围工程测量,如精确监测地震变动情况,桥梁、铁轨铺设等。当测量范围达到上百公里时,成为超远距离测距,其主要应用于卫星对地测量、导弹弹道测量、天体测距等。1.3设计目标本文进一步研究的主要课题和内容是如何设计通过非接触式测量技术对短距离内的目标进行测量,由于非接触测距的方法多样,所以需要先分析现有非接触式测距方法的原理再次根据实际需求选择符合的设计方案并辅之实现,本设计要求设计一款手持工程测距仪设计,技术条件、技术参数要求为:本设计应实现在室内灯光、室外阴影环境下正常工作;本设计应实现对非透明物体以及非纯黑色(反射率较低)目标进行测距;本设计应实现对有效测量距离7米内的目标测量;本设计应具备有测量数据显示功能;本设计应使操作者通过按键与系统进行交互,实现启动、测量、参数设置等操作;2系统硬件方案选择2.1设计原理目前,非接触式测距技术有多种实现方式,可以分为红外测距、超声波测距、激光测距三大主流测距方案。红外测距普遍采用方式是三角法测量;超声波测距普遍采用方式是脉冲式超声波;激光测距普遍采用方式为:相位式、脉冲式、连续波等。其中一个典型的非接触式测距系统应该由信号发生单元、光学系统、信号接收单元和距离计算单元组成,结构单元如图2.1所示。图2.1非接触式测距结构单元框图2.1.1红外测距原理 红外测距法采用光漫反射现象与三角测量原理[4],红外激光器发射利用固定角度发射出激光束,在到达表面后形成慢反射效应,一部分光束被折射到高分辨率的线性红外光电感应器上,得到中心偏离差,最后根据几何三角测量原理计算出被测目标距离,其原理图如图2.2:图2.2红外测距原理图图中,L为实际距离;D为线性光电感应器中心到激光器的距离;X为反射光束到线性光电感应器中心的偏移距离;f为镜头焦距。根据原理图几何得出公式:由公式得当被测目标距离L足够小时,偏移距离X会足够大,甚至超出线性光电感应器的检测距离;反之当被测目标距离L足够大时,偏移距离X会相当小,此时要求线性光电感应器具备足够高的分辨率,无疑对传感器的性能要求大大增加。2.1.2超声波测距原理 超声波属于高频率声波,大于人类听觉极限频率,相比于人耳可识别频率的声波,具有绕射效应小、波长短、有一定的方向性和可以形成射线向特定方向传播等特点[2][3],以此可以作为非接触式测距的“工具”。 超声波测距原理如图2.3。超声波探头自身发出超声波并射向被测物体,同时时间计数单元开始工作。当超声波在空气中传播遇到目标时,一部分被目标物体自身吸收,另一部分立刻被反射回来。回波被接收探头探测到后,计数单元停止计时。计数单元根据所得时间间隔以及超声波在空气中传播的时间公式计算得目标距离。图2.3超声波测距原理图图中,D为超声波发生、接收探头的中心距离;M为超声波探头到被测目标得距离;a为中心夹角;L为探头到被测目标得实际直线距离。由图可得公式:上式中,v为超声波在空气中传播得速度、t为传播往返时间。2.1.3相位式激光测距原理相位式激光测距[9-10]是将调剂后的激光发射向被测目标,经过折射后被激光接收系统接收,对激光束进行调剂并测定往返所产生的相位延迟,由于相位式激光测距仪采用是无线电波频段的频率,可根据调剂光的波长换算出距离,相干式测距公式如下:其中:φ为接收信号与发射信号的相位差;L为待测距离,单位米(s);f为调剂的信号频率;c为真空中的光速;n为激光在传输介质中传输的折射常数。图2.4相位式测距原理图相位式激光测距具体工作过程:在测距仪指向被测目标后,将激光调剂后的电信号驱动激光器发射出峰值变化的调剂光信号。小部分信号作为参考信号被传输到鉴相电路,光信号到达被测物体后产生漫反射现象,使得部分光束从原路折射返回且进入接收模块,光电传感器将捕捉得光信号转换为电信号,微弱的电信号经过放大整形处理后传输到鉴相电路。鉴相电路测定往返所产生的相位延迟,再根据相干式测距公式,计算出与被测目标距离。2.1.4脉冲式激光测距原理脉冲式激光测距[5-8]是基于测量激光在大气中飞行的时间从而实现距离的测量。激光器发出脉冲激光,脉冲激光到达被测目标物体后部分折返,到达激光接收单元,通过计算其的飞行时间可以按下面公式求出距离:其中:L为待测距离,单位米(m);c为真空中的光速;为脉冲光束飞行的往返时间,单位秒(s);为激光在传输介质中传输的折射常数。图2.5脉冲式激光测距原理图脉冲式激光测距具体工作过程:在测距仪指向被测目标后,激光发射模块发射出功率大但脉冲宽度很窄的脉冲光信号,小部分光信号在发射之初就已经被分光镜折射,作为发射参考信号被接收模块的光电传感器捕捉,从而触发飞行时间模块计时;另外绝大部分光束射向被测物体,由于漫反射作用使得部分光束从原路折射返回,最终进入接收模块,光电传感器捕捉到信号后使飞行时间计时器停止计时,即可得到往返时间。2.2系统方案选择与总体结构本设计主要是设计一款手携式工程测距仪,要求低能耗、高精度、短距离,并且方便携带。超声波测距方向性比激光测距弱,并且随着测量距离得增加,超声波在空气中的衰退严重,使得无法进行远距离测量。红外测距采用的红外传感器在户外使用过程中,容易造成环境光线干扰,导致系统误判,此外满足远距离测量的红外线性传感器参数性能要求高,无疑提高设计成本。激光测距方法实现原理、结构相对简单、测量距离较远、利于无合作目标测量工作。因此,本设计采用激光测距的方法制作测距仪激光测距系统[11-14]可以细分为:激光发生单元、光学系统、激光接收单元、距离计算单元、主控系统与显示模块、按键交互、直流电源。系统整体结构如图2.6所示。以相位式激光测距为例,各硬件单元的工作内容为:主控系统通过I2C、UART串口、I/O等实现对其他各单元的控制,从而达到协调测距系统的工作状态目的;激光发生单元用于调剂光发射,其包括激光驱动电路、调剂电路、激光器等;激光接收单元实现对返回的光信号捕捉、处理、鉴别功能,由APD光电雪崩二极管、升压电路、APD驱动电路、放大整形电路、鉴相电路组成;距离计算单元利用相干式测距公式,将相位差转换成距离,并通过UART串口传输给主控系统,主控系统将距离结果向显示模块输出。图2.6系统整体结构图3系统硬件电路设计3.1STM32F103主控介绍STM32F103系列芯片是ARM公司打造的32位ARMCortexM3内核芯片,主要定位自动化、物联网、工业控制等开发场合。STM32F103主要特点是运行频率高、芯片能耗低、开发成本低、大量可编程拓展口、入门门槛低等。STM32F103芯片的硬件配置完全能够实现数据的收发、模组电路驱动、人机交互的一切控制需要。用STM32F103作为主控系统可以减低非集成元件的使用从而减低整体电路复杂度[15-24],很好地达到降低开发成本的目的。该系列单片机不但功能强大、体积轻小并且能耗相当低,对于便携式测距仪来说,更低的能耗可以延长工作时间,更小的尺寸可以保持测距仪的小体积与轻重量,因此本设计使用STM32F103C最小系统开发板作为主控系统。图3.1STM32F103系列最小系统开发板模块图3.2激光发生、接收单元的选择目前,激光器可以分为固体、气体、液体和半导体激光器。在激光器的选择上,本设计主要为短距离测距,考虑携带体积以及工作能耗等因数,半导体激光器在体积、能耗等综合性能比固体、液体和气体激光器更加合适作为激光测距仪的激光器。因此本设计选择半导体激光器发生探测光源、高灵敏的APD雪崩管作为接收传感器。激光发生单元的选择主要考虑因数有;工作波长、峰值功率。工作波长影响着接收系统的信号转换效率,峰值功率会直接影响测量测距的距离、稳定性和回波信号强度。激光接收单元的选择主要考虑因数是光电传感器效应频谱、信号放大整形参数等。综合以上因数,本设计选择TF-Luna微型测距雷达。图3.2TF-Luna测距原理示意图TF-Luna是一款基于激光飞行时间(ToF)技术来测量物体间隔的单点测距雷达,内部使用一颗850nm波段半导体激光器以及光电雪崩管二极管(APD)。从系统整体框架来看,TF-Luna集成了激光发生单元、光学系统、激光接收单元、距离计算单元,可以实现8米内稳定、精确、高灵敏的距离测量。此外,TF-Luna还有体积小、重量轻、低能耗、性价比高等特点。因此十分适合作为便携式测距仪的测量模块。3.2.1TF-Luna模块工作原理与关键参数TF-Luna模块基于飞行时间原理(TOF),即为激光测量技术。其内部集成了激光发射单元、激光接收单元和飞行时间测量单元,使用相位式激光测距工作,可以独立完成距离测量任务并将计算结果、模块温度、回波信号强度通过UART向外输送。关键性能参数如下:参数名称参数值测量范围<8m距离分辨率1cm输出频率0-250Hz抗环境光能力70Klux中心波长850nm人眼安全Class1(IEC60825)供电电压3.7V-5.2V功耗≤0.35W通信接口UART/I2C表3.1TF-Luna模块性能参数3.2.2测距有效精度 TF-Luna模块光路已经经过优化,多次测量结果求平均后输出结果,最大程度减低外界环境对测距性能的影响。对白色(90%反射率)的目标测量有效范围为0.2m-8m,而对黑色物体(10%反射率)的目标有效测量距离为0.2-4.5m。除了被测目标表面反射率外,被测目标的边长和测量距离也会影响测量误差。 对于被测物体的边长与接收数据可靠性关系可由光学系统视场角决定,其公式为:上式中,L为测量距离;在探测距离L下,被测目标的有效边长D;为接收角的一半。只有当被测目标边长不小于有效测量边长D时,数据为稳定可靠值。根据上式可得出对于TF-luna模块的有效测距边长与测量距离如下:测量距离1M2M3M4M5M6M7M8M有效边长3.5cm7cm10.5cm14cm17.5cm21cm24.5cm28cm表3.2测距距离对应的被测目标有效边长3.2.3TF-Luna驱动方法图3.3TF-Luna控制接口图TF-Luna下端为接线端口,如图3.3所示,其编号与功能说明如下:编号引脚名称功能1+5V电源引脚2RX/SDA接收/数据引脚3TX/SCL发送/时钟引脚4GND电源接地引脚5、6备用引脚UART/IIC通信模式切换表3.3TF-Luna模块控制接口编号与功能说明TF-Luna可以采用UART或者I2C模式与主控进行通信。由于STM32f103主控芯片具有三个UART串口,因此本设计采用UART模式进行主从通信编程,STM32f103主控板与TF-Luna模块接线图为图3.4,TF-Luna模块的引脚2、3分别连接STM32主控板的PA9、PA10引脚。将引脚5悬空或者接入高电平(3.3V)时,TF-Luna开机启动为串口通信模式,此时引脚2、引脚3分别为RXD、TXD。图3.4STM32f103主控板与TF-Luna模块接线图在串口通信模式下,可以分为对TF-Luna进行寄存器操作的配置指令数据帧和用于返回测量结果的测量输出数据帧。对于配置指令数据帧,其数据帧格式如下:字节0123~Len-2Len-1描述HeadLenIDDataCheck表3.4TF-Luna配置指令数据帧格式其中:Head为固定帧头0x5ALen为包含帧头到Check的所以数据字节长度,最小为4bits,最大255bitsData传输数据段Check计算所有字节求和值,取其低8位,作为校验字节使用对于测量输出数据帧,TF-Luna主要输出以下几项数据:字节0、12345678描述HeadDist_LDist_HAmp_LAmp_HTemp_LTemp_HCheck表3.5TF-Luna测量数据帧格式其中:Head为固定帧头0x59Dist_L、Dist_H:测距值(Dist)低、高8位,默认单位cmAmp_L、Amp_H:返回信号强度(Amp)低、高8位,当Amp=0xFFFF时,表示过曝;当Amp<100时,过低。当返回信号过曝或过低时,距离值都不可信。Temp_L、Temp_H:芯片温度(Temp)低、高8位,串口输出的温度值换算成摄氏度的算式为:Temp/8-256。注意,Temp是芯片温度,不是环境温度,通常情况下,芯片温度比环境温度高约20℃Check同配置帧,作为校验字节使用3.2.4TF-Luna低功耗模式 对于可便携带的测距仪,硬件系统的功率直接影响着系统的续航时长,其中激光测距模块作为“能耗大户”。减低TF-Luna的工作能耗成为不可忽视的问题。TF-Luna的功耗由两个因素决定:光源驱动电流大小、发光占空比。TF-Luna通过自适应调节光源驱动电流,达到适应不同距离、不同反射率目标的大动态范围的目的。返回雷达的信号强度过高时,自动切换到低档位电流工作,相反,信号强度过低时,自动切换到高档位电流工作。电流档位越高,功耗越大。为了减低能耗以及兼顾测量性能,TF-Luna提供了连续测距的低功耗模式和单指令测距模式。连续测距模式下,TF-Luna始终以最高占空比发光,不随输出频率而改变。因此当TF-Luna为连续工作模式,电流档位处于最高档时,功耗最大,5V供电时,功耗约350mW。在实际使用中可以通过两种方式改变TF-Luna的发光占空比。一种方式是使能TF-Luna提供的低功耗模式,该模式由TF-Luna内部自动产生触发信号,并可以通过低功耗模式指令设置TF-Luna进入低功耗模式,为保证TF-Luna内部工作时序,低功耗模式最大输出频率为10Hz;另第一种是使用指令触发模式,该模式的内部工作机制与连续测距的低能耗模式相同,区别在于由主控STM32芯片产生触发信号。通过指令设置输出频率为0时,TF-Luna进入指令触发模式,TF-Luna在没有收到“单次触发指令”时不会主动测距,此时功耗约42.5mW(5V供电),实际功耗由指令触发的频率确定,每收到一次“单次触发指令”,测距并输出一次。本设计在软件编程功能上采用单指令触发测距模式和连续测距模式共存的方案,为降低系统能耗,默认为单指令触发测距模,操作者可以通过按键切换测距仪当前工作模式。3.3OLED显示模块3.3.1OLED简介OLED全称有机发光二级管。OLED显示技术具备自发光、广视角、几乎无穷高的对比度、较低耗电。OLED显示和传统的LCD显示不同,其可以自发光,所以不需要背光灯,这使得OLED显示屏相对于LCD显示屏尺寸更薄,同时显示效果更优,LCD采用整体背光设计,每个像素点的发光亮度通过偏振片调节;而OLED的每个像素点为独立LED控制,因此可以实现高对比度和低耗电。对便携式测距而言,更低能耗的显示器有利于更长时间的测量工作。因此本设计采用全动电子0.96寸的OLED显示模块作为测量结果显示单元。3.3.2全动电子OLED模块产品特点全动电子0.96寸的OLED显示模块具有以下特点:1、支持多种单片机平台(包含C51、STM32以及Arduino);2、黄蓝、白、蓝三种颜色显示方案可选,固定区域显示固定颜色,没点亮区域为黑色,点亮区域则为黄蓝、白、蓝三种颜色方案之一;3、显示内容清晰、对比度高、视场角广;4、分辨率达到128x64;5、支持SPI接口以及IIC接口输入输出;6、提供丰富包含C51、STM32以及Arduino平台的测试程序,方便快速多平台开发;3.3.3OLED模块接口说明本系统采用的模块为I2C通信模式、白色显示方案,先比较与黄蓝、蓝色显示方案在室外环境光下显示内容更加清晰,其模块如图3.5。表3.6为OLED模块各引脚说明。图3.5OLED显示模块图编号/引脚功能1GND电源负极2VCC电源正极(3.3V-`5V)3SCLI2C时钟信号线,4SDAI2C数据信号线表3.6OLED各引脚说明表OLED模块可以通过硬件修改实现对I2C从设备地址选择,修改方法如图3.6:图3.6OLED模块I2C从地址设置通过改变图3.6中矩形框内的电阻连接位置实现对显示模块从地址的修改,即将电阻焊接在左侧表示从地址#78H,将电阻焊接在右侧表示从地址#7AH。如果两边电阻都接上,则表示I2C有两个从设备,相当于接了两个OLED屏。本设计STM32主控板与OLED模块接线图为图3.7,OLED模块的SDL、SCA引脚分别连接STM32主控板的PB7、PB6引脚。图3.7STM32主控板与OLED模块接线图3.4按键阵模块 按键作为人机交互的重要工具,本设计也不例外。考虑到STM32F103提供多达45个I/O输入输出功能引脚,本设计采用4x4按键阵作为人机交互工具,便于后期软件交互功能的扩展。图3.8为4x4按键阵电路图:图3.84x4按键阵电路图本设计采用轮询的方式实现按键检测,行线分别接入STM32的PA0-PA3,列线分别接入PA4-PA7,使用8位PA口轮询按键值。其检测原理为:PA0-PA3引脚设置输出高电平,PA4-PA7置低电平。当有按键被按下时,PA0-PA3会有一个引脚电平被拉低,即为按键所在行。将PA4-PA7引脚设置输出高电平,PA0-PA3置低电平,读取PA4-PA7中为低电平的引脚,即可得出按键所在列。4系统软件部分设计4.1Arduino开发工具介绍本设计软件编写采用ArduinoIDE。Arduino开发工具又称ArduinoIDE,是意大利“Arduino”公司编写的软件的集成开发环境。与Keil开发工具相比,Arduino开发工具的优点有:1. 跨平台相比其他的单片机芯片只能在Windows环境下开发,ArduinoIDE能够在Windows、MacOS、Ubuntu等主流PC上使用,。2. 简单清晰的开发ArduinoIDE基于Java编程语言开发而来。为初学者提供了大量内置教程,降低学习门槛。Arduino语言是在C++电脑编程语言基础上编写,对CLANG编译库进行二次编写,降低代码编写难度。不苛求单片机底层寄存器使用知识、代码基础,有一定C语言编程基础便能够快速进行单片机程序的开发。3. 开放性Arduino-STM32的硬件外设接口、内部电路设计、编程开发环境及主要库文件使用MIT开源协议。在开源协定范围内,开放对代码编写、二次封装、模块设计等行为。4. 社区与第三方支持Arduino社区生态完整,能够容易在Github、Arduino官方论坛等网站找到Arduino官方和非官方开发者提供的代码、硬件原理、外设电路、软件类库等维护资料,提高项目开发速度,降低开发难度。4.2主函数的设计主程序具体流程如图4.1示。STM32主控初始化,设置系统全局变量后,分别对TF-Luna激光雷达、OLED模块、键盘阵初始化。其中,TF-Luna雷达需要设定工作频率、测量距离的最大和最小值、启动激光器工作等;OLED模块需要进行从地址设定、图形库U8g2lib初始化、输出开机图像等;此外主控还需要对4x4键盘阵进行引脚、按键值的定义,确保按键触发能够正确检测。初始化完毕后,系统进入判断是否有按键触发的循环函数loop(),不同的按键代表不同的功能,比如启动雷达测距、关闭雷达、切换为连续测量模式、切换为单次测量模式、自动测、手动测量等。在按键判断完毕后监测TF-Luna所在串口进行十分有数据输入,有则计算并输出到OLED显示模块,无则继续回到判断按键触发循环。图4.1主程序工作流程图4.3系统重要函数在ArduinoIDE开发环境中,主函数voidsetup()是程序的入口函数。在该函数的开头一般进行初始化和将一些变量重新赋值,之后进入voidloop()循环程序就会循环以对实时状态变化进行操作。详细的代码采用子函数封装后在setup()和loop()函数中调用。4.3.1OLED模块驱动与仿真由于本设计的STM32F103主控板采用ArduinoIDE开发,Arduino的STM32库整合了STM32F103的I2C引脚定义,因此在编程过程中不需要再对STM32F103引脚进行定义即可使用I2C引脚,大大减低开发难度。本设计使用了U8g2lib开源库对OLED模块进行驱动图形显示,因此需要先调用U8G2_SSD1306_128X64_NONAME_F_HW_I2C()函数对OLED模块进行定义。U8g2lib开源库提供的u8g2.print函数,该函数可以实现在没有取模软件的情况下将大小写英文字符串、数字直接显示到OLED上。其核心驱动代码如下:#include<U8g2lib.h> //导入U8glib开源库U8G2_SSD1306_128X64_NONAME_F_HW_I2Cu8g2(U8G2_R0,PB7,PB6,U8X8_PIN_NONE);//初始化为I2Cvoidprepare(void) //显示相关参数设置{u8g2.begin(); //u8g2初始化u8g2.enableUTF8Print(); //设定显示允许UTF8格式输出}voidshowout(){u8g2.setFont(u8g2_font_6x13_tf); //设定显示字体大小u8g2.setFontDirection(0); //设定字体为默认方向u8g2.drawFrame(0,0,128,16); //绘画矩形框1u8g2.drawFrame(0,17,128,47); //绘画矩形框2u8g2.setCursor(25,12); //光标移到x=25px,y=12px位置u8g2.print("STM32ARDUINO"); //打印"STM32ARDUINO"u8g2.setCursor(4,28); //光标移动u8g2.print("Mode:"); //打印"Mode:"u8g2.setCursor(50,28);u8g2.print("OFF"); //打印"OFF"u8g2.sendBuffer(); //输出到显示模块}voidsetup(){prepare();showout(); //测试输出}图4.2使用Proteus软件仿真STM32主控驱动OLED显示模块图4.3实体OLED显示模块驱动效果图4.3.2TF-Luna驱动与调试charuart[9];//存储测量结果charenable[5]={0x5a,0x05,0x07,0x01,0x67};//启动TF-Luna雷达工作指令charsamplerate_00[6]={0x5a,0x06,0x03,0x00,0x00,0x64};//设置工作频率0Hz指令charsingle_trig[4]={0x5a,0x04,0x04,0x62};//单次触发指令Serial1.begin(115200);//初始化TF-luna的串口while(!Serial); //等待初始化完毕for(inti=0;i<5;i++)//启动TF-Luna雷达工作{Serial1.write(enable[i]);}for(inti=0;i<6;i++)//设置工作频率0Hz{Serial1.write(samplerate_00[i]);}for(inti=0;i<4;i++)//触发一次测距指令{Serial1.write(single_trig[i]);}voidsetup(){if(Serial1.available()){if(Serial1.read()==0x59) //判断接收帧字节是否为header0x59{uart[0]=HEADER;while(!Serial1.available());if(Serial1.read()==0x59) //再次判断接收帧字节是否为header0x59{uart[1]=HEADER;for(i=2;i<9;i++) //将数据帧第2-8位测量结果加入数值uart{while(!Serial1.available());uart[i]=Serial1.read();}check=uart[0]+uart[1]+uart[2]+uart[3]+uart[4]+uart[5]+uart[6]+uart[7];if(uart[8]==(check&0xff)){dist=uart[2]+uart[3]*256; //计算测量距离值(cm)strength=uart[4]+uart[5]*256; //计算返回信号强度Serial.printf(dist);//输出到usb串口Serial.printf(“CM|”);Serial.printf(strength); showoled(dist,strength);//将测量距离值和信号强度输出到屏幕}}}}图4.4使用串口工具调试TF-Luna模块的输出数据图4.5TF-Luna测量结果输出到OLED显示模块效果图5组装与调试5.1系统总硬件电路

图5.1系统硬件电路图 本设计硬件电路如图5.1所示,由STM32F103主控板、TF-Luna测距模块、OLED128x64显示器、4x4按键阵和用于辅助测量的5V650nm镭射激光器LD组成。TF-Luna模块采用UART串口与STM32的PA9(TX)、PA10(RX)引脚连接;OLED显示模块使用I2C方式接入STM32的PB7(SDA)、PB8(SCL)引脚;键盘阵和LD激光器通过I\O方式接入主控板。5.2硬件组装调试图5.2硬件组装图 硬件组装如图5.2所示,其中1为OLED显示模块;2为STM32F103开发板;3为4x4按键阵;4为镭射LD激光器;5为TF-Luna测距模块。图5.3为实际焊接效果图,装机后,本设计尺寸为15x10x15CM,重量不足170g,体积轻尺寸小。图5.3实际测距效果图实际测试中,以室内白色墙体作为测量目标,改变测距仪位置,记录八米内的测距仪测量数据,得到图5.4,其中蓝色线段为使用10M卷尺测量的数据,棕色线段为本设计测量的数据。通过多次重复测量数据,平均误差为1.42CM。因此本设计操作简便、快速输出测量结果、轻盈便携式,满足人们日常生活的测量使用,实现提高测量简易性与测量速度。图5.4实际距离与本设计测量距离曲线图

参考文献[1]田成.雷达测距技术原理及发展现状探讨[J].中国战略新兴产业,2018(16):159.[2]孟凡宇.基于单片机AT89S52的超声波测距仪的设计与实现[J].科技资讯,2020,18(02):75-76+78.[3]肖家涛.一种智能超声波测距系统设计[J].电子世界,2019(19):156-157.[4]王丽博,王庆平.基于红外测距传感器的倒车雷达电路板设计[J].农机使用与维修,2019(10):20-21.[5]路统霄,张有润,章玉飞,甄少伟,周万礼,张波.一种用于激光脉冲测距的恒比定时电路[J].微电子学,2019,49(06):812-816.[6]林晶.近程脉冲激光测距仪的设计[D].南京理工大学,2018.[7]尚君莹,田学民,陈洁萌.脉冲激光测距系统及其算法研究[J].电子设计工程,2015,23(11):99-101.[8]陈昭.低成本小型脉冲激光测距系统设计[D].西安工业大学,2015.[9]王子剑.基于相位法的激光测距系统研究[D].吉林大学,2019.[10]宫胜男.数字相移式激光测距仪设计[D].北京石油化工学院,2019.[11]许浩浩,易艺,韩志胜,罗国庆.基于STM32的短距离激光测距仪设计[J].仪器仪表用户,2019,26(07):8-10+33.[12]苏燕,徐艳华.基于单片机的激光测距系统设计[J].激光杂志,2017,38(09):128-131.[13]陈文凯.基于STM32的新型激光测距控制系统的设计[J].自动化与仪器仪表,2016(03):15-17.[14]杨光照,许春晖,张德浩,郑莎,谭明香.基于单片机的激光测距系统设计[J].中国新技术新产品,2012(10):36-37.[15]陈权昌.李兴富.单片机原理及应用[M].广州:华南理工大学出版社,2007.8.[16]李庆亮.C语言程序设计实用教程[M].北京:机械工业出版社,2005.3.[17]杨志忠.数字电子技术[M].北京:高等教育出版社,2003.12.[18]及力.Protel99SE原理图与PCB设计教程[M].北京:电子工业出版社,2007.8.[19]徐江海.单片机实用教程[M].北京:机械工业出版社,2006.12[20]胡宴如.模拟电子技术[M].北京:高等教育出版社,2008.6.[21]刘宁.单片机多功能时钟的设计[M].浙江:浙江海洋学院,2009.[22]汪文.陈林.单片机原理及应用[M].湖北:华中科技大学出版社,2007.[23]康华光.电子技术基础数字部分[M].北京:高等教育出版社,2008.[24]华成英、童诗白,模拟电子技术基础(第四版)[M],北京:高等教育出版社,2006.[25]蒋思中,白雪.工业机器人目标识别与智能检测技术研究现状与发展趋势[J].轻工科技,2020,36(02):65-66.[26]李肇惠,郝昭.工业机器人的技术发展及其应用分析[J].内燃机与配件,2020(01):249-250.

谢辞在本文的撰写过程中,我的指导老师,她治学严谨,学识渊博,视野广阔,为我营造了一种良好的学术氛围。置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了明确的学术目标,领会了基本的思考方式,掌握了通用的研究方法,而且还明白了许多待人接物与为人处世的道理。其严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力,与无微不至、感人至深的人文关怀,令人如沐春风,倍感温馨。正是由于她在百忙之中多次审阅全文,对细节进行修改,并为本文的撰写提供了许多中肯而且宝贵的意见,本文才得以成型。在此特向潘颖老师致以衷心的谢意!向她无可挑剔的敬业精神、严谨认真的治学态度、深厚的专业修养和平易近人的待人方式表示深深的敬意!同时感激四年中陪伴在我身边的同学、朋友、感激他们为我提出的有意的提议和意见,有了他们的支持、鼓励和帮忙,我才能充实的度过了四年的学习生活。

附录附录1主程序源代码/*STM32F103C8T6*//*测距仪主程序*/#include<U8g2lib.h> //导入u8g2图形显示库U8G2_SSD1306_128X64_NONAME_F_HW_I2Cu8g2(U8G2_R0,/*clock=*/PB3,/*data=*/PB8,/*reset=*/U8X8_PIN_NONE); //初始化OLED模块 //定义使用SSD1306显示芯片,I2C通讯模式 //PB3接ACL;PB8接ADL-chardisable[5]={0x5a,0x05,0x07,0x00,0x66};//关闭TF-lunacharenable[5]={0x5a,0x05,0x07,0x01,0x67};//启动TF-lunacharsamplerate_00[6]={0x5a,0x06,0x03,0x00,0x00,0x64};//设置TF_-Luna工作频率为0Hz,即手动触发测量模式charsamplerate_01[6]={0x5a,0x06,0x03,0x01,0x00,0x64};//设置TF_-Luna工作频率为1Hzcharsamplerate_10[6]={0x5a,0x06,0x03,0x0a,0x00,0x6d};//设置TF_-Luna工作频率为10Hzcharsamplerate_100[6]={0x5a,0x06,0x03,0x64,0x00,0xc7};//设置TF_-Luna工作频率为100Hzcharsingle_trig[4]={0x5a,0x04,0x04,0x62};//触发单次距离测量指令charid_dist_limit[9]={0x5A,0x09,0x3A,0x20,0x00,0x20,0x03,0x00,0x00};//设置有效测量范围为20cm-800cmintdist; //用于存放测量距离intstrength; //用于存放测量距离的回拨强度intuart[9]; //用于接收TF-Luna的数据帧constintHEADER=0x59; //TF-Luna的数据帧头字节constintnumRows=4;//键盘行数constintnumCols=4;//键盘列数constintdebounceTime=20;//开关稳定的毫秒数;去抖延时//keymap定义相应的按键被按下时返回的字符constcharkeymap[numRows][numCols]={{'1','2','3','A'},{'4','5','6','B'},{'7','8','9','C'},{'*','0','#','D'},};//这个数组确定用于行和列的引脚constintrowPins[numRows]={PA3,PA2,PA1,PA0};//0-3行constintcolPins[numCols]={PA7,PA6,PA5,PA4};//0-3列voidtfluna_init();//声明TF-Luna初始化函数voidsend_to_tfluna(charstr[],intn); //声明发送指令到TF-Luna函数voidkeypad_init(); //声明键盘阵初始化函数chargetKey(); //声明获取键值函数voidoled_init(); //声明OLED初始化函数voidshowkey(chari); //调试使用voidshowdata(inti); //向屏幕输出结果voidcheck_data(); //计算测量结果并显示intdebug=0; //全局变量,用于调试代码voidsetup(){if(debug){Serial.begin(115200);//设置STM32与电脑USB串口通信波特率}Serial1.begin(115200);//设置STM32与TF-Luna通信波特率while(!Serial1); //等待串口初始化完成keypad_init(); //按键初始化oled_init(); //OLED初始化tfluna_init(); //TF-Luna初始化}intstatus=0; //全局变量,用于存储当前测距仪工作模式voidloop(){charkey=getKey(); //获取当前按键值if(key!=0){ //如果有按键触发if(debug){Serial.println(key);}switch(key){ //判断按键键值case'A':status=9;send_to_tfluna(samplerate_00,6);//向TF-Luna发送设置工作频率为0Hz指令break;case'B':status=4;send_to_tfluna(samplerate_100,6);//向TF-Luna发送设置工作频率为100Hz指令break;case'C':status=3;send_to_tfluna(samplerate_00,6);//向TF-Luna发送设置工作频率为0Hz指令send_to_tfluna(single_trig,4);//向TF-Luna发送触发一次测距指令break;case'D':status=2;send_to_tfluna(samplerate_00,6);//向TF-Luna发送设置工作频率为0Hz指令break;case'1':status=5;send_to_tfluna(enable,5);//向TF-Luna发送启动雷达指令break;case'2':status=0;send_to_tfluna(disable,5);//向TF-Luna发送关闭雷达指令break;default:break;}}showstatus(status);//输出当前工作模式check_data(); //计算测量结果并显示}voidtfluna_init(){//TF-Luna雷达初始化send_to_tfluna(disable,5);//发送启动雷达指令send_to_tfluna(samplerate_00,6);//设置工作频率为0,加入低功耗模式send_to_tfluna(id_dist_limit,9); //设置测距有效范围}//向TF-Luna雷达发送设置指令帧voidsend_to_tfluna(charstr[],intn){for(inti=0;i<n;i++){Serial1.write(str[i]);}}//初始化按键阵列voidkeypad_init(){for(introw=0;row<numRows;row++){pinMode(rowPins[row],INPUT_PULLUP);//设置行引脚为输入,这里要注意模式选用内部上拉digitalWrite(rowPins[row],HIGH);//打开上拉电阻}for(intcolumn=0;column<numCols;column++){pinMode(colPins[column],OUTPUT);//设置列引脚为输出digitalWrite(colPins[column],HIGH);//使所有列不活跃}}//返回按下的键,或者如果没有按键按下就返回0chargetKey(){charkey=0;//0表示没有按键按下for(intcolumn=0;column<numCols;column++){digitalWrite(colPins[column],LOW);//激活当前列for(introw=0;row<numRows;row++){//扫描所有行查找被按下的键if(digitalRead(rowPins[row])==LOW){//是一个键被按下?delay(debounceTime);//去抖while(digitalRead(rowPins[row])==LOW);//等待键被释放key=keymap[row][column];//记录哪个键被按下}}digitalWrite(colPins[column],HIGH);//去激活当前列}returnkey;//返回按下的键,如果没有键按下,返回0}//OLED初始化voidoled_init(){u8g2.begin(); //u8g2初始化u8g2.enableUTF8Print(); //允许UTF8格式字体输出u8g2.setFont(u8g2_font_6x13_tf); //设置每个字母像素大小u8g2.setFontDirection(0); //设置为默认方向u8g2.drawFrame(0,0,128,16); //画个框框u8g2.drawFrame(0,17,128,47); //再画个框框u8g2.setCursor(25,12);//改变光标坐标u8g2.print("STM32Ranging");//输出STM32Rangingu8g2.sendBuffer();//将Buffer内容发送到显示器}voidshowstatus(inti){u8g2.setFont(u8g2_font_6x13_tf);u8g2.setFontDirection(0);u8g2.setCursor(4,28);u8g2.print("Mode:");u8g2.setCursor(50,28);switch(i){case9:u8g2.print("Remind");break;case4:u8g2.print("start");break;case3:u8g2.print("single");break;case2:u8g2.print("Stop");break;case5:u8g2.print("ON");break;case0:u8g2.print("OFF");break;default:break;}u8g2.sendBuffer();}voidshowdata(intdist,intstrength){u8g2.setFont(u8g2_font_6x13_tf);u8g2.setFontDirection(0);u8g2.clearBuffer();u8g2.drawFrame(0,0,128,16);u8g2.drawFrame(0,17,128,47);u8g2.setCursor(25,12);//lift25,buntton12u8g2.print("STM32Ranging");u8g2.drawFrame(0,17,128,15);u8g2.setCursor(4,44);u8g2.print("strength=");u8g2.setCursor(64,44);u8g2.print(strength);u8g2.drawFrame(0,32,128,15);u8g2.setCursor(4,60);u8g2.print("dist=");u8g2.setCursor(64,60);u8g2.print(dist);u8g2.sendBuffer();}voidcheck_data(){if(Serial1.available()){if(Serial1.read()==0x59)//assessdatapackageframeheader0x59{uart[0]=HEADER;while(!Serial1.available());if(Serial1.read()==0x59)//assessdatapackageframeheader0x59{uart[1]=HEADER;for(inti=2;i<9;i++)//savedatainarray{while(!Serial1.available());uart[i]=Serial1.read();}check=uart[0]+uart[1]+uart[2]+uart[3]+uart[4]+uart[5]+uart[6]+uart[7];if(uart[8]==(check&0xff))//verifythereceiveddataasperprotocol{dist=uart[2]+uart[3]*256;//calculatedistancevaluestrength=uart[4]+uart[5]*256;//calculatesignalstrengthvalueshowdata(dist,strength);if(debug){Serial.print("distance=");Serial.print(dist);Serial.print("|");Serial.print("strength=");Serial.println(strength);}}}}}}附录2 元件清单元件名称数量(个)STM32F103C最小开发系统板1TF-Luna模块1OLED128x64显示器模块14X4按键阵列1LD650nm镭射激光器1100mA5V电源模块1固定支架1杜邦线若干

电脑无法识别U盘该怎么办HYPERLINK电脑无法识别U盘怎么办?打开我的电脑上单击右键,在快捷菜单里,选择“管理”,打开“计算机管理”窗口。在计算机管理窗口里,选择“存储”下面的“磁盘管理”,如果看得到没有盘符的U盘,那么在这个U盘上按鼠标右键,选择“更改驱动器名称和路径”选项,就打开了“更改……的驱动器号和路径”对话框。再点击“更改”按钮,打开“更改驱动器号和路径”的对话框,在“指定以下驱动器号”的右边下拉列表里,选择你希望分配给U盘的驱动器号,尽可能靠后选择,比如X、Y、Z,选择好后,单击确定按钮,回到上一次“更改……的驱动器号和路径”对话框窗口,再一次单击确定,就回到“计算机管理”窗口。至此,如果一切正常,就给U盘单独设置了一个长久使用的驱动器号,并却,不受虚拟驱动器的影响了。建议将U盘插到电脑上,看任务栏中是否显示图标,如果显示,在我的电脑点右键查看属性——高级——硬件——设备管理器——查看里面是否有问号的设备,在问号设备上点右键——更新驱动程序然后下一步——否暂时不连接到网络——下一步自动安装软件(推荐)就可以了另外:系统不认U盘的几种处理方法1.禁用主板usb设备。管理员在CMOS设置里将USB设备禁用,并且设置BIOS密码,这样U盘插到电脑上以后,电脑也不会识别。这种方法有它的局限性,就是不仅禁用了U盘,同时也禁用了其他的usb设备,比如usb鼠标,usb光驱等。所以这种方法管理员一般不会用,除非这台电脑非常重要,值得他舍弃掉整个usb总线的功能。但是这种屏蔽也可以破解,即便设置了密码。整个BIOS设置都存放在CMOS芯片里,而COMS的记忆作用是靠主板上的一个电容供电的。电容的电来源于主板电池,所以,只要把主板电池卸下来,用一根导线将原来装电池的地方正负极短接,瞬间就能清空整个CMOS设置,包括BIOS的密码。随后只需安回电池,自己重新设置一下CMOS,就可以使用usb设备了。(当然,这需要打开机箱,一般众目睽睽之下不大适用~~)2.修改注册表项,禁用usb移动存储设备。打开注册表文件,

温馨提示

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

评论

0/150

提交评论