fusion_hat.modules.compass モジュール

class fusion_hat.modules.compass.Compass(placement=['x', 'y', 'z'], offset=[0, 0, 0, 0, 0, 0], declination="0°0'W", field_range='8G')[ソース]

ベースクラス: Magnetometer

磁力計データから方位角を読み取り、計算するためのコンパスモジュールです。

このクラスは Magnetometer クラスを拡張し、方位情報を必要とするプロジェクトに簡単に統合できるコンパス機能を提供します。

公開メソッド:

read_raw(): 生の磁場データを取得します。 read(): 方位角を含む処理済みコンパスデータを取得します。 read_angle(): 方位角のみを取得します ( オプションでフィルタリング )。 set_offset(): オフセット値を用いてコンパスをキャリブレーションします。 set_magnetic_declination(): 地域の磁気偏角を調整します。 clear_calibration(): すべてのキャリブレーションデータをリセットします。

FILTER_SIZE = 30
read_raw()[ソース]

生の磁力計データを読み取ります。

戻り値:

mGauss 単位の生の磁場データ [x, y, z] です。

戻り値の型:

list

angle_str_2_number(str)[ソース]

磁気偏角を文字列形式から数値に変換します。

パラメータ:

str (str) -- "DD°MM'E" または "DD°MM'W" 形式の磁気偏角です。

戻り値:

度単位の磁気偏角です ( 東は正、 西は負 )。

戻り値の型:

float

angle_number_2_str(number)[ソース]

磁気偏角を数値から文字列形式に変換します。

パラメータ:

number (float) -- 度単位の磁気偏角です ( 東は正、 西は負 )。

戻り値:

"DD°MM'E" または "DD°MM'W" 形式の磁気偏角です。

戻り値の型:

str

read()[ソース]

処理済みのコンパスデータを読み取ります。

戻り値:

処理済み磁場データ ( x, y, z, angle ) です。 x, y, z はオフセット適用後の mGauss 値、 angle は度単位の方位角です。

戻り値の型:

tuple

read_angle(filter=False)[ソース]

現在の方位角を読み取ります。

パラメータ:

filter (bool, optional) -- 移動平均フィルタを適用するかどうかです。 デフォルトは False です。

戻り値:

度単位の方位角 ( 0–360 ) です。

戻り値の型:

float

set_offset(offset)[ソース]

磁力計のキャリブレーションオフセットを設定します。

パラメータ:

offset (list) -- mGauss 単位のキャリブレーションオフセットです。 形式: [x_min, x_max, y_min, y_max, z_min, z_max]。

参考:

https://www.appelsiini.net/2018/calibrate-magnetometer/

set_magnetic_declination(angle)[ソース]

磁気偏角を設定します。

パラメータ:

angle (str or float or int) -- 磁気偏角です。 以下のいずれかを指定できます。 - 文字列形式: "DD°MM'E" または "DD°MM'W" - 数値形式: 度 ( 東は正、 西は負 )

clear_calibration()[ソース]

すべてのキャリブレーションデータをクリアします。

すべての最小値 / 最大値およびオフセットをゼロにリセットします。