当前位置: 首页 > 文档资料 > 光环板帮助文档 >

感知

优质
小牛编辑
139浏览
2023-12-01

该部分 API 将帮助您使用光环上的各类传感器的状态值,包含按钮、麦克风、加速度计、陀螺仪以及四个触摸点。

省略代码中的halocode

注意:该部分 API 省略了“halocode.”,本篇提及的所有 API 均省略了“halocode.” ,如 led_driver.off( )实际为halocode.led_driver.off()。mBuild 电子模块平台的所有功能均维护在halocode库中,因此我们推荐如下写法,以便将halocode.进行省略,使得代码更简洁。

from halocode import *

板载按钮

is_press()

获取按键当前状态。

返回布尔值, True:按键被按下, 或者 False: 按键未被按下。

板载麦克风

get_loudness(mode = "maximum")

获取声音的响度,参数:

  • mode 字符串类型,有效范围为 "average":获得一段时间内的响度平均值;"maximum":获得一段时间内响度的最大值。显然地,type = "maximum" 时,将更易于构建对声音变化敏感的项目。

返回数值,可能范围为0-100,当返回值为100时,麦克风达到了它的最大量程。

板载触摸按钮

pin0.is_touch()

获取pin口当前状态。
返回布尔值,True:pin口被触摸;False:pin口未被触摸。

pin0.get_touch()

获取对应触摸触点的触摸值。
返回数值,可能的范围是0-100,当触点被触摸时,该数值大小会增加。

pin0.set_touch(pct = "middle")

设置触点的触摸灵敏度,参数:

  • pct 数值或字符串型,默认值为"all"。
    pct 为数值时,有效范围为0-100,表示触点在一段时间内的触摸值变化幅度大于该百分比时会判定被触摸,该数值越小,则触摸越灵敏。
    pct 为字符串类型时,有效范围为"low"/"middle"/"high",表示设置的触摸灵敏度大小。当灵敏度为 "high" 时,触点更易被判定触摸。

pin1.is_touch()

获取pin口当前状态。

pin1.get_touch()

获取对应触摸触点的触摸值。

pin1.set_touch(pct = "middle")

设置触点的触摸灵敏度。

pin2.is_touch()

获取pin口当前状态。

pin2.get_touch()

获取对应触摸触点的触摸值。

pin2.set_touch(pct = "middle")

设置触点的触摸灵敏度。

pin3.is_touch()

获取pin口当前状态。

pin3.get_touch()

获取对应触摸触点的触摸值。

pin3.set_touch(pct = "middle")

设置触点的触摸灵敏度。

板载加速度计

is_shake()

检测光环板是否有被摇晃。
返回值布尔值,True:表示光环板被晃动了;False:表示光环板未被晃动。

get_shakeval()

获得光环板的摇晃强度。
返回数值,可能范围是0-100,数值越大,晃动的强度就越大。

is_freefall()

检测LED灯环是否处于自由落体。
返回布尔值,True:表示光环板自由落体;False:表示光环板未自由落体。

get_accel(axis)

获取三个轴的加速度值,参数:

  • axis 字符串类型,可能的值为 "x"/"y"/"z" 代表光环板定义的坐标轴。
    返回数值,单位是 m/s²。

板载陀螺仪

is_tiltleft()

检测光环板是否向左倾斜,阈值15°。
返回布尔值,True:表示光环板向左倾斜了;False:表示光环板未向左倾斜。

is_tiltright()

检测光环板是否向右倾斜,阈值15°。
返回布尔值,True:表示光环板向右倾斜了;False:表示光环板未向右倾斜。

is_arrowup()

获取箭头是否朝上状态,阈值15°。
返回布尔值,True:表示箭头朝上,False:表示箭头没有朝上。

is_arrowdown()

获取箭头是否朝上状态,阈值15°。
返回布尔值,True:表示箭头朝下;False:表示箭头没有朝下。

is_faceup()

检测LED灯环是否朝上状态。
返回布尔值,True:表示灯环朝上;False:表示灯环未朝上。

is_facedown()

检测LED灯环是否朝下状态。
返回布尔值,True:表示灯环朝下;False:表示灯环未朝下。

is_clockwise()

检测光环板是否绕自身圆心顺时针旋转的状态。
返回布尔值,True:表示光环板正绕自身圆心顺时针旋转;False:表示光环板未绕自身圆心顺时针旋转。

is_anticlockwise()

检测光环板是否绕自身圆心逆时针旋转的状态。
返回布尔值,True:表示光环板正绕自身圆心逆时针旋转;False:表示光环板未绕自身圆心逆时针旋转。

get_roll()

获取姿态角的翻滚角。
返回数值,可能范围为-90 - 90,单位是°。

get_pitch()

获取姿态角的俯仰角。
返回数值,可能范围为-180 - 180,单位是°。

get_yaw()

获取姿态角的偏航角。
返回数值,可能范围为0 - 360,单位是°。
注意:由于没有电子罗盘,所以实际上偏航角只是使用了Z轴角速度的积分。它存在着积累误差。如果是想获得真实偏航角的,这个 API 不适合使用。

get_gyro(axis)

获取三个轴的角速度值,参数:

  • axis 字符串类型,有效值为"x"/"y"/"z",代表光环板定义的坐标轴。
    返回数值,单位是 °/秒。

get_rotation(axis)

获得光环板在三个轴上转动的角度,以逆时针转动方向为正方向,,参数:

  • axis 字符串类型,有效值为"x"/"y"/"z",代表光环板定义的坐标轴。
    返回数值,单位是 °。

reset_rotation(axis= "all")

初始化绕三个轴转动的当前角度为0,get_rotation() 函数将从 0 开始计算,参数:

  • axis 字符串类型,有效值是 "x"/"y"/"z"/"all"。"x"/"y"/"z"代表光环板定义的坐标轴。默认值为 "all" 代表全部的三个轴。

计时器

timer.get()

获取光环板计时器的时间。
返回数值,单位为秒。

timer.reset()

将光环板计时器的时间置零。