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