两轮自平衡小车研究毕业设计论文(32页).doc

上传人:1595****071 文档编号:36795530 上传时间:2022-08-28 格式:DOC 页数:32 大小:231.50KB
返回 下载 相关 举报
两轮自平衡小车研究毕业设计论文(32页).doc_第1页
第1页 / 共32页
两轮自平衡小车研究毕业设计论文(32页).doc_第2页
第2页 / 共32页
点击查看更多>>
资源描述

《两轮自平衡小车研究毕业设计论文(32页).doc》由会员分享,可在线阅读,更多相关《两轮自平衡小车研究毕业设计论文(32页).doc(32页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、-两轮自平衡小车研究毕业设计论文-第 26 页本 科 毕 业 设 计题 目 两轮自平衡小车研究 学 院 电子信息工程学院 专 业 自动化 学生姓名 刘长根 学 号 200910311332 年级 2009级 指导教师 罗浚溢 职称 博士 年 月 日两轮自平衡小车研究 专 业:自动化 学 号:200910311332 学 生:刘长根 指导教师:罗浚溢摘要:现在两轮自平衡小车的研究在全世界得到很大的关注。本论文主要工作是对两轮自平衡小车的原理进行研究并且和提出一种设计方案。本次设计方案是采用ENC-03MB陀螺仪传感器和MMA7361LC三轴加速度倾角传感器构成小车的状态检测装置,使用算法使陀螺仪

2、数据和加速度计数据的融合得到小车的倾角,再通过一定的算法使小车保持直立状态。系统采用飞思卡尔公司的DSC 16位处理器XS128单片机为核心控制处理器,完成传感器信号的处理,滤波算法的实现和车身控制等一些任务。在小车制作完成后,各个模块之间能够正常并且协调的工作,小车可以只无人干预的条件下实现自主平衡,运用手机蓝牙可以控制小车的前进、后退、左右转动等各个动作。关键词:两轮自平衡小车;陀螺仪;加速度倾角传感器;XS128单片机Research of The Two-wheel Self-balance Car Specialty:Automation Student Number:2009103

3、11332 Student:Liu Changgen Supervisor:Luo JunyiAbstract:Now ,the research of two-wheel self-balance car get great attention all over the world.The main job of this paper is to study the principle of the two-wheel self-balance car and put forward a design scheme.This design used ENC-03MB gyroscope se

4、nsor and MMA7361LC triaxial acceleration and angle sensor constitute the car status detection device.Using algorithms made fusion of gyroscope data and accelerometer data to get the tilt angle of the car.Then ,through a certain algorithm to make the car keep upright.The system adopted freescale comp

5、any DSC 16-bit processor XS128 single-chip microcomputer as the control core,it realized the sensor signal processing the sensor signal processing,filtering algorithm and body control and so on.After the car production is completed,each module can be normal and to coordinate work,the car can keep ba

6、lancing in unmanned control.Using mobile phone Bluetooth can control the car forward,backward,turn right or left,and other actions.Key words:Two-wheel Self-balance Car ;Gyroscope;Angle Acceleration Sensor;XS128 Single Chip Microcomputer目 录第1章 绪论11.1 背景11.2 选题的目的和意义11.3两轮自平衡小车的国内外研究现状21.3.1 两轮自平衡小车在国

7、外的研究现状21.3.2 两轮自平衡小车在国内的研究现状41.4 主要的研究内容5第2章 两轮自平衡小车的原理62.1 两轮自平衡小车直立运动分析62.2 小车的平衡控制62.3 小车的角度和角速度测量82.3.1 加速度传感器82.3.2 陀螺仪82.4 小车的速度控制9第3章 两轮自平衡小车的电路和程序设计103.1 两轮自平衡小车电路设计103.1.1 小车的整体电路框图103.1.2 单片机最小系统113.1.3 陀螺仪和加速度计传感器电路113.1.4 电机驱动电路123.1.5 电源模块电路133.2 两轮自平衡小车程序设计133.2.1 程序的功能和流程框架133.2.2 各个模

8、块的程序15第4章 两轮自平衡小车的制作和调试334.1 小车的承载部分制作334.2 小车传感器的安装334.3 小车的调试344.3.1 小车调试条件344.3.2 小车调试344.3.3 参数调试35第5章 结论36附录37附录1 电路原理图37附录2电路PCB图37附录3 小车直立图片38参考文献39致谢40第1章 绪论1.1 背景近年来,随着移动机器人研究不断深入、应用领域更加广泛,所面临的环境和任务也越来越复杂。机器人经常会遇到一些比较狭窄,而且有很大转角的工作场合,如何在这样比较复杂的环境中灵活快捷的执行任务,成为人们颇为关心的一个问题1。双轮自平衡机器人概念就是在这样的背景下提

9、出来的。两轮自平衡小车式一个高度不稳定两轮机器人,是一种多变量、非线性、强耦合的系统,是检验各种控制方法的典型装置,同时由于它具有体积小、运动灵活、零转弯半径等特点,将会在军用和民用领域有着广泛的应用前景,因为它既有理论研究意义又有实用价值,所以两轮自平衡小车的研究在最近十年引起了大量机器人技术实验室的广泛关注2。两轮自平衡机器人是移动机器人研究中的一个重要领域。移动机器人技术随着计算机技术、软件技术、微电子技术、材料技术等相关领域的进步而发展,同航天技术一样,机器人的发展水平甚至代表了一个国家的综合科技实力3。1.2 选题的目的和意义两轮自平衡机器人两轮共轴、独立驱动、车身中心位于车轮轴上方

10、,通过运动保持平衡,可以直立运动,因为特别的结构,它对于地形的变化有着很强的适应能力,有着灵活的运动性能,能够在比较复杂的环境里面工作,和传统的轮式移动机器人相比较,两轮自平衡机器人有着以下的几个优点:(1)能够实现在原地回转和任意半径的转向,有着更加灵活易变的移动轨迹,很好地弥补了传统多轮布局的缺点;(2)具有占地面积小的优点,能够在场地面积小或者要求灵活运输的场合上运用;(3)车体的结构上面有了很大的简化,可以把机器人做得更轻更小;(4)有着较小的驱动功率,能够让电池长时间的供电,为环保轻型车提供了一种新的概念1。两轮自平衡机器人是一个集动态决策和规划、环境感知、行为控制盒执行等多种功能于

11、一体的综合复杂系统,其关键是解决在完成自平衡的同时,还能够适应各种环境下的控制任务。通过运用外加的速度传感器、超声波传感器、倾角传感器、防碰撞开关等,可以实现校车的跟踪、路径规划和自主壁障等多种复杂的功能。还可以把GPS和惯性导航设备配备到机器人上面实现组合导航。所以,两轮自平衡机器人是一个是实现起来相对简单的复杂系统,收到世界各个国家科学家的重视,具有较高的学术研究意义。正因为有了这些优点,两轮自平衡机器人经过了一定的改造就可以制作成为战场机器人或“保姆”机器人,具有广阔的应用前景。1.3两轮自平衡小车的国内外研究现状两轮自平衡机器人自问世以来,迅速成为研究各种控制理论的理想平台,具有重大的

12、理论意义,这要归功于它不稳定的动态性能和系统所具有的非线性。近年来,两轮自平衡机器人的研究开始在美国、日本、瑞士等国得到迅速的发展。建立了多个实验原型机,提出了众多解决平衡控制的方案,并对原型机的自动平衡性能与运动特性进行了验证。通过对两轮自平衡系统的改造,可快速方便的应用到众多环境中去,如承载、运输、代步等 。这其中蕴含着巨大的商机,相应有些国外公司现在已经推出了商业化产品,并且已经投放到了市场。1.3.1 两轮自平衡小车在国外的研究现状瑞士联邦工业大学工业电子实验室的Felix Grasser等人在2002年研制出基于倒立摆控制原理,利用DSP控制的,并可以进行远程控制操作的两轮移动机器人

13、Joe,如图1.1所示。Joe最大的移动速度可以达到1.51m/s,超过了人的行走速度,线性状态空间控制器利用从陀螺仪和电机变卖器得到的信息来稳定系统。操作者还可以通过无线装置远程遥控Joe的运动速度和运动方向,能在恶劣的条件下运行并且保持平衡4。图1.1 两轮移动机器人Joe丹麦乐高公司的Steve Hassenplug也在2002年设计了Legway自平衡玩具机器人,如图1.2所示。系统采用红外测距仪来确定机器人位姿信号,反馈给控制器,进行平衡控制,同时也可以进行遥控操作。机械结构采用模块化结构设计,安装和拆卸十分方便5。图1.2 Legway机器人美国SegwayLLC公司开发的Segw

14、ay两轮平台电动车,它不仅能在驾驶者平稳站立时,保持动态平衡前进,而且在驾驶者身体倾斜时也能保持平衡,可以在各种天气环境下使用,其外观如图1.3中左图所示6。其运作原理主要是建立在一种被称为“动态稳定”(DynamicStabilization)的基本原理上,也就是车辆本身的自动平衡能力。当车倾斜时,系统通过5个陀螺仪、2个倾角传感器、电机编码器及一些光学传感器等来判断车身所处的姿态,通过每秒钟100次的频率来检测车体的重心来维持平衡或前进。它采用蓄电池驱动,速度每小时可以达到27公里7。Segway的诞生源起于美国大型医疗器材生产商强生公司(Johnson&Johnson)开发的一种自动平衡

15、式动力轮椅iBOT,此轮椅设计初衷就是为了使残疾人士可以通过它实现自由的上下楼梯,如图1.3中右图所示。其实现原理与Segway有许多共同之处。这里需要指出的是Segway的踏板在电机轴之下,具有一种自平衡能力。其运动特点类似于荡秋千时秋千的运动,总是自然的向铅直的、平衡位置回归。但本文所设计的两轮自平衡小车,具有本质不稳定性,从这个角度说两轮自平衡小车平衡控制的实现更为复杂。图1.3两轮平台电动车Segway与自动平衡式动力轮椅iBOTSegway给我们带来全新的驾驶体验,如图14所示。以站在车上的驾驶者与车辆的总体重心纵轴作为参考线。当这条轴往前倾斜时,Segway身内的内置电机会产往前的

16、力量,一方面平衡人与车往前倾倒的扭矩,一方面产生让车辆前进的加速度,相反的,当陀螺仪发现驾驶者的重心往后倾时,也会产生向后的力量达到平衡效果。因此,驾驶者只要改变自己身体的角度,往前或往后倾,Segway就会根据倾斜的方向前进或后退,而速度则与驾驶者身体倾斜的程度呈正比。这与一般需要靠驾驶者自己进行平衡的滑板车等交通工具大大不同。图1.4 Segway带来的全新驾驶体验1.3.2 两轮自平衡小车在国内的研究现状哈尔滨工程大学制作的双轮直立自平衡机器人,该系统采用两块Cygnal公司的C8051单片机和人机交互上位机为控制核心,车体倾斜角度的测量采用加速度传感器及反射式红外线距离传感器,利用PW

17、M控制两台直流电机的转速,上位机与机器人间的数据通信采用超小型低功耗高速无线收发数据Modem,人机交互界面采用 240*128图形液晶点阵,此机器人还具有方向摆杆及按键,使用一套独特的软件算法,实现了该系统的平衡控制与数据交换8。中国科技大学研制出了两轮自平衡代步电动车Free Mover,它是一种左右两轮并行结构的具有自平衡能力的电动车,在车体内嵌入CPU,采集平衡状态速度和加速度传感器的数据,根据系统数学模型添加控制算法,计算输出脉宽调制信号(Pulse-Width Modulation,PWM),来控制两个伺服电机的转矩,使车体保持平衡,并能够根据人体重心的偏移,自动前进、后退及转弯等

18、9。台湾国立中央大学设计的两轮子平衡机器人整体外观如图1.5所示,该机器人主要是由两轮自平衡机器人车体,FPGA及个人电脑三个部分所构成,摆杆、支架和电机构成两轮自平衡机器人的车体,左、右两轮子的前进后退来维持车身部分的平衡,由PC机通过AD/DA卡对获取到的陀螺仪信号与电机编码器信号做处理后,输入给FPGA,通过FPGA运算,输出脉冲信号来控制电机的转速及正反转,控制方面,根据模糊理论设计的模糊控制器具有一定的进步性10。图1.5 台湾国立中央大学的自平衡小车1.4 主要的研究内容(1)对两轮自平衡小车的原理进行研究;(2)设计两轮自平衡小车的各个模块的电路图和小车的程序;(3)制作两轮自平

19、衡小车实物并调试。第2章 两轮自平衡小车的原理2.1 两轮自平衡小车直立运动分析假设维持小车直立、运动的动力都是来源于小车的的两个车轮,然而两个车轮的转动是两个直流电机驱动的,因此从控制角度来看的话,小车作为一个控制对象,其控制输入量是两个电极的转动速度。小车行走控制任务分解成下面三个部分的控制任务:(1) 控制小车的平衡:要保持小车的直立平衡状态只需要通过控制两个电机的正反向运动。(2) 控制小车的速度:理论要实现小车的速度控制是通过调节小车的倾角,但是实际上还是通过控制电机的转速来实现小车的速度控制。(3) 控制小车的方向:要控制小车的方向我们只需要通过控制两个电机之间的转动差速来实现目的

20、。小车的直立和方向控制任务都是直接通过对小车的两个后轮驱动电机的控制来实现的。我们将小车电机虚拟地分解成两个不同功能的驱动电机,这两个电机同轴相连,但是它们却分别控制着小车的直立平衡和左右方向。然而在实际的控制中,我们是把小车的方向和直立的控制信号叠加在一起加载到电机上的,只需要让电机处在线性状态就能够同时完成小车的直立和方向这两个任务。小车的速度是通过调节小车的倾角度来实现的。小车不同的倾角会给小车带来加速和减速的效果,从而实现对小车的速度控制。三个分解后的任务各自独立地进行控制,但是最终都是对同一个控制对象(小车的电机)进行控制,因此它们之间存在着耦合。为了便于分析,在分析其中一个时都假设

21、其它两个控制对象都达到了稳定。2.2 小车的平衡控制控制小车平衡的直观经验来源人们日常生活经验。一般的人通过简单的练习就可让木棒在指尖保持直立。这要两条件:一是托木棒的手可以移动:二是眼睛可观察木棒的倾斜度和其倾斜趋势。通过手的移动来抵消木棒的倾斜角度和倾斜趋势,这样来保持木棒的直立。这其实是控制中的负反馈机制。小车的平衡控制其实也是通过负反馈来实现的, 两轮自平衡小车只有两个轮子着地,车身只在轮子滚动的方向上发生倾斜,我们只需要通过控制轮子的转动,抵消在一个维度上倾斜的趋势就可以保持小车的平衡了。如图2-1所示。图2-1 通过控制小车运动方向保持小车平衡两轮自平衡小车就像一个倒立的单摆(图2

22、-2),要想使两轮小车稳定在垂直的位置,我们只有增加额外的受力,使得恢复力与位移方向相反才行。图2-2 在车轮上的参照系中的小车受力分析控制道理摆底部车轮,使得它作加速运动。这样站在小车上分析倒立摆受力,它就会收到额外的惯性力,该力与车轮的加速度方向相反,大小成正比。这样倒立摆所受到的回复力为:式中,由于很小,所以进行了线性化。假设负反馈控制是车轮加速度a与成正比,比例为k1.如果比例k1g,那么回复力的方向便与位移方向相反了。此外为了使得倒立摆能够尽快地在垂直位置稳定下来,还需要增加阻尼力。虽然存在着空气和摩擦力等阻尼力,相对阻尼力比较小。因此需要另外增加控制阻尼力。增加的阻尼力与偏角的速度

23、成正比,方向相反。可以得到回复力:按照这样的控制算法让校车稳定在垂直的位置,可以得到控制车轮加速度的控制算法:式中,为车模倾角;为角速度;k1、k2均为比例系数;两项相加后作为车轮加速度的控制量。只要保证k1g、k20在条件下,可以使得车模像单摆一样维持在直立状态。其中有两个控制参数k1,k2,k1决定了车模是否能够稳定到垂直平衡位置,它必须大于重力加速度;k2决定了车模回到垂直位置的阻尼系数,选取合适的阻尼系数可以保证车模尽快稳定在垂直位置。2.3 小车的角度和角速度测量2.3.1 加速度传感器加速度传感器能够测出地球引力或物体运动产生的加速度。在本次设计采用的是飞思卡尔公司的生产的MMA7

24、361LC三轴加速度传感器,它是一款三轴低g半导体加速度计,可以同时输出三个方向上的加速度模拟信号,如图2-3所示。图2-3 MMA7361LC三轴加速度传感器加速度传感器安装在小车上,为了减少移动带来的干扰,加速度传感器安装的高度越低越好,但是仍然不能够彻底消除小车运动的影响。2.3.2 陀螺仪因为单靠加速度传感器是无法让小车保持平衡的,所以我们还需要角速度传感器-陀螺仪。陀螺仪可以测出物体的旋转角速度。在本次的设计中采用的是单轴ENC-03MB日本村田陀螺仪传感器模块,它有着特别小的体积和重量、快速的响应、低的驱动电压和功耗的特点。在小车上安装陀螺仪,可测出小车的倾斜角速度,将角速度信号进

25、行积分可得到小车的倾角。由于从陀螺仪角速度获取的角度信息,要通过积分运算,如果角速度信号存在偏差和漂移,经积分运算会变成积累误差,最终会导致无法形成正确的角度信号。我们可以通过测小车的运行速度和加速度来矫正陀螺仪的积分漂移。2.4 小车的速度控制在小车能够保持平衡的前提下,由于安装的误差,传感器实际测出的角度和小车的角度存在偏差,所以小车实际不是与地面垂直,而存在一个倾角。在重力的作用下,小车就会沿着倾斜的方向加速前进,控制小车的速度就只需通过控制小车的倾角来实现了。我们只需要解决小车速度测量和小车倾角的改变,最后就能实现对小车的速度控制。小车的速度测量:图2-4 电机速度检测通过安装在电机输

26、出轴上的光码盘来测量得到车轮的速度。如图2-4所示。利用控制单片机的计数器测量在固定时间间隔内速度脉冲信号的个数来反映电机的转速。小车的倾角改变:给定小车直立控制的设定值,在角度控制调节下,小车会自主维持在这一角度。小车的倾角是跟随重力加速度Z轴的角度,所以小车的倾角给定值和重力加速度Z轴的角度相减,可得到最终决定小车的倾角。第3章 两轮自平衡小车的电路和程序设计3.1 两轮自平衡小车电路设计3.1.1 小车的整体电路框图两轮自平衡小车的整体电路框图如图3-1所示。图3-1 两轮自平衡小车的整体电路框图电路划分为以下几个模块:(1)单片机最小系统:包括DSC处理器,程序下载调试接口等;(2)蓝

27、牙模块:接收手机蓝牙控制信号;在这里用蓝牙模块充当无线串口用,由手机蓝牙作为蓝牙母机,通过手机上位机软件发送一系列的ASCII数据给蓝牙模块,蓝牙模块再以串口发送给单片机,单片机接收到数据后通过一定的数据处理,然后得到方向的信息,控制小车加减速或者转弯等一些列动作。(3)陀螺仪和加速度计:包括两个姿态传感器信号放大滤波电路;(4)速度检测:检测电机光码盘脉冲的频率,实际上包括两个光码盘的传感器;(5)电机驱动:驱动两个电机运行功率电路;(6)电源:电源电压转换,稳压,滤波电路;(7)设置于调试:显示系统运行状态、速度设定、程序下载和监控。3.1.2 单片机最小系统本次设计的单片机最小系统采用的

28、是飞思卡尔的80引脚的XS128单片机,该系统包括了5V电源稳压和滤波部分、BDM接口电路、电源指示电路、TTL电平转RS232电平电路部分。XS128单片机最小系统如图3-2所示。图3-2 XS128单片机最小系统该单片机是飞思卡尔公司的16位HCS12系列单片机,是HCS12系列的增强型产品,基于S12的CPU内核,可达到25MHz的HCS12的25倍性能,S12X系列增加了172条额外指令,可以执行32位计算,总线频率最高可以达到40MHz,改进了中断处理能力,S12X系列的CPU采用复杂指令CISC架构,集成了中断控制器,有丰富的寻址方式,中断有7个优先级并且内核支持优先级的调度,最多

29、可有117个中断源,S12X可访问最多8M的全部存储空间。3.1.3 陀螺仪和加速度计传感器电路(1)陀螺仪电路本设计采用的是单轴ENC-03MB日本村陀螺仪传感器模块,它是一种运用科氏原理的角速度传感器,它输出一个和角速度成正比的模拟电压信号。它有着特别小的体积和重量,能快速的响应,低的驱动电压和功耗等特点。陀螺仪接口电路如图3-3所示图3-3 陀螺仪接口电路(2)加速度计传感器电路本设计采用的是MMA7361LC三轴加速度倾角传感器模块,这个加速度计传感器有着很低的功率,具有信号调节,极低通滤波器,温度补偿,自我测试,0g检测,检测到直线下落和g选择 选择2敏感性之间,零重力下抵消和灵敏度

30、是工厂设置,不需要外部设备,其还包括睡眠模式,使它非常适合手机电池动力电子。MMA7361LC三轴加速度倾角传感器接口电路如图3-4所示。图3-4 MMA7361LC三轴加速度倾角传感器接口电路图3.1.4 电机驱动电路电机采用BTS7960芯片,其应用非常简单,只需要向芯片第2引脚输入PWM波就能控制。当系统中只需要单向控制时,只需要让电机一端接地,另一端接BTS7960第4引脚。如果需要电机双向旋转控制,则需要另一片BTS7960共同组成全桥。由于小车使用双电机,所以我们要使用4片BTS7960芯片构成两个全桥分别控制两个电机。电机驱动电路图如图3-5所示,电机驱动电路实物图如图3-6所示

31、。图3-5 电机驱动电路图图3-6 电机驱动电路实物图3.1.5 电源模块电路本设计采用的是结构简单的LM2940进行供电,并且使用的两片,可以有效地防止各个器件之间发生干扰以及电流不足的问题,使得系统能够稳定地工作。电源模块从电池获得电能,然后经过串联型线性稳压电源芯片LM2940的转换,为整个系统提供稳定地5V电压。电源芯片LM2940具有波纹小、电路结构简单的优点,但是效率较低、功耗大。电源模块的电路原理图如图3-7所示。图3-7 电源模块的电路原理图7.2V出为电池电压的输入端,OUT 5V为电压的输出端。这样的电路共有两个。为了和电机驱动不产生干扰,电源模块位于主控板的最下面。3.2

32、 两轮自平衡小车程序设计3.2.1 程序的功能和流程框架程序的功能主要包括:(1)各个传感器信号的采集和处理;(2)小车运行控制:直立控制、速度控制、方向控制;(3)电机PWM输出;(4)小车运行流程控制:程序初始化、小车启动和结束、小车状态的监控;(5)小车信息显示和参数设定:状态显示、上位机监控、参数设定等。上面的几个功能可以分为两大类:第一类包括前三项功能,它们都是要在精确时间的周期下执行,因此可以在一个周期定时中断里完成。第二类包括最后两项功能,它的执行不需要在精确的时间周期,可以放在程序的主程序里完成。这两类任务可以通过全局变量实现相互的通讯。主程序的框图如3-8图所示图3-8 主程

33、序框架从上面的主程序框图可以看出,程序在上电运行以后,就会进行单片机的初始化,初始化的主要任务包括两件,第一件任务是对单片机所有运用到的模块都进行初始化,这些代码由Code Warrior集成环境的ProcessorExpert工具生成,第二件任务是应用程序的初始化,是对小车控制程序应用到的变量值进行初始化。在初始化以后,最先进入的是小车直立检测程序,这个程序是经过读取加速度计的值来判断小车是否处在直立状态,如果一旦处于直立状态就启动小车的直立控制、方向控制和速度控制。在小车直立的情况下,小车的程序在主循环中不断地发送监控数据,再通过串口发送到上位机进行监控,同时检查小车是否跌倒。跌倒判断可以

34、通过小车倾角是否超过了一定范围进行确定,或者通过安装在小车前后防撞支架上的微动开关来判定。一旦小车跌倒了小车便停止运行,小车的直立控制、速度控制和方向控制都停止运行,再重新进去小车直立判断过程。3.2.2 各个模块的程序主程序:#include main.h#define SPEED_INC1#define SPEED_DEC1void ArgumentInit(void) g_Argument.nGravityOffset = GRAVITY_OFFSET_DEFAULT;g_Argument.nGyroscopeOffset= GYROSCOPE_OFFSET_DEFAULT;g_Argu

35、ment.nGravityMax= GRAVITY_MAX_DEFAULT;g_Argument.nGravityMin= GRAVITY_MIN_DEFAULT;g_Argument.fAngleControlP= ANGLE_CONTROL_P_DEFAULT;g_Argument.fAngleControlD= ANGLE_CONTROL_D_DEFAULT;g_Argument.fSpeedControlP= SPEED_CONTROL_P_DEFAULT;g_Argument.fSpeedControlI= SPEED_CONTROL_I_DEFAULT; g_Argument.fS

36、peedControlD= SPEED_CONTROL_D_DEFAULT;g_Argument.fDirectionControlD = DIRECTION_CONTROL_D_DEFAULT;g_Argument.fDirectionControlP = DIRECTION_CONTROL_P_DEFAULT;g_Argument.nDirLeftOffset= DIR_LEFT_OFFSET_DEFAULT;g_Argument.nDirRightOffset= DIR_RIGHT_OFFSET_DEFAULT;g_Argument.fDeadVoltage= DEAD_VOLTAGE_

37、DEFAULT;g_Argument.fGyroscopeAngleRatio = GYROSCOPE_ANGLE_RATIO_DEFAULT;g_Argument.fGravityTimeConstant = GRAVITY_TIME_CONSTANT_DEFAULT;g_Argument.fCarSpeedSet = CAR_SPEED_SET_DEFAULT;g_Argument.nInitFlag= INIT_FLAG_DEFAULT;/*设置总路线频率*/void SetBusCLK_64M(void) CLKSEL=0X00;/disengage PLL to system PLL

38、CTL_PLLON=1;/turn on PLL SYNR =0xc0 | 0x07; REFDV=0x80 | 0x01; POSTDIV=0x00; /pllclock=2*osc*(1+SYNR)/(1+REFDV)=128MHz; _asm(nop); /BUS CLOCK=64M _asm(nop); while(!(CRGFLG_LOCK=1); /when pll is steady ,then use it; CLKSEL_PLLSEL =1; /engage PLL to system; /*脉冲采集PT0口*/void ECT0_Init(void) TSCR2=0x00;

39、 /禁止溢出中断,分频系数64(24/64MHz) TIOS_IOS0=0; /通道0为输入捕捉 TCTL4=0x02; /捕捉下降沿 TIE_C0I=1; /通道0输入捕捉中断允许 TSCR1=0x80; /使能定时器 /*脉冲采集PT7口*/速度计数 void Ect7_Init(void) TSCR1=0x80; /使能定时器 PACTL = (16);/*初始化设备*/void DeviceInit()SetBusCLK_64M(); /配置64M时钟 ADC_Init(); /ATD配置即零偏值采集PIT_init(); /周期中断配置 Ect7_Init(); /脉冲累加器配置PT

40、7ECT0_Init(); /脉冲捕捉PT0UART_Init(); /串口配置Interrupt_Priority_Set() ; /中断的优先级设置 PWM_Init(); /PWM初始化 ArgumentInit(); /结构体定义变量 CarControlStop(); /停车控制 CCD_IO_Init(); LED_Init(); LCD_Init(); ReadEeprom(debug,0x0800,0x0c); data_deal();void Dly_ms(unsigned int ms) unsigned int i,j; for(i=0;ims;i+) for(j=0;j

41、20000;j+);void main(void) int zhongxian; unsigned char Sw_Value; unsigned char i; unsigned char send_data_cnt = 0; unsigned char *pixel_pt; int m, value; DDRB=0x00; DDRA=0XFF; DDRE=0XFF; PUCR=0xD3; /普通IO口设置 DeviceInit(); EnableInterrupts; uart_putstr(Usart Is Working!); for(;)jieshou=uart_getchar();

42、LCD_Print(0,0,角P);Dis_Num(22,0, ANGLE_CONTROL_P_DEFAULT ,5); /加速度LCD_Print(46,0,角D); Dis_Num(70,0,ANGLE_CONTROL_D_DEFAULT,5); / Dis_Num(96,0,CAR_SPEED_SET_DEFAULT,5); / LCD_Print(0,2,速I); Dis_Num(22,2,SPEED_CONTROL_I_DEFAULT,5); /加速度LCD_Print(46,2,速P); Dis_Num(70,2,SPEED_CONTROL_P_DEFAULT,5); /Dis_N

43、um(96,2,blake,5); / LCD_Print(0,4,向D); Dis_Num(22,4,DIRECTION_CONTROL_D_DEFAULT,5); LCD_Print(46,4,向P); Dis_Num(70,4,DIRECTION_CONTROL_P_DEFAULT,5); Dis_Num(96,4,xiangshijian,5); / LCD_Print(0,6,左线);Dis_Num(28,6, jieshou,5); /加速度LCD_Print(52,6,中); Dis_Num(66,6,nMidPosition ,5);LCD_Print(90,6,右); Dis

44、_Num(104,6, g_nRightPosition,5); OutData0 =g_fGravityAngle ; / g_fCarSpeed Gyro_OFF_SET Acc_z_OFF_SETOutData1 =g_fCarAngle; / g_fDirectionControlOut Acc_Data -Acc_z_OFF_SET Gyro_Data-Gyro_OFF_SETOutData2 =g_fCarSpeed;/ATD0DR5 ; /VOLTAGE_LEFT ,VOLTAGE_RIGHT g_fCarAngleOutData3 = g_fSpeedControlIntegral;/ATD0DR4; /波形观察OutPut_Data(); /发送上位机显示 WaitCarStand(); /等待站立 CheckCarStand(); /核对是否站立

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com