APP下载

采用数字加速度传感器的重力感应无线小车设计

2015-12-06杨晓多刘述喜

重庆理工大学学报(自然科学) 2015年10期
关键词:遥控重力小车

杨晓多,刘述喜,李 山

(重庆理工大学电子信息与自动化学院,重庆 400054)

重力感应是对地球重力加速度的感测。当前,重力感应已广泛应用于手机、平板电脑、可穿戴设备等大量消费类电子产品中,并在导航、工业控制、震动检测、建筑仪器等领域有大量应用[1-4]。采用重力感应控制技术对被控对象进行控制是近年来新兴的一种控制技术,有着广阔的前景和市场。相比传统的人机控制,它使用方便、控制简单,且没有机械磨损等因素制约控制稳定性,因而使用寿命更长,控制可靠性更好[5-6]。

本设计使用ADXL345数字式加速度传感器作为重力感应控制的传感器,结合MSP430单片机以及nRF24L01无线收发芯片,实现了使用重力感应无线控制小车的目的。通过遥控模块的前倾、后倾、左倾和右倾动作,实现了对小车的前进、停止、左转和右转的无线控制。实际测试结果表明:遥控模块和小车符合重力感应控制要求,且反应灵敏,动作可靠。

本设计不同于以往采用模拟式加速度传感器作为重力感应控制传感器的设计,采用数字式加速度传感器时,不需要对传感器输出的模拟量进行A/D模数转换,可直接读取数字式传感器内部寄存器的数据,从而减少控制器内部ADC模块的使用或省去外部添加A/D模数转换的电路设计步骤。

1 系统方案

本系统由遥控模块和小车模块两部分构成。

遥控模块以MSP430g2553单片机为控制器,采用ADXL345数字式超低功耗三轴加速度传感器对遥控板姿态进行检测,以nRF24L01 2.4 GHz无线通信芯片作为无线发送装置。使用5 V锂电池,通过AMS1117稳压器降至3.3 V对遥控模块供电。ADXL345数字式加速度传感器将遥控模块的三轴加速度数据通过I2C通信协议传输至单片机。单片机通过对加速度信号的处理计算出需要的控制信号,最后通过nRF24L01无线模块将控制信号发送给接收端设备。

小车模块以MSP430f149单片机作为控制器,采用L298N电机驱动芯片电路作为电机驱动电路,同样以nRF24L01 2.4GHz无线通信芯片作为无线接收装置,使用NOKIA5110液晶作为监视设备显示小车运行状态。使用5 V锂电池对电机驱动电路供电,并通过 AMS1117稳压器降压至3.3 V对单片机和无线芯片供电。nRF24L01接收端接收到来自遥控模块的控制信号后,通过输出不同占空比的方波PWM信号对小车的2个电机进行调速,从而实现电机转速转差以控制小车行进。

遥控模块结构框图如图1所示,小车模块结构框图如图2所示。

图1 遥控模块结构框图

图2 小车模块结构框图

2 重力感应控制实现原理

重力感应是指对物体重力加速度的感知和测量,通过判断物体的重力方向从而获取物体的姿态[6]。以本设计采用的 ADXL345加速度传感器为例,以其芯片重心构建笛卡尔右手坐标系[1]。在加速度传感器重心平面平行于水平面且静止时(如图3所示),加速度传感器仅受重力作用,此时测得加速度为Z轴方向,值为-g m/s2,传感器输出加速度值为Zout=+g m/s2。

图3 传感器底面平行于水平面且静止时的受力示意图

在空间系中对物体重心的重力向X轴、Y轴和Z轴进行投影,如图4所示。

图4 加速度的空间力系分解

根据力学理论,力在轴上的投影等于力矢量与该轴单位矢量的数量积。在三维空间力系中,设力F与X轴、Y轴和Z轴的夹角分别为α,β和γ,则可直接得到力F在X轴、Y轴和Z轴上的投影[4],见式(1)。

根据力学理论,力与加速度的矢量方程为

代入式(1),得到加速度在空间力系中的三维投影表达式:

当计算测量传感器姿态角度时,对加速度传感器进行姿态改变。传感器稳定时,不考虑姿态变换对总加速度的影响,此时传感器仅受到重力作用,加速度a=g。通过数学变换,得到判断传感器姿态的角度方程式,即式(4)。

其中:加速度aX,ay和aZ分别为三轴加速度传感器测得的各轴加速度。

以本设计中遥控模块沿X轴前倾为例。当遥控模块左倾α角度时,传感器受力如图5所示。

图5 遥控模块左倾时的受力分析

由图5可知:将重力加速度分解在Z轴和Y轴方向上,则分解得到的Z轴和Y轴上的重力加速度分别为gcosα和gsinα。此时,角度α即为加速度传感器倾角。从ADXL345加速度传感器中读出Z轴和Y轴上的加速度值,通过式(5)即可算出倾角α的度数。

由于ADXL345加速度传感器三轴输出的加速度值有正、负方向之分,故在计算倾角时需要加绝对值[7-8]。通过Y轴、Z轴的加速度正负判断倾斜方向。

3 系统硬件设计

遥控模块和小车模块的控制器均采用MSP430单片机。该单片机是一款TI公司出品的16位超低功耗单片机,具有片内资源丰富、功耗低、运算速度较快以及具有精简指令集等特点[9]。遥控部分选用MSP430g2553型号单片机,该单片机体积小且I/O口数目可以满足遥控部分需求;小车部分采用MSP430f149型号单片机,该单片机内部16位定时器Timer_B可以发出7路独立PWM波,并能通过选择不同的时钟源得到频率可调的PWM波。

数字式三轴加速度传感器ADXL345是由美国亚德诺半导体技术有限公司开发的一款小而薄的加速度传感器,具有13位分辨率、测量范围±16 g、功耗低等特点[8-10]。它可以直接将测得的加速度值以16位二进制补码输出,单片机可通过SPI或I2C通信方式进行访问[11]。为节省遥控模块单片机的I/O口占用,本设计采用两线制的I2C总线协议。ADXL345加速度传感器电路原理如图6所示。

图6 ADXL345加速度传感器电路原理

ADXL345数字加速度传感器自带偏移寄存器,可以通过设置该寄存器来进行三轴加速度的调零。单片机可从 ADXL345内部的 DATAX0、DATAX1、DATAY0、DATAY1、DATAZ0、DATAZ1 6个寄存器中读出加速度数据。ADXL345每一轴的加速度数据为16位,需要对上述6个寄存器的数据进行组合得出X,Y和Z三轴的加速度数据,加速度值与输出的二进制补码呈线性关系[5]。无线收发模块采用nRF24L01芯片组成的2.4 GHz无线通信电路。该无线通讯模块最大发射功率可达0 dBm,最大传输速率为2 000 kbps,有效传输距离为80~100 m。对nRF24L01芯片内部寄存器进行初始化设置,设置为频道0通讯、自动应答、收发数据长度为32 字节[12-13]。2.4 GHz无线通信电路原理如图7所示。

图7 2.4 GHz无线通信电路原理

电机驱动电路选择以L298N高电压、大电流电机驱动芯片构建的电路。L298N是一种双全桥电机驱动芯片,拥有2个H桥大功率双全桥驱动模块,可直接由单片机的I/O接口提供时序信号控制电机[9,14]。该电机驱动芯片控制端为ENA、ENB、IN1、IN2、IN3、IN4。其中,ENA 和 ENB 控制端接收来自单片机的占空比可调PWM波,从而实现对电机转速的控制,IN1、IN2、IN3、IN4 4个控制端以2个为一组分别控制电机A和电机B的正传、反转、制动、自由停止工作状态。H桥可逆L298N控制电路需在电机电枢加装4个二极管,以起到续流作用,从而避免产生电流冲击损坏电机。L298N电机驱动芯片电路原理如图8所示。

图8 L298N电机驱动芯片电路原理

4 软件设计

