構建東西并讓它們按照我們想要的方式工作,一直很有趣。雖然已經同意這一點,但建造可以飛行的東西肯定會在業余愛好者和硬件修補匠中引起更多的焦慮。是的!我說的是滑翔機、直升機、飛機,主要是多旋翼飛機。今天,由于在線提供的社區支持,自己構建一個變得非常容易。所有飛行事物的一個共同點是它們使用 BLDC 電機,那么這個BLDC 電機是什么?為什么我們需要它來飛行東西?它有什么特別之處?如何購買合適的電機并將其與您的控制器連接?什么是ESC,我們為什么要使用它?如果您有這樣的問題,那么本教程是您的一站式解決方案。
所以基本上在本教程中,我們將使用 Arduino 控制無刷電機。這里A2212/13T 無傳感器 BLDC外轉子電機與 20A 電子速度控制器 (ESC) 一起使用。這種電機通常用于制造無人機。
所需材料
A2212/13T 無刷直流電機
電調 (20A)
電源 (12V 20A)
阿杜伊諾
電位計
了解無刷直流電機
BLDC 電機代表無刷直流電機,由于其平穩運行,它通常用于吊扇和電動汽車。前面詳細解釋了 BLDC 電機在電動汽車中的使用。與其他電機不同,BLDC 電機有三根電線從中出來,每根電線形成自己的相位,因此為我們提供了一個三相電機。等。。。什么!!??
是的,盡管 BLDC 電機被認為是直流電機,但它們在脈沖波的幫助下工作。電子速度控制器(ESC) 將來自電池的直流電壓轉換為脈沖,并將其提供給電機的 3 根電線。在任何給定時間,只有電機的兩相通電,因此電流通過一相進入并通過另一相離開。在此過程中,電機內部的線圈通電,因此轉子上的磁鐵與通電線圈對齊。然后接下來的兩根電線由電調通電,這個過程繼續使電機旋轉。電機的速度取決于線圈通電的速度,電機的方向取決于線圈通電的順序。我們將在本文后面了解有關 ESC 的更多信息。
有許多類型的 BLDC 電機可供選擇,讓我們來看看最常見的分類。
內流道和外流道 BLDC 電機:在轉輪中,BLDC 電機的工作方式與任何其他電機一樣。也就是說,電機內部的軸在外殼保持固定的情況下旋轉。雖然外流道 BLDC 電機正好相反,但電機的外殼隨著軸旋轉,而內部線圈保持固定。外轉子電機在電動自行車中非常有優勢,因為外殼(旋轉的外殼)本身被制成輪胎的輪輞,因此避免了耦合機構。此外,外轉輪電機往往比轉輪類型產生更大的扭矩,因此它成為電動汽車和無人機的理想選擇。我們在這里使用的一個也是外流道類型。
注意:還有另一種類型的電機稱為無芯 BLDC 電機,也用于袖珍無人機,它們具有不同的工作原理,但現在讓我們為了本教程而跳過它。
傳感器和無傳感器 BLDC 電機:為了使 BLDC 電機在沒有任何抖動的情況下旋轉,需要反饋。也就是說,電調必須知道轉子中磁鐵的位置和極點,以便根據定子通電。這些信息可以通過兩種方式獲取;一種是在電機內部放置霍爾傳感器。霍爾傳感器將檢測磁鐵并將信息發送到電調,這種類型的電機稱為感應式 BLDC 電機,用于電動汽車。第二種方法是使用磁鐵穿過線圈時產生的反電動勢,這不需要額外的硬件或電線,相線本身用作反饋來檢查反電動勢。這種方法用于我們的電機,在無人機和其他飛行項目中很常見。
為什么無人機和其他多旋翼飛行器使用 BLDC 電機?
有許多類型的酷無人機,從四軸飛行器到直升機和滑翔機,一切都有一個共同的硬件。這就是 BLDC 電機,但為什么呢?為什么他們使用與直流電機相比有點貴的 BLDC 電機?
這有很多正當的原因,一個主要原因是這些電機提供的扭矩非常高,這對于快速獲得/放松推力以起飛或降落無人機非常重要。此外,這些電機可用作外轉輪,這再次增加了電機的推力。選擇 BLDC 電機的另一個原因是其平穩的無振動運行,這對于我們的無人機來說非常理想,穩定在半空中。
BLDC 電機的功率重量比非常高。這非常重要,因為無人機上使用的電機應該具有高功率(高速和高扭矩),但也應該重量更輕。可以提供與 BLDC 電機相同的扭矩和速度的直流電機的重量將是 BLDC 電機的兩倍。
為什么我們需要ESC,它的功能是什么?
眾所周知,每個 BLDC 電機都需要某種控制器將來自電池的直流電壓轉換為脈沖,為電機的相線供電。該控制器稱為ESC,代表電子速度控制器。控制器的主要職責是按順序激勵 BLDC 電機的相線,使電機旋轉。這是通過感測每根導線的反電動勢并在磁體穿過線圈時精確地為線圈供電來完成的。因此,ESC 內部有很多硬件的出色之處,這超出了本教程的范圍。但僅舉幾例,它具有速度控制器和電池消除器電路。
基于 PWM 的速度控制:電調可以通過讀取橙色線上提供的 PWM 信號來控制 BLDC 電機的速度。它的工作原理與伺服電機非常相似,提供的 PWM 信號應具有 20ms 的周期,并且可以改變占空比以改變 BLDC 電機的速度。由于相同的邏輯也適用于伺服電機來控制位置,因此我們可以在Arduino程序中使用相同的伺服庫。
電池消除器電路 (BEC):幾乎所有的電調都帶有電池消除器電路。顧名思義,該電路消除了微控制器對單獨電池的需求,在這種情況下,我們不需要單獨的電源為Arduino供電;ESC本身將提供穩定的+5V,可用于為我們的Arduino供電。有許多類型的電路可以調節此電壓,通常它將是廉價電調的線性調節,但您也可以找到帶有開關電路的電路。
固件:每個ESC都有一個由制造商寫入的固件程序。此固件極大地決定了您的 ESC 如何響應;一些流行的固件是傳統,Simon-K和BL-Heli。該固件也是用戶可編程的,但我們不會在本教程中詳細介紹。
BLDC和ESC的一些常見術語:
如果您剛剛開始使用 BLDC 電機,那么您可能會遇到制動、軟啟動、電機方向、低電壓、響應時間和提前等術語。讓我們來看看這些術語的含義。
制動:制動是 BLDC 電機在油門移除后立即停止旋轉的能力。這種能力對于多旋翼飛行器非常重要,因為他們必須更頻繁地改變轉速才能在空中機動。
軟啟動:軟啟動是 BLDC 電機與齒輪相關聯時要考慮的重要功能。當電機啟用軟啟動時,它不會突然開始旋轉得很快,無論油門有多快,它總是會逐漸增加速度。這將有助于我們減少與電機相連的齒輪(如果有)的磨損。
電機方向:BLDC 電機中的電機方向在運行過程中通常不會改變。但在組裝時,用戶可能需要改變電機的旋轉方向。改變電機方向的最簡單方法是簡單地相互更換電機的任何兩根電線。
低壓停止:校準后,我們始終需要我們的 BLDC 電機以相同的特定速度運行,以獲得特定的節氣門值。但這很難實現,因為隨著電池電壓的降低,電機傾向于降低其速度,以達到相同的油門值。為了避免這種情況,我們通常對ESC進行編程,使其在電池電壓達到閾值以下時停止工作,此功能稱為低電壓停止,在無人機中很有用。
響應時間:電機根據油門的變化快速改變其速度的能力稱為響應時間。響應時間越短,控制效果就越好。
進展:前進是一個問題,或者更像是 BLDC 電機的錯誤。所有 BLDC 電機都有一點進步。也就是說,當定子線圈通電時,由于它們上存在永磁體,轉子被吸引到它身邊。被吸引后,轉子傾向于在線圈斷電之前沿同一方向向前移動一點,然后下一個線圈通電。這種運動稱為“前進”,它會產生抖動、升溫、發出噪音等問題。因此,這是一個好的ESC應該避免的事情。
好的,現在有足夠的理論讓我們通過將電機與Arduino連接來開始使用硬件。
Arduino BLDC 電機控制電路圖
以下是使用Arduino控制無刷電機的電路圖:
將 BLDC 電機與 Arduino 接口的連接非常簡單。ESC 需要大約 12V 和 5A 的電源(最小值)。在本教程中,我使用RPS作為電源,但您也可以使用鋰聚合物電池為ESC供電。電調的三相線應連接到電機的三相線,沒有順序連接這些電線,您可以按任何順序連接它們。
警告:有些電調上沒有連接器,在這種情況下,請確保您的連接牢固,并使用絕緣膠帶保護裸露的電線。由于會有高電流通過相位,任何短路都會導致電調和電機的永久性損壞。
ESC本身的BEC(電池消除器電路)將調節+5V,可用于為Arduino板供電。最后,為了設置 BLDC 電機的速度,我們還使用連接到 Arduino 的 A0 引腳的電位計
使用 Arduino 進行 BLDC 速度控制的程序
我們必須創建一個占空比從0%到100%的PWM信號,頻率為50Hz。應使用電位計控制占空比,以便我們可以控制電機的速度。執行此操作的代碼類似于控制伺服電機,因為它們還需要頻率為 50Hz 的 PWM 信號;因此,我們使用與Arduino相同的伺服庫。完整的代碼可以在本頁底部找到,下面我用小片段解釋代碼。如果您不熟悉Arduino或PWM,請首先將PWM與Arduino一起使用,并使用Arduino控制伺服。
PWM信號只能在硬件支持PWM的引腳上產生,這些引腳通常用~符號提及。在Arduino UNO上,引腳9可以生成PWM信號,因此我們將ESC信號引腳(橙色線)連接到引腳9,我們還使用以下行提到了相同的inn代碼
ESC.attach(9);
我們必須生成占空比從0%到100%變化的PWM信號。對于 0% 占空比,POT 將輸出 0V (0),對于 100% 占空比,POT 將輸出 5V (1023)。這里的電位器連接到引腳A0,因此我們必須使用模擬讀取功能從POT讀取模擬電壓,如下所示
int throttle = analogRead(A0);
然后我們必須將值從 0 到 1023 轉換為 0 到180,因為值 0 將產生 0% PWM,值 180 將產生 100% 占空比。任何高于 180 的值都沒有意義。因此,我們使用map函數將值映射到0-180,如下所示。
throttle = map(throttle, 0, 1023, 0, 180);
最后,我們必須將此值發送到伺服功能,以便它可以在該引腳上生成PWM信號。由于我們已將伺服對象命名為 ESC,因此代碼如下所示,其中可變油門包含 0-180 之間的值,以控制 PWM 信號的占空比
ESC.write(throttle);
Arduino BLDC 電機控制
根據電路圖進行連接,并將代碼上傳到Arduino并啟動ESC。確保已將 BLDC 電機安裝在某物上,因為電機在旋轉時會跳來跳去。一旦設置通電,您的 ESC 將發出歡迎音并繼續發出嗶嗶聲,直到油門信號在閾值限制內,只需從 0V 逐漸增加 POT,蜂鳴音就會停止,這意味著我們現在提供高于下限閾值的 PWM 信號,隨著您進一步增加,電機將開始緩慢旋轉。您提供的電壓越多,電機的速度就越快,最后當電壓達到閾值上限以上時,電機將停止。然后,您可以重復該過程。
-
無刷電機
+關注
關注
57文章
798瀏覽量
45470 -
Arduino
+關注
關注
186文章
6453瀏覽量
185902
發布評論請先 登錄
相關推薦
評論