1、课题名称基于单片机的平衡车控制系统的设计摘要摘要:用控制器MC9S12XS128,再结合陀螺仪ENC-03和三轴加速度计MMA7260芯片,设计了一种工作稳定、体积小、运动均匀的平衡车。通过介绍平衡车的平衡原理、系统结构和软硬件设计,讲述了平衡车设计的要点。最后,通过系统理论分析和实验验证了该设计方法的合理性和可行性。关键词:双轮平衡车 MC9S12XS128 Module design 调试策略ABSTRACTABSTRACT:With MC9S12XS128 as the controller, combined with gyroscope ENC-03 and triaxial acc
2、elerometer MMA7260 chip, a two-wheel self-balancing vehicle with stable operation, small size and uniform motion was designed. By introducing the balancing principle, system structure, software and hardware design of the balancing car, the main points of the balancing car design are expounded. Final
3、ly, the rationality and feasibility of the design method are verified by system theoretical analysis and experiments.Keywords:A two-wheeled balanced vehicle MC9S12XS128 Debugging policy.目录摘要3ABSTRACT 31绪论31.1平衡车的研究背景31.2平衡车的研究意义32 课题任务与关键技术32.1 主要任务32.2关键技术33. 控制原理分析43.1控制系统任务分解43.2控制原理44. A/D模块54.1
4、 A/D转换原理54.2 A/D转换模块功能结构54.3 A/D转换模块的编程步骤65.PWM模块65.1PWM的主要特点76. ECT模块76.2 PID控制算法86.3 PID控制原理86.4 PID参数的整定97. 人机交互107.1 LCD液晶显示107.2 矩阵键盘按键识别107.3 串口与上位机的通讯117.4 双轮平衡小车的系统调试117.5 调试策略117.6 监控调试127.8 无线调试13结论15致谢16附录1:单片机最小系统原理图19附录2:单片机最小系统电路图20附录3:单片机最小系统PCB图211绪论1.1平衡车的研究背景近21世纪以来,随着科技的进步,移动机器人的研
5、究不断地进步,成为目前机器人研究领域一个重要的部分,而且它的应用领域特别广泛,它的任务也很复杂,所以移动机器人需要很高要求。比如,户外的移动机器人需要凹凸不平的路面上行驶,有时候机器人需要在很窄的地方使用运行。如何解决这类问题,已经成了现实中所面对的一个问题。这个机器人与其他机器人相比,他是通过两个轮子的形式采用两轮共轴,各自独立驱动,车身重心位于车轮轴上方,通过车轮的前后滚动来控制车身的稳定平衡,并且可以在直立条件下完成前进、后退、转弯。1.2平衡车的研究意义平衡车具有体积小巧,结构特殊,灵活轻便,适应变化环境地形强,适合在拥挤路面活动,可以在一些复杂环境下工作运动。根据现在人们经济水平的提
6、高,平衡车逐渐的流行开来。因此平衡车具有很好的研究意义。2 课题任务与关键技术2.1 主要任务本文对平衡车单片机控制系统进行了研究,实现了平衡车的自立控制和蓝牙控制功能。主要采用的是单片机MC9S12XS128。使用不同的传感器,相对设计电路,编写相应编程,完成平衡。利用此系统加速度计和陀螺仪来取得车体的倾角和角速度,然后对数据进行互补。通过编码器获取两个轮子的速度消息。根据所获得的数据进行了速度和倾角的闭环控制。通过蓝牙通信控制来添加,将一切输出数据叠加到输出驱动芯片,最终使平衡车得到控制。2.2关键技术2.2.1系统设计这个平衡车程序系统:车身的机械结构,硬件系统和软件系统的设计。在机械结
7、构上使车身保持车身的重心稳定;软件系统负责车身的平衡。2.2.2数字建模模型的建立有助于平衡车控制器的设计,有助于牛顿力学定律,有助于提高观赏。3. 控制原理分析3.1控制系统任务分解 根据系统要求,小车只能在没有外界干预的条件下依靠两个同轴车轮保持平衡,并且能够使它向前进,向后退,向左向右。相对于四轮的车子,控制系统的任务更加的复杂,为了能够解决这个问题,将复杂的问题解剖成简单的问题进行商量。(1) 控制小车站立:控制电机转向保持小车的直立状态。(2) 控制小车车速:控制电机转速实现车速控制。(3) 控制小车转向:控制电机转速差实现转向控制。3.2控制原理 图3.1保持木棍治理反馈控制系统平
8、衡车的垂直位置是通过负反馈实现的,但与上图相比相对简单一点,因为平衡车落在两个轮子上,所以车身只可以在一个平面上保持倾斜。使车轮转动,才能让汽车在倾斜的状态下能够保持直立。 图3.2通过车轮控制车子的平衡4. A/D模块4.1 A/D转换原理模拟信号按序通过抽样和保持(S/H )电路和模拟转换器(A/D )后转换为数字的format。抽样和保持电路以均匀间隔对模拟信号进行抽样,并且在每个抽样运算后有充足的time保持抽样值稳定,来确保输出值可以被A/D 转换器精确的转变。下一步是通过模数转换器将抽样和保持电路的输出转换为数字形式。模数转换器的输出通常表示为二进制编码的样式5。4.2 A/D转换
9、模块功能结构课题所使用的两个方块是在MC9S12XS128中A/D转换,每个方块各有八种输入通道。它的功能结构图如下图14所示,这个功能模块被划分成图所示虚线隔离的三部分:IP总线接口、自定义模拟量,转换模式控制。IP总线接口的功能是;负责模块与总线的连接,实现A/D模块和通用I/O的分频作用。 图1.4 功能结构框图4.3 A/D转换模块的编程步骤 1.将ADPU设置为1以启动ATD。2. 按照要求对转换数目、扫描的方式、采样time、时钟的频率及标志检查等方式进行设置;3.发出启动命令;5.PWM模块PWM调制波有八个输出通道,每个通道可以独立输出。每个输出通道都有一个精确的计数器(计算脉
10、冲数)、一个周期控制寄存器和两个备用时钟源。每个脉宽调制输出通道都能调制占空比在0100%之间的波形。5.1PWM的主要特点 1、 它有8 个独立的输出通道,并且通过编程可控制其输出波形的周期。2、 每一个输出通道都有一个精确的计数器。 3、 每一个通道的PWM 输出使能都可以由编程来控制。4、 PWM 输出波形的翻转控制可以通过编程来实现。5、 周期和脉宽可以被双缓冲。当通道关闭或PWM 计数器为0 时,改变周期和脉宽才起作用。6、 8 字节或16字节的通道协议。7、 有 4 个时钟源可供选择(A、SA、B、SB),他们提供了一个宽范围的时钟频率。 8、 通过编程可以实现希望的时钟周期。9、
11、 具有遇到紧急情况关闭程序的功能。 10、 每一个通道都可以通过编程实现左对齐输出还是居中对齐输5.2PWM应用及初始化脉宽调制模块有8个独立的8位脉宽调制通道,可设置周期和占空比。每个通道都配有一个专用计数器。该模块有四个时钟源,分别控制8个信号。通过配置寄存器,可以设置脉宽调制的启用、每个通道的工作脉冲极性、每个通道的输出对准、时钟源和使用模式(8个8位通道或4个16位通道)。在车辆模型控制系统中,共有四个PWM输出来控制电机。由于8位输出精度能满足应用要求,采用一个PWM输出控制电机正转,一个PWM输出控制电机反制动。因为两个电机需要四个PWM信号。其初始化的步骤总结为:1、禁止PWM
12、Disable PWM PWME=0 ; 2、选择时钟 Select clock (prescaler and scale) for the PWM PWMPRCLK ,PWMSCLA ,PWMSCLB ,PWMCLK;3、选择极性 Select polarity PWMPOL ;4、选择对齐模式 Select center or left aligned mode PWMCAE ;5、对占空比和周期编程Program duty cycle and period PWMDTYx,PWMPERx;6、使能PWM 通道 Enable used PWM channels PWME MCU。6. EC
13、T模块ECT有8个IC/OC通道,4个8位或2个16位脉冲累加器(PAD通道,其OC部分与第6章中的TIM模块相同,但IC和PAI部分与TIM模块不同。四个IC通道类似于TIM模块,当相关管脚计划运行时,定时器的值由各自的捕获寄存器TCN记录;另外四个IC通道除了捕获寄存器外,还用于记录定时器的值。TCN,每个都有一个缓冲区TCNH,称为保持寄存器,它可以连续两次捕获计时器的值,而不会中断。四个8位PAL通道0-3与四个缓冲IC通道IC0-3相关联,共享输入引脚端口t0-3。每个脉冲累加器通道都有一个缓冲区PACNH,也称为保持寄存器,当外部引脚上发生预定动作时,它可以存储其累积值。两对8位脉
14、冲累加器也可以通过级联形成16位脉冲累加器PACA和PACB。其运行模式为:停止:由于时钟停止,计时器和计数器均关闭。 冻结:计时器和计数器均保持运行,直到TSCR($06)的TSFRZ位被置1。 等待:计数器保持运行,直到TSCR($06)的TSWAI位被置1。 正常:计时器和计数器均保持运行,直到TSCR($06)的TEN 位和MCCTL($26)的MCEN位被分别清0。在本项目中,我们使用通道7输出比较来产生脉冲周期,而通道6和4输出比较来产生不同的脉宽波形。该方法产生的波形不仅可以改变周期,而且可以改变脉冲宽度。因此,测量输入波形,同时生成输出波形。波形的脉冲宽度可以从几微秒到几秒不等
15、。操作方式是通过一系列可设置读写的控制寄存器和数据寄存器扩展端口功能,实现输入捕获和输出波形生成两个功能。在车辆模型控制系统中,ECT模块主要用于检测车速。利用输入捕获功能可以捕获相邻脉冲信号的上升沿和下降沿之间的时间差,并且可以方便地计算车速并反馈给单片机。6.2 PID控制算法车体控制算法是整个系统的核心,在经过对传感器信息的处理后,利用个陀螺仪和编码器采集的信息来控制和驱动电机的输出量,控制采用PID控制算法。6.3 PID控制原理PID(比例、积分和微分)控制是一种基于经典控制理论的控制算法,它可以估计过去、现在和将来的信息。该PID控制策略具有结构简单、稳定性好、可靠性高、易于实现等优点。通过将理想输入和实际输出的误差信号发送给PID控制器