16. Walkera WK-0701 發射器

Walkera WK-0701 發射器隨 Walkera 遙控直升機(如 HM36、HM37、HM60)一同提供。walkera0701 模組可將此發射器用作操縱桿。

開發主頁及下載:http://zub.fei.tuke.sk/walkera-wk0701/

或使用 cogito:cg-clone http://zub.fei.tuke.sk/GIT/walkera0701-joystick

16.1. 連線到 PC

發射器背面有一個 S-video 聯結器。從處理器到高頻部分的調製脈衝可以在該聯結器的引腳 2 上找到,引腳 3 是接地端。在引腳 3 和 CPU 之間可以找到一個 5k6 電阻。要將調製脈衝傳送到 PC,訊號脈衝必須被放大。

電纜:(walkera 發射器到並口)

Walkera WK-0701 發射器 S-VIDEO 聯結器

(back side of TX)
    __   __              S-video:                                  canon25
   /  |_|  \             pin 2 (signal)              NPN           parport
  / O 4 3 O \            pin 3 (GND)        LED        ________________  10 ACK
 ( O 2   1 O )                                         | C
  \   ___   /      2 ________________________|\|_____|/
   | [___] |                                 |/|   B |\
    -------        3 __________________________________|________________ 25 GND
                                                         E

我使用綠色 LED 和 BC109 NPN 電晶體。

16.2. 軟體

使用 walkera0701 模組構建核心。walkera0701 模組需要獨佔訪問並口,因此在載入 walkera0701 模組之前必須解除安裝 lp 等模組,請檢查 dmesg 以獲取錯誤訊息。透過電纜將發射器連線到 PC,並執行 jstest /dev/input/js0 以檢視來自發射器的值。如果發射器“操縱桿”無法改變任何值,請檢查 /proc/interrupts 的輸出。如果發射器開啟,並口(通常是 irq7)的值必須增加。

16.3. 技術細節

驅動程式使用並口 ACK 輸入位的中斷,透過 hrtimers 測量脈衝長度。

幀格式:基於 Shaul Eizikovich 撰寫的 Walkera WK-0701 PCM 格式描述。(下載自 http://www.smartpropoplus.com/Docs/Walkera_Wk-0701_PCM.pdf

16.3.1. 訊號脈衝

                   (ANALOG)
    SYNC      BIN   OCT
  +---------+      +------+
  |         |      |      |
--+         +------+      +---

16.3.2.

SYNC , BIN1, OCT1, BIN2, OCT2 ... BIN24, OCT24, BIN25, next frame SYNC ..

16.3.3. 脈衝長度

 Binary values:               Analog octal values:

 288 uS Binary 0              318 uS       000
 438 uS Binary 1              398 uS       001
                              478 uS       010
                              558 uS       011
                              638 uS       100
1306 uS SYNC                  718 uS       101
                              798 uS       110
                              878 uS       111

24 個二進位制+八進位制值 + 1 個二進位制值 = 24*4+1 位元 = 97 位元

(警告:ACK 上的脈衝被電晶體反轉,中斷在同步到二進位制值變化或八進位制值到二進位制值變化時觸發。)

16.3.4. 二進位制資料表示

一個二進位制值和一個八進位制值可以組合成一個半位元組。在同步脈衝之間可以取樣 24 個半位元組 + 一個二進位制值。

前四個通道(模擬操縱桿值)的值可以在前 10 個半位元組中找到。模擬值由一個符號位和 9 位絕對二進位制值表示。(每個通道 10 位元)。下一個半位元組是前十個半位元組的校驗和。

接下來的半位元組 12 到 21 代表四個通道(並非所有通道都可以直接從發射器控制)。二進位制表示與前四個通道相同。半位元組 22 和 23 中有一個特殊的魔數。半位元組 24 是半位元組 12 到 23 的校驗和。

在半位元組 24 的最後一個八進位制值和下一個同步脈衝之後,可以取樣一個額外的二進位制值。此位元和魔數未在軟體驅動程式中使用。有關這些魔數的更多細節可以在 Walkera_Wk-0701_PCM.pdf 中找到。

16.3.5. 校驗和計算

半位元組中八進位制值的總和必須與校驗和半位元組中的八進位制值相同(僅使用前 3 位)。校驗和半位元組的二進位制值透過檢查過的半位元組中二進位制值的總和 + 檢查過的半位元組中八進位制值的總和除以 8 來計算。僅使用此和的第 0 位。