两轮自平衡小车设计报告
两轮自平衡小车的电动减速轮设计

学号:24101901695南湖学院毕业论文(设计)题目:两轮自平衡小车的电动减速轮设计作者lxxxx 届别xxx 系别xxxx 专业xxx 指导老师xxxx 职称xxx 完成时间xxxxx摘要两轮自平衡机器人与两轮自平衡电动车都属于两轮自平衡系统的范畴。
两轮自平衡小车是一种可靠、便捷、环保的短途运输交通工具,它占地面积小,通过路面的能力强,并且非常灵活,适用于场馆、机场等地。
近年来国内外对两轮自平衡机器人的控制研究较多,但针对其机械结构的研究却较少,尤其是对两轮自平衡电动车的研究更是少之又少。
本文总结了国内外相关领域的研究成果,对两轮自平衡电动车的减速轮进行了机械设计,选择了各零部件合适的材料,绘制了减速轮的零件图和装配图,并对轴承进行了强度校核。
关键词:两轮自平衡;减速轮;机械设计;Pro/EAbstractBoth the two-wheeled self-balancing electric vehicle and the two-wheeled self-balancing robot belong to the two-wheeled self-balancing system .Since the two-wheeled self-balancing electric vehicle is a kind of reliable and convenient, environmental protection and short-distance transportation vehicles, it covers an area of small, it has the ability to through the pavement, and it is very flexible , and it is applicable to the venue, airport, etc. In recent years studies of the two- wheeled self-balancing robot are too numerous to mention,and most of them focus on the control but not the structure. After having summarized the research results of the field,this thesis designed the two- wheeled self-balancing electric vehicle gear wheel’s mechanical design, choose various spare parts suitable materials, draws the part drawing and the assembly drawing about the gear wheel, and the bearing force respectively.Key words: two- wheeled self-balancing;gear wheel;mechanical design;Pro/E目录第一章绪论 (1)1.1 本论文研究背景 (1)1.2 国内外研究现状 (1)1.2.1 国外研究现状 (1)1.2.2 国内研究现状 (5)1.3 两轮自平衡机器人的研究意义 (6)第二章两轮自平衡系统的平衡原理 (7)第三章两轮自平衡电动车结构的分析 (9)3.1 总体方案分析 (9)3.2 确定减速轮的设计方案 (11)3.2.1 一般自行车电动减速轮结构方案设计 (11)3.2.2 自平衡电动车减速轮整体结构设计 (12)第四章电动减速轮的设计 (15)4.1 Pro/E的介绍 (15)4.2 电机的选择 (15)4.3 轮轴的设计 (16)4.3.1 轴的概述 (16)4.3.2 轴的结构设计 (16)4.3.3 轴的具体装配设计 (17)4.4 减速器设计 (18)4.4.1 减速比的确认 (18)4.4.2 各齿轮参数的确认 (19)4.5 惰轮架设计 (21)4.6 车轮(轮壳)设计 (21)4.7 轴承的选择、定位 (23)4.7.1 轴承的介绍 (23)4.7.2 轴承的选择 (23)4.8 车轮装配体 (24)4.9 减速轮轴承的校核 (25)4.9.1 内侧轴承校核 (25)4.9.2 惰轮轴承寿命校核 (26)第五章全文总结 (30)参考文献 (31)致谢 (32)第一章绪论1.1 本论文研究背景自20 世纪 60 年代人类研制出第一台机器人以来,机器人技术就显示出了强大的新生力,在将近 50 年的时间里,机器人技术得到了飞速的发展[1]。
基于PID控制器的两轮自平衡小车设计

