找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 30327|回復(fù): 9
收起左側(cè)

用arduino uno R3做Blheli編程適配器編程航模電調(diào)(基于BlHeli13.2)

  [復(fù)制鏈接]
ID:137504 發(fā)表于 2016-8-24 17:41 | 顯示全部樓層 |閱讀模式
       玩航模的對(duì)于Blheli這個(gè)詞語(yǔ)應(yīng)該很熟悉,Blheli只是一個(gè)電調(diào)固件程序,一個(gè)非常強(qiáng)大的固件,一個(gè)完全開(kāi)源的固件程序,刷了該固件立馬可以讓幾十元的電調(diào)瞬間擁有幾百元電調(diào)的功能,在此同時(shí)響應(yīng)速度提升N倍,是玩3D或者多軸的利器!它沒(méi)有專門的圖紙,針對(duì)性的編譯了市場(chǎng)上常見(jiàn)的電調(diào)固件,對(duì)每款型號(hào)電調(diào)都有相應(yīng)的配置文件,可以自己配置編譯。由于BlHeli固件的開(kāi)源和高速響應(yīng)速度,有人為它專門設(shè)計(jì)了可視化的PC端設(shè)置軟件BLHeliSuite,人性化的菜單界面,這些都為我們?cè)敿?xì)設(shè)置帶來(lái)方便。
        關(guān)于
Blheli的源代碼可以在Blheli的維基下載:https://github.com/bitdump/BLHeli 本文只針對(duì)BlHeli13.2版本進(jìn)行實(shí)踐介紹,設(shè)置軟件BLHeliSuite在維基主頁(yè)下方有具體網(wǎng)址。

      在正式刷電調(diào)之前首先介紹下航模電調(diào),
航模電調(diào),是航空模型用電子調(diào)速器的簡(jiǎn)稱,英文名Air-modeling ESC。現(xiàn)在的航模電子調(diào)速器一般都是無(wú)刷電子調(diào)速器。由于無(wú)刷電機(jī)在同功率下體積要比有刷大大減少,所以有刷現(xiàn)在在市場(chǎng)上已經(jīng)漸漸式微了,F(xiàn)在的航模電調(diào)品牌國(guó)外以美國(guó)的鳳凰最為出名,國(guó)內(nèi)主要品牌有:好盈,中特威,飛盈佳樂(lè)等品牌。
      
電調(diào)可以分為兩個(gè)不同的硬件平臺(tái),這取決與它使用的MCU是Silabs(Silabs是C8051內(nèi)核,C8051Fxxx系列單片機(jī))還是Atmel(Atmel是AVR內(nèi)核,ATMEGA-8單片機(jī))。兩個(gè)硬件平臺(tái)的選項(xiàng)部分不同。下稱silabs電調(diào)和Atmel電調(diào)。無(wú)論是silabs電調(diào)還是atmel電調(diào)都是支持引導(dǎo)程序(bootloader,下稱引導(dǎo)程序或引導(dǎo))的,引導(dǎo)程序是燒寫在電調(diào)上的一小段代碼,它可以支持通過(guò)信號(hào)線來(lái)燒寫固件和設(shè)置參數(shù)。但是對(duì)于沒(méi)有引導(dǎo)程序的電調(diào),第一次燒寫必須使用常規(guī)的方式,并且寫入引導(dǎo)程序后才能在后續(xù)支持單線燒寫(單線燒寫方式不重點(diǎn)說(shuō),文中以普通方式為主,因?yàn)殡娬{(diào)又不天天更新程序,有些電調(diào)因?yàn)镻PM輸入端有電阻,導(dǎo)致單線燒寫無(wú)法正常工作,所有文中主要說(shuō)普通燒寫方式,解決實(shí)際應(yīng)用為主)。

       在刷航模電調(diào)
