基于arduino的自平衡小车系统设计(附件)【字数:11386】

摘 要在现在这个科技发展十分迅速的社会里,机器人这个词被愈来愈多的大众所熟知,也成为现在一个比较热门的话题。各种功能多样,操作方便,实用性能强的机器人相继出现。在许多行业,人们都会使用机器人去完成一些高风险,高强度的工作。想要把机器人广泛应用于各领域少不了解决其移动问题。本次设计的平衡小车,在一定程度上讲就是一个简易的机器人。这个小车设计采用有ATmega328为控制核心的Arduino UNO开发板作为处理主板,选用TB6612FNG作为小车上电机驱动模块,选用直流减速电机作为平衡小车的电机,MPU6050作为姿态获取及检测模块,通过滤波将陀螺仪与加速度计测得的数据进行数据上的整合,来补偿传感器在测量中所带来的误差。设计为了使小车达到平衡,采用了PID算法,可以通过PID算法对小车进行直立PD控制和速度PI控制,而且PID算法可以不断地调节进步易于控制,给小车的平稳运行带来的更大的保障。
目 录
第一章 绪论 1
1.1选题背景 1
1.2 Arduino开发的意义及其价值 1
1.3 本文的主要研究工作 2
1.4 论文的结构安排 2
第二章 平衡小车理论以及方案设计 3
2.1 控制理论 3
2.1.1 控制系统原理分析 3
2.1.2 平衡小车直立控制原理 3
2.1.3 平衡小车速度控制原理 4
2.2 平衡小车的方案设计 4
2.2.1 平衡小车车体的选择 4
2.2.2 平衡小车控制器的选择 5
2.2.3 平衡小车电源的选择 6
2.2.4 平衡小车陀螺仪模块的选择 6
2.2.5 平衡小车电机驱动的选择 6
2.2.6 平衡小车系统的组成 7
第三章 平衡小车的硬件设计 8
3.1 MPU6050电路设计 8
3.2 TB6612FNG电路设计 9
3.3 速度检测模块设计 11
3.4 平衡小车硬件整体规划 12
第四章 平衡小车的软件设计 13
4.1 各个模块 *好棒文|www.hbsrm.com +Q: ¥351916072$ 
初始化 13
4.2 平衡小车直立PD程序设计 14
4.3 平衡小车速度PI控制程序设计 15
4.4 平衡小车编码器程序设计 16
4.5 平衡小车中断程序设计 17
4.6 PWM寄存器赋值函数的程序设计 18
第五章 平衡小车的安装和调试 20
5.1 平衡小车的安装 20
5.2 平衡小车的调试 20
5.2.1 平衡小车的硬件调试 20
5.2.2 平衡小车的软件调试 20
5.3 平衡小车的检修 22
结束语 24
致 谢 25
参考文献 26
第一章 绪论
1.1选题背景
近几年来,国内许多厂商对平衡小车的关注度还是比较高的。大家生活中也可能遇到了很多卖平衡车的品牌,例如现在比较火热的小米公司。他们的产品还是给大家在生活中带来了很多方便,也让大家从之前的不了解,到越来越多的人对他感兴趣。
另外,在现在国家对高新技术重视的推动下,高新技术也在向人民群众中普及,产品也越来越多。智能化的小车就是我们最能接触到的一种。在现在的智能小车上它们一般都有很多很多让我们意想不到的功能,像蓝牙连接、红外检测、自动控制、超声波避障、等功能于一体,涉及矿山开挖,机械行业制造,电气流水线,考古现场勘查等等。在各行各业都能看到他的身影。
平衡小车是一个综合系统。它需要像计算机,自动控制等技术一起糅合起来。是典型的高新技术综合体。在时代的发展下,像现在有全国大学生“飞思卡尔”杯智能汽车竞赛,极大提升了学生对平衡小车等相关小车的兴趣,也让学校对这方面的关注度有所加强。有这样的热度,就是选这个课题的因素之一。
像过去比较火热的遥控小车,一般都是需要人在后面用遥控器对小车进行操作,并不能在很大程度上解放人的生产力。而现在所研究的智能平衡小车,就是满足人们对智能化要求的一个最基础的条件,比如让小车在没有人为控制的情况下,将开关打开后,它可以自己实现平衡,在一定程度的干扰下,还能恢复平衡的状态。所有的一切只需事先调试好,就满足后期的使用。在此可以看出,平衡小车和现在的我们所说的机器人有着相同的特性,就是在于再编程的特质。
1.2 Arduino开发的意义及其价值
Arduino的作用是将我们所用的各式各样的传感器,让它们来感知周围的环境,并通过他们所带有的各种设备来达成一种反馈的状态,然后进而来使周边的环境发生变化。
因为开发者给大家带来的便利,所以Arduino系统是一个开源性的平台,使用者很快就能使用,给大家带来了很多便利。它建立在开源的简便I / O接口上。一般的Arduino都分为两大块,一块就是我们所需要的硬件部分,类似于人的身体,还有一大块就是软件部分,类似于人的思考。硬件需要将所有的整合起来,软件部分,现在网站给大家开放的就是Arduino IDE,他和一般的C语言类似,只要在其中编写程序,通过验证最终上传至开发板中,这样子开发板就会变得像人的大脑一样,给身体做出下一步的决策。Arduino编程通过Arduino编程语言和Arduino开发环境来实现。
在现在这么多年来大家的使用下,它变得越来越成熟,越来越多人的使用。因为Arduino的开源性,包括他的硬件、软件,而且可以在协议范围内任意的修改代码,所以我们获取信息的渠道有很多,并同时有很多对Arduino热爱的人,建立了论坛,里面有很多很多的资料可供大家查阅,各方面体系也比较成熟,他对我们学习有很好的帮助,又能拓展思维,让设计者随意的发挥,不会受到拘束。
1.3 本文的主要研究工作
这次课题是在用Arduino系统的基础上去设计一款两轮平衡小车。在设计平衡小车的过程中,首先要对小车的硬件进行分析,学习并参透每一个模块的作用。要知道Arduino开发板可以实现哪些功能,具体的参数;MPU6050陀螺仪模块的工作原理,它和加速度传感器之间会在车身的姿态自检中所产生的互补特性,以及它如何驱动电机进行工作的,并且还要去设计直流电机的驱动电路;随着时间的推移,平衡小车的角度误差会越来越大,要让小车的角度值达到一个相对稳定的状态就需要通过互补滤波和卡尔曼滤波进行一个结合。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jxgc/zdh/160.html

好棒文