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更新用のサンプリングレート