Blheli固件前需要做一些準(zhǔn)備工作
     1、arduino uno R3開(kāi)發(fā)板一塊(XP下安裝驅(qū)動(dòng)比較容易,驅(qū)動(dòng)文件在下載的固件文件夾里面有,如果是WIN7或者              以 上版本系統(tǒng),打不上驅(qū)動(dòng)是因?yàn)镚host版本系統(tǒng)精簡(jiǎn)了系統(tǒng)文件導(dǎo)致,解決方法是下載微軟官方原版鏡像                     進(jìn)行安裝,保證問(wèn)題解決)

     2、Blheli固件 (維基下載  https://github.com/bitdump/BLHeli    文件夾里面有詳細(xì)支持電調(diào)種類PDF文檔)
     3、BLHeliSuite  PC端設(shè)置軟件BLHeliSuite13.2版本(文件夾里有詳細(xì)刷機(jī)方式,接線圖,參數(shù)資料,支持電調(diào)                  種類等PDF文檔)
     
BLHeliSuite13.2版本,增加了些功能,其中單線燒錄最為突出,菜單也有所改進(jìn),具體的請(qǐng)看圖片

       其中菜單上紅線框的部分,上部分A、B、C、D為
Silabs電調(diào)菜單,1、2、3、4、5、X為Atmel電調(diào)菜單,這里這些標(biāo)號(hào)并不是通常軟件中的快捷鍵,這個(gè)是為后文的簡(jiǎn)單刷機(jī)做下鋪墊,利用arduino uno R3刷Blheli固件,在這個(gè)過(guò)程由于電調(diào)MCU不同和需要刷的方式也不同,arduino uno R3開(kāi)發(fā)板充當(dāng)?shù)慕巧膊煌,不同的角色就需要?duì)arduino uno R3開(kāi)發(fā)板刷入不同的程序,我們只需看需要刷機(jī)的方式所對(duì)應(yīng)的標(biāo)號(hào),就能看出需要對(duì)arduino uno R3開(kāi)發(fā)板刷入相應(yīng)程序




上圖和下圖對(duì)號(hào)入座,比如要用B方式進(jìn)行刷機(jī),那么我們就要對(duì)
arduino uno R3開(kāi)發(fā)板刷入Make Arduino general 程序


當(dāng)然D、2、3方式刷機(jī)也用該程序,這樣就不需要死記硬背了,很方便,很靈活

       下面說(shuō)具體刷電調(diào)過(guò)程,
Silabs電調(diào)首次刷機(jī)使用B方式(C2方式),Atmel電調(diào)首次刷機(jī)使用X方式(ISP方式),這個(gè)是必須的,至于為什么,自己去看看兩款單片機(jī)的編程資料,以下刷機(jī)步驟用圖文合并,多圖少字,簡(jiǎn)單直接。   
   

        Silabs電調(diào)首次刷機(jī),打開(kāi)BLHeliSuite13.2設(shè)置軟件,進(jìn)入make Interfaces 菜單對(duì)arduino uno R3寫入程序,讓它變成常規(guī)編程器






等待刷入數(shù)據(jù)




燒寫完畢!下面看硬件,實(shí)驗(yàn)電調(diào)為好贏天行者40A


內(nèi)部結(jié)構(gòu),后期查看固件名稱需要對(duì)照硬件圖片


支持電調(diào)類型文檔在
BLHeliSuite根目錄下Manuals文件夾里


查看天行者40A電調(diào)硬件圖對(duì)應(yīng)的固件名稱 :skywalker 40A

需要提示的是
Silabs電調(diào)基本上預(yù)留了燒錄的觸點(diǎn),這為我們后期燒錄方便了許多,看圖拿條舵機(jī)線按顏色焊上

電調(diào)焊接好了,需要把電調(diào)連接到
arduino uno R3開(kāi)發(fā)板,具體連接,資料在BLHeliSuite根目錄下Manuals文件夾里

查看連接引腳

顏色對(duì)號(hào)入座,黑色接開(kāi)發(fā)板GND,白色接開(kāi)發(fā)板D2,紅色接開(kāi)發(fā)板D3


所有硬件連接完成,下面進(jìn)入刷機(jī)環(huán)節(jié),打開(kāi)
BLHeliSuite軟件,選擇B方式

選擇
arduino uno R3開(kāi)發(fā)板對(duì)應(yīng)的COM口,點(diǎn)擊連接,連接單片機(jī)

固件名稱在上文已經(jīng)查詢好skywalker 40A,選擇相應(yīng)固件,2、固件名稱   3、固件類型(MAIN:直升機(jī)固定翼
TAIL:直升機(jī)尾翼   MULTI:多軸)4、固件版本選擇,默認(rèn)為最新,可以選擇其他版本

這里選擇多軸版本固件









是否馬上設(shè)置電調(diào)?這里我們選擇是,馬上進(jìn)行設(shè)置

在紅框內(nèi)可以看到相應(yīng)的硬件和BLheli固件版本號(hào),到這里
Silabs電調(diào)刷機(jī)完成,電調(diào)響應(yīng)速度可以自己測(cè)試,保證滿意 至于怎么設(shè)置,以后翻譯好在詳細(xì)講解


Silabs電調(diào)刷完了下面到Atmel電調(diào)的刷機(jī)方法

       Atmel電調(diào)首次刷機(jī),打開(kāi)BLHeliSuite13.2設(shè)置軟件,進(jìn)入make Interfaces 菜單對(duì)arduino uno R3寫入程序,讓它變成ISP編程器




等待數(shù)據(jù)寫入






燒寫完畢!下面看硬件,實(shí)驗(yàn)硬件為一款不知名電調(diào),因?yàn)椴鹆送馄?br />


支持電調(diào)類型文檔在BLHeliSuite根目錄下Manuals文件夾里


查看PDF文檔,找到相對(duì)于的硬件名稱BlueSeries 20A


          Atmel 電調(diào)和Silabs電調(diào)不太一樣,只有部分Atmel電調(diào)預(yù)留了燒錄的觸點(diǎn),正好我們實(shí)驗(yàn)的這款有觸點(diǎn),方便了許多。這里需要說(shuō)明的是,Atmel單片機(jī)是用ISP燒錄,對(duì)應(yīng)的硬件引腳為下圖


怎么把這些引腳連接到arduino uno R3開(kāi)發(fā)板呢?資料在BLHeliSuite根目錄下Manuals文件夾里


里面有詳細(xì)的教程和硬件接線圖,資料是英文的


知道了硬件連接圖,下面需要把硬件連接好





所有硬件連接完成,下面進(jìn)入刷機(jī)環(huán)節(jié),打開(kāi)BLHeliSuite軟件,選擇X方式


選擇IPS硬件(這里選ArduinoISP),選擇對(duì)應(yīng)端對(duì)應(yīng)口波特率


點(diǎn)擊Flash BLHeli





固件名稱在上文已經(jīng)查詢好Blueseries 20A,選擇相應(yīng)固件,1、固件名稱  2、固件類型(MAIN:直升機(jī)固定翼
TAIL:直升機(jī)尾翼   MULTI:多軸)3、固件版本選擇,默認(rèn)為最新,可以選擇其他版本

這里選擇多軸固件



注意:1 處需要查看硬件PPM輸入端口,要避開(kāi)該引腳與PPM輸入端口一樣,一樣了會(huì)有點(diǎn)奇怪,具體這里的用意沒(méi)                有具體查看資料
           2 處是選擇引導(dǎo)方式,
Keep Exising Bootloader    保存原引導(dǎo)
                                              Install BLHeli Bootloader    BLHeli引導(dǎo)  
                                              Install Simonk Bootloader  Simonk 引導(dǎo)








是否馬上設(shè)置電調(diào)?這里我們選擇否,因?yàn)锳tmel電調(diào)固件里面帶有引導(dǎo)程序,首次刷完支持單線刷機(jī)


       到這來(lái)Atmel電調(diào)首次刷機(jī)完成,由于Atmel電調(diào)刷機(jī)是帶了引導(dǎo)程序,首次刷完成后支持單線刷機(jī),然而Silabs電調(diào)則不同,Silabs電調(diào)是不帶引導(dǎo)的,引導(dǎo)需要后面刷入。之前說(shuō)過(guò),重點(diǎn)不是單線刷機(jī),Silabs電調(diào)用C2方式刷機(jī)也就3根線,線少也不需要單獨(dú)搞單線刷,有些Silabs電調(diào)PPM輸入端有電阻,會(huì)導(dǎo)致單線刷機(jī)失敗。
     
