nRF24L01 收發(fā)模塊
nRF24L01 是一個(gè)無線收發(fā)模塊,這意味著每個(gè)模塊都可以發(fā)送和接收數(shù)據(jù)。它們的工作頻率為 2.4GHz,屬于 ISM 頻段,因此在幾乎所有國家/地區(qū)用于工程應(yīng)用都是合法的。高效運(yùn)行時(shí),模塊可以覆蓋 100 米(200 英尺)的距離,這使其成為所有無線遙控項(xiàng)目的絕佳選擇。
該模塊在 3.3V 下工作,因此可以輕松地與 3.2V 系統(tǒng)或 5V 系統(tǒng)一起使用。每個(gè)模塊的地址范圍為 125,每個(gè)模塊可以與 6 個(gè)其他模塊通信,因此可以在特定區(qū)域內(nèi)有多個(gè)無線單元相互通信。因此,使用此模塊可以實(shí)現(xiàn)網(wǎng)狀網(wǎng)絡(luò)或其他類型的網(wǎng)絡(luò)。因此,如果您正在尋找具有上述特性的無線模塊,那么該模塊將是您的理想選擇。nRF24L01 模塊在 SPI 通信的幫助下工作。這些模塊可以與 3.3V 微控制器或 5V 微控制器一起使用,但它們應(yīng)該具有 SPI 端口。
使用 nRF24L01 收發(fā)器模塊的優(yōu)點(diǎn):
低成本:NRF24L01 是市場上最便宜的無線收發(fā)器模塊之一。
易于與微控制器/Arduino 板配對(duì):nRF24L01 可輕松與各種微控制器系統(tǒng)配對(duì);MCU/ARM/PIC/AVR/STM32 與 Arduino 配對(duì)時(shí)使用 SPI 協(xié)議或 RF24 庫。
2.4GHz 無線通信靈活性:2.4GHz 工作頻率允許更高的比特率使用,而不是其他較低的工作頻率。它也使用 GFSK 調(diào)制進(jìn)行數(shù)據(jù)傳輸,這意味著數(shù)據(jù)傳輸速率可以是 250kbps、1Mbps 或 2Mbps。
高傳輸范圍——nRF24L01,當(dāng)使用正確的設(shè)置時(shí),可以傳輸幾公里的波長。
廣闊的應(yīng)用場景——從無線 PC 外圍設(shè)備到控制器和玩具,nRF24L01 適用于多種場景。
雖然這個(gè)模塊有很多優(yōu)勢讓這個(gè)模塊比其他模塊更有優(yōu)勢,但使用這個(gè)模塊也有一些缺點(diǎn),不過我們可以從其他角度比較容易地避開,但還是需要在使用這些模塊時(shí)檢查它們。
其中一些缺點(diǎn)是:
它是一個(gè)高度敏感的模塊,這就是為什么有時(shí)它會(huì)從電源或其他來源捕獲噪音并放大它,最終破壞原始信息。為了控制這一點(diǎn),我們需要確保我們不使用很長的連接。我們還可以在電源端子上連接一個(gè)大約 10uF 的電容器來控制噪聲。
它使用 SPI 通信,這就是為什么需要相對(duì)更多的引腳來連接和使用這個(gè)模塊,這有時(shí)會(huì)讓人感到困惑。
它采用 3.3V 電源供電,這就是為什么它不能直接連接到一些僅提供 5V 電壓的微控制器。在這種情況下,我們需要通過 5V 到 3.3V 的穩(wěn)壓器連接這個(gè)模塊,以防止它受到任何損壞。
但即使在這些缺點(diǎn)之后,這個(gè)模塊對(duì)于像我們這樣的應(yīng)用程序來說也是一個(gè)很好的選擇。
設(shè)置無人機(jī)發(fā)射器
在這一步中,我們將完成 Transmitter 設(shè)置。我們將首先完成電路部分,然后將代碼上傳到 Arduino UNO 以完成設(shè)置。此步驟所需的材料是 NRF24L01 收發(fā)器模塊、Arduino UNO、10 uF 電容器、跳線、面包板/歸零 PCB 和操縱桿模塊。我們需要執(zhí)行以下步驟:
首先,我們需要在 NRF24L01 模塊的 Vcc 和 GND 端子上連接一個(gè) 10 uF 電容,以使輸入無噪聲。之后,我們需要連接 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 模塊所需的所有庫。您可以從本文下方找到 Github 中對(duì)應(yīng)的代碼及庫文件。在那里你會(huì)看到一個(gè)名為“ RF24 Master”的文件。下載文件,然后前往 Arduino IDE。在 IDE 中打開 Sketch 選項(xiàng)卡,您需要單擊 Include library,然后單擊 Add.ZIP library。選擇您下載的文件,然后單擊打開。這將安裝庫,但在使用之前重新啟動(dòng) IDE 一次。
現(xiàn)在我們需要為此在 Arduino UNO 中上傳代碼,我們需要返回項(xiàng)目的 Github 存儲(chǔ)庫。在 Github 存儲(chǔ)庫中,您將看到一個(gè)名為“ Drone_Transmitter”的文件夾。在該文件夾中,存在發(fā)射器的代碼文件,在您的 Arduino IDE 中打開該文件。選擇正確的板和 COM 端口,然后點(diǎn)擊上傳按鈕。
這將完成我們無人機(jī)發(fā)射器的設(shè)置。應(yīng)牢記的一些預(yù)防措施是,連接應(yīng)盡可能小且緊密。電容應(yīng)連接在 NRF24L01 模塊的 Vcc 和 GND 端子之間,不要忘記連接 NRF 模塊的天線。您可以通過將 Arduino 連接到移動(dòng)電源或?qū)⑵溥B接到 9V 電源來打開此發(fā)射器。在下一步中,我們將看看接收器部分的設(shè)置。
設(shè)置無人機(jī)接收器
在上一步中,我們完成了無人機(jī)發(fā)射器設(shè)置。在這一步中,我們將完成無人機(jī)接收器的完整設(shè)置。這一步我們需要的材料是 NRF24L01 模塊、Arduino UNO、電線和面包板/零 PCB。設(shè)置很簡單,類似于我們在上一步中所做的設(shè)置。我們需要執(zhí)行以下步驟:
首先,我們需要在 NRF24L01 模塊的 Vcc 和 GND 端子上連接一個(gè) 10 uF 電容,以使輸入無噪聲。之后,我們需要連接 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。
這將完成我們無人機(jī)接收器的硬件設(shè)置?,F(xiàn)在我們只需要上傳代碼,我們就完成了設(shè)置。但我們不會(huì)直接將最終代碼上傳到我們的 Arduino UNO。在上傳最終代碼之前,我們將在 Arduino UNO 上上傳一個(gè)測試代碼。測試代碼的作用是將接收器接收到的值顯示在 Arduino IDE 的串行監(jiān)視器上,然后我們將最終代碼上傳到我們的 Arduino UNO。所有這些事情都將在下一步中完成。
測試完成發(fā)射器接收器對(duì)
到此,我們完成了發(fā)射器的完整設(shè)置和無人機(jī)接收器的硬件設(shè)置?,F(xiàn)在我們需要測試這兩塊,因此我們需要執(zhí)行以下步驟:
在存儲(chǔ)庫中,有一個(gè)名為“ Receiver_test”的文件。該文件是我們的發(fā)射器接收器對(duì)性能的測試文件。
在我們的 Arduino IDE 中打開代碼,然后將接收器電路連接到我們的 PC,在選擇正確的板和 COM 端口后,點(diǎn)擊上傳按鈕。
完成上傳后,需要保持接收器與 PC 的連接并打開發(fā)射器。現(xiàn)在打開 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ǔ)庫中,名稱為“ Drone_Receiver” 。在 Arduino IDE 中打開該文件。選擇正確的 COM 端口和板,然后點(diǎn)擊上傳按鈕。
通過以上的步驟,我們已經(jīng)為自己的四軸飛行器構(gòu)建了自己的無人機(jī)發(fā)射器和接收器對(duì)。
評(píng)論
查看更多