Matlab 串列讀取教學
使用 Matlab 2020 以上版本快速驗證 ANROT 串列埠輸出資料的最小公開流程。
- 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 | 不支援 standalone | imu_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 釋放串列埠。