5107| 4
|
[入门教程] 掌控板制作水平仪【三轴加速度传感器系列1】 |
水平仪的水准管是由玻璃制成,水准管内壁是一个具有一定曲率半径的曲面,管内装有液体,当水平仪发生倾斜时,水准管中气泡就向水平仪升高的一端移动,从而确定水平面的位置。水准管内壁曲率半径越大,分辨率就越高,曲率半径越小,分辨率越低,因此水准管曲率半径决定了水平仪的精度。 这是传统水平仪的原理。作为一名创客怎么能没有自己的水平仪呢?于是乎就自己制作一个。 掌控板自带3轴加速传感器。我们可以直接利用它来制作一个水平仪。我们先看看效果吧。 1. 认识掌控板的3轴 掌控板平放在桌面上,正面朝上,屏幕沿金手指方向为X轴正方向,屏幕沿左边光线传感器方向为Y轴正方向,屏幕沿上方为Z轴正方向。 三轴加速度的测量范围为 -2g 到 +2g 之间。 2. 在屏幕中心位置(64,32)画出一个空心圆,半径为5 3. 在空心圆内部画出一个实心圆,当作一个实心小球,半径3 也就是说,当实心小球所处的位置是x=64,y=32的时候,刚好处于屏幕正中间,处于空心圆内。 4. 增加两个变量xx、yy,表示当前小球的位置,把x轴加速度映射到OLED显示屏的y方向(0-63),把y轴加速度映射到OLED显示屏的x方向(0-127),与x轴和y轴加速传感器联系起来。 由于三轴加速传感器的范围是0-1,是小数,映射后依然可能会出现小数。因此,需要对映射的结果取整。 再把取整后的结果依次和显示屏实心小球的x轴坐标和y轴坐标对应起来 这里特别解释一下,为什么小球的X轴坐标为何对应Y轴加速度,而小球的Y轴坐标对应X轴坐标?如下图所示,X轴加速度正方向,而这个方向是屏幕的y方向;Y轴加速度正方向,而这个方向是屏幕的x方向。 5. 当小球的xx坐标为64,yy坐标为32时,小球刚好在屏幕正中间,此时掌控板处于平衡状态,3颗RGB灯亮起红色光,并且蜂鸣器报警提示。 6. 最后一直循环整个过程,使小球随着掌控板倾斜角度而滚动起来。 初步效果视频。 额,等等,你以为这样子就完了吗? NO。不是的。 还有几个问题: 1. 只有一个空心圆,一个小球(实心圆),界面不是很美观哈,也简单了点。 2. 你会发现小球移动到边界的时候会只见半边脸。哈哈哈。 3. 你会发现小球移动过程中,哪边低就移向哪边,而真正的水平仪是哪边高就移向哪边! 4. 映射在屏幕的范围,应该是0-63和0-127,上面我忘了修改过来。 因此,今天继续改进。 1. 增加水平、竖直方向的两根辅助直线。 2. 改变映射范围,防止小球出边界。 修改映射方向,改变小球随倾斜角度移动的方向。 3. 再把比较完善的代码一起贴出来,大家一起交流。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed