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