基于5的避障循迹重力感应遥控的智能小车设计C语言设计

上传人:沈*** 文档编号:132843962 上传时间:2022-08-09 格式:DOC 页数:82 大小:2.99MB
收藏 版权申诉 举报 下载
基于5的避障循迹重力感应遥控的智能小车设计C语言设计_第1页
第1页 / 共82页
基于5的避障循迹重力感应遥控的智能小车设计C语言设计_第2页
第2页 / 共82页
基于5的避障循迹重力感应遥控的智能小车设计C语言设计_第3页
第3页 / 共82页
资源描述:

《基于5的避障循迹重力感应遥控的智能小车设计C语言设计》由会员分享,可在线阅读,更多相关《基于5的避障循迹重力感应遥控的智能小车设计C语言设计(82页珍藏版)》请在装配图网上搜索。

1、基于51的避障/循迹/重力感应遥控的智能小车设计1 绪论1.1 选题背景随着汽车工业的迅速发展,有关汽车的研究也就越来越受人关注。全国电子大赛和省内电子大赛几乎每次均有智能小车这方面的题目,全国各高校也都很注重该题目的研究。可见其研究意义很大。本设计就是在这样的背景下提出的,指引教师已有充足的准备。本题目是结合科研项目而拟定的设计类课题。设计的智能电动小车应当可以实现适应能力,能自动避障,可以智能规划途径。智能化作为现代社会的新产物,是后来的发展方向,她可以按照预先设定的模式在一种特定的环境里自动的运作,无需人为管理,便可以完毕预期所要达到的或是更高的目的。同遥控小车不同,遥控小车需要人为控制

2、转向、启停和进退,比较先进的遥控车还能控制器速度。常用的模型小车,都属于此类遥控车;智能小车,则可以通过计算机编程来实现其对行驶方向、启停以及速度的控制,无需人工干预。操作员可以通过修改智能小车的计算机程序来变化它的行驶方向。因此,智能小车具有再编程的特性,是机器人的一种。中国自1978年把“智能模拟”作为国家科学技术发展规划的重要研究课题,开始着力研究智能化。从概念的引进到实验室研究的实现,再到目前高品位领域(航天航空、军事、勘探等)的应用,这一过程为智能化的全面发展奠定基石。智能化全面的发展是实现其对资源的合理充足运用,以尽量少的投入得到最大的收益,大大提高工业生产的效率,实现既有工业生产

3、水平从自动化向智能化升级,实现当今智能化发展由高品位向大众普及。从先前的模拟电路设计,到数字电路设计,再到目前的集成芯片的应用,多种能实现同样功能的元件越来越小为智能化产物的生成奠定了良好的物质基本。智能小车,是一种集环境感知、规划决策,自动行驶等功能于一体的综合系统,它集中地运用了计算机、传感、信息、通信、导航、人工智能及自动控制等技术,是典型的高新技术综合体。1.2 智能小车研究现状智能车辆作为智能交通系统的核心技术,是许多高新技术综合集成的载体。智能车辆驾驶是一种通用性术语,指所有或部分完毕一项或多项驾驶任务的综合车辆技术。智能车辆的一种基本特性是在一定道路条件下实现所有或者部分的自动驾

4、驶功能,下面简朴简介一下国内外智能小车研究的发展状况。1.2.1 国外智能车辆研究现状国外智能车辆的研究历史较长,始于上世纪50年代。它的发展历程大体可以提成三个阶段:第一阶段 20世纪50年代是智能车辆研究的初始阶段。1954年美国Barrett Electronics 公司研究开发了世界上第一台自主引导车系统AGVS(Automated Guided Vehicle System)。该系统只是一种运营在固定线路上的拖车式运货平台,但它却具有了智能车辆最基本得特性即无人驾驶。初期研制AGVS的目的是为了提高仓库运送的自动化水平,应用领域仅局限于仓库内的物品运送。随着计算机的应用和传感技术的发