本科毕业设计基于PID控制器的两轮自平衡小车设计摘要两轮自平衡小车具有体积小、结构简单、运动灵活的特点,适用于狭小和危险的工作空间,在安防和军事上有广泛的应用前景。
两轮自平衡小车是一种两轮左右平衡布置的,像传统倒立摆一样,本身是一种自然不稳定体,其动力学方程具有多变量、非线性、强耦合、时变、参数不确定性等特性,需要施加强有力的控制手段才能使其保持平衡。
本文在总结和归纳国内外对两轮自平衡小车的研究现状,提出了自己的两轮自平衡小车软硬件设计方案,小车硬件采用陀螺仪和加速度传感器检测车身的重力方向的倾斜角度和车身轮轴方向上的旋转加速度,数据通过控制器处理后,控制电机调整小车状态,使小车保持平衡。
由于陀螺仪存在温漂和积分误差,加速度传感器动态响应较慢,不能有效可靠的反应车身的状态,所以软件使用互补滤波算法将陀螺仪和加速度传感器数据融合,结合陀螺仪的快速的动态响应特性和加速度传感器的长时间稳定特性,得到一个优化的角度近似值。
文中最后通过实验验证了自平衡小车软硬件控制方案的可行性。
关键词:自平衡互补滤波数据融合倒立摆Two-wheeledSelf-balancingRobotMaXuedong(CollegeofEngineering,SouthChinaAgriculturalUniversity,Guangzhou510642,China) Abstract:Thetwo-wheeledself-balancingrobotissmallinmechanism,withsimplestructureandcanmakeflexiblemotion,目录华南农业大学本科生毕业设计成绩评定表1前言研究意义应用意义。
自平衡车巧妙地利用地心引力使其自身保持平衡,并使得重力本身成为运动动能的提供者,载重越大,行驶动能也就越大,具有环保的特点(胡春亮等,2007)。
驾驶者不必担心掌握平衡,车体自身的平衡稳定性,使得原本由于平衡能力障碍而无法骑自行车的人群也同样可以驾驭。
基于PID控制器的两轮自平衡小车设计本科毕业设计

本科毕业设计基于PID控制器的两轮自平衡小车设计摘要两轮自平衡小车具有体积小、结构简单、运动灵活的特点,适用于狭小和危险的工作空间,在安防和军事上有广泛的应用前景。
两轮自平衡小车是一种两轮左右平衡布置的,像传统倒立摆一样,本身是一种自然不稳定体,其动力学方程具有多变量、非线性、强耦合、时变、参数不确定性等特性,需要施加强有力的控制手段才能使其保持平衡。
本文在总结和归纳国内外对两轮自平衡小车的研究现状,提出了自己的两轮自平衡小车软硬件设计方案,小车硬件采用陀螺仪和加速度传感器检测车身的重力方向的倾斜角度和车身轮轴方向上的旋转加速度,数据通过控制器处理后,控制电机调整小车状态,使小车保持平衡。
由于陀螺仪存在温漂和积分误差,加速度传感器动态响应较慢,不能有效可靠的反应车身的状态,所以软件使用互补滤波算法将陀螺仪和加速度传感器数据融合,结合陀螺仪的快速的动态响应特性和加速度传感器的长时间稳定特性,得到一个优化的角度近似值。
文中最后通过实验验证了自平衡小车软硬件控制方案的可行性。
关键词:自平衡互补滤波数据融合倒立摆Two-wheeled Self-balancing RobotMa Xuedong(College of Engineering, South China Agricultural University, Guangzhou 510642, China) Abstract:The two-wheeled self-balancing robot is small in mechanism, with simple structure and can make flexible motion, suitable for narrow and dangerous work space. So it has wide range of applications in security and military. The two-wheeled self-balancing robot is a natural unstable system. The device of this system is a parallel arrangement of two single wheels, like a traditional inverted pendulum. Its dynamics are multi-variable, non-linear, serious coupling and uncertain parameters etc. It must be exerted strong control to make it stable.In this paper, studies on two-wheel self-balancing vehicle at home and abroad are summarized. We designed the hardware and software of our two-wheel self-balancing vehicle. The car using rotational accelerometers, gyroscopes and acceleration sensors to detect body condition and the state in which the pitch change rate. The central processing unit calculate the appropriate data and instructions, and control the motor to achieve the body balancing. Because of gyro drift problems and Integral error with accelerometers and slow dynamic response of acceleration sensors. It can’t provide effecti ve or reliable information to reflect the real state of its body. So we using complementary filter to fuse the data of two sensors, so that the inclination of its body can be approximated better.Finally, we verified the feasibility of the system’s hardwar e and software through experiment.Key Words: Self-Balancing complementary filter Data Fusion Inverted Pendui目录1 前言 (1)1.1 研究意义 (1)1.2 国内外研究现状 (1)1.2.1 国外研究成果 (1)1.2.2 国内研究成果 (1)1.3 本文的研究内容 (2)2 两轮平衡车的平衡原理 (2)2.1 平衡车的机械结构 (2)2.2 两轮车倾倒原因的受力分析 (3)2.3 平衡的方法 (3)3 系统方案分析与选择论证 (4)3.1 系统方案设计 (4)3.1.1 主控芯片方案 (4)3.1.2 姿态检测传感器方案 (4)3.1.3 电机选择方案 (5)3.2 系统最终方案 (5)4 主要芯片介绍和系统模块硬件设计 (6)4.1 加速度传感器ADXL345 (6)4.2 陀螺仪传感器L3G4200D (8)4.3 主控电路 (10)4.4 电机驱动电路 (11)4.5 供电电路 (11)5 系统软件设计 (12)5.1 系统初始化 (13)5.2 滤波器 (14)5.2.1 低通滤波器 (15)5.2.2 互补滤波器 (15)5.3 PID控制器 (17)5.3.1 PID概述 (17)5.3.2 数字PID算法 (17)5.3.3 PID控制器设计 (18)6 硬件电路 (19)6.1 硬件制作与调试 (19)6.2 硬件调试结果 (19)6.2.1 姿态感知系统测试结果 (19)6.2.2 PID控制器测试结果 (20)7 结论 (21)参考文献 (23)附录 (1)致谢 (3)华南农业大学本科生毕业设计成绩评定表1 前言1.1 研究意义应用意义。
双轮自平衡小车项目设计报告

