如何使用Andoid智能手机检测方向的变化(以度为单位)

时间:2016-07-27 19:08:54

标签: android arduino rotation accelerometer gyroscope

我要做的是检测......"标题"来自Android智能手机的用户在它的口袋里。例如,让我们说他/她正走在一条直街上。当他/她转向另一条街道x度时,我希望能够检测到那些x度。基本上是对用户有一个法向量,我需要围绕它的原点,用户旋转该向量。

我会更具体。我有一个由加速计和陀螺仪模块(MPU6050)组成的设备,一个蓝牙模块和2个连接到Arduino Nano的超声波传感器,它位于用户手上并发送数据(加速,手的旋转和到物体的距离)到Android设备。使用者将它的手拉在他面前并从左向右移动(就像一个盲人使用白色手杖)。 最初,在启动时,arduino设备校准并考虑用户所面向的方向,它在前面的直线是0度。当用户从左向右移动它时,设备报告手的角度。假设用户将其从最初的直线前移位置向右移动30度,Arduino设备将向智能手机发送+30度。 重要的是我只对手的位置感兴趣。如果用户向右旋转40度,则发送到智能手机的角度将为30 + 40 = 70度。我需要的是减轻这一点,检测Android智能手机上40度的变化并使用它来纠正Arduino设备发送的角度,这样如果用户将其相对于方向指向30度面对,无论它在现实世界中的位置,Android应用程序都会在校正30度后报告手的位置。

我尝试使用此http://www.codingforandroid.com/2011/01/using-orientation-sensors-simple.html,但它没有提供准确,可靠的结果。

我很抱歉这篇长篇文章,我试图尽可能详细地解释我试图解决的问题。

1 个答案:

答案 0 :(得分:0)

根据您的描述,您可以从Android手机获取阅读,而且只是手机上的旋转读数不够准确。如何在身体上添加第三个arduino设备(比如胸部)作为参考点?这样,您只需要读取手和参考点之间的相对程度。