本系统分别采用MSP430g2553单片机和MSP430f149单片机作为遥控模块和小车模块的控制器,两者同属于MSP430系列单片机。它们在编程方式、代码编译和代码烧录方式上相似。使用IAR Embedded Workbench编程软件对系统的2个子模块进行程序编写,软件全部采用C语言编写。由于整体程序复杂且冗长,故采用编写头文件的方式对每个模块内部的子程序进行打包,以增强程序的可读性和简洁性。

通过ADXL345数字式三轴加速度传感器只能得出三轴加速度的值,如果需要判断遥控板的姿态,则需要通过软件进行数学处理,将三轴的加速度值转换为各轴与受力方向的倾角。

遥控模块的程序包括单片机初始化子程序、ADXL345加速度传感器初始化子程序、nRF24L01芯片初始化子程序、加速度数据处理子程序、无线发送子程序。小车模块的程序包括单片机初始化子程序、nRF24L01芯片初始化子程序、PWM波输出子程序、液晶芯片初始化子程序、无线接收子程序。图9为小车模块和遥控模块程序流程。

4.1 ADXL数字加速度传感器初始化

由于ADXL加速度传感器是一款数字式传感器,故在使用前需对内部寄存器设置相应的参数。通过内部寄存器 DATA_FORMAT、BW_RATE、POWER_CTL、INT_ENABLE 等进行参数设置[8],系统上电后,单片机只需从 ADXL345内部的DATAX0、DATAX1、DATAY0、DATAY1、DATAZ0、DATAZ1 6个寄存器中读出加速度数据并合成处理,即可得到倾角度数和倾角方向。

4.2 数据处理

在ADXL345加速度传感器中,X,Y,Z轴的数据分 别 寄 存 在 DATAX0、DATAX1、DATAY0、DATAY1、DATAZ0、DATAZ1中。以 X轴为例,寄存器DATAX0是X轴加速度的低字节存储器,寄存器DATAX1是X轴加速度的高字节存储器。此时,需要对这2个高低字节存储器的数据进行组合才能得到16位的X轴的加速度数据。由于设置为13位分辨率模式,故在该模式下组合后的高4 位数据是符号位[8]。

图9 小车模块和遥控模块程序流程

在得到各轴的加速度值后,不能直接判断遥控模块的姿态,需要通过数学处理将各轴的加速度值转化为倾斜方向和倾角,从而判断出遥控模块的姿态,进而控制小车的运行。在系统遥控模块中,当单片机读取到三轴加速度值后,使用C语言math.h头文件中的atan2正切函数处理三轴加速度得到倾角方向和大小。当得到倾角大小和方向后得出的具体控制信号发出情况如表1所示。

表1 遥控模块控制信号发出表

得到遥控模块的倾角和倾斜方向后,使用判断语句,由nRF24L01无线芯片发出小车运行的控制信号。

4.3 PWM调速控制转向

小车模块在收到由遥控模块发出的控制信号之后,需要对L298N电机驱动芯片输入控制信号从而实现小车的前进、左转、右转和停止。当需要进行左转、右转控制时,通过两电机的不同转速形成两轮转速差来实现小车的左转、右转操作。

通过对MSP430单片机内部定时器Timer_B进行设置,实现两路占空比不同且可变的PWM波输出[9,15],分别输入 L298N 的 ENA、ENB 控制端,实现小车两轮的转速差调节。将MSP430内部定时器Timer_B的TBCTL控制寄存器设置为16位计数长度,时钟选择为辅助时钟ACLK,上升计数模式计数到CCR0,清除原有Timer_B内部计数制,具体的语句为:

TBCTL=CNTL_0+TBSSEL_1+MC_1+TBCLR;

例如,当单片机接收到遥控模块发来的左转信号时,定时器输出占空比为30%和90%的两路PWM波,使得L298N输出两路电压为1.5 V和4.5 V的直流电压向减速电机供电,从而达到转向目的。

4.4 实验

