ANROT 教學文件

Ubuntu C 範例教學

使用 Ubuntu 環境下的 C 範例讀取 ANROT 感測器資料,適合 makefile 與嵌入式 Linux 工作流。

最後更新 2025年1月1日 對應產品 9
  • ubuntu
  • c
  • tutorial

Ubuntu C 範例

協議支援

協議 / frame支援狀態這份 example 的處理方式
0x91 IMUSOL支援單機 float frame,直接列印 receive_imusol
0x62 GWSOL支援Gateway float collection,列印每個 node。
0x63 GWSOL Compact支援解析 compact header 與 0x93 node block,轉成 float,並列印 gateway timestamp。
0x90, 0xA0, 0xB0, 0xB1, 0xC0, 0xD0, 0xD1支援可解析單欄位輸出模式。
0xF0 Pressure略過程式只跳過 pressure item,沒有輸出 pressure。

這份範例使用 C 語言與 POSIX serial API 讀取 ANROT 串列資料,適合 Ubuntu、Raspberry Pi、Jetson 或其他嵌入式 Linux 平台做最小整合測試。

下載範例

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

解壓縮後主要檔案:

demo_ubuntu/
├── main.c
├── Makefile
├── packet.c / packet.h
└── imu_data_decode.c / imu_data_decode.h

1. 找到 USB-UART 裝置

先在未插入產品時查看 /dev:

ls /dev/ttyUSB*

插入 ANROT 裝置或 USB-UART 轉接器後再執行一次。新增的裝置通常會是 /dev/ttyUSB0/dev/ttyUSB1 這類名稱。

若沒有看到 ttyUSB*,請先確認 USB 線、轉接器與驅動。CP210x、CH340 在多數 Ubuntu kernel 中已內建支援。

2. 編譯

進入範例資料夾後執行:

cd demo-ubuntu-en/demo_ubuntu
make

成功後會產生 main 可執行檔。

3. 執行

命令列只需要填入 /dev/ 後面的裝置名稱:

sudo ./main ttyUSB0

成功後會看到資料持續更新:

畫面中的加速度、角速度、歐拉角與四元數會隨著感測器姿態變化。

4. 修改波特率

範例預設使用 115200。如果產品已設定為 460800921600,請修改 main.c 內的 options.c_cflag:

options.c_cflag = B460800 | CS8 | CLOCAL | CREAD;

修改後重新編譯:

make clean
make

常見問題

無法開啟串列埠

若畫面顯示找不到串列埠,請回到「找到 USB-UART 裝置」確認裝置名稱。

不想每次都使用 sudo

可以把目前帳號加入 dialout 群組,登出再登入:

sudo usermod -a -G dialout $USER

新增自己的 C 檔案

如果要把範例整合進自己的程式,核心檔案是 packet.*imu_data_decode.*。新增檔案到範例 Makefile 時,請把新的 .o 加入第一行的物件檔列表;若需要第三方 library,再用 -l<library> 加到連結參數。