ANT+找樂子(1),建構開發環境
緣起
Garmin單車碼表是高階貨色,行業的領頭羊。搭配ANT+感應器,心跳表,單車踏頻,功率計,然後就被鎖在Garmin宇宙了。寫年度考績表實在壓力太大了,我決定深入看看ANT+協定,找樂子
找樂子工具
我用這些東西找樂子,他們不難找
- Macbook AIR M2
- ANT+ Dongle,下圖左邊的收訊很爛,右邊的好多了,不過都可以用
ANT+ Dongle再說個兩句
右邊的Dongle插入電腦顯示以下資訊,USB廠商識別碼0xFCF(4047),加拿大Dynastream公司在2003年發布ANT規格,2006變成GARMIN子公司
設定開發環境具體步驟
寫下來,下次重灌電腦可以用
- 取得libusb,和USB Dongle打交道
- Windows也許有安裝包可以下載
- MAC靠homebrew裝,我有點抗拒怕把系統弄亂。反正就找樂子,裝吧
- 連進他的網站,命令直接複製貼上
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - 操作brew
brew update // 更新brew工具
brew install libusb // 安裝libusb
brew install joe // 安裝我慣用的editor, joe (這一步可跳過)
brew list // 列出所有安裝的包裹 - 設定openant開發環境,已經有人包好方便的Python套件,找樂子,裝吧
- 建立獨立antdev開發環境,和系統Python隔開
python3 -m venv antdev - 啟用開發環境 & 升級pip
cd antdev
source bin/activate
pip install --upgrade pip - 安裝openant開發包
pip install openant - 掃描ANT+裝置
- 打開手錶的心跳廣播,戴上心跳表,或是讓任何ANT+裝置醒過來
- 輸入命令尋找ANT+裝置
openant scan - 下圖找到裝置
- ID=54345
- Device_type=120
- Transmission_type=241
解析ID
稍微聊一下上面找到的ID,基本上ANT+裝置完整ID是32bit,由三個成分構成{ID, device-type, transmission-type}
- ID=54345,每個ANT+裝置都有16bit ID可以選,這個數值是0~65535,#0不能用
- Device Type=120,每種裝置的定義在官方網站找得到。這個欄位應該很容易理解,要知道是什麼感應器,才能正確解析資料
- Transmission Type=241,16進位0xF1,二進位11110001,可以照下表解析。這裡面有些有趣的事(商業)可以說。暫時我們先無視吧
- pairing bit=1
- independent channel bits=111
- shared address type=000
- network type=1
讀取心跳
找樂子不要想太多,openant網站現成的範例,修改成自己的ID,執行script,就能讀取啦!
留言