设计了一台小车模型,如图10所示。左侧为以MSP430g2553单片机为控制器的遥控模块,通过ADXL345数字加速度传感器检测出遥控板的倾斜状态,并通过nRF24L01发出控制信号;右侧为以 MSP430f149为控制器的小车模块,通过nRF24L01接收端接收遥控模块发出的控制信号后,由单片机控制L298N电机驱动电路实现对2个车轮的减速电机控制,使小车做出符合设计需求的前进、左转、右转和停止动作。

以图10为例,图中所示为遥控板右倾时对小车控制的操作。当遥控板右倾时,遥控模块控制器发出右转信号,小车模块同时接收到右转信号,之后,由MSP430f149单片机发出PWM波和电机控制信号,使得小车右转,液晶显示模块显示当前为右转状态——“Right turn”。

实验结果表明:遥控模块和小车模块工作正常,能满足设计要求的重力感应无线控制小车的前进、左转、右转和停止操作。整个实验过程灵敏度高、系统响应快且稳定性好。

图10 小车模型实物

5 结束语

本设计实现了基于ADXL345数字加速度传感器的重力感应无线小车。通过硬件电路设计、软件程序编写、实物模型制作和系统反复调试,最终实现了通过遥控模块前倾、后倾、左倾和右倾动作控制小车的前进、左转、右转和停止操作,达到了重力感应无线控制小车的目的。在重力感应技术日益发展的今天,这种技术还可以应用到其他工业控制对象中。

[1]李超.重力感应技术在智能手机及平板电脑中的应用分析[J].无线互联科技,2012(1):46-52.

[2]方跃春,马勇赞.基于电磁控制的周期运动装置设计[J].电子世界,2013(18):142-143.

[3]刘均,邹彦艳.钻井工具偏角测量与控制系统设计与实现[J].科学技术与工程,2012,12(13):3111-3115.

[4]袁西,陈栋,田湘,等.三轴数字加速度计在捷联惯导ADXL345及其中的应用[J].电子设计工程,2010,18(3):138-140.

[5]杨苗军,胡佳文,金华园,等.基于自由摆的平板控制系统设计[J].微型机与应用,2012,31(18):72-74.

[6]陈伟.智能手机的重力感应体验[J].科技与生活,2011(21):175-176.

[7]王爱勤.理论力学[M].西安:西北工业大学出版社,2009.

[8]Analog Devices.Inc.Three-axis,±2/4/8/16g digital accelerometer ADXL345 datasheet[EB/OL].[2008-10-11].http://www.analog.com/static/imported-files/zh/data_sheets/ADXL345_cn.pdf.

[9]刘迪,陆檑,朱晓非,等.基于MSP430控制的智能小车设计[J].新型工业化,2014,4(3):70-73.

[10]张兢,王猛,李成勇,等.基于红外光电传感器和语音识别技术的智能循迹小车设计[J].重庆理工大学学报:自然科学版,2012,26(7):38-41.

[11]黄晓东,黄晓华.微电子机械系统ADXL345的应用研究[J].企业技术开发,2012,31(16):28-30.

[12]陈晖,张军国,李默涵,等.基于STC89C52和nRF24L01的智能小车设计[J].现代电子技术,2012,35(17):12-15.

[13]杨会成,费琛,王筱薇倩,等.小波包变换在智能循迹小车系统中的应用[J].重庆理工大学学报:自然科学版,2012,26(10):6-10.

[14]赵晓凤,张顺,周璨瑜,等.基于蓝牙小车的控制系统[J].电子科技,2014,27(7):155-158.

[15]Texas Instruments.Inc.MSP430x1xx Family User’s Guide[EB/OL].[2006-04-01].http://www.ti.com.cn/cn/lit/ug/slau049f/slau049f.pdf.

猜你喜欢

遥控重力小车
疯狂过山车——重力是什么
“遥控”老师
重力性喂养方式在脑卒中吞咽困难患者中的应用
大车拉小车
自制小车来比赛
重力之谜
他是如何遥控引爆的
刘老师想开小车
两轮自平衡小车的设计与实现
一张纸的承重力有多大?