5、展,智能车辆的研究不断得到新的发展。第二阶段 从80年代中后期开始,世界重要发达国家对智能车辆开展了卓有成效的研究。在欧洲,普罗米修斯项目于1986年开始了在这个领域的摸索。在美洲,美国于1995年成立了国家自动高速公路系统联盟(NAHSC),其目的之一就是研究发展智能车辆的也许性,并增进智能车辆技术进入实用化。在亚洲,日本于1996年成立了高速公路先进巡航/辅助驾驶研究会,重要目的是研究自动车辆导航的措施,增进日本智能车辆技术的整体进步。进入80年代中期,设计和制造智能车辆的浪潮席卷全世界,一大批世界出名的公司开始研制智能车辆平台。第三阶段 从90年代开始,智能车辆进入了进一步、系统、大规模

6、研究阶段。最为突出的是,美国卡内基.梅隆大学(Carnegie Mellon University)机器人研究所一共完毕了Navlab系列的10台自主车(Navlab1Navlab10)的研究,获得了明显的成就。目前,智能车辆的发展正处在第三阶段。这一阶段的研究成果代表了目前国外智能车辆的重要发展方向。在世界科学界和工业设计界中,众多的研究机构研发的智能车辆具有代表性的有:德意志联邦大学的研究 1985年,第一辆VaMoRs智能原型车辆在户外高速公路上以100km/h的速度进行了测试,它使用了机器视觉来保证横向和纵向的车辆控制。1988年,在都灵的PROMRTHEUS项目第一次委员会会议上,智

7、能车辆维塔(VITA,7t)进行了展示,该车可以自动停车、行进,并可以向后车传送有关驾驶信息。这两种车辆都配备了UBM视觉系统。这是一种双目视觉系统,具有极高的稳定性。荷兰鹿特丹港口的研究 智能车辆的研究重要体目前工厂货品的运送。荷兰的Combi road系统,采用无人驾驶的车辆来来回运送货品,它行驶的路面上采用了磁性导航参照物,并运用一种光阵列传感器去探测障碍。荷兰南部目前正在讨论工业上运用这种系统的问题,政府正考虑已有的高速公路新建一条专用的车道,采用这种系统将货品从鹿特丹运往各地。日本大阪大学的研究 大阪大学的Shirai实验室所研制的智能小车,采用了航位推测系统(Dead Reckon

8、ing System),分别运用旋转编码器和电位计来获取智能小车的转向角,从而完毕了智能小车的定位。此外,斯特拉斯堡实验中心、英国国防部门的研究、美国卡内基梅隆大学、奔驰公司、美国麻省理工学院、韩国理工大学对智能车辆也有较多的研究。1.2.2 国内智能车辆研究现状相比于国外,国内开展智能车辆技术方面的研究起步较晚,开始于20世纪80年代。并且大多数研究处在于针对某个单项技术研究的阶段。虽然国内在智能车辆技术方面的研究总体上落后于发达国家,并且存在一定得技术差距,但是我们也获得了一系列的成果,重要有:(1)中国第一汽车集团公司和国防科技大学机电工程与自动化学院与研制成功国内第一辆自主驾驶轿车。该

9、自主驾驶轿车在正常交通状况下的高速公路上,行驶的最高稳定速度为13km/h,最高峰值速度达170km/h,并且具有超车功能,其总体技术性能和指标已经达到世界先进水平。(2)南京理工大学、北京理工大学、浙江大学、国防科技大学、清华大学等多所院校联合研制了7B.8军用室外自主车,该车装有彩色摄像机、激光雷达、陀螺惯导定位等传感器。计算机系统采用两台Sun10完毕信息融合、途径规划,两台PC486完毕路边抽取辨认和激光信息解决,8098单片机完毕定位计算和车辆自动驾驶。其体系构造以水平式构造为主,采用老式的“感知-建模-规划-执行”算法,其直线跟踪速度达到20km/h,避障速度达到5-10km/h。

10、智能车辆研究也是智能交通系统ITS的核心技术。目前,国内的许多高校和科研院所都在进行ITS核心技术、设备的研究。随着ITS研究的兴起,国内已形成一支ITS技术研究开发的技术专业队伍。并且各交通、汽车公司越来越加大了对ITS及智能车辆技术研发的投入,整个社会的关注限度在不断提高。交通部已将ITS研究列入“十五”科技发展筹划和长期规划。相信通过有关领域的共同努力,国内ITS及智能车辆的技术水平一定会得到很大提高。可以估计,国内飞速发展的经济实力将为智能车辆的研究提供一种更加广阔的前景。我们要结合国内国情,在某一方面或某些方面,对智能车进行进一步细致的研究,为它此后的发展及实际应用打下坚实的基本。1

