ANROT 教學文件

Matlab 串列讀取教學

使用 Matlab 2020 以上版本快速驗證 ANROT 串列埠輸出資料的最小公開流程。

最後更新 2025年1月1日 對應產品 6
  • matlab
  • uart
  • tutorial

使用 MATLAB 讀取 ANROT 串列資料

協議支援

協議 / frame支援狀態這份 example 的處理方式
0x91 IMUSOL支援完整 float frame,填入 raw.imu.acc/gyr/mag/eul/quat
0x90, 0xA0, 0xB0, 0xC0, 0xD0支援可解析 ID、加速度、角速度、磁力計與歐拉角鬆散欄位。
0xD1 Quaternion不支援 standaloneimu_read.m 沒有獨立 0xD1 case;四元數需由 0x91 取得。
0x62, 0x63 Gateway不支援此 MATLAB 範例只處理單一 IMU 資料。
0xF0 Pressure略過程式只跳過 pressure item,沒有輸出 pressure。

這份範例適合已安裝 MATLAB、想快速確認 ANROT IMU / AHRS 是否能被串列埠讀取的使用者。範例會解析資料 frame,並在 Command Window 顯示加速度、角速度、歐拉角與四元數。

下載範例

瀏覽器下載並解壓縮: demo-matlab-en.zip

範例包含:

demo-matlab-en/
├── crc16.m
└── imu_read.m

環境需求

  • MATLAB R2020b 或更新版本。
  • 產品透過 USB 或 USB-UART 轉接器連到電腦。
  • 裝置波特率與 imu_read.m 內的 DEFAULT_BAUD 一致,範例預設為 115200

1. 設定串列埠

開啟 imu_read.m,先確認最上方的設定:

DEFAULT_BAUD = 115200;
PORT = "COM4";

若電腦只偵測到一個串列埠,範例會自動使用該 port;如果有多個 port,請把 PORT 改成 ANROT 裝置所在的 COM port。

2. 執行範例

在 MATLAB 目前資料夾切到解壓縮後的範例目錄,按下 Run。程式會列出可用串列埠,按 Enter 後開始讀取。

成功時 Command Window 會看到類似:

Acceleration (G): 0.010 0.010 1.003
Gyroscope (deg/s): -0.076 0.053 -0.034
Euler (deg): Roll -0.51 Pitch 0.58 Yaw 3.86
Quaternion: 0.999 0.005 -0.004 0.034

可讀取欄位

範例解析後的資料會放在 raw.imu:

  • raw.imu.id: 裝置 ID。
  • raw.imu.acc: 加速度,單位 G。
  • raw.imu.gyr: 角速度,單位 deg/s。
  • raw.imu.mag: 磁力計,單位 uT,需裝置輸出包含磁力計資料。
  • raw.imu.eul: Roll、Pitch、Yaw,單位 degree。
  • raw.imu.quat: 四元數,順序為 W、X、Y、Z。

常見問題

出現 CRC error

通常代表波特率不一致、資料線干擾或選錯串列埠。先確認 DEFAULT_BAUD 與裝置設定一致,再重新插拔 USB 測試。

MATLAB 找不到 serialportlist

請確認 MATLAB 版本為 R2020b 或更新版本。較舊版本的串列埠 API 不完全相容此範例。

如何停止讀取

在 Command Window 按 Ctrl+C,或執行 clear s 釋放串列埠。