【Flutter】sensors_plusについて

Flutter

sensors_plusとは

sensors_plusは、Flutterアプリケーションで加速度計、ジャイロスコープ、および磁力計センサーにアクセスするためのプラグインです。

取得できるもの
・デバイスの動き
・デバイスの向き
・周囲の磁場情報

sensors_plus | Flutter package
Flutter plugin for accessing accelerometer, gyroscope, and magnetometer sensors.

使い方

sensors_plusは、センサーイベントをストリームとして提供します。以下のイベントクラスが利用可能です。

  • UserAccelerometerEvent: デバイスの加速度(重力の影響を除いたもの)。
  • AccelerometerEvent: デバイスの加速度(重力の影響を含む)。
  • GyroscopeEvent: デバイスの回転速度。
  • MagnetometerEvent: デバイス周囲の磁場。

これらのイベントはそれぞれ、BroadcastStreamとして提供されます。

サンプルコード

以下は各センサーのイベントをリッスンする例です。

import 'package:sensors_plus/sensors_plus.dart';

void main() {
  // Accelerometer
  accelerometerEvents.listen(
    (AccelerometerEvent event) {
      print(event);
    },
    onError: (error) {
      // エラー処理
    },
    cancelOnError: true,
  );

  // UserAccelerometer
  userAccelerometerEvents.listen(
    (UserAccelerometerEvent event) {
      print(event);
    },
    onError: (error) {
      // エラー処理
    },
    cancelOnError: true,
  );

  // Gyroscope
  gyroscopeEvents.listen(
    (GyroscopeEvent event) {
      print(event);
    },
    onError: (error) {
      // エラー処理
    },
    cancelOnError: true,
  );

  // Magnetometer
  magnetometerEvents.listen(
    (MagnetometerEvent event) {
      print(event);
    },
    onError: (error) {
      // エラー処理
    },
    cancelOnError: true,
  );
}

イベントの詳細

  • AccelerometerEvent
  • x: x軸の加速度(m/s²)
  • y: y軸の加速度(m/s²)
  • z: z軸の加速度(m/s²)
  • UserAccelerometerEvent
  • x: x軸の加速度(m/s²)
  • y: y軸の加速度(m/s²)
  • z: z軸の加速度(m/s²)
  • GyroscopeEvent
  • x: x軸の回転速度(rad/s)
  • y: y軸の回転速度(rad/s)
  • z: z軸の回転速度(rad/s)
  • MagnetometerEvent
  • x: x軸の磁場(μT)
  • y: y軸の磁場(μT)
  • z: z軸の磁場(μT)

サンプリングレートの設定

各ストリームでは、サンプリングレートを指定できます。以下の定義済み定数またはカスタム値を使用します。

magnetometerEvents(samplingPeriod: SensorInterval.normalInterval).listen(
  (MagnetometerEvent event) {
    print(event);
  },
  onError: (error) {
    // エラー処理
  },
  cancelOnError: true,
);
  • SensorInterval
  • normalInterval: 通常のサンプリングレート
  • gameInterval: 高速サンプリングレート(ゲーム用)
  • uiInterval: UI更新用のサンプリングレート

Buy me a coffee!

Flutterアプリ開発
シェアする
sogaをフォローする
タイトルとURLをコピーしました