STAN FU

Stan

Drone-Mercury 從零開始的四軸無人機製作(一)- 專案介紹#

這個專案目前還在進行中,Github 上提供了最新的進度。如果對您有幫助,請點個星星支持一下!
Github 地址:https://github.com/Xiangyu-Fu/Drone-Mercury

1. 專案介紹#

1.1 引言#

這是一個做了很久的專案了,前前後後到現在已經一年多了。這個專案的主要目標是學習一下嵌入式方向的知識,補全和加深硬體方面的技術堆疊。其他方面例如獲得完整地做完一個專案經驗等等。專案主要是基於 STM32C8T6 和 ESP32,因為身在國外,由於價格和獲取渠道的限制,很多的模組和解決方法無法輕易實現,所以有很多地方進行了修改。這個專案也是單純的一個 DIY 的專案,肯定有很多疏漏的地方,也歡迎大家的交流與指正。

整個專案的結構如下所示,目前以下框架的硬體部分已經搭建完成,接下來就是對軟體進行一個優化和整合了。所以在未來,這個部分會有所更新。在以後的部分中,我將在其上添加一些高級功能,例如攝像頭,或者將無人機與其他機器人結合起來構建集群機器人,以及實現數字孿生等等。
在這裡插入圖片描述

1.2 參考資料#

這個專案參考了很多資料,如下所示

  • 《四軸飛行器 DIY》
  • STM32 庫開發實戰指南
  • STM32 HAL 庫開發實戰指南
  • ESP-IDF Programming Guide
  • ...

以及各種博客和網站在這裡無法一一列出。之後博客中用的參考也會在博客中列出。

1.3 專案概覽#

該四軸的外觀如下圖所示,是一個非常簡單的四軸無人機。其中控制板為自己定制,剩下部分例如電機,和螺旋槳都是在網上購買的套件。這樣能保證飛機整體的堅固性和輕便性。需要注意的是,在 3D 渲染圖中,飛機的螺旋槳都是正浆,這在現實中是不可行的。但是為了方便起見,我就沒有多畫反浆的部分。

至於為什麼要創建 3D 模型,主要是為了以後方便導出模型,在模擬器中進行仿真。或者完成數字孿生等一系列後續可能的課題。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/50dd08e1fd2c4f5da7244e2ba2edc4e1.png =600x)

實際組裝好的模型如下圖所示,相比於 3D 模型,多了很多線的部分。這個版本也沒有給無人機單獨設計電池倉。電池倉會計劃在完成所有軟體模塊測試後設計。

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/c93710b86740410c9ea68a11018d9ecb.png =600x)

1.4 PCB 設計#

PCB 採用 4 層板的設計,主要包括了主控單元,NRF24L01 通信單元,數據采集單元,指示燈,供電模塊,還有電機驅動模塊。主控板採用 STM32F103C8T6,是一個非常好的入門級的 MCU。因為網上的資料很多,所以遇到什麼 bug 也可以更為輕鬆地找到解決辦法。

更為具體的內容會在以後的博客中介紹,例如電路原理圖,以及 PCB 需要注意的地方。由於也是第一次畫板子,所有一定會有很多疏漏的地方,所以可能很多 bug 在所難免。
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/010e6906770e4b37b41962571ba12021.png =600x)

1.4.1 STM32C8T6#

STM32F103C8T6 是一個中密度性能線,配有 ARM Cortex-M3 32 位微控制器,48 路 LQFP 封裝。它結合了高性能的 RISC 內核,運行頻率可達 72MHz, 以及高速內嵌存儲器,增強範圍的強化輸入 / 輸出和外部連接至兩個 APB 總線. STM32F103C8T6 具有 12 位模數轉換器,計時器,PWM 計時器,標準和高級通訊接口。一套全面的省電模式允許設計者設計低功耗應用.

  • 運行電壓範圍: 2V 至 3.6V.
  • 64K 字節閃存.
  • 20K 字節 SRAM.
  • CRC 計算單元,96 位特有 ID.
  • 兩個 12 位,1µs 模數轉換器 (高達 10 通道).
  • 7 通道 DMA 控制器,3 個通用計時器和 1 個高級控制計時器.
  • 37 個快速輸入輸出端口.
  • 串行線調試器 (SWD) 和 JTAG 接口.
  • 兩個 SPI, 兩個 I2C, 三個 USART, 一個 USB 和一個 CAN 接口.
  • 環境運行溫度範圍: -40°C 至 85°C

1.4.2 NRF24L01#

RF24L01 收發器模塊#

我們採用 NRF24L01 收發器模塊作為遙控器和四種之間的通信方式。

讓我們仔細看看 NRF24L01 收發器模塊。它使用 2.4 GHz 頻帶,可以在 250 kbps 到 2 Mbps 的波特率下工作。如果在開放空間中使用且波特率較低,則其範圍可達 100 米。

該模塊可以使用 125 個不同的通道,這使在一個地方擁有 125 個獨立工作的調製解調器的網絡成為可能。每個通道最多可以有 6 個地址,或者每個單元可以同時與最多 6 個其他單元通信。

在傳輸過程中,該模塊的功耗僅為 12mA 左右,甚至低於單個 LED。 模塊的工作電壓為 1.9V 至 3.6V,但好處是其他引腳可以承受 5V 邏輯,因此我們可以輕鬆地將其連接到 STM32,而無需使用任何邏輯電平轉換器。

其示意圖如下所示,圖片來源見水印。

在這裡插入圖片描述

我們直接為 NRF24L01 模塊留了一個插槽,這樣我們就可以直接使用該模塊了。整個中控板如下圖所示。
![](https://img-blog.csdnimg.cn/39123b3b75bf4e178c8a1b7c62950648.png =600x)

1.4.3 MPU6050#

MPU6050 是一種非常流行的空間運動傳感器晶片,可以獲取器件當前的三個加速度分量和三個旋轉角速度。我們在中控板中集成了 MPU6050 來獲取四軸當前的姿態。以下是來自網上的介紹。

MPU6050 是集成六軸運動處理模塊,即三軸 MEMS 陀螺儀傳感器和三軸 MEMS 加速度傳感器,相較於多組件方案,集成模塊可以免除各個組件時間軸之差的問題,還能大大減小封裝的空間。 模塊一般在智能手機、手持遊戲產品、導航設備、電子穩像等領域發揮重要作用。是集成六軸運動處理模塊,即三軸 MEMS 陀螺儀傳感器和三軸 MEMS 加速度傳感器,相較於多組件方案,集成模塊可以免除各個組件時間軸之差的問題,還能大大減小封裝的空間。 模塊一般在智能手機、手持遊戲產品、導航設備、電子穩像等領域發揮重要作用。

1.5 總結#

以上就是比較重要的一些關於專案的介紹,由於也是最近課業壓力比較大,可能也會更新很久,但是還是希望能在今年把這個專案完成吧。這個專案前前後後也做了一年有餘,但是總是因為各種各樣的事情耽擱了。希望這個學期能多擠出一些時間來完成這個專案。

博客內容部分,接下來就會專門的對各個模塊開始介紹了,從硬體到軟體。軟體部分準備分成兩個小的部分,首先就是基於最基本的 stm32 庫的程式。基於基本 stm32 庫的程式已經完成了,也完成了對各個模塊的測試,非常可喜的是所有的模塊都工作正常。但是為了未來能更快的部署專案,和為了面向這個學期將要做的 FOC 專案,所以我計劃將所有程式都更改成基於 HAL 庫,這樣就更會有統一的程式標準,也更方便以後的程式移植。所以未來要準備多寫一些關於 CubeMX 與 CubeMX IDE 使用的博客,留作記錄。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。