11、.3 重要内容本课题要开发一种能自动循迹自动避障同步可以遥控的智能小车控制系统,系统分小车和遥控器两部分,重要以简易智能机器人为开发平台,选择通用、价廉的51单片机为控制平台,选择常用的电机模型车为机械平台,通过细化设计规定,结合传感器技术和电机控制技术有关知识实现小车的多种功能。设计完毕以由红外线对管的自动寻迹、红外线自动避障、重力遥控构成的硬件模块结合软件设计构成多功能智能小车,共同实现小车的迈进倒退、转向行驶,自动根据地面黑线寻迹导航,检测障碍物后停止等功能,实现智能控制,达到设计目的。2 方案设计及论证2.1 总体设计 本课题设计重要是制作一款能进行智能判断并能做出对的反映的小车。小车

12、具有如下几种功能:自动避障功能;寻迹功能(按路面的黑色轨道行驶);基于重力感应的遥控(通过倾斜方向和角度控制小车运动方向和速度)。小车端以两直流电动机为主驱动,通过各类传感器件来采集各类信息,送入主控单元89C52单片机解决数据后完毕相应动作,以达到自身控制。电机驱动电路采用H桥驱动模块-双L298步进/直流电机驱动板 ,能同步驱动4个直流电机和2个步进电机;避障采用漫反射式光电开关来完毕,自动寻迹采用红外发射管和接受管光电对管寻迹传感器完毕,最后由控制单元解决数据后通过编程有序合理的将各模块信号整合在一起并完毕相应动作,实现了智能控制,相称于简易机器人。遥控端由MPU0605陀螺仪和无线模块

13、、按键模块、LCD显示模块构成,通过检测按键和陀螺仪数据送入89C52单片机解决后判断顾客的指令,然后通过NRF24L01无线模块把指令发送到小车端,同步在LCD12864显示目前工作模式和小车的状态.2.2 主控单元方案比较与选择按照题目规定,控制器重要用于控制电机,通过有关传感器对路面的轨迹信息进行解决,并将解决信号传播给控制器,然后控制器做出相应的解决,实现小车的自动循迹和自动避障。 方案一:可以采用ARM为系统的控制器,长处是该系统功能强大,片上外设集成度搞密度高,提高了稳定性,系统的解决速度也很高,适合伙为大规模实时系统的控制核心。方案二:采用AT89S52作为系统控制的方案。AT8

14、9S52单片机算术运算功能强,软件编程灵活、自由度大,功耗低、体积小、技术成熟,成本也比ARM低。考虑到性价比问题,本设计选择 用AT89S52单片机做控制器。2.3 电机单元方案比较与选择方案一:采用直流电机,配合LM293驱动芯片组合。长处在于硬件电路的设计简朴。当外加额定直流电压时,转速几乎相等。此类电机用于录音机、录相机、唱机或激光唱机等固定转速的机器或设备中,也用于变速范畴很宽的驱动装置,但容易受到外部因素干扰,影响稳定的转速和转矩输出。 方案二:采用直流减速电机。直流减速电机转动力矩大,体积小,重量轻,装配简朴,使用以便,小车电机内部装有减速齿轮组,因此并不需要考虑调速功能,很以便

15、的就可以实现通过单片机对直流减速电机迈进、后退、停止等操作。综合以上考虑我们选择方案二的直流减速电机作为智能小车的驱动电机。2.4 电源单元方案比较与选择方案一:采用单电源供电,通过单电源同步对单片机和直流电机进行供电,此方案的长处是,减少机身的重量,操作简朴,其缺陷是,这样会使单片机的波动变大,影响单片机的性能,稳定性比较弱。方案二:采用双电源供电,通过两个独立的电源分别对单片机和直流减速电机进行供电,此方案的长处是,减少波动,稳定性比较好,可以让小车更好的运作起来,唯一的缺陷就是会增长小车的重量。综合以上的优缺陷,本设计决定采用第二种方案。2.5 避障单元方案比较与选择方案一:用超声波传感

