Skip to content

Instantly share code, notes, and snippets.

@GOROman
Created February 28, 2025 05:59
Show Gist options
  • Save GOROman/c9670d29dd50ee918b6e29dacd5dabcf to your computer and use it in GitHub Desktop.
Save GOROman/c9670d29dd50ee918b6e29dacd5dabcf to your computer and use it in GitHub Desktop.
Spresense IMU ボード (CXD5602PWBIMU)

CXD5602PWBIMU (IMUアドオンボード) に関する情報

概要

Spresense IMU ボード (CXD5602PWBIMU) は、16個のMEMS IMUを合成するソニー独自の技術により、単体のMEMS IMUに対して低バイアス変動及び地球時点検出が可能な低ノイズ密度を実現した加速度センサー、ジャイロスコープそれぞれ3軸、合計6軸のIMUボードです。

  • このボードは内部で合成処理を行うため、外からは単体の6軸IMUとして機能します。
  • IMUボードのデバイスドライバは、POSIXに準拠したデバイスファイル(デフォルトパス /dev/imu0 )を介して制御します。

API

利用するAPIは、 open() / ioctl() / read() / close() の4種類のみです。

基本的な流れは、

  1. デバイスファイルのopen()
  2. ioctl()で各種設定
  3. read()でIMUデータの読み出し(必要な期間繰り返す)
  4. close()で終了

となります。

  • open(): デバイスファイルを開き、ファイルディスクリプタ(ファイルアクセスに必要な番号)を取得します。

  • ioctl(): IMUが出力するサンプリングレート、加速度センサーとジャイロスコープのダイナミックレンジ、IMU内部で持っているFIFOの段数、IMUのデータ出力を制御します.

    • SNIOC_SSAMPRATE: IMUが出力するサンプリングレートを設定します。
    • SNIOC_SDRANGE: IMUの加速度センサーとジャイロスコープのダイナミックレンジを設定します。
    • SNIOC_SFIFOTHRESH: FIFOの段数を指定します。
    • SNIOC_ENABLE: IMUのデータ出力を制御します。
  • read(): IMUの6軸データをIMU アドオンボードから読み出します。

  • close(): デバイスファイルをCloseし、IMUを停止させます。

API名 ioctlコマンド名 概略説明
open() IMUのデバイスファイルを開いてファイルディスクリプタを取得します。
ioctl() SNIOC_SSAMPRATE IMUが出力するサンプリングレートを設定します。
SNIOC_SDRANGE IMUの加速度センサーとジャイロスコープのダイナミックレンジを設定します。
SNIOC_SFIFOTHRESH IMU内部で持っているFIFOの段数を指定します。
SNIOC_ENABLE IMUのデータ出力を制御します。
read() IMUの6軸データをIMU アドオンボードから読み出します。
close() デバイスファイルをCloseし、IMUを停止させます。

サンプルコード

リファレンス

  • IMUアドオンボード デバイスドライバ (CXD5602PWBIMU Driver)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment