新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > [ESP-IDF系列]使用ESP32驅(qū)動(dòng)NRF24L01實(shí)現(xiàn)單點(diǎn)通訊

        [ESP-IDF系列]使用ESP32驅(qū)動(dòng)NRF24L01實(shí)現(xiàn)單點(diǎn)通訊

        作者:御坂美琴 時(shí)間:2025-06-28 來源:EEPW 收藏


        本文引用地址:http://www.104case.com/article/202506/471812.htm

        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è)簡要的對比。

        1751096962597783.png

        通信技術(shù)通信速率(最大)通信距離(典型)通信頻段特點(diǎn)說明:由于之前并沒有接觸過飛行器相關(guān)的。因此我讓GPT對常見的無人機(jī)通訊方案進(jìn)行了一下分析。下述表格為GPT生成的不同通訊協(xié)議對應(yīng)的無人機(jī)應(yīng)用的方向。

        表:無人機(jī)通信方式一覽表

        image.png

        2   場景通信技術(shù)選型

        1751097042979207.png

        所以最后選用的是NRF24L01,根據(jù)某寶店家介紹,其在空曠場地下通訊的距離可以達(dá)到1000米左右(已經(jīng)是一個(gè)非常大的距離了,再遠(yuǎn)人眼可能就不可視了)。

        1751097089210049.png

        上圖為經(jīng)典的NRF24L01

        當(dāng)然國內(nèi)也有很多其他系列的2.4 G模塊,比如安信可的NF-02-PA或者NF-02-PE(使用的SI24R1 芯片)。

        1751097155431635.png

        但是考慮到本次使用的是,結(jié)合對應(yīng)的庫文件的豐富程度。因此我準(zhǔn)備了兩個(gè)不同的NRF24L01和來進(jìn)行這次通訊實(shí)驗(yàn)。

        1751097197470298.png

        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)下載組件:

        1751097298742976.png

        4.訪問https://github.com/nopnop2002/esp-idfmirf.git,來查找對應(yīng)的example

        1751097339908467.png

        可以使用Clone到本地,或者是直接拷貝文件內(nèi)容。

        5.使用Menuconfi g配置2.4G模塊PIN的連接情況。

        1751097442776239.png

        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è)分別以Sender和receiver的方式進(jìn)行燒錄。

        1751097465463201.png

        這樣的話,sender task 便會(huì)根據(jù)地址FGHIJ 進(jìn)行數(shù)據(jù)發(fā)送,

        image.png

        image.png

        另一個(gè)receiver的task便會(huì)進(jìn)行接收.

        image.png

        image.png

        image.png

        4   實(shí)驗(yàn)現(xiàn)象

        1751097704669786.png

        5   總結(jié)

        在上文中,我們主要是用nopnop2002/mirf庫快速實(shí)現(xiàn)和調(diào)試了2.G模塊的通訊和調(diào)試,目前來看效果還是非常不錯(cuò)的,符合預(yù)期。但是對于通訊的距離和穩(wěn)定性還需要進(jìn)一步進(jìn)行拉鋸測試。

        (本文來源于《EEPW》202506



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 策勒县| 宝兴县| 龙南县| 桂平市| 九江市| 乌兰浩特市| 措勤县| 江孜县| 商河县| 延津县| 江山市| 武夷山市| 开平市| 渭源县| 成都市| 鲁甸县| 大竹县| 平遥县| 彩票| 论坛| 阿荣旗| 于田县| 潢川县| 嘉兴市| 延边| 凤凰县| 滕州市| 吴忠市| 菏泽市| 喀什市| 浦江县| 浦县| 武安市| 沈丘县| 和林格尔县| 清镇市| 德阳市| 麻江县| 宜良县| 庄浪县| 澜沧|