MTO1804無刷電機引發的悲慘經歷之一:起底神秘的無名電調


原創文章,轉載引用請務必注明鏈接,水平有限,如有疏漏,歡迎指正。
這個無刷電機、電調背后的知識着實繁復。設想中的學習過程是,“初極狹,才通人,復前行,豁然開朗,便至桃花源”。然而現實中是,爬出來一個坑,又掉進一個更大的坑,不禁感嘆學海無涯回頭是岸,乃至現在打字記錄時,滿紙辛酸淚。

首先感謝DFRobot論壇的活動以及小77,電機拿到手之后對比我之前的XXD C2312-13T無刷電機,發現真的很小。另外看到其他壇友的發帖,有的說CW也有說CCW,說明一些小概念也很模糊。這里就以探究神秘無名電調真面目為主線,和大家整理分享一下最近學了點啥。
電機對比
CW
硬件列表:

  • DF MOT1804無刷電機+電調
  • 富斯FS-T6遙控器(日本手)+R6B接收機接收機 / 富斯FS-i6x遙控器(美國手)+FS-RX2A Pro V1迷你接收機
  • 3S 2200mAh 鋰聚合物電池

1、基礎知識

這倆就不寫了,分享下視頻,大家都講得比我好。

1.1 什么是無刷電機

1.2 什么是電子調速器

2、產品解讀

我們來到DFRobot這款無刷電機的產品頁面,首先來看看無刷電機本體,主要參數包括如下:

  1. CW和CCW

    表示電動機的運轉方向,前者表示ClockWise 由輸出軸側觀看呈順時針方向(正轉), 后者表示CounterClockWise 逆時針方向(反轉) ,當然有些電機寫的CW/CCW,代表正反轉都可以。不過我們知道無刷電機可以很方便的調整轉向,那么為什么要標CW、CCW呢?其實主要是和自緊螺帽有關系,按標記方向旋轉可以防止螺帽轉松。同樣可以根據擰螺絲的方法分辨電機是CW還是CCW,即同向松,反向緊。Via

  2. 1804

    指的是內定子直徑18mm,高度4mm。那么我的C2312無刷電機就是23mm*12mm,所以知道之后看到型號就明白大約有多大,比我的無刷電機小

  3. KV值:2480

    我的電機KV值是980,它的定義是施加1v電壓空載轉速2200rpm,KV值越高轉速越高,使用小漿;KV低轉速低,扭力大,使用大槳

  4. 軸直徑:M5

    注意買合適的槳,還要注意槳的正反,標R的是反槳。

  5. 最大連續電流(A): 5A

    代表正常工作時電流,另外電機卡住時的電流要比這大

  6. 供電為2~3S

    代表支持2-3塊鋰聚合物電池串聯作為供電,也就是11.1v(3.7*3)

再來看看電調。

  1. 連續電流:20A

    對應上面的電機最大連續電流,峰值電流:25A,一般能維持10s,表示電機卡住時的電流。

  2. NO BEC

    有的電調內置分電功能,可以從電池供電里分出5v供電給飛控乃至其他設備使用(接收機、GPS等),因為他們無法直接使用電池的高電壓。帶BEC的有三條線,沒有的有兩條線(黑GND,白SIG)。

  3. 輸入電壓:2~4S的電池

3、簡單測試

由於不知道電調的型號,我們用一般的方法來測試一下是否可用。首先將電調和電機焊接好,我這里測試過了,並排三條線焊上去(注意套熱縮管)是正轉,所以大家調換任意兩條線的位置就行了,當然最好自己先試試再焊接。因為不知道具體使用的什么電調,所以使用通用的接線方式,以我的Hobbywing Xrotor 20A為例,接線方式如下:

兩部遙控器,T6為日本手,油門在右;i6x為美國手,油門在左。油門不會自動回中

多針腳接收機的接法,一些迷你接收機一般只有3根線,就得通過飛控來測試了

Caution

  1. 接收機使用5v供電,不需要和11.1v鋰電池共地(因為那根可惡的鱷魚線糾結了我很久),隨便找個5v輸出給接收機就行,我這里是從APM飛控里引出來的5v供電
  2. 電調的信號線接到CH3上,也就是遙控器油門通道,黑色接地,白色接信號
  3. 電調需要接上無刷電機才會有聲音,說個冷知識,上電后發出的嘀嘀聲是由電機發出而不是電調發出的,原理就是無刷電機的線圈和磁鐵形成一個“喇叭”,具體可以參考這篇文章《How does an ESC make my motor beep?》,所以我們也能看到有人控制多個無刷電機奏樂。

這里專門把這根黑色鱷魚線拉出來批判,插電無反應,我排查了兩天都沒想到是它,因為之前沒弄過,不知道,還想過共地什么的,但根本就是因為這條線是斷路的!!!卡了我那么久,頭都想禿了。

上電之后,會聽到一陣音樂,然后把遙控器的油門慢慢上推,就會看到電機轉起來了。上推不會回中的那個搖桿就是油門。

