zsensor --- Zephyr センサーバインディング
zsensor モジュールには Zephyr でセンサーを使うためのクラスがあります。
クラス Sensor --- Zephyr ポート用のセンサー制御
このクラスは、ボード上のセンサーからデータにアクセスするのに使います。センサーの使用方法については、Zephyr のドキュメンテーションの センサー を参照してください。
各ボードのために Zephyr devicetree でセンサーが定義されています。特定のセンサーが測定できる数量は、センサーチャンネルと呼ばれます。センサーは、1つのプロパティの異なる軸またはセンサーが測定できる異なるプロパティを表すために、複数のチャンネルを持つことがあります。定義されたセンサーチャネルについては、後述の Channels を参照してください。各チャンネルには、変更または照会可能な複数の属性を設定できます。定義済みのセンサーチャンネル属性については、後述の Channel Attributes を参照してください。
コンストラクタ
- class zsensor.Sensor(device_name)
デバイス名は、ボードの devicetree で定義されています。たとえば、FRDM-k64f ボードの加速度センサーのデバイス名は「FXOS8700」です。
メソッド
- Sensor.measure()
Zephyr の sensor_sample_fetch を使ってセンサーデバイスから測定サンプルを取得し、それを有用な値として内部のドライバーバッファに格納します。この値は (値の整数部, 値の小数部を百万倍した整数)というペアです。成功した場合は None を返し、失敗した場合は OSError になります。
- Sensor.get_float(sensor_channel)
計測したセンサー値を float で返します。
- Sensor.get_micros(sensor_channel)
計測したセンサー値を100万倍した値を返します。(例: 値が
(1, 500000)であれば1500000を返します)
- Sensor.get_millis(sensor_channel)
計測したセンサー値を1000倍した値を返します。(例: 値が
(1, 500000)であれば1500を返します)
- Sensor.get_int(sensor_channel)
計測したセンサー値の整数部だけを返します。(例: 値が
(1, 500000)であれば1を返します)
- Sensor.attr_set(sensor_channel, channel_attribute, val1[, val2])
指定したチャンネルの属性を指定した値に設定します。
val1が float 型である場合はval2を指定しません。val1が整数型である場合はval2に100万分の1単位の小数部分を指定します。成功した場合は
Noneを返します。それ以外の場合はOSErrorが発生します。
- Sensor.attr_get_float(sensor_channel, channel_attribute)
センサーのチャンネル属性値を float 型で返します。
多くのセンサーは、これも含めて
attr_get系のメソッドをサポートしていません。
- Sensor.attr_get_micros(sensor_channel, channel_attribute)
センサーのチャンネル属性値を100万倍した値を返します。(例: 値が
(1, 500000)であれば1500000を返します)
- Sensor.attr_get_millis(sensor_channel, channel_attribute)
センサーのチャンネル属性値を1000倍した値を返します。(例: 値が
(1, 500000)であれば1500を返します)
- Sensor.attr_get_int(sensor_channel, channel_attribute)
センサーのチャンネル属性値の整数部だけを返します。(例: 値が
(1, 500000)であれば1を返します)
チャンネル
- zsensor.ACCEL_X
X軸の加速度(m/s^2)。
- zsensor.ACCEL_Y
Y軸の加速度(m/s^2)。
- zsensor.ACCEL_Z
Z軸の加速度(m/s^2)。
- zsensor.ACCEL_XYZ
加速度計の3軸すべてを表す擬似チャネル。
Sensor.attr_set()とSensor.attr_get_xxx()メソッドで使います。
- zsensor.GYRO_X
X軸の角速度(radians/s)。
- zsensor.GYRO_Y
Y軸の角速度(radians/s)。
- zsensor.GYRO_Z
Z軸の角速度(radians/s)。
- zsensor.GYRO_XYZ
ジャイロスコープの3軸すべてを表す擬似チャネル。
Sensor.attr_set()とSensor.attr_get_xxx()メソッドで使います。
- zsensor.MAGN_X
X軸の角速度(radians/s)。
- zsensor.MAGN_Y
Y軸の磁場(ガウス)。
- zsensor.MAGN_Z
Z軸の磁場(ガウス)。
- zsensor.DIE_TEMP
デバイスのダイ温度(摂氏)。
- zsensor.PRESS
気圧(キロパスカル)。
- zsensor.PROX
近接度。無次元。値が1の場合、物体が近いことを示します。
- zsensor.HUMIDITY
湿度(パーセント)。
- zsensor.LIGHT
可視スペクトル内の照度(ルクス)。
- zsensor.ALTITUDE
高度(メートル)。
チャンネル属性
- zsensor.ATTR_SAMPLING_FREQUENCY
センサーのサンプリング周波数、つまりセンサーが 1 秒間に測定を実行する回数。
- zsensor.ATTR_LOWER_THRESH
トリガーの下限しきい値。
- zsensor.ATTR_UPPER_THRESH
トリガーの上限しきい値。
- zsensor.ATTR_SLOPE_TH
任意の動き(傾斜)トリガーのしきい値。
- zsensor.ATTR_SLOPE_DUR
トリガーを起動するために傾斜値がしきい値外になる必要がある期間。
- zsensor.ATTR_HYSTERESIS
- zsensor.ATTR_OVERSAMPLING
オーバーサンプリング係数。
- zsensor.ATTR_FULL_SCALE
SI 単位でのセンサー範囲。
- zsensor.ATTR_OFFSET
返されるセンサー値は、オフセットで示された量だけ変更されます: final_value = sensor_value + offset
- zsensor.ATTR_CALIB_TARGET
キャリブレーションターゲット。これは、内部チップのアルゴリズムが特定の軸、またはすべての軸でキャリブレーションを行うために使います。
- zsensor.ATTR_CONFIGURATION
センサーの動作モードを構成します。
- zsensor.ATTR_CALIBRATION
センサーに必要なキャリブレーション値を設定します。
- zsensor.ATTR_FEATURE_MASK
センサー機能を有効/無効にします。
- zsensor.ATTR_ALERT
アラートしきい値またはアラートの有効化/無効化。
- zsensor.ATTR_FF_DUR
自由落下の持続時間をミリ秒単位で表します。実行中にサンプリング周波数が変更された場合は、この属性を設定して、自由落下の持続時間を新しいサンプリング周波数に合わせて調整する必要があります。
- zsensor.ATTR_BATCH_DURATION
ハードウェアバッチ期間(ティック単位)。
- zsensor.ATTR_GAIN
- zsensor.ATTR_RESOLUTION