电子与信息工程学院项目设计报告项目名称双轮自平衡小车设计专业电子信息科学与技术目录一自平衡小车的总体方案设计 (4)1、自平衡小车的设计方案 (4)2、自平衡小车的总体框图 (4)二系统的具体设计与实现 (5)1、单片机控制模块 (5)2、陀螺仪加速度计模块 (5)3、光码盘测速模块 (7)4、稳压模块 (8)5、电机驱动模块 (9)6、LCD1602显示模块 (12)三软件系统设计 (18)1、设计思想 (18)(1)PID技术 (18)(2)应用现状 (18)(3)PID调节规律 (19)(4)极点配置 (20)(5)极点配置条件 (20)(6)极点配置控制器 (23)2、程序流程图 (24)3、程序代码 (25)摘要随着科技进步,生活水平的提高,人们追求智能与舒适的愿望也日益强烈。
从而催生了许多智能化的产品。
如智能电视、智能小车等。
如何实现小车的小车的自动快捷驾驶,也成为人们心中的向往与疑问,基于这种趋势与需求,着眼于实际情况。
本文介绍了基于STC90C51单片机的自平衡小车系统的设计。
系统基于陀螺仪等传感器,利用PID平衡算法,对小车的速度倾斜角度平衡状态来进行检测,并通过单片机来控制电机来实现双轮小车自如平衡地运动。
从而实现小车智能自主控制的目的。
关键词:STC90C51 自平衡PID算法该自平衡小车,采用STC90C51单片机和各种传感器的组合,构成了自平衡小车系统。
其系统主要由以下几个部分组成:单片机控制系统、陀螺仪加速度检测模块、光码盘测速模块、稳压模块、电机驱动模块、LCD1602显示模块组成。
本设计的自平衡小车工作原理:给小车通电,平衡放在地上,当小车开始倾斜时,陀螺仪及时地采集的小车倾斜角度数据传给单片机,而加速度计将车子倾斜的瞬时加速度采集后也传给单片机,同时,光码测速仪也将车子的实时速度采集后传给单片机。
单片机系统收集到以上三组数据,对数据进行量化处理后,在PID 平衡算法的控制下,控制电机及时地做出前进或后退或加速或减速的反应,使车子在一个小角度范围内做平衡地来回摆动,以保持车子的不倒。
红外遥控两轮自平衡小车设计-毕业论

