我正在尝试做的是从口袋里的android智能手机中检测用户的“方向”。例如,假设他/她正走在一条笔直的街道上。当他/她转到另一条街的x度转弯时,我希望能够检测到那些x度。基本上假设用户有一个法向量,我需要得到这个向量围绕它的原点,用户的旋转。
我会说得更具体一些。我有一个设备,由一个加速度计和陀螺仪模块(MPU6050),一个蓝牙模块和两个超声波传感器组成,连接到Arduino Nano上,它位于用户的手上,将数据(加速度,手的旋转和物体的距离)发送到安卓设备。用户将手伸展在前面,并从左向右移动(就像盲人使用白色手杖一样)。最初,在启动时,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,但它不能给出准确、可靠的结果。
很抱歉发了这么长的帖子,我试图尽可能详细地解释我试图解决的问题是什么。
发布于 2016-07-28 07:39:17
从你的描述中,你可以从Android手机上获得读数,只是手机的旋转读数不够准确。添加身体上的第三个arduino设备(比如胸部)作为参考点如何?这样,你只需要读取手和参考点之间的相对度数。
https://stackoverflow.com/questions/38621278
复制相似问题