- Wymagane materiały
- Zrozumienie silników BLDC
- Dlaczego drony i inne multikoptery używają silników BLDC?
- Dlaczego potrzebujemy ESC i jaka jest jego funkcja?
- Kilka wspólnych terminów z BLDC i ESC:
- Schemat obwodu sterującego silnika Arduino BLDC
- Program do sterowania prędkością BLDC za pomocą Arduino
- Sterowanie silnikiem Arduino BLDC
Budowanie rzeczy i sprawianie, by działały tak, jak chcemy, zawsze było czystą zabawą. Chociaż zostało to uzgodnione, budowanie rzeczy, które mogłyby latać, zdecydowanie wzbudziłoby nieco większy niepokój wśród hobbystów i majsterkowiczów. Tak! Mowa o szybowcach, helikopterach, samolotach i głównie multi-helikopterach. Dziś zbudowanie własnej aplikacji stało się bardzo łatwe dzięki wsparciu społeczności dostępnemu online. Jedną wspólną cechą wszystkich latających rzeczy jest to, że używają silnika BLDC, więc co to za silnik BLDC? Dlaczego potrzebujemy go do latania? Co jest w nim takiego specjalnego? Jak kupić odpowiedni silnik i połączyć go ze swoim kontrolerem? Co to jest ESC i dlaczego go używamy? Jeśli masz takie pytania, ten samouczek jest Twoim kompleksowym rozwiązaniem.
Zasadniczo w tym samouczku będziemy sterować silnikiem bezszczotkowym za pomocą Arduino. W tym przypadku bezczujnikowy silnik BLDC A2212 / 13T jest używany z elektronicznym regulatorem prędkości 20 A (ESC). Ten silnik jest powszechnie używany do budowy dronów.
Wymagane materiały
- Silnik A2212 / 13T BLDC
- ESC (20A)
- Źródło zasilania (12 V 20 A)
- Arduino
- Potencjometr
Zrozumienie silników BLDC
Silnik BLDC oznacza silnik Brush Less DC, jest powszechnie stosowany w wentylatorach sufitowych i pojazdach elektrycznych ze względu na płynną pracę. Zastosowanie silników BLDC w pojazdach elektrycznych zostało wcześniej szczegółowo wyjaśnione. W przeciwieństwie do innych silników, silniki BLDC mają trzy przewody wychodzące z nich, a każdy przewód tworzy własną fazę, dzięki czemu otrzymujemy silnik trójfazowy. Czekaj, co!!??
Tak, chociaż silniki BLDC są uważane za silniki prądu stałego, działają z pomocą fal impulsowych. Regulator prędkości Elektroniczna (ESC) przekształca napięcie stałe z akumulatora w celu impulsów i dostarcza go do 3 przewodów silnika. W danym momencie zasilane będą tylko dwie fazy silnika, tak że prąd przechodzi przez jedną fazę, a wypływa przez drugą. Podczas tego procesu cewka wewnątrz silnika jest zasilana, a zatem magnesy na wirniku ustawiają się w jednej linii z zasilaną cewką. Następnie ESC zasila następne dwa przewody, proces ten jest kontynuowany, aby wprawić silnik w ruch. Prędkość silnika zależy od tego, jak szybko cewka jest zasilana, a kierunek silnika zależy od kolejności zasilania cewek. Dowiemy się więcej o ESC w dalszej części tego artykułu.
Dostępnych jest wiele typów silników BLDC, spójrzmy na najpopularniejsze klasyfikacje.
Silnik BLDC w biegu i poza nim: Silniki BLDC w biegu roboczym działają jak każdy inny silnik. Oznacza to, że wał wewnątrz silnika obraca się, podczas gdy obudowa pozostaje nieruchoma. Podczas gdy silniki BLDC z prowadnicą są dokładnie odwrotne, obudowa zewnętrzna silnika obraca się wraz z wałem, podczas gdy cewka wewnątrz pozostaje nieruchoma. Silniki z prowadnicą zewnętrzną są bardzo korzystne w rowerach elektrycznych, ponieważ zewnętrzna osłona (ta, która się obraca) sama jest wykonana w obręcz dla opon, dzięki czemu unika się mechanizmu sprzęgającego. Również silniki z zewnętrzną prowadnicą mają tendencję do dawania większego momentu obrotowego niż w typach prowadnic, dlatego stają się idealnym wyborem w pojazdach elektrycznych i dronach. Ten, którego tutaj używamy, jest również typem biegacza.
Uwaga: istnieje inny typ silnika zwany bezrdzeniowymi silnikami BLDC, który jest również używany w kieszonkowych dronach, mają inną zasadę działania, ale na razie pomińmy to ze względu na ten samouczek.
Czujnik i bezczujnikowy silnik BLDC: Aby silnik BLDC obracał się bez szarpnięcia, wymagane jest sprzężenie zwrotne. To znaczy, że ESC musi znać położenie i biegun magnesów w wirniku, aby odpowiednio zasilić stojan. Informacje te można uzyskać na dwa sposoby; jeden polega na umieszczeniu czujnika Halla wewnątrz silnika. Czujnik Halla wykryje magnes i wyśle informację do ESC. Ten typ silnika nazywany jest silnikiem Sensord BLDC i jest stosowany w pojazdach elektrycznych. Druga metoda polega na wykorzystaniu wstecznego pola elektromagnetycznego generowanego przez cewki, gdy magnesy je przecinają, co nie wymaga dodatkowego sprzętu lub przewodów, a sam przewód fazowy jest używany jako sprzężenie zwrotne w celu sprawdzenia wstecznego pola elektromagnetycznego. Ta metoda jest używana w naszym silniku i jest powszechna dla dronów i innych projektów latających.
Dlaczego drony i inne multikoptery używają silników BLDC?
Istnieje wiele rodzajów fajnych dronów, od quadów po helikoptery i szybowce, a wszystko ma jeden wspólny sprzęt. To silniki BLDC, ale dlaczego? Dlaczego używają silnika BLDC, który jest nieco drogi w porównaniu do silników prądu stałego?
Jest kilka ważnych powodów, jednym z głównych powodów jest to, że moment obrotowy zapewniany przez te silniki jest bardzo wysoki, co jest bardzo ważne, aby szybko uzyskać / stracić siłę ciągu, aby wystartować lub wylądować dronem. Również te silniki są dostępne jako zewnętrzne prowadnice, co ponownie zwiększa siłę ciągu silników. Innym powodem wyboru silnika BLDC jest jego płynna praca bez wibracji, jest to bardzo idealne rozwiązanie dla naszego drona stabilnego w powietrzu.
Stosunek mocy do masy silnika BLDC jest bardzo wysoki. Jest to bardzo ważne, ponieważ silniki używane w dronach powinny mieć dużą moc (dużą prędkość i wysoki moment obrotowy), ale również powinny mieć mniejszą wagę. Silnik prądu stałego, który mógłby zapewnić taki sam moment obrotowy i prędkość jak silnik BLDC, będzie dwukrotnie cięższy niż silnik BLDC.
Dlaczego potrzebujemy ESC i jaka jest jego funkcja?
Jak wiemy, każdy silnik BLDC wymaga pewnego rodzaju kontrolera, który zamienia napięcie stałe z akumulatora na impulsy do zasilania przewodów fazowych silnika. Ten kontroler nazywa się ESC, co oznacza elektroniczny regulator prędkości. Głównym zadaniem kontrolera jest zasilanie przewodów fazowych silników BLDC w takiej kolejności, aby silnik się obracał. Odbywa się to poprzez wykrywanie tylnej pola elektromagnetycznego z każdego przewodu i zasilanie cewki dokładnie wtedy, gdy magnes przecina cewkę. Wewnątrz ESC jest więc wiele błyskotliwości sprzętowych, które wykraczają poza zakres tego samouczka. Ale żeby wspomnieć o kilku , ma regulator prędkości i obwód eliminatora baterii.
Sterowanie prędkością w oparciu o PWM: ESC może sterować prędkością silnika BLDC, odczytując sygnał PWM dostarczony na pomarańczowym przewodzie. Działa bardzo podobnie do serwomotorów, dostarczany sygnał PWM powinien mieć okres 20 ms, a cykl pracy można zmieniać, aby zmieniać prędkość silnika BLDC. Ponieważ ta sama logika dotyczy również serwomotorów do sterowania pozycją, możemy użyć tej samej biblioteki serwonapędów w naszym programie Arduino. Dowiedz się, jak używać Servo z Arduino tutaj.
Obwód eliminatora baterii (BEC): Prawie wszystkie ESC są wyposażone w obwód eliminatora baterii. Jak nazwa sugeruje, układ ten eliminuje potrzebę osobnej baterii do mikrokontrolera, w tym przypadku nie potrzebujemy osobnego zasilacza do zasilania naszego Arduino; sam ESC zapewni regulowane + 5V, które można wykorzystać do zasilania naszego Arduino. Istnieje wiele typów obwodów, które regulują to napięcie, normalnie będzie to regulacja liniowa w tanich ESC, ale można również znaleźć układy z obwodami przełączającymi.
Oprogramowanie układowe: każdy ESC ma program oprogramowania wbudowanego napisany przez producenta. To oprogramowanie w znacznym stopniu określa, jak reaguje ESC; niektóre popularne oprogramowanie układowe to Traditional, Simon-K i BL-Heli. To oprogramowanie jest również programowalne przez użytkownika, ale nie będziemy się tym zajmować w tym samouczku.
Kilka wspólnych terminów z BLDC i ESC:
Jeśli dopiero zaczynasz pracę z silnikami BLDC, prawdopodobnie spotkałeś się z takimi terminami, jak hamowanie, łagodny rozruch, kierunek silnika, niskie napięcie, czas reakcji i wyprzedzenie. Przyjrzyjmy się, co oznaczają te terminy.
Hamowanie: Hamowanie to zdolność silnika BLDC do zatrzymania się, gdy tylko przepustnica zostanie zdjęta. Ta umiejętność jest bardzo ważna w przypadku multi-helikopterów, ponieważ muszą one częściej zmieniać obroty, aby manewrować w powietrzu.
Miękki start: Miękki start jest ważną cechą, którą należy wziąć pod uwagę, gdy silnik BLDC jest powiązany z przekładnią. Gdy silnik ma włączoną funkcję łagodnego rozruchu, nie zacznie nagle obracać się bardzo szybko, zawsze będzie stopniowo zwiększać prędkość, bez względu na to, jak szybko została wprowadzona przepustnica. Pomoże nam to zmniejszyć zużycie przekładni dołączonych do silników (jeśli występują).
Kierunek silnika: Kierunek silnika w silnikach BLDC zwykle nie zmienia się podczas pracy. Jednak podczas montażu użytkownik może potrzebować zmienić kierunek, w którym obraca się silnik. Najłatwiejszym sposobem zmiany kierunku silnika jest po prostu zamiana dowolnych dwóch przewodów silnika.
Zatrzymanie przy niskim napięciu: Po skalibrowaniu zawsze potrzebowalibyśmy, aby nasze silniki BLDC pracowały z tą samą prędkością dla określonej wartości przepustnicy. Ale jest to trudne do osiągnięcia, ponieważ silniki mają tendencję do zmniejszania prędkości o tę samą wartość przepustnicy, gdy spada napięcie akumulatora. Aby tego uniknąć, normalnie programujemy ESC, aby przestał działać, gdy napięcie baterii spadnie poniżej wartości progowej, ta funkcja nazywa się Low Voltage Stop i jest przydatna w dronach.
Czas reakcji: Zdolność silnika do szybkiej zmiany prędkości w oparciu o zmianę przepustnicy nazywana jest czasem odpowiedzi. Im krótszy czas odpowiedzi, tym lepsza kontrola.
Advance: Advance to problem lub bardziej jak błąd w silnikach BLDC. Wszystkie silniki BLDC mają w sobie trochę zaawansowania. To wtedy, gdy cewki stojana są zasilane, wirnik jest przyciągany do niego z powodu obecnego na nich magnesu trwałego. Po przyciągnięciu wirnik ma tendencję do poruszania się nieco bardziej do przodu w tym samym kierunku, zanim cewka wyłączy się, a następnie zostanie pobudzona następna cewka. Ten ruch nazywa się „Advance” i spowoduje problemy, takie jak drgania, nagrzewanie, hałas itp. Jest to więc coś, czego dobry ESC powinien sam unikać.
Dobra, wystarczy teorii, zacznijmy teraz od sprzętu, łącząc silnik z Arduino.
Schemat obwodu sterującego silnika Arduino BLDC
Poniżej znajduje się schemat obwodu do sterowania silnikiem bezszczotkowym za pomocą Arduino:
Połączenie do łączenia silnika BLDC z Arduino jest dość proste. ESC potrzebuje źródła zasilania minimum około 12 V i 5 A. W tym samouczku użyłem mojego RPS jako źródła zasilania, ale możesz również użyć baterii Li-Po do zasilania ESC. Przewody trójfazowe ESC należy podłączyć do przewodów trójfazowych silników, nie ma kolejności łączenia tych przewodów, można je podłączać w dowolnej kolejności.
Ostrzeżenie: Niektóre ESC nie będą miały na sobie złączy, w takim przypadku upewnij się, że połączenie jest solidne i zabezpiecz odsłonięte przewody taśmą izolacyjną. Ponieważ przez fazy będzie przepływał prąd o wysokim natężeniu, każde zwarcie doprowadzi do trwałego uszkodzenia ESC i silnika.
BEC (Battery Eliminator obwód) w samej ESC będzie regulować + 5V, który może być używany do zasilania w górę Arduino Nadzorczej. Na koniec do ustawienia prędkości silnika BLDC używamy również potencjometru podłączonego do pinu A0 Arduino
Program do sterowania prędkością BLDC za pomocą Arduino
Musimy stworzyć sygnał PWM o zmiennym cyklu pracy od 0% do 100% z częstotliwością 50 Hz. Cykl pracy powinien być kontrolowany za pomocą potencjometru, abyśmy mogli kontrolować prędkość silnika. Kod służący do tego jest podobny do sterowania serwomotorami, ponieważ wymagają one również sygnału PWM o częstotliwości 50 Hz; dlatego używamy tej samej biblioteki serwonapędów z Arduino. Kompletny kod można znaleźć na dole tej strony poniżej opiszę kod w małych fragmentach. A jeśli jesteś nowy w Arduino lub PWM, najpierw przejdź przez użycie PWM z Arduino i kontrolowanie serwomechanizmu za pomocą Arduino.
Sygnał PWM może być generowany tylko na pinach, które obsługują PWM przez sprzęt, te piny są zwykle oznaczone symbolem ~. Na Arduino UNO pin 9 może generować sygnał PWM, więc podłączamy pin sygnału ESC (pomarańczowy przewód) do pinu 9, wspominamy również o tym samym kodzie zajazdu, używając następującego wiersza
ESC.attach (9);
Musimy wygenerować sygnał PWM o zmiennym cyklu pracy od 0% do 100%. Dla cyklu pracy 0% POT wyprowadza 0 V (0), a dla cyklu pracy 100% POT wyprowadza 5 V (1023). Tutaj potencjometr jest podłączony do pinu A0, więc musimy odczytać napięcie analogowe z POT za pomocą funkcji odczytu analogowego, jak pokazano poniżej
int throttle = analogRead (A0);
Następnie musimy przekonwertować wartość od 0 do 1023 na 0 do 180, ponieważ wartość 0 wygeneruje 0% PWM, a wartość 180 wygeneruje 100% cykl pracy. Wszelkie wartości powyżej 180 nie będą miały sensu. Więc mapujemy wartość na 0-180 za pomocą funkcji map, jak pokazano poniżej.
throttle = map (throttle, 0, 1023, 0, 180);
Na koniec musimy wysłać tę wartość do funkcji serwomechanizmu, aby mogła wygenerować sygnał PWM na tym pinie. Ponieważ nazwaliśmy obiekt serwo jako ESC, kod będzie wyglądał jak poniżej, gdzie zmienna przepustnica zawiera wartość z zakresu 0-180 do sterowania cyklem pracy sygnału PWM
ESC.write (przepustnica);
Sterowanie silnikiem Arduino BLDC
Wykonaj połączenia zgodnie ze schematem obwodu i prześlij kod do Arduino i włącz ESC. Upewnij się, że zamontowałeś silnik BLDC na czymś, ponieważ silnik będzie podskakiwał dookoła podczas obracania. Po włączeniu konfiguracji, twój ESC wyda dźwięk powitalny i będzie wydawał dźwięk, aż sygnał przepustnicy znajdzie się w granicach progowych, po prostu zwiększaj POT stopniowo od 0 V, a sygnał dźwiękowy ustanie, co oznacza, że teraz zapewniamy PWM sygnał powyżej dolnej wartości progowej, a wraz ze wzrostem dalej silnik zacznie powoli się obracać. Im większe napięcie podasz, tym większą prędkość osiągnie silnik, aw końcu, gdy napięcie przekroczy górną granicę progową, silnik się zatrzyma. Następnie możesz powtórzyć proces.
Pełne działanie tego kontrolera Arduino BLDC można również znaleźć pod linkiem wideo poniżej. Jeśli napotkałeś jakiś problem z uruchomieniem tego, możesz skorzystać z sekcji komentarzy lub skorzystać z forów, aby uzyskać bardziej techniczną pomoc.