nRF24L01 收發(fā)模塊
nRF24L01 是一個(gè)無(wú)線(xiàn)收發(fā)模塊,這意味著每個(gè)模塊都可以發(fā)送和接收數(shù)據(jù)。它們的工作頻率為 2.4GHz,屬于 ISM 頻段,因此在幾乎所有國(guó)家/地區(qū)用于工程應(yīng)用都是合法的。高效運(yùn)行時(shí),模塊可以覆蓋 100 米(200 英尺)的距離,這使其成為所有無(wú)線(xiàn)遙控項(xiàng)目的絕佳選擇。
該模塊在 3.3V 下工作,因此可以輕松地與 3.2V 系統(tǒng)或 5V 系統(tǒng)一起使用。每個(gè)模塊的地址范圍為 125,每個(gè)模塊可以與 6 個(gè)其他模塊通信,因此可以在特定區(qū)域內(nèi)有多個(gè)無(wú)線(xiàn)單元相互通信。因此,使用此模塊可以實(shí)現(xiàn)網(wǎng)狀網(wǎng)絡(luò)或其他類(lèi)型的網(wǎng)絡(luò)。因此,如果您正在尋找具有上述特性的無(wú)線(xiàn)模塊,那么該模塊將是您的理想選擇。nRF24L01 模塊在 SPI 通信的幫助下工作。這些模塊可以與 3.3V 微控制器或 5V 微控制器一起使用,但它們應(yīng)該具有 SPI 端口。
使用 nRF24L01 收發(fā)器模塊的優(yōu)點(diǎn):
低成本:NRF24L01 是市場(chǎng)上最便宜的無(wú)線(xiàn)收發(fā)器模塊之一。
易于與微控制器/Arduino 板配對(duì):nRF24L01 可輕松與各種微控制器系統(tǒng)配對(duì);MCU/ARM/PIC/AVR/STM32 與 Arduino 配對(duì)時(shí)使用 SPI 協(xié)議或 RF24 庫(kù)。
2.4GHz 無(wú)線(xiàn)通信靈活性:2.4GHz 工作頻率允許更高的比特率使用,而不是其他較低的工作頻率。它也使用 GFSK 調(diào)制進(jìn)行數(shù)據(jù)傳輸,這意味著數(shù)據(jù)傳輸速率可以是 250kbps、1Mbps 或 2Mbps。
高傳輸范圍——nRF24L01,當(dāng)使用正確的設(shè)置時(shí),可以傳輸幾公里的波長(zhǎng)。
廣闊的應(yīng)用場(chǎng)景——從無(wú)線(xiàn) PC 外圍設(shè)備到控制器和玩具,nRF24L01 適用于多種場(chǎng)景。

雖然這個(gè)模塊有很多優(yōu)勢(shì)讓這個(gè)模塊比其他模塊更有優(yōu)勢(shì),但使用這個(gè)模塊也有一些缺點(diǎn),不過(guò)我們可以從其他角度比較容易地避開(kāi),但還是需要在使用這些模塊時(shí)檢查它們。
其中一些缺點(diǎn)是:
它是一個(gè)高度敏感的模塊,這就是為什么有時(shí)它會(huì)從電源或其他來(lái)源捕獲噪音并放大它,最終破壞原始信息。為了控制這一點(diǎn),我們需要確保我們不使用很長(zhǎng)的連接。我們還可以在電源端子上連接一個(gè)大約 10uF 的電容器來(lái)控制噪聲。
它使用 SPI 通信,這就是為什么需要相對(duì)更多的引腳來(lái)連接和使用這個(gè)模塊,這有時(shí)會(huì)讓人感到困惑。
它采用 3.3V 電源供電,這就是為什么它不能直接連接到一些僅提供 5V 電壓的微控制器。在這種情況下,我們需要通過(guò) 5V 到 3.3V 的穩(wěn)壓器連接這個(gè)模塊,以防止它受到任何損壞。
但即使在這些缺點(diǎn)之后,這個(gè)模塊對(duì)于像我們這樣的應(yīng)用程序來(lái)說(shuō)也是一個(gè)很好的選擇。
設(shè)置無(wú)人機(jī)發(fā)射器