16、器进行避障。超声波传感器的原理是:超声波由压电陶瓷超声波传感器发出后,遇到障碍物便反射回来,再被超声波传感器接受。但使用超声波模块的成本比较高。因此我们考虑其他的方案,超声波传感器实物图如下图2所示:图2 超声波传感器方案二:用漫反射式光电开关进行避障。光电开关的工作原理是根据光线发射头发出的光束,被物体反射,其接受电路据此做出判断反映,物体对红外光由同步回路选通而检测物体的有无。当有光线反射回来时,输出低电平。当没有光线反射回来时,输出高电平。光电开关的是物图如下图3所示:图3 光电开关考虑到超声波测量的范畴宽,使用非常灵活,协助智能小车顺利绕过障碍,可以适应十分复杂的环境,我们最后选择了方

17、案一。2.6 寻迹单元方案比较与选择方案一: 运用寻迹来引导小车达到顾客所指定的地点。采用红外发射管和接受管光电对管寻迹传感器。红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接受管能接受到反射回的光线则检测出白线继而输出低电平,若接受不到发射管发出的光线则检测出黑线继而输出高电平。此方案存在的缺陷是对光线的亮度规定较高,在夜间难以正常工作。方案二: 通过超声波定位模块来实时定位小车的位置。超声波定位的基本原理是通过接受几种固定位置的发射点的超声波接受器, 在小车上加入一种发射器,通过无线模块计算各模块接受到超声波的时间差,通过集成模块的内部算法得出小车所在位置和原设定位置的

18、偏差状况,从而得到主体到这几种发射点的距离, 实现了超声波的定位,由于超声波在空气中的衰减较大, 它只合用于较小的范畴,并且使用此方案还将面临着在家中的超声波各通讯线的布局,使用很不以便。经实测发现方案一中的红外对管型寻迹模块只要给进行一定的改善,对环境的适应能力还是比较强的例如可以在晚上行进,这样就可以用低成本来实现我们你所需要的功能,因此就排除了方案二,以方案一作为小车在家庭中的行进方式。3 硬件系统的设计3.1 单片机控制模块STC89C52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有机灵的8 位CPU 和在线系统可编程Flas

19、h,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 STC89C52具有如下原则功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定期器,2 个数据指针,三个16 位 定期器/计数器,一种6向量2级中断构造,全双工串行口,片内晶振及时钟电路。此外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,容许RAM、定期器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一种中断或硬件复位为止。如图4是较为常用的单片机最小系统图。图4 单片机最小

20、系统3.1.1 时钟电路单片机的时钟产生有两种措施:内部时钟方式和外部时钟方式。系统的时钟电路设计是采用的内部方式,即运用芯片内部的振荡电路。AT89单片机内部有一种用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一种自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的规定,但电容的大小会影响震荡器频率的高下、震荡器的稳定性、起振的迅速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽量的选择陶瓷电容,电容值一般取30P

21、F。在焊接刷电路板时,晶体振荡器和电容应尽量安装得与单片机芯片接近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。3.1.2 复位电路位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一种触发器与复位电路相连,触发器用来克制噪声,它的输出在每个机器周期中由复位电路采样一次。复位电路一般采用上电自动复位和按钮复位两种方式。所谓上电复位,是指计算机加电瞬间,要在RST引脚浮现不小于10MS的正脉冲,使单片机进入复位状态。按钮复位是指顾客按下“复位”按钮,使单片机进入复位状态。如上图3是按钮电平复位的一种实用电路。3.2 电机驱动模块的设计电机驱动模块采用专用芯片L298N 作为电机

22、驱动芯片,L298N 是一种具有高电压大电流的全桥驱动芯片,其响应频率高,一片L298N可以分别控制两个直流电机。图5 电机驱动原理简图3.2.1 L298N芯片的简介L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。重要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用原则逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的状况下容许或严禁器件工作有一种逻辑电源输入端,使内部逻辑电路部分在低电

