基于ADXL345的重力感应遥控器
Abstract: This passage mainly describes a gravity sensor systems based on ADXL345 and HC-05 Bluetooth,introduces the overall design and system structure.
Key words: ADXL345;HC-05 Bluetooth
摘 要: 本文主要描述的是一种基于ADXL345和HC-05蓝牙的重力感应遥控器,介绍其整体的设计方案和系统结构。
关键词: ADXL345;HC-05蓝牙
1、简介
ADXL345是一款小而薄的超低功耗3轴加速度计,分辨率高(13位),测量范围达± 16g。数字输出数据为16位二进制补码格式,可通过SPI(3线或4线)或I2C数字接口访问。ADXL345非常适合移动设备应用。它可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度。其高分辨率(3.9mg/LSB),能够测量不到1.0°的倾斜角度变化。如果平放的情况下,只在Z轴有一个向下的重力加速度,如果倾斜,那么重力将可以分解到XY方向,这样产生了XY方向的加速度,从而可以测得遥控器向哪边倾斜了。当达到某个方向的值后可以让其执行相应的功能,比如控制车前后左右,再通过PWM的调节使车随着倾斜度的增加而加速,也可以利用该遥控器去控制电脑中的极品飞车这款游戏的进行。
1.1、总体设计方案
系统的运行流程图:
2、硬件设计
采用STC12C2052AD系列单片机可以省掉复位电路、外部数据存储器(如24Cxx系列芯片),某些场合还可以省掉晶振,电路简单、价格低廉。一些指令执行速度是传统8051的24倍,最低的也是3倍。用该块单片机的另一个主要原因是它只有20个引脚,体积较其它的单片机大大的减小,用来做遥控器最适合不过。
2.1、电源模块(9V电池、AMS1117-5.0V转压芯片)
电源由变压部分、滤波部分、稳压部分组成。转压芯片是将9V电压转化为5V给单片机正常供电。考虑到电路的稳定性的原因,在转压之前还给AMS1117-5.0V分压,减少它的压降。用大电容装在电源、蓝牙两侧,起到滤波的作用,使数据传输更为稳定,准确。同时也防止了单片机在使用过程中,由于不稳定振荡断开蓝牙,从而导致的失控现象。
2.2、HC-05蓝牙模块
蓝牙模块实物如下,之所以选择该蓝牙,是因为其是主从一体,根据需要设置AT指令让其做主机或从机。使用AT命令进行控制,具有低功耗、体积小和收发灵敏等优点,还可以简化通行结构。因为该模块的传输距离较长,所以可以用来控制玩具小车。
2.3、3D外壳设计
从技术角度来看,3D打印是快速成型技术的一种。利用Soilworks 软件为其设计外观。然后通过Makebot软件转化为打印机识别的格式。因为到最后该款遥控器是要绑在手上进行控制,所以为其设计了这个3D外观。
2.4、PCB图
该PCB设计的时候尽量缩小其体积,使其可戴在手上
2.5、实物图
软件设计
//左右影响的是X,前后影响的是Y---//左负右正,后负前正
unsigned char Left=0x00;
unsigned char Stop=0x11;
unsigned char Back=0x22;
unsigned char Go=0x33;
unsigned char Right=0x44;
//发送数据
void Send(unsigned char CMD)
{
SBUF=CMD;
while(!TI);
TI=0;
}
//对数据进行处理,当倾斜至指定角度就发送相应数据
void Data_Process()
{
XYZ_data[0]=BUF[1]<<8|BUF[0];//X
XYZ_data[1]=BUF[3]<<8|BUF[2];//Y
if(XYZ_data[0]<-110)
Send(Left);
else if(XYZ_data[0]>110)
Send(Right);
else if(XYZ_data[1]<-110)
Send(Back);
else if(XYZ_data[1]>110)
Send(Go);
else Send(Stop);
}
void main()
{
Delay50ms();
UartInit();
Init_ADXL345(); //初始化ADXL345
while(1) //循环
{
Multiple_Read_ADXL345(); //连续读出数据,存储在BUF中
Data_Process();
Delay50ms(); //每50ms发送一次
}
}
4、结束语
该遥控器可用于电脑游戏的操作以及智能小车的控制,10米内控制效果较好,并且用IIC协议控制的ADXL345在很多方面得以应用。
参考文献
[1]ADXL345数据手册.pdf
[2] 蓝牙AT指令集.pdf