[ESP-IDF系列]使用ESP32驅(qū)動(dòng)NRF24L01實(shí)現(xiàn)單點(diǎn)通訊
1 簡介
最近想DIY一個(gè)四軸飛行器(簡易的十字形遙控飛行器),也從晚上找了很多的視頻和做了相關(guān)的簡易研究(如果搞出來了會(huì)分享,沒有經(jīng)驗(yàn))。除去電機(jī)根據(jù)MPU6050的姿態(tài)計(jì)算PID進(jìn)行輸出不談。還有一點(diǎn)比較重要的就是通訊功能。飛行器接收或者向遙控器發(fā)送指令然后執(zhí)行對應(yīng)的數(shù)據(jù)處理或者動(dòng)作。因此考慮到多種的數(shù)據(jù)傳輸方式。如下是一個(gè)簡要的對比。
通信技術(shù)通信速率(最大)通信距離(典型)通信頻段特點(diǎn)說明:由于之前并沒有接觸過飛行器相關(guān)的。因此我讓GPT對常見的無人機(jī)通訊方案進(jìn)行了一下分析。下述表格為GPT生成的不同通訊協(xié)議對應(yīng)的無人機(jī)應(yīng)用的方向。
表:無人機(jī)通信方式一覽表
2 場景通信技術(shù)選型
所以最后選用的是NRF24L01,根據(jù)某寶店家介紹,其在空曠場地下通訊的距離可以達(dá)到1000米左右(已經(jīng)是一個(gè)非常大的距離了,再遠(yuǎn)人眼可能就不可視了)。
上圖為經(jīng)典的NRF24L01
當(dāng)然國內(nèi)也有很多其他系列的2.4 G模塊,比如安信可的NF-02-PA或者NF-02-PE(使用的SI24R1 芯片)。
但是考慮到本次使用的是ESP32,結(jié)合對應(yīng)的庫文件的豐富程度。因此我準(zhǔn)備了兩個(gè)不同的NRF24L01和ESP32來進(jìn)行這次通訊實(shí)驗(yàn)。
3 驅(qū)動(dòng)步驟
主要介紹如何在IDF框架下結(jié)合組件管理器來快速實(shí)現(xiàn)通過組件nopnop2002/mirf來快速驅(qū)動(dòng)2.4G模塊:
1.首先新建一個(gè)IDF的項(xiàng)目,基于HelloWorld 的項(xiàng)目
2.新建idf_component.yml,然后輸入下面的內(nèi)容
view plaincopy to clipboardprint?
1.dependencies:
2.protocol_examples_common:
3.path: ${IDF_PATH}/examples/common_components/protocol_examples_common
4.nopnop2002/mirf:
5.path: components/mirf/
6.git:https://github.com/nopnop2002/esp-idf-mirf.git
3.編譯一次當(dāng)前的項(xiàng)目,然后組件管理器會(huì)自動(dòng)下載組件:
4.訪問https://github.com/nopnop2002/esp-idfmirf.git,來查找對應(yīng)的example
可以使用Clone到本地,或者是直接拷貝文件內(nèi)容。
5.使用Menuconfi g配置2.4G模塊PIN的連接情況。
6.配置項(xiàng)目目錄的KConfi g,在menuconfi g中進(jìn)行搜索Application Configuration
view plaincopy to clipboardprint?
1.menu “Application Confi guration”
2.
3.endmenu DIRECTION
4.prompt “Communication polarity”
5.default SENDER
6.help
7.Select Communication polarity.
8.config SENDER
9.bool “As the sender”
10.help
11.As the sender.
12.config RECEIVER
13.bool “As the receiver”
14.help
15.As the receiver.
16.endchoice
17.
18.endmenu
將兩個(gè)ESP32分別以Sender和receiver的方式進(jìn)行燒錄。
這樣的話,sender task 便會(huì)根據(jù)地址FGHIJ 進(jìn)行數(shù)據(jù)發(fā)送,
另一個(gè)receiver的task便會(huì)進(jìn)行接收.
4 實(shí)驗(yàn)現(xiàn)象
5 總結(jié)
在上文中,我們主要是用nopnop2002/mirf庫快速實(shí)現(xiàn)和調(diào)試了2.G模塊的通訊和調(diào)試,目前來看效果還是非常不錯(cuò)的,符合預(yù)期。但是對于通訊的距離和穩(wěn)定性還需要進(jìn)一步進(jìn)行拉鋸測試。
(本文來源于《EEPW》202506)
評論