4、無名電調

ok,我們知道,一般的電調都需要油門校准,有些還支持編程,但是這塊電調外面就是熱縮管包着,沒有標品牌型號,也不知道參數和說明書,這樣就不能改造也不能安全使用了。那咋辦嘛,問問客服,然后客服表示我也不知道啊。

所以黑衣電調到底是何方神聖?雖然剪開熱縮管可以一探究竟,然而想想拔掉外套有點變態而且不美觀,那有沒有不剪開的情況下通過軟件的方法鑒定它的身份呢?我們來挑戰一下,想想不拆馬甲就可以看電腦內存顆粒的軟件Thaiphoon Burner,我們也應該可以通過軟件的方法揭開謎底。下面化身面無表情的打字記錄機器。

4.1 找出電調軟件代理人

飛控告訴電調要做什么,電調控制電機完成相應動作,電調也是一個單片機,有它的操作系統(firmware 固件),折騰路由器刷各種系統的肯定熟悉這個。電調固件可以通過某種協議和外界交互,相當於電機和外界的中間代理人,我們首先調查調查一般啥人能當代理,有什么路子能和這位代理大哥搭上話。

4.2 電調常見固件

電調固件決定電調的性能、通訊協議以及交互界面,常見的固件包括以下幾種:

  • BLHeli
  • BLHeli_S
  • BLHeli_32
  • SimonK
  • 其他廠商專用固件

SimonK和BLHeli是兩個最早的開源固件,后來SimonK久未更新,2015年之后基本市面上就是用的BLHeli固件了。后來隨着軟硬件的發展,出現了第2代BLHeli_S和第3代BLHeli_32固件。除了這兩者之外,有些電調廠家也有自己的專有閉源固件。Via

BLHeli一般是Atmel和SiLabs的8051單片機,BLHeli_S使用SiLbas的BB1和BB2芯片,后面會講;BLHeli_32使用32bit的芯片,性能那是強了很多。不過目前市面上仍然有很多采用8bit芯片的電調,主要是便宜而且核心功能都有。

However there are still many 8-bit ESC’s on the market, because they still offer the key features such as RPM filter, DShot support, 48KHz Mode and so on, for a much more affordable price. For a lot of people, that’s enough.

4.3 驗證假設

我們首先假設DF的電調是采用BLHeli,然后去驗證是不是,一般的固件都會提供相關交互工具,我們放狗一搜,來到了BLHeli的github項目主頁,繼而了解到有一個軟件叫做BLHeliSuite,可以刷新升級、配置電調固件。進入下載頁面,看到Windows下有兩個版本:16和32,先都下載回來。

后續通過這篇文章了解到,BLHeli和BLHeli_S適用8bit處理器,使用BLHeliSuite16714902;BLHeli_32適用ARM 32bit處理器,使用BLHeliSuite32_32711。我們的DF電機電調比較新,盲猜其電調使用的是ARM 32bit的處理器,打開軟件:

兩眼一抹黑,有點厲害。愣着干啥啊,趕緊想想辦法,看看咋用的。噼里啪啦一陣敲,你猜怎么着,還真讓我找到法子了。

4.3.1 PassThough

《HOW TO CONNECT/FLASH BLHELI_32 ESC VIA FC PASSTHROUGH》,這種方法稱作PASSTHROUGH,通過安裝有CleanFight、BetaFight系統的飛控來與電調交互。那么啥是BetaFight呢?帶着疑問點開了BetaFight的官網

於是幾天過去了,增長了很多知識。它誕生自CleanFIght固件,是一款支持STM32芯片的飛控系統,但是翻了翻自己的開發板庫,有STM32F411,Nucleo-F767ZI,STM32F103,但是都不在官方支持列表里,自己編譯移植又怕進坑,看着自己手里基於Arduino Mega裝載Ardupilot系統的APM2.8飛控板,留下了落后的眼淚。

此路不通,再尋別徑。

4.3.2 1-Wire

除了通過飛控的PassThough方式外,還有一種使用Arduino做編程器的方法,但是用於老BLHeli固件的,不知道Arm 32的電調能不能行,死馬當活馬醫唄,萬一賭對了呢,單車變摩托。好,開始整活。

我先拿我之前的電調做實驗,型號是Hobbywing Xrotor 20A,考慮比較老,使用的BLHeliSuite16,方式差不多,積累經驗。幸運的是在軟件目錄里的Manuals\BLHeli supported SiLabs ESCs.pdf文件中發現支持我的電調,基於SiLabs的芯片。

escs

首先使用Arduino Uno(其他大多數Arduino板也行)連接到電腦,識別后選中Arduino的接口,如下圖設置:

bs16set

【因為不知道使用的什么芯片,BD23都可以試試】

