加速度计

喜夏-厌秋 提交于 2019-12-04 23:18:14

加速度计

正如其名字所暗示的那样,BBC micro:bit加速度计:位测量加速度。加速度可以测量

+2g到-2g之间的加速度。

Micro:bit沿着三个轴测量运动:

  • X - 从左向右倾斜。
  • Y - 向前和向后倾斜。
  • Z - 上下移动。

基本功能

每个轴的测量值为正数或负数,以毫欧为单位表示数值。当读数为0时,沿着该特定轴是“水平”。1024毫微克是重力加速度。

你可以一次访问一个加速度测量值,或者一次获取所有三个值并将其存储在一个列表中。现在只需使用下面的代码:

 

from microbit import *

while True:

    x = accelerometer.get_x()

    y = accelerometer.get_y()

    z = accelerometer.get_z()

    print("x, y, z:", x, y, z)

    sleep(500)

上传并打开串口监视器。握住microbit LED最上面。您应该看到X和Y加速度接近零,Z加速度接近-1024。这告诉你重力相对于微位向下。翻转电路板,使LED离地面最近。Z值在+1024毫克时应为正值。如果你强烈地摇动你的micro:bit,你会看到加速度达到±2048毫克。那是因为这个加速度计被设置为测量最大值±2048毫吉-g:真实的数字可能会比这更高。

如果你想知道手机如何知道在屏幕上显示图像,那是因为它使用的加速度计与上述程序完全相同。游戏控制器还包含加速计以帮助您在游戏中引导和移动。

手势

有一个加速度计真正有趣的副作用是手势检测。如果您以某种方式(如手势)移动 micro:bit,则MicroPython可以检测到这一点。

MicroPython能够识别以下手势:updown leftrightface upface downfreefall3g6g8g shake。手势总是以字符串表示。虽然大多数的名字应该是显而易见的,并且手势应用在设备遇到的重力(当宇航员发射到空间等),这些水平。

要获得当前手势,请使用该accelerometer.current_gesture方法。其结果将成为上面列出的命名手势之一。例如,如果它是正面朝上的,这个程序会让你的设备呈现笑脸:

from microbit import *

while True:

    gesture = accelerometer.current_gesture()

    if gesture == "face up":

        display.show(Image.HAPPY)

    else:

        display.show(Image.ANGRY)

再次,因为我们希望设备对不断变化的环境作出反应,我们使用一个while循环。在循环的范围内,当前手势被读取并放入gesture。在if有条件的检查,如果gesture是等于(Python使用测试相等,一个等号用于分配-就像我们如何分配的姿态阅读的对象)。如果手势相同, 则使用显示器来显示一张笑脸,不同,该设备就会看起来很生气!"face up"===gesture"face up"  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!