23、压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机,实物图及外围电路如下图6、7所示。图6 L298N芯片图7 L298N外围电路接口阐明如下示:+5V:芯片电压5V。 VCC:电机电压,最大可接50V。GND:共地接法。A-D-:输出端,接电机。AD+ :为步进电机公共端,模块上接了VCC。EN1、EN2:高电平有效,EN1、EN2分别为 IN1和IN2、IN3和IN4的使能端。IN1 IN4:输入端,输入端电平和输出端电平是相应的。L298N 的5、7、10、12 四个引脚接到单片机上,通过对

24、单片机的编程就可实现两个直流电机的PWM调速控制,图8是L298N功能逻辑图。图8 L298N功能逻辑图L298N可接受原则TTL逻辑电平信号VSS,VSS可接457 V电压。4脚VS接电源电压,VS电压范畴VIH为2546 V。输出电流可达25 A,可驱动电感性负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。5,7,10,12脚接输入控制电平,控制电机的正反转。EnA,EnB接控制使能端,控制电机的停转。In3,In4的逻辑图与上图相似。由上

25、图可知EnA为低电平时,输入电平对电机控制起作用,当EnA为高电平,输入电平为一高一低,电机正或反转。同为低电平电机停止,同为高电平电机刹停。3.3 红外避障电路的原理与设计用漫反射式光电开关进行避障。光电开关实际发射头与接受头于一体的检测开关,其工作原理是根据发射头发出的光束,被物体反射,接受头据此做出判断与否有障碍物。当有光线反射回来时,输出低电平。当没有光线反射回来时,输出高电平。单片机根据接受头电平的高下做出相应控制,避免小车遇到障碍物。由于接受管输出TTL电平,有助于单片机对信号的解决。小车采用漫反射式传感器进行避障的电路原理图如下图9所示:图9 光电开关避障电路原理图3.3.1 光

26、电传感器简介光电传感器在机器人中有着广泛的应用,可以用来检测地面明暗和颜色的变化,也可以探测有无接近的物体。光电传感器是靠红外发射管和红外接受管构成的传感器,对于小车循迹场地的黑白两种颜色,发射管发出同样的光强,接受管接受到的光强不同,因此输出的电压值也不同;给定一种基准电压,通过对不同输出电压值进行比较,则电路的输出为高下电平。当检测到黑白线时分别输出为高下电平,这样不仅系统硬件电路简朴,并且信号解决速度快。原理如下图10、图11所示。图10 白色反射面下的红外反射 图11 黑色反射面下的红外吸取红外发射管发射的红外线具有一定得方向性,当红外线照射到白色表面上时会有较大的反射,如果距离D1取

27、值合适,红外接受管可接受到反射回的红外线,再运用红外接受管的电气特性,在电路中解决红外线的接受信息;如果反射表面为黑色,红外光会被表面将其大部分吸取,红外接受管就难以收到红外线。这样,就可以运用红外收发管构成的光电传感器检测赛道黑线,实现智能车的循迹方案。3.3.2 比较器LM324简介LM324为四运放集成电路,采用14脚双列直插塑料封装。内部有四个运算放大器,有相位补偿电路。电路功耗很小,工作电压范畴宽,可用正电源330V,或正负双电源15V15V工作。在黑线检测电路中用来拟定红外接受信号电平的高下,以电平高下鉴定黑线有无。在电路中,LM324的一种输入端需接滑动变阻器,通过变化滑动变阻器

28、的阻值来提供合适的比较电压,图12为LM324的管脚图。图12 LM324的管教图3.4 寻迹模块的硬件设计红外对管循迹模块,五路寻迹TCR5000的模块,采用红外发射管和接受管光电对管寻迹传感器。红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接受管能接受到反射回的光线则检测出白线继而输出低电平,若接受不到发射管发出的光线则检测出黑线继而输出高电,图13为红外对管黑线检测电路。图13 红外对管黑线检测电路3.4.1 红外传感器TCRT5000简介TCRT5000光电传感器模块是基于TCRT5000红外光电传感器设计的一款红外反射式光电开关。传感器采用高发射功率红外光电二极管

29、和高敏捷度光电晶体管构成,输出信号经施密特电路整形,稳定可靠。传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,光敏三极管始终处在关断状态,此时模块的输出端为低电平,批示二极管始终处在熄灭状态;被检测物体出目前检测范畴内时,红外线被反射回来且强度足够大,光敏三极管饱和,此时模块的输出端为高电平,批示二极管被点亮。TCRT5000反射式光电传感器是常常使用的传感器,这个系列的传感器种类齐全、价格便宜、体积小、使用以便、质量可靠、用途广泛。此传感器含一种反射模块(发光二极管)和一种接受模块(光敏三极管)。通过发射红外信号,看接受信号变化判断检测物体状态

30、的变化,图14为TCRT5000传感器模块电路原理图,图15为它的实物图 。 图14 TCRT5000传感器模块电路原理图图15 TCRT5000的实物图基本参数如下:外形尺寸:长 32mm37 mm;宽 7.5mm;厚 2mm工作电压:DC 3V5.5V,推荐工作电压为5V检测距离:1mm8mm合用,焦点距离为2.5mm 3.5 无线模块的硬件设计无线模块的硬件设计采用两块NRF24L01模块实时接受遥控发送的新指令.3.6 重力感应模块的硬件设计重力感应模块采用MPU-6050模块(三轴陀螺仪+ 三轴加速度)MPU-6000为全球首例整合性6轴运动解决组件,相较于多组件方案,免除了组合陀螺

31、仪与加速器时之轴间差的问题,减少了大量的包装空间。MPU-6000整合了3轴陀螺仪、3轴加速器,并含可藉由第二个I2C端口连接其她厂牌之加速器、磁力传感器、或其她传感器的数位运动解决(DMP: Digital Motion Processor)硬件加速引擎,由重要I2C端口以单一数据流的形式,向应用端输出完整的9轴融合演算技术InvenSense的运动解决资料库,可解决运动感测的复杂数据,减少了运动解决运算对操作系统的负荷,并为应用开发提供架构化的API。MPU-6000的角速度全格感测范畴为250、500、1000与/sec (dps),可精确追緃迅速与慢速动作,并且,顾客可程式控制的加速器

32、全格感测范畴为2g、4g8g与16g。产品传播可透过最高至400kHz的I2C或最高达20MHz的SPI。MPU-6000可在不同电压下工作,VDD供电电压介为2.5V5%、3.0V5%或3.3V5%,逻辑接口VVDIO供电为1.8V 5%。MPU-6000的包装尺寸4x4x0.9mm(QFN),在业界是革命性的尺寸。其她的特性涉及内建的温度感测器、涉及在运作环境中仅有1%变动的振荡器。应用运动感测游戏现实增强电子稳像 (EIS: Electronic Image Stabilization)光学稳像(OIS: Optical Image Stabilization)行人导航器“零触控”手势顾

33、客接口姿势快捷方式认证市场智能型手机平板装置设备手持型游戏产品?蜗坊?3D遥控器可携式导航设备特性以数字输出6轴或9轴的旋转矩阵、四元数(quaternion)、欧拉角格式(Euler Angle forma)的融合演算数据。具有131 LSBs/sec 敏感度与全格感测范畴为250、500、1000与/sec 的3轴角速度感测器(陀螺仪)。可程式控制,且程式控制范畴为2g、4g、8g和16g的3轴加速器。移除加速器与陀螺仪轴间敏感度,减少设定予以的影响与感测器的飘移。数字运动解决(DMP: Digital Motion Processing)引擎可减少复杂的融合演算数据、感测器同步化、姿势感

34、应等的负荷。运动解决数据库支持Android、Linux与Windows内建之运作时间偏差与磁力感测器校正演算技术,免除了客户须此外进行校正的需求。以数位输出的温度传感器以数位输入的同步引脚(Sync pin)增援视频电子影相稳定技术与GPS可程式控制的中断(interrupt)增援姿势辨认、摇摄、画面放大缩小、滚动、迅速下降中断、high-G中断、零动作感应、触击感应、摇动感应功能。VDD供电电压为2.5V5%、3.0V5%、3.3V5%;VDDIO为1.8V 5%陀螺仪运作电流:5mA,陀螺仪待命电流:5A;加速器运作电流:350A,加速器省电模式电流: 20A10Hz高达400kHz迅速

