DIY小四軸之電路設計(二)

DIY小四軸之電路設計(二)

上次我分析了四軸電源的電路,這次我們來看電機驅動與傳感器電路。

三、空心杯電機驅動電路

一般的小型四軸都選用空心杯電機來驅動旋翼,空心杯電機不僅節能而且靈敏,是一種比較理想的電機。
在這裏插入圖片描述
常用720空心杯電機,它是指直徑是7mm長度爲20mm的電機,同理我們可以估計其他一些型號的電機,如820、614等等。

除了尺寸參數,其電器參數如下:

   電壓:3.7V  
   轉速:45000轉/分鐘   
   軸徑:1mm

那簡單,既然要求是3.7的電壓,那我直接找個3.7V的電池直接把空心杯的兩根線懟在電池的正負極不就好了(感興趣的同學可以自己動手試試)。我自己試了一下,覺得轉速挺大的,應該是能夠帶動四軸飛行的。

然而直接將它接在電源正負極有一個問題,那就是沒法控制它的轉速,也就是說,運氣好的話四軸是近似垂直飛行的,運氣不好的話因爲細小的結構不對稱,會導致四軸側向一邊飛行。這一點也就暴露出我們空心杯電機驅動電路的核心問題——控制速度。

電路上常用的一種控制模擬量輸出的方式是PWM控制(脈衝寬度調製)。

所謂的PWM控制,說簡單一點就是,我們在電源正極和電機之間接一個開關。這個開關的工作有一個週期T,在週期T內,一半時間是打開的,有一半時間是關閉的,這樣總體上轉速就比原來慢了。

試想,如果T比較大,比如10s,那可能5s是轉的,5s是不轉的;但如果T非常小,比如0.1s,其實前0.05s內電機是轉的,後0.05s內電機反應不過來,所以也是轉的,但總體的速度相比之前要慢不少。

在這裏插入圖片描述

這個開關開啓時間長度與整個週期的比值,我們稱之爲佔空比。如果佔空比是100%,說明電機正在全力運轉,50%就是我們剛剛討論過的情況,0%就是不轉。我們通過調整佔空比就可以調整它的速度了。

但是這又產生了另一個問題:我們需要一個週期足夠小纔行,通常PWM的頻率都是兆赫茲級別,也就是週期T大約在微秒級別(10-6s)。用手去控制開關的話,那手速簡直是需要麒麟臂級別的手速。因而我們要考慮用一種電子開關,比如MOS管。

在這裏插入圖片描述
上面是一個典型的空心杯驅動電路。Q1是一個N溝道的MOS管,型號爲SI2302,它有三個接口,自上之下分別是D極、G極和S極。在這裏我不去講MOS管的原理(感興趣的話可以去翻看一下有關模擬電路的書籍)。我們只把書上的結論拿出來:

當G極輸入高電壓時,D和S之間導通,相當於開關閉合;當G極輸入低電壓時,D和S之間截止,相當於開關被斷開。

我們看到如果DS導通則電機M1兩端會工作,而DS截止電機M1不會,這樣在PWM1端輸入一個方波信號,調整方波的佔空比,就可以控制電機轉動了。

這裏還有兩處細節,其一是R12與R13,這個兩個電阻是分壓的,G點讀取的電壓實際上應該是VG=VPWM1*100/10K+100,這個R13必須要有,不然前一級輸入的輸出電阻可能會分得前一級的全部電壓,十分恐怖(詳見模電)。其二是C18這個電容,它的作用是去耦,避免上升沿過於陡峭時產生噪聲。

最後是PWM1端,這個端口作爲開關的控制輸入端,它應該被接在STM32的一個GPIO端口上面,通過STM32單片機的定時器功能就可以在PWM1端控制輸出較高頻率的方波信號了。一旦PWM1端的信號是方波,有時開,有時斷,則電機處自然也被控制着有時開有時閉。從而調整單片機IO口的輸出佔空比,就可以控制轉速了。

四、傳感器配置電路

之前我們在第一篇講過,常用的傳感器有陀螺儀、加速度傳感器、氣壓計、激光定高、光流定位等等,爲了實現四軸的靜態閉環,必須要有的傳感器是前三個。

其中商業上常用的慣性測量單元是MPU6050,俗稱陀螺儀,但實際上上面集成了三個軸的陀螺儀和三個軸方向上的加速度計。

在這裏插入圖片描述

上圖是MPU6050陀螺儀的實物圖,它的實際尺寸非常小,只有小拇指指甲的一半大小。背面是引腳,用來焊接在設計的電路板上,基本上是屬於手焊中最難焊接的。
在這裏插入圖片描述
上面是MPU6050的引腳定義和三個軸方向的定義,因爲能測量XYZ三個方向的加速度,又能測量垂直於XYZ三個軸的角速度,因而被稱爲6軸陀螺儀。

與此相對的,MPU9250是一個9軸陀螺儀,因爲它除了3軸加速度、3軸角速度之外,還能具有三個方向上的磁力計功能。在這裏我們只介紹MPU6050的硬件電路設計,MPU9250也大同小異。

首先我們要了解的是,MPU6050本身是一個芯片,自己就能讀取慣性信息,然後我們單片機只需要負責接收和解讀就可以了。它一般與單片機通過IIC通信協議進行通信,IIC的通信線有兩條分別是SDA和SCL分別傳輸數據信號和時鐘信號。

我們來從上往下看這個引腳定義。

SDA與SCL對應引腳定義中的24和23引腳,應該將它們接在單片機負責IIC的IO口上面。

19、21、22都是預留輸出端,都不需要接,直接懸空。

20爲CPOUT,需要通過一個小電容接地。

18號GND和13號VDD分別是電源的正負極,其中電源正極應該爲3.3V供電,同時爲了濾波,我們需要在GND和VDD之間接一個0.1uF的濾波電容。

我們注意到引腳中有許多NC,它的意思是不用接線,直接懸空。

12號爲INT,是中斷信號輸出,可以將它接在單片機的一個IO口上面,通過接收外部中斷來判斷是否需要讀取MPU6050的信號。

11號是幀同步信號數字輸入,一般不用,可連於GND。

10號是參考源的濾波電容接入,這個電容要和GND/VDD之間的濾波電容一致。

9號AD0是用來改變IIC地址的,我們知道一個單片機的IIC總線上通常可以連着好多個設備,每個設備都有一個獨特的IIC地址從而將不同設備區別開。但萬一就有這麼個設備,它恰好地址與我們的MPU6050重合了,那麼我們需要在AD0上加一個高電平,這樣MPU6050就換成備用的IIC地址了,從而避免混淆。(默認是0x68,加了AD0後是0X69)

8號VLOGIC是邏輯參考電壓,我們前面討論過SDA和SCL是數據和時鐘線,數據是由高低電平的在時間上的規律性排布表徵的,那麼問題來了,到底多高算是高電平?3.3V還是5V,我們自己心裏有數,但也要讓MPU6050知道。SDA和SCL在一般電路上通過一個上拉電阻連接到3.3V,所以我們要給它接一個3.3V作爲高點平的參考。

6和7分別是AUX_DA和AUX_CL,它們的作用是外接磁力計,由於我們用不到磁力計,所以之間將其懸空。

1號是外部時鐘輸入,一般用不到,直接接地就可以。

根據上面的分析,一般設計的電路圖都是這樣的:
在這裏插入圖片描述
前面有一處沒說,就是這裏的R7和R8,它們是上拉電阻。比如,說如果SCL(紅字)輸入一個GND,則SCL就是GND;如果SCL是懸空的,則輸入一個3.3V。

上面電路圖已經是一個比較基本的模板了,大家可以按照每個接口的功能,自己對照分析一下;也可以不分析直接使用。

如果單片機上面的代碼寫的比較好,那效果是非常顯著的。

在這裏插入圖片描述

下面講一下氣壓計的硬件配置,基本上也大同小異。
在這裏插入圖片描述
這裏的FBM320、BMP280、SPL06的硬件電路都是通用的,電路板設計完之後,可以選擇任意一種貼上去。一般推薦歌爾聲學的SPL06,物美價廉,質量要比BMP280好一些,不考慮成本的話,也可以用我們知道氣壓這個物理量是隨着海拔有一個比較敏感的變化的。因而用在飛行器上,可以計算飛行器的高度。

GND、Vdd、SDA、SCL就不用說了,這裏的VddIO是IC中I/O的電源接口,是一個參考電壓,和Vdd給一樣的3.3V即可。SDO其實就是AD0,也就是地址選擇引腳,可以直接接地(0X6C)。CSB是片選信號,如果是高電平,表示這個芯片被選中開始正常工作,直接接高電平即可。

最後關於IIC通信協議,推薦一篇之前有人寫過的文章:

快速通道: https://blog.csdn.net/lingdongtianxia/article/details/81135456.

(未完待續)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章