Atmel電調(diào)刷首次刷機(jī)帶了引導(dǎo),下面來(lái)測(cè)試下單線讀寫設(shè)置電調(diào),Atmel電調(diào)要把arduino uno R3刷成make arduino general  編程器用2方式讀寫
  











寫入完畢!下面可以連接硬件了,在這里需要說(shuō)的是,剛才刷機(jī)的時(shí)候Bootloader at pin引腳故意避開(kāi)PPM輸入端,選擇了PB4端口


     確定了電調(diào)端的單線引腳端口,下面查看相應(yīng)資料確定接入arduino uno R3開(kāi)發(fā)板D3端口,資料在BLHeliSuite根目錄下Manuals文件夾里







連接好硬件打開(kāi)BLHeliSuite13.2設(shè)置軟件


選好開(kāi)發(fā)板對(duì)應(yīng)的COM口,點(diǎn)擊連接,點(diǎn)擊讀取數(shù)據(jù)


在紅框內(nèi)可以看到相應(yīng)的硬件和BLheli固件版本號(hào),到這里Atmel電調(diào)讀取完成,至于怎么設(shè)置,以后翻譯好在詳細(xì)講解


       有引導(dǎo)的Atmel電調(diào)程序,可以支持單線刷機(jī),連接后,點(diǎn)擊Flash BLHeli 就能進(jìn)入刷機(jī),具體操作很簡(jiǎn)單,不詳解了

         寫了幾個(gè)小時(shí)的教程,邊操作邊寫,花時(shí)比較長(zhǎng),圖文結(jié)合,讀書少,不做太多文字?jǐn)⑹,希望喜歡搞開(kāi)源的朋友看完我的教程對(duì)有需要的朋友有所幫助,如有不了解可以單獨(dú)私聊
         





回復(fù)

使用道具 舉報(bào)

ID:161697 發(fā)表于 2017-1-14 08:11 來(lái)自手機(jī) | 顯示全部樓層
我用樓主的方法刷機(jī)成功了,用的是blhelisuit 16.5的版本
回復(fù)

使用道具 舉報(bào)

ID:161697 發(fā)表于 2017-1-14 08:12 來(lái)自手機(jī) | 顯示全部樓層
電調(diào)是好盈hobbywing x-rotor blheli-s 30A的四軸電調(diào)
回復(fù)

使用道具 舉報(bào)

ID:161697 發(fā)表于 2017-1-14 08:17 來(lái)自手機(jī) | 顯示全部樓層
觸點(diǎn)從左向右依次是: 黑 不知道 紅 白
顏色對(duì)應(yīng)blhelisuit manual文檔
類型選uno ardunio 貌似是第一個(gè)
用gnd 11 12 引腳
20170112_072829.jpg
20170112_072719.jpg
20170114_073707.jpg
回復(fù)

使用道具 舉報(bào)

ID:137676 發(fā)表于 2017-2-2 22:20 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:201239 發(fā)表于 2017-10-14 22:44 | 顯示全部樓層
請(qǐng)教個(gè)問(wèn)題。
就是在沒(méi)有編碼器的情況下,電調(diào)是否可以測(cè)量出轉(zhuǎn)速,電流等數(shù)據(jù)?通過(guò)修改電調(diào)內(nèi)的程序?qū)崿F(xiàn)閉環(huán)控制?
回復(fù)

使用道具 舉報(bào)

ID:294865 發(fā)表于 2018-6-25 10:51 | 顯示全部樓層
講解通俗易懂。
回復(fù)

使用道具 舉報(bào)

ID:79544 發(fā)表于 2019-1-14 15:55 | 顯示全部樓層
很好的教程,請(qǐng)問(wèn)樓主,新西達(dá)的電調(diào)怎么刷?
回復(fù)

使用道具 舉報(bào)

ID:198286 發(fā)表于 2021-7-1 22:07 | 顯示全部樓層
我一頭霧水,但資料很好,慢慢消化吧
回復(fù)

使用道具 舉報(bào)

ID:79544 發(fā)表于 2022-6-8 18:13 | 顯示全部樓層
樓主太強(qiáng)了 感謝分享。。。。!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表