毕业论文(设计) 题目红外遥控两轮自平衡小车设计目录1 绪论 (1)1.1 课题设计的背景 (1)1.2 课题设计的意义 (1)1.3 两轮自平衡小车国内外现状 (1)1.4 单片机简介 (2)1.5 PID算法简介 (3)2 总体设计方案 (4)2.1 实现功能 (4)2.2 整体设计思路 (4)2.3 系统结构设计 (6)3 主要原件介绍 (7)3.1 MSP430单片机 (7)3.1.1 MSP430F149单片机 (8)3.2.2 MSP430F149单片机最小系统 (9)3.2 MPU6050芯片 (10)3.3 L298N电机驱动芯片 (11)4 硬件设计和系统软件设计 (13)4.1 硬件设计 (13)4.1.1 单片机核心模块 (13)4.1.2 陀螺加速度计MPU6050 (14)4.1.3 HS0038B红外线接收头 (15)4.1.4 L298N驱动模块 (16)4.1.5 光电传感测速 (17)4.2 系统软件设计 (17)4.2.1 主程序设计 (17)4.2.2 红外线接收程序 (18)4.2.3 卡尔曼滤波算法 (19)4.2.4 MPU6050模块 (20)4.2.5 自平衡PID控制算法 (22)5 实物展示 (23)6 设计总结 (24)参考文献 (25)致谢 (26)红外遥控两轮自平衡小车设计徐佳南京信息工程大学信息与控制学院,江苏南京 210044摘要:本次设计包含了单片机主控模块、陀螺加速计模块、光电传感测速模块、驱动模块、红外线接收模块等,设计采用MPS430单片机作为核心,使用GY-52陀螺仪来测量倾角和角加速度,用卡尔曼滤波和PID算法来对得到的数据进行分析处理,并且调节好小车的动态平衡,使得小车在前进和后退的同时按照接收到的红外信号来保持平衡。
关键词:MSP430单片机;红外线;PID算法;三轴陀螺仪;卡尔曼滤波Infrared remote control self-balancing robot designXu jiaSchool of Information and Control, NUIST, Nanjing 210044, ChinaAbstract:The design includes a single-chip control module, gyro accelerometer module, optical sensing speed module, driver module, infrared receiver modules, designed with MPS430 microcontroller as the core, using GY-52 gyroscope to measure the angle and angular, with Kalman filtering and PID algorithms to analyze and process the data obtained, and regulate the dynamic balance of the car, so the car in forward and backward at the same time according to the received infrared signal to maintain balance.Keywords: MSP430 MCU; infrared; PID algorithm; triaxial gyroscope; Kalman filter.1 绪论1.1 课题设计的背景近年来,两轮自平衡小车方面的研究发展迅速,成为比较热门的研究领域之一。
基于STM32单片机红外遥控两轮自平衡小车的设计

GND1:5V电源地;
EN:5V使能引脚(5V工作,0V关闭,禁止悬空);
PWM1:控制电机1的转速;
DR1:控制电机1的转向;
PWM2:控制电机2的转速;
DR2:控制电机2的转向;
系统的整体设计框图如图2-2所示:
图2-2系统整体框图
3
3.1
STM32F1系列屈于中低端的32位ARM微控制器,其内核是Cortex-M3㈡。
STM32F103是一款常用的中等容量增强型、低功耗、32位基于ARM核心的带64K或128K字节闪存的微控制器,拥有USB、CAN、7个定时器(3个16位定时器、1个16位带死区控制和紧急刹车、2个看门狗定时器、系统时间定时器:24位自减型计数器)、2个ADC、9个通信接口(2个I2C接口、3个USART接口、2个SPI接口、CAN接 口USB 2.0全速接口)等众多资源。这款芯片运行时的最高频率可达到72MHz,其供 电电压为2.0V至3.6V,拥有64K或128K字节的闪存程序存储器,带有4个片选的静 态存储器控制器15o该芯片还具有看门狗定时器,系统时间定时器,低功耗空闲和CRC计算单元,使得STM32F103芯片在众多嵌入式控制应用系统提供高灵活、超有效的解 决方案。
2.3
程序是系统稳定运行的大脑神经,如果一个单片机控制系统没有可以用來控制的 程序,那么再好的电路也是没有实际意义的。
程序的编写过程中需要注意以下儿点:
1、程序的编写一定要按照预先搭建好的电路进行,操作一定要针对与被操作的对 象。
2、程序的编写应该做到以尽量少的编程语言去实现更复杂的控制内容,只有这样, 编写的程序才能够简洁完整。
自平衡小车系统设计报告完整