35、模式的I2C,或最高至20MHz的SPI串行主机接口(serial host interface)内建频率产生器在所有温度范畴(full temperature range)仅有1%频率变化。使用者亲自测试10,000 g 碰撞容忍度为可携式产品量身订作的最小最薄包装 (4x4x0.9mm QFN)符合RoHS及环境原则6 效果图6软件设计4.1 编译语言的选用目前,STC89C52单片机的开发多为支持两种语言,一种是汇编语言,另一种是C语言,而这两种语言各有其优缺陷。汇编语言:效率高,对硬件的可操控性更强,体积小,但不易维护,可移植性很差。C语言:效率比较低,硬件可操控性比较差,目的代码体积

36、大,但容易维护,可移植性较好。而在本设计里面,程序需要接近底层,但程序要解决的问题繁多,逻辑关系也比较复杂,代码量也比较大,又考虑到产品后来需要升级,各方面综合考虑,重要以C51语言来编写本设计的程序是最佳选择。4.2 软件调试平台Keil for C51是美国Keil Software公司出品的C语言软件开发系统,与汇编相比,C语言在功能上、构造性、可读性、可维护性上有明显的优势,因而易学易用。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。此外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil for C51生成的目的代码效率非常之高,多

37、数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高档语言的优势。下面具体简介Keil for C51开发系统各部分功能和使用。C51开发中除必要的硬件外,同样离不开软件,我们写的源程序要变为C51可以执行的机器码有两种措施,一种是手工汇编,另一种是机器汇编,目前已很少使用手工汇编的措施了。随着C51开发技术的不断发展,从普遍使用汇编语言到逐渐使用高档语言开发,单片机的开发软件也在不断发展,Keil软件除了致力于单片机的编程开发平台外,还针对目前最流行C51开发项目出品了Keil for 51软件平台以及支持在线调试的串口烧写。从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。

38、Keil提供了涉及C编译器、宏汇编、连接器、库管理和一种功能强大的仿真调试器等在内的完整开发方案,通过一种集成开发环境(uVision2)将这些部份组合在一起。4.2 小车端程序文献一main.c#include #include #include .headerinit.h#include .headerNRF24L01.hvoid R_S_Byte(uchar R_Byte) SBUF = R_Byte; while( TI = 0 );/查询法 TI = 0; /*定期器初始化程序*/void T0T1_init() EA=1; ET1=1; ET0=1; TMOD=0x11;/定期器0

39、负责小车速度控制 定期器1负责超声波测距和舵机控制TH0=(65536-500)/256; TL0=(65536-500)%256;TH1=(65536-500)/256;TL1=(65536-500)%256;TL1=0;TH1=0;TR0=1;TR1=1; void StartModule(void)/超声波测距子函数 TX=1; /启动一次模块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(

40、); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; void Conut(void)/通过超声波测量的数据计算距离if(csflag=0) time=TH1*256+TL1; TH1=0; TL1=0; S=(time*1.7)/10; /算出来是 mm / if(S499) ;else csflag=0; S=600;/如果定期器溢出则距离S=600 if(jd=3) middleS=S; / 测量正前方 else if(jd=2) leftS=S;/测量左前方 else if(jd=4) right

