Skocz do zawartości

Bascom - odchylenie serwa o pewien ustalony kąt


Bertos87

Pomocna odpowiedź

Jeżeli to rzeczywiście są drgania (słychać jakby brzęczenie) a nie rzeczywiste ruchy, bo 1 stopnień to całkiem dużo, to z tym zjawiskiem walczą wszyscy modelarze od początku istnienia standartu PPM.

Sytuacja moim zdaniem wygląda następująco:

- Jedne typy serwomechanizmów tak mają, inne nie (lub wyraźnie mniej). Kiedyś testowałem wszystko co mi się ruszało w szufladzie: droższe i/lub większe były wyraźnie lepsze i spokojniejsze (a to niepodzianka 😐 ).

- Jeżeli miałbym szukać winnego na zewnątrz serwa, to pierwszym podejrzanym będzie oczywiście jitter sygnału PPM czyli niestabilność długości impulsów lub okresu powtarzania. BASCOM umożliwia(?) definiowanie wyjść PPM na dowolnym pinie procesora a to znaczy, że robi ten sygnał programowo. To już definicji wprowadza pewne (ale nieduże) drgania długości lub choćby położenia impulsów. Jeżeli w systemie są inne przerwania albo sekcje krytyczne albo sygnałów PPM jest dużo, pewnie będzie gorzej ale wciąż raczej nie tyle, by wychodzić wartością sygnału poza rozsądną histerezę serwa. Ostatecznym dowodem w tym konkretnym przypadku powinien być oscyloskop.

- Dodatkowe blokowanie zasilania może pomóc a już na pewno nie zaszkodzi.

- Może się tak nieszczęśliwie złożyć, że długość impulsu PPM w jakiś sposób trafia w czuły punkt serwa i nie może się ono "zdecydować" gdzie stanąć. Spróbuj zmienić wysterowanie o 1 lub 2 w którąś stronę. Jeżeli to pomoże, nie świadczy najlepiej o projekcie elektroniki serwa ale cóż...

- Kondensatory na sygnale PPM to zły pomysł. Normalne serwo ma odcinanie sygnału na poziomie 1V lub więcej plus własny filtr LP. Gdybyś miał takie zakłócenia, cały projekt powinieneś zrobić od nowa ale szczerze mówiąc nie sądzę, patrząc na bardzo ładny schemat zasilania. Jeżeli już to wartości < 100pF w pobliżu serwa ale to raczej chroni przed RF a Ty nie masz na pokładzie nadajnika, prawda?

Link do komentarza
Share on other sites

Niestety ale nie ma nadajnika RF.

Przerobiłem nie co mój projekt i dodałem 4 serwa

i zauważyłem że rzecz ta się dzieje w momencie gdy podłączam serwo/a do atmegi. Wówczas ten konkretny zaprogramowany pin atmegi Portc7 powoduję, że zaczyna przypisane do niego serwo drgać. Tak jakby uC generował sam zakłócenia. Pozosotałe 4 serwa nie wykonują żadnych ruchów.

Nie wiem czy ma to jakiej znaczenie ale do zasilania owych 5 serw używam zasilacza impulsowego od starego lapka (19V, 3,16A)

Link do komentarza
Share on other sites

Szczerze mówiąc nie do końca rozumiem ten opis, bo niby kiedy serwo ma drgać, kiedy nie jest podłączone do procesora? Może próbuj opisywać przebieg eksperymentów w punktach. Mam wrażenie, że w jednym zdaniu zawierasz kilka stanów i czasów.

W każdym razie, jeżeli dobrze odebrałem przekaz to sobie sam odpowiedziałeś: przypadek nr 2. Jedno z wyjść obsługiwane jest przez program trochę inaczej. Nie wiem co to za różnice ale jeśli problem jest tylko z jednym pinem, spróbuj zbadać przestrzeń rozwiązań:

- Pozamieniaj serwa i sprawdź, czy problem przenosi się wraz z konkretnym egzemplarzem serwa.

- Zobacz, czy problem przenosi się na inne piny gdy zmieniasz kolejność deklaracji wyjść typu "Servo" w programie.

- Sprawdź, czy lekka modyfikacja liczby I (np. ±1) coś zmienia w działaniu tego lub innych serw.

- Może takie działanie (np. pierwszego lub ostatniego w kolejności wyjścia) jest jakoś wbudowane w BASCOM a akurat Twoje serwa tego nie lubią. Spróbuj zadeklarować więcej wyjść PPM niż potrzebujesz (może jedno lub dwa więcej) i przełączając serwa sprawdź, czy znajdziesz taki komplet, który będzie działać OK.

