标题:
基于cortex-M3、ADXL345的重力感应遥控器的实现(转)
[打印本页]
作者:
yuyang911220
时间:
2015-3-29 11:26
标题:
基于cortex-M3、ADXL345的重力感应遥控器的实现(转)
已经是很久没有写文章了,因为没有时间,人家都说大四不考研,天天像过年,可我依旧没能有那份闲暇的时间。
现在几乎人人的手里都是一款安卓智能机这是我非常羡慕的,而我手里只有上学期用
380
元买的一台二手诺基亚
N96
,虽然也称得上智能机但是远远没有如今安卓智能的优秀,其中一个功能就是通过重力感应玩赛车游戏,我想这个大家都不陌生,只要把手机歪一歪斜一斜就可以控制赛车方向了,这个功能令桥哥好生羡慕嫉妒恨,可惜自己的手机不能玩,上周突来灵感何不自己做一个玩玩。正好上学期开始着手给侄子做的四轴飞行器的基板基本调试完成,核心的芯片就是一块
M3
微控器,一块三轴加速度传感器
ADXL345
,一块三轴数字陀螺仪。而要做一个简单的重力感应遥控器用
M3
结合
ADXL345
就可以实现了。实际上由于之前调试把芯片的控制函数都写好了,而且上位机的程序又有之前给学长做毕设的时候写的程序的基础,所以花的时间很少也就两个下午的时间。
要实现一个控制电脑游戏的重力感应遥控器原理也非常简单,无非就是判断此时遥控器倾斜角度,然后
M3
将指令迅速传给电脑,电脑根据指令给出跟敲击键盘方向键一样的指令就完事了。检测倾斜角度由
ADXL345
实现,三轴加速度传感器能够测出静态时
xyz
方向的加速度,如果平放的情况下,只在
z
轴有一个向下的重力加速度,如果倾斜,那么重力将可以分解到
xy
方向,这样产生了
xy
方向的加速度,从而可以测得遥控器向哪边倾斜了。
接下来,
M3
通过
IIC
总线方式读取
ADXL345
测得的
X
轴的加速度数据,只要通过判断
X
轴方向的数据就可以判断基板往哪个方向倾斜了。下面是
M3
的测量代码
M3
判断出倾斜方向之后立即通过
57600
波特率的串口向电脑上位机发送指令,为了提高遥控器灵敏度和反映速度,我这里指令只用了一个字符,
L
代表左,
R
代表右,并且不使用校验,也不需要上位机回应
M3
,
M3
只管往上位机不断发指令就可以了,可以大大提高效率,实际测试中,这种波特率情况下即保证了传输速率,误码率也是较低的。
接下来上位机接收到方向指令后就得通过代码来模拟我们平时敲击键盘的动作,程序也是非常简单。跟我以前做的无线鼠标的实现代码非常的类似。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0