Ubuntu C 範例教學
使用 Ubuntu 環境下的 C 範例讀取 ANROT 感測器資料,適合 makefile 與嵌入式 Linux 工作流。
- 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。如果產品已設定為 460800 或 921600,請修改 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> 加到連結參數。