Zasilacz od laptopa jest OK, z resztą przepuszczasz zasilanie przez kolejny stabilizator.

Na Twoim miejscu cieszyłbym się z braku nadajnika.

Link do komentarza
Share on other sites

... i zauważyłem że rzecz ta się dzieje w momencie gdy podłączam serwo/a do atmegi. Wówczas ten konkretny zaprogramowany pin atmegi Portc7 powoduję, że zaczyna przypisane do niego serwo drgać. Tak jakby uC generował sam zakłócenia. Pozosotałe 4 serwa nie wykonują żadnych ruchów.

Nie wiem czy ma to jakiej znaczenie ale do zasilania owych 5 serw używam zasilacza impulsowego od starego lapka (19V, 3,16A)

Jaki mikrokontroler?

Pokaż schemat części z mikrokontrolerem - to co wkleiłeś nie daje podstaw do szukania przyczyny.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Szczerze mówiąc nie do końca rozumiem ten opis, bo niby kiedy serwo ma drgać, kiedy nie jest podłączone do procesora? Może próbuj opisywać przebieg eksperymentów w punktach. Mam wrażenie, że w jednym zdaniu zawierasz kilka stanów i czasów.

Po kolei. Na początku używałem 1 serwa do testowania a teraz dodałem kolejne 4 serwa które są połączone ze sobą równolegle. Po co? Chciałem sprawdzić czy to wina leży w układzie zasilania serw jednakże problem leży gdzie indziej. Gdy podłączam zasilanie do wszystkich 5 serw - orczyki są nieruchome. Kiedy podłącze biały kabel serwa [PPM] do pinu "Port c7" Atmegi 16 wówczas orczyk zaczyna drgać. W tym czasie żaden z klawiszy S1 i S2 nie jest naciskany.

... i zauważyłem że rzecz ta się dzieje w momencie gdy podłączam serwo/a do atmegi. Wówczas ten konkretny zaprogramowany pin atmegi Portc7 powoduję, że zaczyna przypisane do niego serwo drgać. Tak jakby uC generował sam zakłócenia. Pozostałe 4 serwa nie wykonują żadnych ruchów.

Nie wiem czy ma to jakiej znaczenie ale do zasilania owych 5 serw używam zasilacza impulsowego od starego lapka (19V, 3,16A)

Jaki mikrokontroler?

Pokaż schemat części z mikrokontrolerem - to co wkleiłeś nie daje podstaw do szukania przyczyny.

Jest to Atmega 16. Wykonałem inny lepszy schemat

Link do komentarza
Share on other sites

OK, serwa nie drgają gdy nie są podłączone do źródła sygnału PPM. Samo zasilanie nie wystarczy, to jasne. Równolegle - masz na myśli tylko zasilania, tak? Każde z nich podczas Twoich testów "napędzane" jest jednak innym wyjściem procesora? No to czas na kilka prób, które opisałem poprzednio. Pozwolą odpowiedzieć na pytania:

- Czy jest to wina konkretnego egzemplarza serwa?

- Czy problem jest w BASCOMowej funkcji obsługi przerwań i generacji leciutko "zaśmieconego" sygnału PPM i nieszczęśliwym zbiegiem tego faktu z pewnymi cechami Twoich serw?

- Czy można coś na to poradzić?

Gdybyś miał wolniejszy zegar to jeszcze tu bym upatrywał problemu - w zbyt małej rozdzielczości timerów i zbyt dużej nieoznaczoności momentu obsługi przerwania (conajmniej ±1 cykl maszynowy ± sekcje krytyczne) ale 16MHz to nie przelewki. Lepiej już nie będzie.

Schematu nawet nie umieściłem na liście przewidywanych przyczyn i nie dopominałem się o niego. Jeśli procesor pracuje i serwa stoją w stabilnych pozycjach (w sensie braku dziwnych RESETów, rzucania się serw od ściany do sciany a podstawowe funkcje sterowania działają poprawnie itp), to pies jest pogrzebany w okolicach oprogramowania. Wejścia serw są dość odporne na zakłócenia powstające w badziewnym układzie a samo drżenie pojawiało się zanim jeszcze urodziły się AVRy. Dlatego opisałem kilka pomysłów prób jego lokalizacji (no, tego psa..).

Link do komentarza
Share on other sites

Zamień serwa miejscami i zobacz czy nadal drga to samo (problem serwa) czy na tej samej pozycji (problem wyjścia z uC).

[edit]

Widzę, że Marek mniej więcej to samo zaproponował wyżej.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.