41、S=S;/测量右前方/*接受遥控器的状态标志*/void RX_STATE(void)uchar RxBuf4;uchar SIGN=0; if(nRF24L01_RxPacket(RxBuf)/如果收到遥控器的数据则进入led2=led2;R_S_Byte(RxBuf0);SIGN=RxBuf2;/判断倾斜的方向 X_SIAN=0:前方 X_SIAN=1:下方STATE=RxBuf3;LED_FLAG=(SIGN&0x04)2;/判断小车灯光控制位CONTROL_MODE_FLAG=(STATE&0xf0)4;/读取目前状态标志if(LED_FLAG) LED1=1;else if(LED_

42、FLAG=0) LED1=0; void delay_RX(uint z)/避障模式下当浮现while循环时用的延时函数,uint x,y;for(x=110;x0;x-)for(y=z;y0;y-);RX_STATE();/扫描无线模块接受到的新指令void measured(unsigned char fs)/测距函数jd=3测量正前方jd=2测量左前方jd=4测量右前方 TH1 = (65536-500)/256;TL1 = (65536-500)%256; /12MZ晶振,0.5msmode=0;jd=fs;count2=0;TR1=1;delay_RX(500);TR1=0;mode

43、=1;TH1=0; TL1=0;StartModule(); while(!RX);/当RX为零时等待 TR1=1; /启动计数 while(RX);/当RX为1计数并等待 TR1=0;/关闭计数 Conut(); /*避障模式子函数*/ void csbmode(void) unsigned char temp;TR1=0;mode=1;TH1=0; TL1=0;StartModule(); while(!RX);/当RX为零时等待 TR1=1; /启动计数 while(RX);/当RX为1计数并等待 TR1=0;/关闭计数 Conut();/测量前方距离 delay_RX(80);spee

44、d1=16;speed2=16;while(middleS500 &CONTROL_MODE_FLAG=3)/目前方空间不小于300mm时保持 IN1_1=0;IN1_2=1;IN2_1=0;IN2_2=1;/小车迈进 TR1=0;mode=1;TH1=0; TL1=0;StartModule(); while(!RX);/当RX为零时等待 TR1=1; /启动计数 while(RX);/当RX为1计数并等待 TR1=0;/关闭计数 Conut();delay_RX(2);IN1_1=0;IN1_2=0;IN2_1=0;IN2_2=0;/小车停止 speed1=0;speed2=0;measu

45、red(2);measured(4);TH1 = (65536-500)/256;/舵 机 复位 TL1 = (65536-500)%256; /12MZ晶振,0.5msmode=0;jd=3;count2=0;TR1=1;delay_RX(500);TR1=0;if(leftS250|rightS250)temp=middleS;speed1=20;speed2=20;IN1_1=1;IN1_2=0;IN2_1=1;IN2_2=0;/小车后退while(middleS-temp)200&CONTROL_MODE_FLAG=3)speed1=20;speed2=20;delay_RX(2);T

46、R1=0;mode=1;TH1=0; TL1=0;StartModule(); while(!RX);/当RX为零时等待 TR1=1; /启动计数 while(RX);/当RX为1计数并等待 TR1=0;/关闭计数 Conut();speed1=20;speed2=20;if(leftSrightS)IN1_1=1;IN1_2=0;IN2_1=0;IN2_2=1; elseIN1_1=0;IN1_2=1;IN2_1=1;IN2_2=0; delay_RX(500);speed1=0;speed2=0;IN1_1=0;IN1_2=0;IN2_1=0;IN2_2=0;/小车停止 measured(

47、2);measured(4);TH1 = (65536-500)/256;/舵 机 复位 TL1 = (65536-500)%256; /12MZ晶振,0.5msmode=0;jd=3;count2=0;TR1=1;delay_RX(500);TR1=0; if(leftSrightS)speed1=0;speed2=0;IN1_1=1;IN1_2=0;IN2_1=0;IN2_2=1;while(middleS600&CONTROL_MODE_FLAG=3)speed1=17;speed2=17;delay_RX(5);TR1=0;mode=1;TH1=0; TL1=0;StartModule

48、(); while(!RX);/当RX为零时等待 TR1=1; /启动计数 while(RX);/当RX为1计数并等待 TR1=0;/关闭计数 Conut();else speed1=0;speed2=0; IN1_1=0;IN1_2=1;IN2_1=1;IN2_2=0; /小车左转 while(middleS2;/判断小车灯光控制位CONTROL_MODE_FLAG=(STATE&0xf0)4;/读取目前状态标志KEY_VALUE=STATE&0x0f;/读取键值if(LED_FLAG) LED1=1;else if(LED_FLAG=0) LED1=0; X_SIGN= SIGN&0x01;Y_SIGN= (SIGN&0x02)1;if(X_ANGLE110) X_ANGLE=105;/全速时:if(X_ANGLE160) X_ANGLE=155;if(Y_ANGLE110) Y_ANGLE=110;/全速时:if(X_ANGLE160) X_ANGLE=160;if(Y_ANGLE-X_ANGLE20)IN1_1=1;IN1_2=0;IN2_1=1;IN2_2=0; /小车迈进else if(X_A

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!