2012福建省大学生电子设计竞赛论文题目:自平衡小车系统(D题)目录摘要 (3)一、设计任务 (4)二、设计要求 (6)2.1基本要求 (6)2.2发挥部分 (6)三、方案的选择 (7)3.1控制器模块的选择 (7)3.2电机驱动电路 (7)3.3电源模块 (7)3.4寻迹传感器模块 (8)3.5最终方案 (8)四、理论分析与计算 (9)4.1自平衡小车的数学模型及控制算法 (9)4.2动力学模型及其参数说明 (10)4.3控制算法的设计 (12)4.4小车运动的精确控制 (13)五、电路硬件设计 (14)5.1单片机最小系统 (14)5.2电机驱动模块 (14)5.3寻迹模块 (16)5.4角度检测模块 (16)六、软件设计 (18)6.1软件设计的主程序流程图 (18)6.2驱动、中断、寻迹程序流程图 (19)七、测试方案与测试结果 (22)7.1测试仪器与设备 (22)7.2测试方法 (22)7.3测试结果 (22)7.4总结 (24)八、参考文献 (25)附录一各系统原理图与实物图 (26)附录二原件清单 (29)附录三程序 (30)摘要自平衡小车是一个集多种功能于一体的综合系统,在完成自身平衡的同时,还能够适应各种环境下的控制任务。
利用外加的3轴加速度传感器、陀螺仪、光电反射式传感器、来实现小车的自主循迹、加速减速、路径规划等功能。
由于特殊的结构,其适应地形变化能力强,运动灵活。
自平衡小车系统选用STC89C5鲜片机最小系统为控制模块,模块化的设计方案。
通过光电反射式传感器ST178对信号进行采集,采集到的信号经比较器LM324处理后传给52片机,经单片机处理后,发出控制命令L298N驱动2台直流电动机进行相应的动作。
该小车能够识别出黑色轨迹并能沿着黑色轨迹前进,走出相应的S形路线直到终点。
关键词:STC89C51最小系统电机驱动ST178光电反射式传感器、设计任务设计并制作一个自平衡小车。
两轮自平衡小车毕业设计

