自平衡小车设计报告(共9页).doc

上传人:飞****2 文档编号:19942127 上传时间:2022-06-11 格式:DOC 页数:9 大小:516KB
返回 下载 相关 举报
自平衡小车设计报告(共9页).doc_第1页
第1页 / 共9页
自平衡小车设计报告(共9页).doc_第2页
第2页 / 共9页
点击查看更多>>
资源描述

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

1、精选优质文档-倾情为你奉上自平衡小车设计报告摘要:本作品采用STM32单片机作为主控制器,用一个陀螺仪传感器来检测车的状态,通过TB6612控制小车两个电机,来使小车保持平衡状态,通过手机蓝牙与小车上蓝牙模块连接以控制小车运行状态。关键字:智能小车;单片机;陀螺仪;蓝牙模块。一、系统完成的功能根据老师的指导要求,在规定的时间内,由团队合作完成两轮自平衡小车的制作,使小车在一定时间内能够自助站立并且自由行走,以及原地转圈,上坡和送高处跃下站立。二、系统总体设计原理框架图USART3蓝牙模块STM32TB6612陀螺仪传感器电机两路PWMIIC编码器图2.1 系统总体框图三.系统硬件各个组成部分介

2、绍3.1.STM32单片机简介(stm32rbt6)主控模块的STM32单片机是控制器的核心部分。该单片机是ST意法半导体公司生产的32位高性能、低成本和低功耗的增强型单片机,它的内核采用ARM公司最新生产的CortexM3架构,最高工作频率可达72MHz,256K的程序存储空间、48K的RAM,8个定时器计数器、两个看门狗和一个实时时钟RTC,片上集成通信接口有两个I2C、3个SPI、5个USART、一个USB、一个CAN、两个和一个SDIO,并集成有3个ADC和一个DAC,具有80个I0端口。 STM32单片机要求2.03.6V的操作电压(VDD),本设计采用5.0V电源通过移动电源给单片

3、机供电。3.2. 陀螺仪传感器陀螺仪可以用来测量物体的旋转角速度。本设计选用MPU-6050。MPU-60X0 是全球首例9 轴运动处理传感器。它集成了3 轴MEMS 陀螺仪,3 轴MEMS加速度计,以及一个可扩展的数字运动处理器DMP(Digital Motion Processor),可用I2C接口连接一个第三方的数字传感器,比如磁力计。扩展之后就可以通过其I2C 或SPI 接口输出一个9 轴的信号(SPI 接口仅在MPU-6000 可用)。MPU-60X0 也可以通过其I2C 接口连接非惯性的数字传感器,比如压力传感器MPU-60X0 对陀螺仪和加速度计分别用了三个16 位的ADC,将其

4、测量的模拟量转化为可输出的数字量。为了精确跟踪快速和慢速的运动,传感器的测量范围都是用户可控的,陀螺仪可测范围为250,500,1000,2000/秒(dps),加速度计可测范围为2,4,8,16g。 一个片上1024 字节的FIFO,有助于降低系统功耗。和所有设备寄存器之间的通信采用400kHz 的I2C 接口或1MHz 的SPI 接口(SPI 仅MPU-6000 可用)。对于需要高速传输的应用,对寄存器的读取和中断可用20MHz 的SPI。 另外,片上还内嵌了一个温度传感器和在工作环境下仅有1%变动的振荡器。芯片尺寸440.9mm,采用QFN 封装(无引线方形封装),可承受最大10000g

5、 的冲击,并有可编程的低通滤波器。关于电源,MPU-60X0 可支持VDD 范围2.5V5%,3.0V5%,或3.3V5%。另外MPU-6050 还有一个VLOGIC 引脚,用来为I2C 输出提供逻辑电平。VLOGIC 电压可取1.85%或者VDD。 图3.2.1 陀螺仪外观图图3.2.2 陀螺仪电路图3.3.电机驱动 3.3.1.TB6612由于TB6612相对于传统的L298N效率上提高很多,体积上也大幅度减少,在额定范围内,芯片基本不发热,所以我们设计的时候选择了这款芯片。图3.3.1 TB6612外观图3.3.2.PWM原理PWM即脉冲宽度调制,它是指将输出信号的基本周期固定,通过调整

6、基本周期内工作周期的大小来控制输出功率的方法。在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。因此,PWM又被称为“开关驱动装置”。如图7所示,在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。图3.3.2 PWM波形图设电机始终接通电源时,电机转速最大为Vmax,设占空比为D=tT,则电机的平均速度为:Vd = VmaxD (1)式中:Vd表示电机的平均速度;Vmax表示电机全通电时的速度(最大);D=tT表示占空比。由公式(1)可见,当改变占空比D

7、时,就可以得到不同的电机平均速度,从而达到调速的目的。3.4蓝牙模块蓝牙模块可以让原来使用串口的设备摆脱线缆的束缚在10米范围内实现无线串口通信。使用该模块无需了解复杂的蓝牙底层协议,只要简单的几个步骤即可享受到无线通信的便捷。蓝牙透传模块只有4个AT指令,分别是测试通讯,改名称,改波特率,改配对密码,AT指令必须从TXD,RXD信号脚设置,不能通过蓝牙信道设置。发送AT指令的设备可以是各种类型的MCU(比如51,avr,pic,msp430,arm等),也可以是电脑通过串口(PC串口接MAX232以后或者USB转串口)发送。由于HC-06有低功耗,低成本的特性,所以我们选择了这款芯片。图3.

8、4 蓝牙模块外观图3.5编码器编码器是将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。编码器把角位移或直线位移转换成电信号,前者称为码盘,后者称为码尺。按照读出方式编码器可以分为接触式和非接触式两种;按照工作原理编码器可分为增量式和绝对式两类。增量式编码器是将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的大小。绝对式编码器的每一个位置对应一个确定的数字码,因此它的示值只与测量的起始和终止位置有关,而与测量的中间过程无关。四、软件设计软件部分实现的主要功能是:传感器的数据采集、PWM信号的输出、车模控制:包括直立控制,速度控制。软件

9、流程如下:初始化完成以后,首先进入车模直立检测子程序。该程序通过读取陀螺仪传感器的数值判断车模是否处于直立状态。在中断程序中不断的读取编码器数据,获取车模状态信息,然后通过读取的数据控制车模。1.蓝牙控制程序:if(uart_receive=0x00)Flag_Qian=0,Flag_Hou=0,Flag_Left=0,Flag_Right=0; /刹车if(uart_receive=0x01)Flag_Qian=1,Flag_Hou=0,Flag_Left=0,Flag_Right=0; /前进if(uart_receive=0x05)Flag_Qian=0,Flag_Hou=1,Flag_

10、Left=0,Flag_Right=0; /后退else if(uart_receive=0x02|uart_receive=0x03|uart_receive=0x04)Flag_Qian=0,Flag_Hou=0,Flag_Left=0,Flag_Right=1; /右转弯else if(uart_receive=0x06|uart_receive=0x07|uart_receive=0x08)Flag_Qian=0,Flag_Hou=0,Flag_Left=1,Flag_Right=0; /左转弯2. 控制程序:直立PD控制:float balance(float angle,float

11、 Gyro) static float Bias,angle_i; float balance; Bias=angle-5; angle_i+=angle; balance=p*Bias+d*Gyro+i*angle_i; if(Turn_Off(Angle_Balance)=1) angle_i=0; return balance;速度PI控制:int velocity(int encoder_left,int encoder_right) static int Velocity,Encoder_Least=0,Encoder,Movement; static long Encoder_In

12、tegral;if(1=Flag_Qian)Movement=5; else if(1=Flag_Hou) Movement=-5; else Movement=0; Encoder_Least =(encoder_left*0.5+encoder_right*0.5)*0.9; Encoder *= 0.7; Encoder += Encoder_Least*0.3; Encoder_Integral +=Encoder; Encoder_Integral=Encoder_Integral-Movement; if(Encoder_Integral15000) Encoder_Integra

13、l=15000; if(Encoder_Integral-15000)Encoder_Integral=-15000; if(Encoder=0) Encoder_Integral=Encoder_Integral*0.9965;if(Encoder=0) Encoder_Integral=0;Velocity=Encoder*vp+Encoder_Integral*vi; if(Turn_Off(Angle_Balance)=1) Encoder_Integral=0; return Velocity;void PID_INIT() p=60; d=0.15; i=0; vp=36; vi=

14、1.2;五、制作困难本作品制作过程中遇到了很多困难。在硬件方面,STM32烧坏好几个,造成了经济损失,后来经过检查电路和改进,能够稳定安全运行。设计初期我们试验L298N作为电机驱动,发现反映过慢,后来改用TB6612,效果非常好。PID参数的调试花费了大量的时间。六.总结自平衡小车制作过程中,我们接触到了很多之前没有接触的理论知识。其中包括:陀螺仪传感器使用获得正确偏角的方法,速度PID控制算法的应用。软件的编写和小车的焊接熟练了我们的编程技能和动手能力。很多知之甚少的东西通过这次课程设计都得到了一定的接触,充实了我们的知识领域并激发了我们队电子设计的浓厚兴趣。在这里,我们要感谢老师给予的这次宝贵机会,并感谢老师的指导与帮助。比赛时小车表现,我们非常满意,我们多日的努力得到了回报,感到非常欣慰和开心!专心-专注-专业

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档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