在這一步中,我們將完成 Transmitter 設(shè)置。我們將首先完成電路部分,然后將代碼上傳到 Arduino UNO 以完成設(shè)置。此步驟所需的材料是 NRF24L01 收發(fā)器模塊、Arduino UNO、10 uF 電容器、跳線(xiàn)、面包板/歸零 PCB 和操縱桿模塊。我們需要執(zhí)行以下步驟:
首先,我們需要在 NRF24L01 模塊的 Vcc 和 GND 端子上連接一個(gè) 10 uF 電容,以使輸入無(wú)噪聲。之后,我們需要連接 Arduino UNO 和 NRF24L01 收發(fā)器模塊,如上圖所示,如下所示:
將 NRF 模塊的 GND 引腳連接到 Arduino 的 GND 引腳。
將 NRF 模塊的 Vcc 引腳連接到 Arduino UNO 的 3.3 V 引腳。
將 NRF 的 CE 引腳(即引腳 3)連接到 Arduino UNO 的數(shù)字引腳 9。
將 NRF 的 CSN 引腳(即引腳 4)連接到 Arduino UNO 的數(shù)字引腳 8。
將 NRF 的 SCK 引腳(即引腳 5)連接到 Arduino UNO 的數(shù)字引腳 13。
將 NRF 的 MOSI 引腳(即引腳 6)連接到 Arduino UNO 的數(shù)字引腳 11。
將 NRF 的 MISO 引腳(即引腳 7)連接到 Arduino UNO 的數(shù)字引腳 12。
完成 NRF 和 Arduino UNO 之間的連接后。我們現(xiàn)在還需要將我們的操縱桿模塊連接到 Arduino UNO。操縱桿的連接方式如下:
將操縱桿模塊的 5V 引腳連接到 Arduino UNO 的 5V 引腳。
將操縱桿模塊的 GND 引腳連接到 Arduino UNO 的 GND 引腳。
將左搖桿模塊的 VRx 連接到 Arduino 的 A0 引腳,將左搖桿模塊的 VRy 引腳連接到 Arduino 的 A1 引腳。
將右搖桿的 VRx 引腳連接到 Arduino 的 A2 引腳,將右搖桿的 VRy 引腳連接到 Arduino 的 A3 引腳。
到這一步,就算完成了項(xiàng)目的硬件部分?,F(xiàn)在我們需要在我們的 Arduino UNO 上上傳代碼,但在此之前,我們需要確保我們的 Arduino IDE 具有 NRF 模塊所需的所有庫(kù)。您可以從本文下方找到 Github 中對(duì)應(yīng)的代碼及庫(kù)文件。在那里你會(huì)看到一個(gè)名為“ RF24 Master”的文件。下載文件,然后前往 Arduino IDE。在 IDE 中打開(kāi) Sketch 選項(xiàng)卡,您需要單擊 Include library,然后單擊 Add.ZIP library。選擇您下載的文件,然后單擊打開(kāi)。這將安裝庫(kù),但在使用之前重新啟動(dòng) IDE 一次。

現(xiàn)在我們需要為此在 Arduino UNO 中上傳代碼,我們需要返回項(xiàng)目的 Github 存儲(chǔ)庫(kù)。在 Github 存儲(chǔ)庫(kù)中,您將看到一個(gè)名為“ Drone_Transmitter”的文件夾。在該文件夾中,存在發(fā)射器的代碼文件,在您的 Arduino IDE 中打開(kāi)該文件。選擇正確的板和 COM 端口,然后點(diǎn)擊上傳按鈕。

這將完成我們無(wú)人機(jī)發(fā)射器的設(shè)置。應(yīng)牢記的一些預(yù)防措施是,連接應(yīng)盡可能小且緊密。電容應(yīng)連接在 NRF24L01 模塊的 Vcc 和 GND 端子之間,不要忘記連接 NRF 模塊的天線(xiàn)。您可以通過(guò)將 Arduino 連接到移動(dòng)電源或?qū)⑵溥B接到 9V 電源來(lái)打開(kāi)此發(fā)射器。在下一步中,我們將看看接收器部分的設(shè)置。
設(shè)置無(wú)人機(jī)接收器