Caution

  • 一定要選擇正確的Arduino接口,示例中Uno、Nano、Mega成功,我先前使用基於Duemilanove的SeeedDuino失敗,換成基於Uno的DFRduino成功
  • Arudino BLHeli BootloaderArduino 4way-inface理論上都可以成功,我用的4way,按鈕右邊的B、D、2、3對應菜單欄中的Select ATMEL/SILABS Interface
  • 在ESC Setup標簽中線選擇正確的Interface(參上),和正確的Arduino接口,然后點擊Connect,再點Check
  • 根據Manuals\BLHeliSuite 4w-if interfaces pinout.pdf,將電調的白色Sig線接到Uno的D11,黑色的Gnd接Uno的地線
  • 連接的時候一般先插信號線,后插電源線,斷開連接的時候則先拔電源線,再拔信號線。
  • 電調由3s鋰電池供電,不用和Arduino共地。

pinout

然后失敗了。沒識別出來,我不記得當時有沒有用那根黑色的鱷魚線了,反正我又自閉了,又頭禿了,又放空了一段時間。

關於共地的測試

我又回來了,越挫越勇,這兩天一直尋思着是不是電調和Arduino要共地,因為之前使用LN298N直流電機驅動的時候要共地。於是掏出來DF家的DC-DC 降壓模塊,接線上電一氣呵成,伴隨着一股青煙扶搖直上,電調的sig線接頭也變形了,趕緊斷開,繼續自閉。注意動力鋰電池電流很高,爆炸很危險!!!

transform

關於接不接電機

我之前不接電機的,沒有響,也不知道軟件識沒識別電調,因為以為是電調發出的嘀嘀嘀,所以一直以為失敗的,后來才知道聲音是接上電機發出的聲音。

4.4 久旱逢甘霖

琢磨着要不試試DF的電調吧,換個心情,既然換心情,就把電機接上去。打開BLHeliSuite32,制作設置界面差不多,4-way固件選哪個都可以,我用的Multi。接線上電一氣呵成,一如既往沒有識別,但是這個電調上電有聲。有戲!總不會是8bit的電調吧???竟然真的是8bit的電調,BLHeliSuite16識別如圖:

感動的眼淚都要出來了。平復一下激動的心情,定睛一看,沒有電調的牌子,只有G-H-30字樣,使用BLHeli_S 16.5的固件。至此我們終於揭開了黑衣電調的第一層面紗,G-H-30啥意思呢?

First letter is the hardware configuration of the ESC; the second letter, H for BB2 MCU and L for BB1 MCU; the last numbers are the dead-time value.

——Via

G我沒整明白啥意思,H搞懂了,代表BB2芯片,BLHeli_S支持兩個芯片,都是SiLabs的,性能較之前的芯片有極大提升:

  • BusyBee1 (EFM8BB10F8),24MHz, motor speed up to 350k eRPM
  • BusyBee2 (EFM8BB21F16) ,50MHz, motor speed up to 500k eRPM

采用BLHEli_S的電調較之前的軟硬件改進可以參考這里,具體的芯片規格參考這里。雖然不是最新的Arm32電調,現在的電調也不錯,性價比高,但是我在這里繞了好大一圈,一直在用BLHeliSuite32,肯定識別不了。

Dead-time Value死區時間,我不懂,請大佬來講講。

4.4.1 更上一層樓

現在我們獲得了新信息:G-H-30,BLHeli_S ,BB2,下一步以以下關鍵字搜索:ESC G-H-30,找到了幾個產品:

  • Aikon SEFM 20A | 固件、大小、供電等不符,排除
  • DYS XS20A | 東陽創新科技出品的,A_H_70排除

結合DFRobot產品頁面的線索:

主要關注電調的布局(芯片位置、信號線位置),尺寸重量、電流、輸入電壓等參數,最終找到如下產品:

  • [Sunrise Cicada v2 20A]香港旭日科技出品
  • Racerstar RS20A V2 | 和上面的外觀、參數很像

最后確定二者采用G-H-30固件。但是電調板信號線位置能對上,芯片形狀位置對不上,仔細一看電調實物,原來DFRobot產品介紹頁面的示意圖是錯的。。。實物布局和上述兩款電調一致。感覺離真相越來越近了。

【RS20A電調布局圖】

好在Cicaca電調介紹頁面有使用說明書(英文版和中文版清晰度不一樣什么鬼),結合油門校准聲音和對照前面看到的電調參數默認值,我現在有99%的把握確定就是這兩款電調的黑衣定制款。

【默認參數】

【校准音調】

4.5 電調優化 (TBD...)

4.5.1 參數修改

  • 遙控器調參
  • 軟件調參

4.5.2 升級固件

  • Main: Intended for helicopter main motor
  • Tail: Intended for helicopter tail motor
  • Multi: Intended for multirotor motors

4.5.3 綜合優化

  1. 啟用DShot協議 | Betafight Needed
  2. 開啟RPM Filter功能 | Custom Firmware
  3. 開啟48MHz PWM | Custom Fireware
  4. 優化丟失報警聲音

小結

回頭看來,個人水平學識有限,走了太多彎路,寫下來貽笑大方,無奈自己記性不好,這里於人於己留個筆記。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM