基于CC2530控制芯片的两轮平衡小车设计
2019-10-17童友波
童友波
摘 要:文章采用德州仪器公司CC2530单片机为控制核心,利用MPU6050传感器检测车身的角度和加速度,采用PID算法调整小车平衡;利用光电传感器达到自动寻迹等功能。除了具有寻常平衡小车的寻迹功能外,还利用CC2530单片机自带的无线接收模块,接收来自外界的无线控制信号,让小车的启停控制更加自如,能够更好地适应各种实际应用。充分利用CC2530控制芯片的片上资源,降低成本。
关键词:平衡小车;CC2530单片机;PID算法;寻迹;无线控制
智能平衡小车当前主控芯片较为流行的型号有51系列单片机、意法半导体STM32F103系列以及飞思卡尔k60系列等,作为专业用途的控制芯片用作智能车主控芯片的情况很少出现,本智能车采用物联网中普遍使用的具有无线通信功能的芯片CC2530单片机,除了实现智能车自动寻迹功能外,还利用此芯片自带的无线通信功能,增添智能小车无线控制,使物联网专用单片机在实际应用中充分利用其资源,提高教学的兴趣性和实用性。结合物联网专业开设相关课程,使人才培养方案更加丰富多彩[1]。
1 系统整体设计
整个系统由主控芯片CC2530的核心模块、电机驱动模块、平衡模块、寻迹模块,编码反馈模块以及无线发射等模块组成,总体系统结构如图1所示。
2 硬件模块设计
2.1 主控电路设计
主控芯片采用德州仪器半导体公司的CC2530芯片,采用32 M晶体振荡器作为时钟信号源,同时,此款芯片自带片上无线接收模块,接收来自CC2530芯片发射的ZigBee无线信号,SMA天线接收信号稳定可靠。该单片机输入/输出(Input/Output,I/O)口满足系统设计要求,价格便宜、运行可靠,主控电路原理如图2所示。
图1 系统总体框架
2.2 直流电机驱动电路
CC2530单片机I/O引脚最大驱动电流为20 mA,其引脚无法直接驱动平衡小车的两个直流电机,采用TB6612FNG作为电机驱动模块,其模块具有每个通道输出最高1.2 A连续驱动电流的MOSFET-H桥结构,双通道电路AO,BO输出,启动峰值电流达2 A/3.2 A(连续脉冲/单脉冲)。可同时驱动平衡小车的两个电机,根据TB6612FNG主要引脚功能可知,通过改变AIN,BIN四输入引脚的电平有无来控制电机的正反转以及停止动作,通过控制脉冲宽度调制(Pulse Width Modulation,PWM)A,PWMB的输入来控制电机正反转速度,从而实现平衡小车的平衡和循迹,在此模块原理中,需要两处不同的供电,一路是TB6612FNG自身内部控制部分的VCC_3供电,另一路为TB6612FNGHN内部H桥的VM主供电[2],其模块原理如图3所示。
图3 电机驱动电路
2.3 平衡控制单元电路及平衡实现过程
在以CC2530单片机为核心的平衡控制单元中,保持小车静止平衡系统的模块由平衡数据采集模块、电机驱动模块以及编码反馈模块3部分组成。在平衡数据采集模块中利用6轴MPU6050传感器采集到小车当前的角速度和加速度数据,通过集成电路总线(Inter-Integrated Circuit,I2C)通信方式传送给核心控制芯片,由于主控芯片(CC2530)没有片上外设I2C模块,所以采用两个通用输入输出口模拟I2C通信来接收MPU6050传送来的信号,其模块电路设计如图4所示。
图4 平衡数据采集电路
主控芯片接收来自MPU6050的角度数据与参考平衡数据(假定为零)进行比较控制,采用比例、积分和微分(Proportion Integral Differential,PID)算法输出两路PWM信号控制TB6612FNG来驱动电机,调整小车的初步直立姿态,得到相应的直立整定参数,然后,在速度为零状态下,小车直立调整数据由编码反馈模块实时采集小车车轮的转速数据送达主控芯片,由主控芯片、平衡数据采集模块、电机驱动模块、编码反馈模块等形成闭环控制系统,来保持小车在速度为零时的静止直立平衡整定参数。在平衡控制单元中,编码反馈模块采用霍尔编码器,其模块输出A,B相脉冲。由于主控芯片没有在正交解码片上外设硬件模块,采用编码器输出的A相作为主控芯片的外部中断触发信号,使主控芯片执行外部中断服务函数,在中断服务函数中判断B相的高低电平确定电机正反转[4]。
2.4 光电循迹模块
光电寻迹模块采用6对ITR20001-T红外发射接收管作为平衡小车循迹的信号检测头,根据其内部机构可知,如果发射管发射的红外线遇到黑色体时将被大部分吸收,遇到白色体时将被大量反射回来。接收管没有接收到红外信号时,其内部光敏体阻值较大,由其与10 k电阻组成的串联分压电路输出的分压La,Lb,Lc,Ra,Rb,Rc为高电平,反之,6路输出信号为低电平。为了确保信号的稳定可靠,其6路红外发射接收管信号分别送入两对LM339芯片信号引脚,在其内部装有4个独立的电压表。当“INx﹢”端电压高于“INx﹣”端时,输出管截止,相当于输出端开路。当“INx﹣”端电压高于“INx﹢”端时,输出管饱和,相当于输出端接低电位。两个输入端电压差别大于10 mV就能确保输出能从一种状态可靠地转换到另一种状态,因此,把LM339用在弱信号检测等场合是比较理想的。为了保证小车能够顺利通过较急的锐角弯道,采用了三级矫正的方法,使用了6个红外传感器,分别放置在左右两侧,提高小车循迹校正能力[5],光电循迹模块如图5所示。
2.5 無线发射模块
无线发射模块采用同款CC2530为核心的控制芯片,其内部带有RF内核控制模拟无线电,通过芯片引脚:RF_N,RF_P把基于IEEE802.15.4协议的2.4 G直接序列扩频频谱信号通过天线发射到被控平衡小车来实现小车的启停等控制。在无线发射模块中,设计了SW1,SW2两个控制按键来实现小车启停功能,同时,设计4个LED灯来显示按键控制操作结果。供电部分由于无线发射模块是手持式设备,所以采用电池供电方式来实现持续供电[6],无线发射模块如图6所示。
3 軟件设计
本系统采用C语言开发,在IAR编译器下调试并实现功能。软件程序设计采用模块化结构,系统程序设计流程如图7—8所示。
在程序设计中,直立控制、速度控制需要精准的时间,因此,需要开启主控芯片的一个定时中断功能来实现两个控制实现以及二者之间的协调关系,对于循迹、显示、参数设定等可以在主程序中完成。两个主控部分与循迹、显示等辅助部分相互通讯则采用全局变量来实现。在程序开发过程中,首先,系统外设初始化后,依据不同平衡小车机械安装相关特点求出其直立平衡角度中值,结合6轴MPU6050传感器采集的角速度以及加速度值,利用卡尔曼或者互补滤波求出平稳的角度值,与角度中值得到角度偏差,再结合PD控制算法计算出平衡小车电机的PWM脉冲信号,控制电机达到初步平衡。要使小车达到很好的静止直立效果,须结合电机码盘采集到的电机转速来控制小车在零速条件下的静止直立效果,结合PI控制算法求出控制电机的PWM脉冲信号,达到小车最终静止平衡。其次,给定小车不同的循迹速度,结合PI算法求出小车在平衡状态的最大循迹速度。最后,依据两组光电传感器,左右两组光电传感器各由三级光电传感器组成,当左右光电组检测到边缘黑线时,单片机通过PWM脉冲控制两个电机转速来调整小车左右偏转,避免小车驶离跑道。当小车行驶遇到转角时,整定比例参数,最终使小车达到最佳行驶状态,同时,在整个循迹过程中,能够无线控制小车启停控制以及设定不同的目标速度平稳循迹[7]。
图7 系统平衡流程 图8 系统循迹启停控制流程
4 系统测试
4.1 单元模块测试
在平衡小车整装之前需要进行电机驱动模块、6轴MPU6050传感器数据采集模块、光电循迹数据采集模块、ZigBee无线控制模块等单元测试,确保数据正确、采集灵敏及控制精准。单元模块测试是后续整机组装测试的基础。
4.2 整机组装测试
在平衡车整机组装测试中,软件参数整定是整个软件测试的难点,需要不断反复测试,由于平衡小车采用三环PID算法控制,在测试中可按照以下几个步骤测试。
(1)在测试中先屏蔽速度环和转向环控制算法,单独测试直立环,确定直立环控制参数。
(2)屏蔽转向环,开启直立环与速度环,确定速度环控制参数。
(3)开启直立环、速度环、转向环,确定转向环控制参数。
(4)在无线控制下的平衡车启停控制测试。
在测试中,需要考虑到各个控制环的相互影响,避免整定的参数影响小车的正常运行,最终实现如图9所示的自平衡循迹小车。
图9 平衡小车
5 结语
采用CC2530控制芯片作为平衡小车的主控芯片,作为物联网技术中无线传输及控制的专用芯片与通用单片机相比较,输入、输出端口资源较少,外设资源不够丰富,在设计平衡小车中,合理分配外设资源是关键。同时,在硬件外设资源不能满足的条件下,采用软件模拟实现也是解决问题途径之一。由于专用芯片自身的特点,制作的小车功能虽然有限,但能穷尽其资源,充分了解此专用芯片用途,对物联网技术开发人员提供一定的技术参考,同时,也使物联网人才培养方案更丰富多彩。
[参考文献]
[1]杨瑞,董昌春.CC2530单片机技术与应用[M].北京:机械工业出版社,2016.
[2]杨琳芳,杨黎.无线传感网络技术与应用项目化教程[M].北京:机械工业出版社,2017.
[3]肖文超.基于51单片机的智能小车设计[J].工业控制计算机,2016(6):121-122.
[4]谢富珍,戈林发.基于51单片机的智能小车设计[J].新余学院学报,2015(4):6-9.
[5]杨亚龙,刘金栋,孙玉环,等.基于STC12C5410AD单片机的两轮自平衡小车的系统设计[J].电子设计工程,2013(20):162-164.
[6]季鹏飞.基于STM32的两轮自平衡小车控制系统设计[J].电子科技,2014(11):96-99,105.
[7]王素青,熊维堂.基于STM32的两轮自平衡小车系统设计[J].实验室研究与探索,2016(5):146-150.
Design of two-wheel balance car based on CC2530 control chip
Tong Youbo
(Hefei Technical College, Chaohu 238000, China)
Abstract:In this paper, CC2530 single chip microcomputer of Texas Instruments Company is used as the control core, MPU6050 sensor is used to detect the angle and acceleration of the car body, PID algorithm is used to adjust the balance of the car, photoelectric sensor is used to achieve the function of automatic tracing, and so on. In addition to the tracking function of the ordinary balance car, it also uses the wireless receiving module of CC2530 single chip microcomputer to receive the wireless control signal from the outside world, which makes the start and stop control of the car more comfortable and can better adapt to all kinds of practical applications. Make full use of CC2530 to control the on-chip resources and reduce the cost.
Key words:balance car; CC2530 single chip microcomputer; PID algorithm; tracing; wireless control