在上一步中,我們完成了無(wú)人機(jī)發(fā)射器設(shè)置。在這一步中,我們將完成無(wú)人機(jī)接收器的完整設(shè)置。這一步我們需要的材料是 NRF24L01 模塊、Arduino UNO、電線(xiàn)和面包板/零 PCB。設(shè)置很簡(jiǎn)單,類(lèi)似于我們?cè)谏弦徊街兴龅脑O(shè)置。我們需要執(zhí)行以下步驟:
首先,我們需要在 NRF24L01 模塊的 Vcc 和 GND 端子上連接一個(gè) 10 uF 電容,以使輸入無(wú)噪聲。之后,我們需要連接 Arduino UNO 和 NRF24L01 收發(fā)器模塊,如上圖所示,如下所示:
將 NRF 模塊的 GND 引腳連接到 Arduino 的 GND 引腳。
將 NRF 模塊的 Vcc 引腳連接到 Arduino UNO 的 3.3 V 引腳。
將 NRF 的 CE 引腳(即引腳 3)連接到 Arduino UNO 的數(shù)字引腳 9。
將 NRF 的 CSN 引腳(即引腳 4)連接到 Arduino UNO 的數(shù)字引腳 8。
將 NRF 的 SCK 引腳(即引腳 5)連接到 Arduino UNO 的數(shù)字引腳 13。
將 NRF 的 MOSI 引腳(即引腳 6)連接到 Arduino UNO 的數(shù)字引腳 11。
將 NRF 的 MISO 引腳(即引腳 7)連接到 Arduino UNO 的數(shù)字引腳 12。

這將完成我們無(wú)人機(jī)接收器的硬件設(shè)置?,F(xiàn)在我們只需要上傳代碼,我們就完成了設(shè)置。但我們不會(huì)直接將最終代碼上傳到我們的 Arduino UNO。在上傳最終代碼之前,我們將在 Arduino UNO 上上傳一個(gè)測(cè)試代碼。測(cè)試代碼的作用是將接收器接收到的值顯示在 Arduino IDE 的串行監(jiān)視器上,然后我們將最終代碼上傳到我們的 Arduino UNO。所有這些事情都將在下一步中完成。
測(cè)試完成發(fā)射器接收器對(duì)

到此,我們完成了發(fā)射器的完整設(shè)置和無(wú)人機(jī)接收器的硬件設(shè)置?,F(xiàn)在我們需要測(cè)試這兩塊,因此我們需要執(zhí)行以下步驟:
在存儲(chǔ)庫(kù)中,有一個(gè)名為“ Receiver_test”的文件。該文件是我們的發(fā)射器接收器對(duì)性能的測(cè)試文件。

在我們的 Arduino IDE 中打開(kāi)代碼,然后將接收器電路連接到我們的 PC,在選擇正確的板和 COM 端口后,點(diǎn)擊上傳按鈕。
完成上傳后,需要保持接收器與 PC 的連接并打開(kāi)發(fā)射器?,F(xiàn)在打開(kāi) Arduino IDE 的串行監(jiān)視器,將波特率設(shè)置為 250000。選擇波特率后,將看到 4 個(gè)值:Throttle、Yaw、Pitch 和 Roll。如果將發(fā)射器的操縱桿移動(dòng)到不同的方向,您會(huì)觀察到串行監(jiān)視器的值也會(huì)隨之變化。這將確認(rèn)我們的發(fā)射器和接收器對(duì)工作正常。

現(xiàn)在已經(jīng)確認(rèn),我們的發(fā)射器和接收器對(duì)工作正常。我們現(xiàn)在可以將最終代碼上傳到接收器的 Arduino UNO。該代碼位于 Github 存儲(chǔ)庫(kù)中,名稱(chēng)為“ Drone_Receiver” 。在 Arduino IDE 中打開(kāi)該文件。選擇正確的 COM 端口和板,然后點(diǎn)擊上傳按鈕。
通過(guò)以上的步驟,我們已經(jīng)為自己的四軸飛行器構(gòu)建了自己的無(wú)人機(jī)發(fā)射器和接收器對(duì)。
電子發(fā)燒友App















評(píng)論