【问题标题】:Graphics design for tilt sensor using pitch and roll value使用俯仰和横滚值的倾斜传感器图形设计
【发布时间】:2014-08-06 04:38:25
【问题描述】:

我正在尝试使用“C”基于俯仰和横滚值设计图形。为此,我有一个倾斜传感器(加速度计),它会吐出滚动和俯仰值。我想使用应该能够向我显示倾斜传感器倾斜方向的图形。

以下是我的程序中的一些代码,用于确定角度(基于俯仰和滚动值)。

szBuff[] 具有 R:SXXX.XX P:SXXX.XX\r\n 格式的数据

其中 S= 符号,R= 滚动,P= 俯仰。

    if (szBuff[2] == '+' && szBuff[12] == '-')
    {
       -------------------------------------    
       if(pitch>roll){                             
        Angle = atan(pitch / pitch- roll);             // Insert formula here 
       -------------------------------------
      }
    }  

这里的俯仰和横滚是没有符号的。

我画了一条根据俯仰和横滚值偏转的线。使用上述算法,我计算了它必须偏转的角度。

 line((left+150),(top+150),((left+150)+150*cos(Angle)),((top+150)+150*sin(Angle)));

我需要一个可以实现我的目标的数学方程式。 Angle = atan(pitch / pitch -roll) 未绘制所需的角度。仅对于相同的俯仰和滚动,它才成立并抛出 90 度(这意味着我正在向前倾斜传感器)。那么你能否用一些数学表达式替换角度公式,它可以根据滚动和俯仰生成倾斜角度。

我附上了输出的屏幕截图。如果您发现我的问题模棱两可,请原谅并建议改进问题,以便我得到回答。

【问题讨论】:

  • 两个参数版本atan2(y,x)对你有帮助吗?这是从 x 和 y 坐标获取角度的标准方法。
  • 验证您的倾斜台是否以您使用的单位(弧度/度)返回值,然后确保将倾斜台的运动范围校准到所代表的角度范围.用手写出你需要的方程式,然后把倾斜表吐出的数字代入。古老的慢科学方法……
  • 俯仰和横滚是在度数方面。我没有关于 X、Y、Z 的信息,我想利用倾斜传感器的串行数据来绘制沿您倾斜方向移动的线,您的倾斜传感器在其中。

标签: c math pitch tilt-sensor


【解决方案1】:

通常,俯仰和滚动是角度。我假设roll是围绕垂直轴旋转的角度,pitch是围绕水平轴旋转的角度。

然后你可以计算3d位置:

x = sin(roll) * cos(pitch)
y = sin(pitch)
z = cos(roll) * cos(pitch)

rollpitch 都应该包含它们的符号。

您似乎想将此向量投影到固定平面上,可能是 xz 平面。然后你可以使用:

line( left+150,
      top+150,
      left+150+150*x,
      top+150+150*z );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多