Elektroda.pl
Elektroda.pl
X
Computer ControlsComputer Controls
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Dc servomotor controller na Attiny 2313

adamus202 31 Gru 2009 13:19 84670 163
  • #61
    Qudlaty
    Poziom 11  
    Czyli krótko mówiąc tak jak pisałem wcześniej z macha ma wychodzić zadany sygnał a wchodzić informacja o wykonaniu zadania, reszta realizowana jest przez sterownik w którym jest silnik i enkoder a realizowane zadania PIDa wykonywane są przez oddzielny układ?
  • Computer ControlsComputer Controls
  • #62
    adamus202
    Poziom 12  
    Mach tylko wysyła sygnały step (czyli ileś tam kroków z większą lub mniejszą częstotliwością => większa lub mniejsza prędkość) oraz sygnał kierunku.
    Opcjonalnie jest możliwość podłączenia enkoderów do MACH-a lecz jak już ktoś pisał spełnia to tylko rolę informacyjną dla operatora i mało kto to podłącza.
    Poniżej krótki filmik pokazujący pracę samego sterownika bez podłączonego komputera z MACH-em.


    Link
  • #63
    Qudlaty
    Poziom 11  
    Czyli to co pokazałeś na filmie to PID z jedna nastawą i wyprowadzasz go z równowagi a jeżeli chcesz zmienić położenie to np. z Macha podajesz mu inną nastawę?
  • #64
    adamus202
    Poziom 12  
    Tak. Jeżeli nie podaj się żadnego impulsu na wejście sterownika STEP to silnik stoi i utrzymywana jest ta pozycja. A gdy zostanie podany jeden impuls na wejście STEP to wał silnika obróci się o wartość kątową równą 360°/[rozdzielczość enkodera cpr].
  • #65
    Qudlaty
    Poziom 11  
    No dobra już wszystko rozumiem dzięki za pomoc i dokładne wyjaśnienia.
    Ale widać ze temat szybko nie umrze :)
  • #66
    kamilelektroda
    Poziom 12  
    Pytanie do Adamusa, jaki zrobiłeś konwertor ?( jakiś schemat rysunek poglądowy), czy można by użyć jakiegoś układu z serii CMOS ?
  • #67
    adamus202
    Poziom 12  
    Ja proponował bym nie robić żadnych konwerterów tylko zamiast driver-ów IR2111 zastosować IR2184. Niestety mają inny rozkład wyprowadzeń i nie można ich po prostu włożyć do mojej wersji płytki bez przeprojektowania ścieżek.
    Na pewno można zrobić taki konwerter na jakimś CMOS-ie tylko trzeba poszukać modelu z odpowiednimi poziomami wartości napięć.
    Ja zrobiłem najprościej w sposób jak na schemacie w załączniku.
  • #68
    kamilelektroda
    Poziom 12  
    Witam zmontowałem układ i mam problem po włączeniu zasilania servo się obraca i świeci się dioda "servo error", czy to może być przyczyna źle dobranych nastaw ? Jak rozumieć podane wzory do obliczania wartości P ? najpierw dzielenie później mnożenie czy jakoś inaczej ?. Zwracam się z prośbą do Adamusa czy mógłbyś wrzucić zdjęcie z HyperTerminala z wartościami jakie podałeś ?
    Pozdrawiam Kamil.
  • #69
    adamus202
    Poziom 12  
    Attiny-a 2313 musi być zaprogramowana wsadem z pliku na drugiej stronie tego tematy ( 100% działa).
    Podczas parametryzacji ważne jest aby parametr m był równy 3 ale chyba od razu po zaprogramowaniu procka jest taka wartość.
    I gdy pod względem poprawności elektrycznej jest wszystko OK. to serwo musi utrzymywać pozycję. Ewentualnie będzie wpadało w drgania ale to już kwestia ustawień pozostałych parametrów.
  • Computer ControlsComputer Controls
  • #70
    kamilelektroda
    Poziom 12  
    Dziękuje za odpowiedź, już sobie poradziłem z tamtym ale pojawiły się nowe problemy a mianowicie ustawienia czy mógłbyś dokładniej opisać jak je obliczałeś ? byłbym bardzo wdzięczny.
  • #71
    kamilelektroda
    Poziom 12  
    Pytanie do domek22 czy poradziłeś sobie z tym silnikiem ? jakie wpisałeś wartości ? bo mi już działa :)
  • #72
    domek22
    Poziom 17  
    Jeszcze sobie nie poradziłem bo nie miałem za wiele czasu :(. Jakie masz servo? kamilelektroda podaj dokładnie w jaki sposób obliczałeś parametry to może pomóc wielu użytkownikom.
  • #73
    kamilelektroda
    Poziom 12  
    Witam do prób mam małe servo hitachi DO4F261E enkoder 100ppr napięcie zasilania 24V i tyle o nim wiem. Co do parametrów to natknąłem się na gotową formułkę w excelu którą załączam. Ja osobiście na oko dobierałem parametry bo nie miałem informacji o servie jak silnik drgał zmieniałem parametry PID oczywiście doświadczalnie. Na początek jak servo drga możesz zmniejszyć parametr P3 odpowiedzialny za uchybu regulacji.
  • #74
    domek22
    Poziom 17  
    Witam. Prośba do kolegi adamus202 podaj wartości rezystorów twojego konwertera napięć.
  • #75
    adamus202
    Poziom 12  
    R1, R2, R3, R4 33kΩ
    R5, R6 3,3kΩ
    Tranzystory BC548
  • #77
    adamus202
    Poziom 12  
    Oczywiście że działa! Widać to przecież na filmikach. Ale jak już wyżej pisałem nie warto tego robić, bo lepiej i prościej zastosować drivery IR2184 które bez problemów dziają na sygnałach o napięciu 5V.
  • #78
    asfalt000
    Poziom 10  
    Czy po podłączeniu silnika tylko do samej końcówki mocy silnik będzie się obracał w jednym kierunku ? proszę o odpowiedz w ten sposób będę wiedział która cześć układu nie działa:D
  • #79
    adamus202
    Poziom 12  
    Po odłączeniu płytki sterownika, gdzie zostaje sam silnik końcówka i konwerter (podłączone 12V zasilanie driverów i 20V do zasilania silnika). W takiej sytuacji silnik nie powinien się obracać ponieważ dzięki konwerterowi wejścia driverów podciągnięte są do masy. I gdy próbujemy obrócić wałem silnika nie powinien stawiać oporu.

    Natomiast gdy odłączyłem konwerter przez co wejścia driverów wisiały w powietrzu, silnik także nie obracał się lecz gdy próbowałem obrócić wałkiem wyczuwalny był mały opór.
  • #80
    asfalt000
    Poziom 10  
    Mam problem bo nie mogę dostać IR2111 i IR2184, czy ktoś próbował zastąpić je tak jak proponował adamus202 tranzystorami ? i jak to połączyć ?
  • #81
    adamus202
    Poziom 12  
    Ja nie proponowałem rozwiązania innego niż na driverach IR2111 lub na IR2184.
    Na stronie źródłowej projektu jest Link schemat na którym powyższe drivery są zastąpione tranzystorami i układami 74HC14 i 74HC08 .
    Ja osobiście nie robił bym takiego układu, tylko kupił bym IR2184 w sklepie wysyłkowym.
  • #82
    Electro77
    Poziom 10  
    Witam
    1. Czy w tym sterowniku u Ciebie na filmie użyłeś w regulatorze PID tylko człony P oraz I bez D, czy wszystkie - proszę o przykładowe nastawy
    Proszę o podanie wartości :
    P1,P2 i P3 (oczywiście wiem iż należy każdy silnik traktować indywidualnie ale chciałbym tak poglądowo się rozeznać)

    2. Zastanawiam się jeszcze jak soft jest zdefiniowany. Czy w celu utrzymania pozycji (aby wał silnika nie drgał) do PID-a bieżemy uchyb położenia(pozycja_zadana - pozycja_aktualna)?

    Bo jeśli tak to musimy podczas pracy ciągłej użyć PID-a z uchybem prędkości(predkość_zadana-prędkość_aktualna) a następnie w jakimś przedziale przed osiągnięciem celu przełączyć się na uchyb położenia(oczywiście zmienią się także nastawy).

    Czy ktoś orientuje sie jak to powinno być zrobione prawidłowo?
    Pozdrawiam
  • #83
    asfalt000
    Poziom 10  
    Układ gotowy, nie zapala się żadna dioda, po dotknięciu jakiegokolwiek elementu zapala się dioda redy, po krótkim czasie zapala się dioda error ,proszę o podpowiedz co może być nie tak.

    Dodano po 24 [minuty]:

    Sygnał z enkodera sprawdziłem, teraz nie pali się żadna dioda ,może macie pomysł jak sprawdzić samą końcówkę mocy .
  • #84
    etet
    Poziom 14  
    asfalt000 napisał:
    Układ gotowy ,nie zapala się żadna dioda ,po dotknięciu jakiegokolwiek elementu zapala się dioda redy, po krótkim czasie zapala się dioda error ,proszę o podpowiedz co może być nie tak.

    Dodano po 24 [minuty]:

    Sygnał z enkodera sprawdziłem ,teraz nie pai się żadna dioda ,może macie pomysł jak sprawdzić samą końcówkę mocy .


    Omomierzem poprawność montażu, testerem stanów logicznych poprawność sygnałów sterujących (są to szybkie przebiegi więc można napisać kilku-linijkowy program zmienia stan wyjść układu co pół sekundy i wtedy lepiej wszystko widac).
  • #85
    asfalt000
    Poziom 10  
    Włożyłem nowego attiny2313 programuje i zapala się dioda redy po 10 sekundach zapala się dioda error ,ktoś wie co może być nie tak ?

    Dodano po 2 [minuty]:

    Dodam że wszystko zasilam 5V.
  • #86
    etet
    Poziom 14  
    asfalt000 napisał:
    Włożyłem nowego attiny2313 programuje i zapala się dioda redy po 10 sekundach zapala się dioda error ,ktoś wie co może być nie tak ?

    Dodano po 2 [minuty]:

    Dodam że wszystko zasilam 5V.


    Pewnie to jest nie tak, że sterownik nie potrafi ustawić zadanej pozycji. Żeby się udało to musi po pierwsze być w stanie poruszyć silnikiem a po drugie odczytać prawidłowo informację z enkodera. Bez podstawowej wiedzy i sprzętu to możesz najwyżej zgadywać.
  • #87
    adamus202
    Poziom 12  
    Electro77 napisał:
    Witam
    1. Czy w tym sterowniku u Ciebie na filmie użyłeś w regulatorze PID tylko człony P oraz I bez D, czy wszystkie - proszę o przykładowe nastawy
    Proszę o podanie wartości :
    P1,P2 i P3 (oczywiście wiem iż należy każdy silnik traktować indywidualnie ale chciałbym tak poglądowo się rozeznać)

    Użyte są wszystki człony. Na zamieszczonym rysunku pokazane są parametry, które były użyte przy sterowaniu silnikiem pokazanym na filmie.
    Dc servomotor controller na Attiny 2313
    Electro77 napisał:

    2. Zastanawiam się jeszcze jak soft jest zdefiniowany. Czy w celu utrzymania pozycji (aby wał silnika nie drgał) do PID-a bieżemy uchyb położenia(pozycja_zadana - pozycja_aktualna)?




    Bo jeśli tak to musimy podczas pracy ciągłej użyć PID-a z uchybem prędkości(predkość_zadana-prędkość_aktualna) a następnie w jakimś przedziale przed osiągnięciem celu przełączyć się na uchyb położenia(oczywiście zmienią się także nastawy).

    Czy ktoś orientuje sie jak to powinno być zrobione prawidłowo?
    Pozdrawiam

    Za bardzo nie orientuję się w kwestii algorytmu działania servosterownika, bo przecież nie ja napisałem ten soft. Lecz wydaje mi się że cała regulacja odbywa się na podstawie uchybu położenia.
    Co do prawidłowego ustawiania to są specjalne metody, ale tera nie pamiętam już jakie. Moim zdaniem do takiego sterownika nie warto warto bawić się w jakie skomplikowane obliczenia wyznaczające parametry PID. Szybciej i prościej jest ustawić je doświadczalnie. Przecież chodzi tylko to to aby servo chodziło szybko i stabilnie. W regulacji parametrów PID na podstawie "prób i błędów" mogą pomóc poniżej zamieszczone informacje.
    Dc servomotor controller na Attiny 2313 Dc servomotor controller na Attiny 2313 Dc servomotor controller na Attiny 2313
  • #88
    asfalt000
    Poziom 10  
    Mały krok do przodu, silnik wpada w drgania i zapala się po 10 sekundach dioda error, wiec potrzebna tylko regulacja ?
    I tu mam problem ,odpalam HyperTerminal i nic się nie dzieje, com łącze przez 7414 jak na schemacie ze strony autora , próbowałem różne prędkość transmisji i nic brakuje mi już pomysłów.
  • #89
    adamus202
    Poziom 12  
    asfalt000 napisał:
    Mały krok do przodu, silnik wpada w drgania i zapala się po 10 sekundach dioda error, wiec potrzebna tylko regulacja ?
    I tu mam problem ,odpalam HyperTerminal i nic się nie dzieje, com łącze przez 7414 jak na schemacie ze strony autora , próbowałem różne prędkość transmisji i nic brakuje mi już pomysłów.

    Ja bym zwarł piny 11 i 12 ze sobą w układzie 7414 i zobaczył w HyperTerminal czy jak wciskając dowolny klawisz na klawiaturze będzi się pokazywać na ekranie. I czy na wejściach i wyjściach są odpowiednie poziomy napięć.
    Ale najpierw dobrze sprawdź czy poprawnie podłączyłeś Rx i Tx (może są zamienione miejscami).
    Ja osobiście mam wątpliwości czy we wszystkich komputerach port COM będzie prawidłowo współpracował w takim rozwiązaniu a szczególnie wyście 10 na układzie 7414 (TX)
  • #90
    asfalt000
    Poziom 10  
    Zwarłem pin 11 z 12 na układzie 7414 naciskam klawisze na klawiaturze i w HyperTerminal nic się nie wyświetla, próbowałem na dwóch komputerach.
    Rozumiem że w COM pin 2 RXD 3 TXD 5 GND.
    Próbowałem również na MAX232 według odpowiedniego schematu i tez nic,tylko że był on z odzysku wiec nie mam pewności czy był sprawny.
    W przyszłym miesiącu planuje kupić oscyloskop i dobry miernik.
    Powrócę jeszcze do tematu, dziękuje za wszystkie odpowiedzi.