文章總列表

ANT+找樂子(1),建構開發環境

緣起

Garmin單車碼表是高階貨色,行業的領頭羊。搭配ANT+感應器,心跳表,單車踏頻,功率計,然後就被鎖在Garmin宇宙了。寫年度考績表實在壓力太大了,我決定深入看看ANT+協定,找樂子



找樂子工具

我用這些東西找樂子,他們不難找

  • Macbook AIR M2
  • ANT+ Dongle,下圖左邊的收訊很爛,右邊的好多了,不過都可以用



ANT+ Dongle再說個兩句

右邊的Dongle插入電腦顯示以下資訊,USB廠商識別碼0xFCF(4047),加拿大Dynastream公司在2003年發布ANT規格,2006變成GARMIN子公司



設定開發環境具體步驟

寫下來,下次重灌電腦可以用

  1. 取得libusb,和USB Dongle打交道
    1. Windows也許有安裝包可以下載
    2. MAC靠homebrew裝,我有點抗拒怕把系統弄亂。反正就找樂子,裝吧
      1. 連進他的網站,命令直接複製貼上
        /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

      2. 操作brew
        brew update // 更新brew工具
        brew install libusb // 安裝libusb
        brew install joe // 安裝我慣用的editor, joe (這一步可跳過)
        brew list // 列出所有安裝的包裹

  2. 設定openant開發環境,已經有人包好方便的Python套件,找樂子,裝吧
    1. 建立獨立antdev開發環境,和系統Python隔開
      python3 -m venv antdev

    2. 啟用開發環境 & 升級pip
      cd antdev
      source bin/activate
      pip install --upgrade pip

    3. 安裝openant開發包
      pip install openant

  3. 掃描ANT+裝置
    1. 打開手錶的心跳廣播,戴上心跳表,或是讓任何ANT+裝置醒過來
    2. 輸入命令尋找ANT+裝置
      openant scan
    3. 下圖找到裝置
      - 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,就能讀取啦!




TODO

在Linux安裝環境的指令



留言

這個網誌中的熱門文章

STM32 UART + DMA,使用HAL實作TX/RX,以及不定長度接收

小米掃地機器人S20+ review

玩CAN bus的傢伙們 (1) CandleLight-based USB-CAN