[Sterowanie podwodnym sterem strumieniowym] Jak używać STM32 do sterowania ESC poprzez PWM?

Wysłane przez Fengyukun dnia

Wielu badaczy chcących wykorzystać mikrokontrolery do sterowania pracą silników odrzutowych znalazło w Internecie wiele informacji, jednak okazało się, że wiele z nich nie jest jasno napisanych.APISQUEEN z grubsza zapisuje sposób rozwiązania problemu.
Mam nadzieję, że każdy będzie mógł podzielić się swoimi doświadczeniami w obszarze komentarzy i pomóc większej liczbie osób.
Kupiony przez nas ESC może być inny, ale ogólna koncepcja sterowania jest taka sama, więc wierzę, że po przeczytaniu tego artykułu będziesz w stanie osiągnąć swoje cele.

Sygnał PWM:
(1) Sterowanie falą PWM (zwykle esc wykorzystuje kontrolę fali PWM 50 Hz lub 20 ms);
(2) Przerwa pośrednia (tutaj ogólnie odnosi się do cyklu pracy wysokiego poziomu) 1,5 ms, w rzeczywistości jest to przerwa pośrednia między 1,475 ms a 1,525 ms;
(3) Zakres regulacji wynosi 1 ms ~ 2 ms;
(4) Przejdź do przodu o 1,5 ms do 2 ms i cofnij o 1,5 ms do 1 ms.


Oto proste odniesienie oparte na Arduino:


UWAGA: Aby móc korzystać z ESC, należy go odblokować! Po podłączeniu ESC do zasilania wyda on 3 sygnały dźwiękowe, a następnie, gdy zostanie pomyślnie odblokowany, zabrzmi 2 razy, w sumie 5 razy. Jeśli nie uda ci się odblokować ESC, nie będziesz mógł go używać do sterowania. Zatem odwołując się do powyższego kodu można stwierdzić, że sposobem na odblokowanie ESC jest ustawienie go po inicjalizacji na sygnał neutralny i oczekiwanie na odbiór sygnału (dwa sygnały) przed rozpoczęciem kontroli prędkości.


Metody kontroli i debugowania


Używamy płytki rozwojowej STM32F7 i biblioteki HAL do programowania i debugowania.W rzeczywistości timer wyprowadza fale PWM. Ale jest wiele rzeczy, na które należy zwrócić uwagę, a niejasne szczegóły naprawdę marnują czas i energię.Oto kilka słów o debugowaniu.

Przede wszystkim konfigurując falę PWM w timerze należy uważać, aby nie zainicjować jej jako sygnału odblokowującego, nie nadać jej losowej wartości, ani jej nie konfigurować. Ponieważ ESC jest odblokowany dopiero po zainicjowaniu timera i PWM, biorąc mój przykład, mediana sygnału zatrzymania wynosząca 1,5 ms jest sygnałem odblokowania, wtedy nie można skonfigurować PWM na 1,5 ms od początku, w przeciwnym razie ESC wyda sygnał dźwiękowy tylko raz po trzy sygnały dźwiękowe, a wiosło nadal się nie obraca.


Po drugie, zwróć uwagę na użycie opóźnienia. Na początku nie używałem opóźnienia i w rezultacie ESC tylko piszczał, a potem nie reagował.Potem obserwując falę PWM za pomocą oscyloskopu odkryłem, że zainicjowany przeze mnie PWM migał bezpośrednio i musiałem to zrobić daj czas ESC na odebranie sygnału odblokowania. Ale i w tym momencie powinieneś zwrócić uwagę.Na początku użyłem opóźnienia_us() do skonfigurowania go, ale problemu nie udało się rozwiązać.Później zmieniłem go na opóźnienie_ms(1000), co oznacza, że skonfigurowany czas wynosi 1s.Nie nadal jest problem. Następnie dostosowałem czas. Po dwóch ostatnich sygnałach dźwiękowych silnik zaczyna się obracać. Dlatego bardzo ważne jest, aby sprawdzić czas odbioru sygnału odblokowującego.


Zwróć także uwagę na naukę obsługi oscyloskopu, aby sprawdzić, czy nie występują problemy z sygnałami, które konfigurujesz podczas użytkowania. Poniżej znajduje się fala PWM z cyklem pracy 1,5 ms, okresem 20 ms i amplitudą 3,3 V, którą zainicjowałem na początku.


Podsumowując, w całym procesie należy zwrócić uwagę na:

(1) ESC jest zazwyczaj sterowany z częstotliwością 50 Hz, a zakres regulacji wynosi mniej więcej od 1 ms do 2 ms, oczywiście zależy to od sytuacji.
(2) Po włączeniu zasilania ESC wyda 3 sygnały dźwiękowe, a po pomyślnym odblokowaniu ESC wyda 2 sygnały dźwiękowe. Jeśli jednak ESC wyda sygnał dźwiękowy tylko raz, może to oznaczać, że ESC odebrał skonfigurowany sygnał, ale nie udało mu się odblokować urządzenia, dlatego należy dwukrotnie sprawdzić kod odblokowujący, aby sprawdzić, czy nie występują jakieś błędy. Jeśli ESC nie wydaje żadnego dźwięku, oznacza to, że nawet nie odbiera sygnału, sprawdź dokładnie okablowanie i kod.
(3) Zwróć uwagę na użycie funkcji opóźnienia, aby dać ESC określoną ilość czasu na odebranie sygnału odblokowującego.Każdy ESC jest inny, więc możesz to dostosować samodzielnie.
(4) Zwróć uwagę na uziemienie, podłącz linię sygnałową ESC do portu wyjściowego sygnału na płycie sterującej, a następnie uziemij linię sygnałową do masy GND na płycie sterującej.
(5) Nauczyć się używać oscyloskopu do sprawdzania skonfigurowanych sygnałów.
Nie podłączaj niewłaściwej linii!


Udostępnij ten post



← Starszy post Nowszy post →


0 komentarze(-y)

Zostaw komentarz