IMS-SDデバイス用のPythonライブラリです。シリアル通信によるデバイス制御、データ収集、ファイル操作などの機能を提供します。
- デバイス接続・制御: シリアル通信によるIMS-SDデバイスの制御
- リアルタイムデータ収集: PCへのリアルタイムデータ取得とCSV保存
- SDカード操作: SD内ファイルの一覧取得、ダウンロード、削除
- BINファイル変換: SDからダウンロードしたBINファイルをCSVに変換
- 校正データ対応: 9軸センサーの校正データを使用した工学値変換
ims_device.py- IMS-SDデバイス制御クラス(59メソッド)serial_comm.py- シリアル通信管理クラスpacket_parser.py- データパケット解析・工学値変換data_collector.py- データ収集・測定条件設定
pc_data_recorder.py- PCリアルタイムデータ記録pc_data_recorder_with_trigger.py- 外部トリガ待機付きPC記録sd_data_recorder.py- SD記録(内部トリガ)sd_data_recorder_with_trigger.py- SD記録(外部トリガ待機)sd_file_downloader.py- SDファイルダウンロードbin_to_csv_converter.py- BIN→CSV変換器
requirements.txt- 依存パッケージ(pyserial==3.5)IMS-SD_Command_Reference.md- コマンド一覧表
- Python 3.x
- Windows(シリアル通信バッファ設定のため)
- IMS-SD HighEndモデル(バージョン2.2.0以上)
pip install -r requirements.txtfrom ims_device import ImsDevice
device = ImsDevice()
if device.connect("COM3"):
print("接続成功")
print(f"シリアル番号: {device.serial_number}")
print(f"バージョン: {device.version}")from pc_data_recorder import PcDataRecorder
from data_collector import setup_measurement_conditions
# 測定条件設定(100Hz, まとめ数10, 30G)
setup_measurement_conditions(device, frequency=100, matome_pc=10, acc_range=30)
# データ記録実行
recorder = PcDataRecorder(device)
recorder.record_data(duration=10.0) # 10秒間記録from sd_file_downloader import SdFileDownloader
downloader = SdFileDownloader(device)
downloader.download_latest_file() # 最新ファイルをダウンロードfrom bin_to_csv_converter import BinToCsvConverter
converter = BinToCsvConverter()
converter.convert_file("TEST_001.BIN") # BIN→CSV変換IMS-SDデバイスの全機能を管理するメインクラス
- 接続・切断管理
- 測定条件設定(周波数、レンジ、バンド帯域等)
- SD保存設定(ヘッダ、保存時間、電池管理等)
- ファイル操作(一覧、ダウンロード、削除)
- 校正データ取得(加速度、ジャイロ、地磁気)
データパケットの解析と工学値変換
- 9軸センサーデータの工学値変換
- 校正データを使用した補正処理
測定条件設定とデータ収集の統合機能
- 測定条件の一括設定
- リアルタイムデータ収集
- CSV出力機能
- パケットサイズ:4 + (9ch × 2byte × PCまとめ数) + 4 バイト
- ヘッダー:0xAA x 4(固定4バイト)
- データ:9軸センサーデータ(9ch × 2byte)× PCまとめ数
- フッター:0x55 x 4(固定4バイト)
- 8194バイト単位での受信
- 先頭2バイト:データ数(リトルエンディアン)
- 0xFFFF:ダウンロード失敗
- 0x0000:ダウンロード完了
- 測定周波数: 1,2,5,10,20,50,100,200,500,1000 Hz(ただしPC保存は100Hz上限)
- 加速度レンジ: ±4,8,16,30 G
- ジャイロレンジ: ±4000 deg/s
- PCまとめ数: 測定周波数÷10程度に設定すること
- IDLEステータス時のみ設定変更可能
- シリアル通信は921600bps、RTS/CTS
- HighEndモデル専用(Standardモデル非対応)
各機能のサンプルコードは対応する.pyファイルのmain関数を参照してください。
詳細なコマンド仕様はIMS-SD_Command_Reference.mdを参照してください。