关键词:两轮自平衡
陀螺仪
姿态检测
卡尔曼滤波
数据融合
I
Design of Two-Wheel Self-Balance Vehicle Abstract
In recent years, the research and application of two-wheel self-balanced vehicle have obtained rapid development. This paper presents a design scheme of two-wheel self-balanced vehicle. Gyroscope ENC-03 and MEMS accelerometer MMA7260 constitute vehicle posture detection device. System adopts Kalman filter to complete the gyroscope data and accelerometer data fusion. , and adopts freescale16-bit microcontroller-MC9S12XS128 as controller core. The center controller realizes the sensor signal processing the sensor signal processing, filtering algorithm and body control, human-machine interaction and so on. Upon completion of the entire system, each module can be normal and to coordinate work. The vehicle can keep balancing in unmanned condition. At the same time, the vehicle can be adjusted independently then quickly restore stability when there is a moderate amount of interference. In addition, the vehicle also can achieve forward, backward, left and right turn and other basic movements.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
沈阳工业大学 信息科学与工程学院第五届创新杯大学生电子设计竞赛 双轮自平衡小车 摘要: 本作品采用STM32单片机作为主控制器,用一个陀螺仪传感器来检测车的状态,通过TB6612控制小车两个电机,来使小车保持平衡状态,通过手机蓝牙与小车上蓝牙模块连接以控制小车运行状态。 关键字:智能小车;单片机;陀螺仪;蓝牙模块。
一、系统完成的功能 根据老师的指导要求,在规定的时间内,由团队合作完成两轮自平衡小车的制作,使小车在一定时间内能够自助站立并且自由行走,以及原地转圈,上坡和送高处跃下站立。
二、系统总体设计原理框架图
图2.1 系统总体框图 三.系统硬件各个组成部分介绍
3.1.STM32单片机简介(stm32rbt6)
蓝牙模块 STM32 TB6612
陀螺仪传感器
电机
两路PWM IIC
编码器
USART3 主控模块的STM32单片机是控制器的核心部分。该单片机是ST意法半导体公司生产的32位高性能、低成本和低功耗的增强型单片机,它的内核采用ARM公司最新生产的Cortex—M3架构,最高工作频率可达72MHz,256K的程序存储空间、48K的RAM,8个定时器/计数器、两个看门狗和一个实时时钟RTC,片上集成通信接口有两个I2C、3个SPI、5个USART、一个USB、一个CAN、两个和一个SDIO,并集成有3个ADC和一个DAC,具有80个I/0端口。
STM32单片机要求2.0~3.6V的操作电压(VDD),本设计采用5.0V电源通过移动电源给单片机供电。
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,将其测量的模拟量转化为可输出的数字量。为了精确跟踪快速和慢速的运动,传感器的测量范围都是用户可控的,陀螺仪可测范围为±250,±500,±1000,±2000°/秒(dps),加速度计可测范围为±2,±4,±8,±16g。 一个片上1024 字节的FIFO,有助于降低系统功耗。和所有设备寄存器之间的通信采用400kHz 的I2C 接口或1MHz 的SPI 接口(SPI 仅MPU-6000 可用)。对于需要高速传输的应用,对寄存器的读取和中断可用20MHz 的SPI。 另外,片上还内嵌了一个温度传感器和在工作环境下仅有±1%变动的振荡器。芯片尺寸4×4×0.9mm,采用QFN 封装(无引线方形封装),可承受最大10000g 的冲击,并有可编程的低通滤波器。关于电源,MPU-60X0 可支持VDD 范围2.5V±5%,3.0V±5%,或3.3V±5%。另外MPU-6050 还有一个VLOGIC 引脚,用来为I2C 输出提供逻辑电平。VLOGIC 电压可取1.8±5%或者VDD。
图3.2.1 陀螺仪外观图 图3.2.2 陀螺仪电路图 3.3.电机驱动
3.3.1.TB6612 由于TB6612相对于传统的L298N效率上提高很多,体积上也大幅度减少,在额定范围内,芯片基本不发热,所以我们设计的时候选择了这款芯片。
图3.3.1 TB6612外观图 3.3.2.PWM原理
PWM即脉冲宽度调制,它是指将输出信号的基本周期固定,通过调整基本周期内工作周期的大小来控制输出功率的方法。在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。因此,PWM又被称为“开关驱动装置”。如图7所示,在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。 图3.3.2 PWM波形图 设电机始终接通电源时,电机转速最大为Vmax,设占空比为D=t/T,则电机的平均速度为:Vd = Vmax·D (1)式中:Vd表示电机的平均速度;Vmax表示电机全通电时的速度(最大);D=t/T表示占空比。由公式(1)可见,当改变占空比D时,就可以得到不同的电机平均速度,从而达到调速的目的。
3.4蓝牙模块 蓝牙模块可以让原来使用串口的设备摆脱线缆的束缚在10米范围内实现无线串口通信。使用该模块无需了解复杂的蓝牙底层协议,只要简单的几个步骤即可享受到无线通信的便捷。蓝牙透传模块只有4个AT指令,分别是测试通讯,改名称,改波特率,改配对密码,AT指令必须从TXD,RXD信号脚设置,不能通过蓝牙信道设置。发送AT指令的设备可以是各种类型的MCU(比如51,avr,pic,msp430,arm等),也可以是电脑通过串口(PC串口接MAX232以后或者USB转串口)发送。由于HC-06有低功耗,低成本的特性,所以我们选择了这款芯片。
图3.4 蓝牙模块外观图 3.5编码器 编码器是将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。编码器把角位移或直线位移转换成电信号,前者称为码盘,后者称为码尺。按照读出方式编码器可以分为接触式和非接触式两种;按照工作原理编码器可分为增量式和绝对式两类。增量式编码器是将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的大小。绝对式编码器的每一个位置对应一个确定的数字码,因此它的示值只与测量的起始和终止位置有关,而与测量的中间过程无关。 四、软件设计 软件部分实现的主要功能是:传感器的数据采集、PWM信号的输出、车模控制:包括直立控制,速度控制。软件流程如下:
初始化开始
读取传感器数据并处理
获取电机控制参数发送到电机控制端口
检测车模状态 初始化完成以后,首先进入车模直立检测子程序。该程序通过读取陀螺仪传感器的数值判断车模是否处于直立状态。在中断程序中不断的读取编码器数据,获取车模状态信息,然后通过读取的数据控制车模。
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_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 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_Integral; 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_Integral>15000) Encoder_Integral=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=1.2; }