Elektroda.pl
Elektroda.pl
X
Computer 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 11 Cze 2010 18:34 83977 163
  • #91
    asfalt000
    Poziom 10  
    Kupiłem max232 i chyba połączyłem poprawnie?
    Po włączeniu zasilanie w HyperTerminal gdy nacisnę coś na klawiaturze wyskakują jakieś znaczki.Co to oznacza ? Co dalej zrobić ?
  • Computer Controls
  • #92
    Tomasz.W
    Poziom 35  
    asfalt000 napisał:
    ...Kupiłem max232 i chyba połączyłem poprawnie?...
    Jeżeli Ty tego nie wiesz to nikt tego nie będzie wiedział.
    asfalt000 napisał:
    ...gdy nacisnę coś na klawiaturze wyskakują jakieś znaczki....
    A jak to należy rozumieć? Stwierdzenia typu "nacisnę coś" , "jakieś znaczki" mogą określać (prawie) wszystko. Czy to aż tak trudno napisać dokładnie co się dzieje? Wciskasz np. literkę "L" i co wyskakuje w terminalu, literka "L" czy jakieś bzdury? Jeżeli bzdury to powodów może być kilka np.
    1) niewłaściwie ustawione parametry transmisji
    2) niewłaściwe kondensatory w otoczeniu układu max232, istnieją trzy wersje tegoż układu i w zależności od wersji wymagają kondensatorów 100n, 1µ, 10µ. Jeżeli nie będą takie jak trzeba układ będzie robił różne dziwne rzeczy. Musisz sprawdzić w nocie katalogowej jakie kondensatory powinny być do Twojego układu.
  • #93
    asfalt000
    Poziom 10  
    No właśnie parametry transmisji ustawiałem niepoprawne, 9600 i większe a nikt nie wspomniał ze maja być 2400.Myślę że dalej sobie poradzę ,dziękuję za odpowiedz.

    Dodano po 42 [minuty]:

    Jak zmienić parametry M P1 P2 itd..
    Wpisuje w HyperTerminal na przykład p1 i pojawia sie 1280 ,jak zmienić ten parametr żeby się zapisał ?
  • #94
    kamilelektroda
    Poziom 12  
    Cytat:
    No właśnie parametry transmisji ustawiałem niepoprawne, 9600 i większe a nikt nie wspomniał ze maja być 2400.Myślę że dalej sobie poradzę ,dziękuję za odpowiedz.


    Hm na stronie http://elm-chan.org/works/smc/report_e.html parametry transmisji zalecane to 38.4k bps, ja tak ustawiłem i bez problemu się łączył.

    Cytat:
    Jak zmienić parametry M P1 P2 itd..
    Wpisuje w HyperTerminal na przykład p1 i pojawia sie 1280 ,jak zmienić ten parametr żeby się zapisał ?


    Po wpisaniu wartości do P1, P2 itd. musisz wpisać "W0" aby zapisało się do pamięci eeprom.
  • #95
    asfalt000
    Poziom 10  
    Dzięki za odpowiedz ,właśnie "W0" tego mi brakowało ,tera pomotam się z ustawieniami parametrów.:D
  • Computer Controls
  • #96
    kamilelektroda
    Poziom 12  
    Kolego adamus202 pisałeś że zmontowałeś enkoder z myszki, mam pytanie czy przebiegi na wyjściu enkodera były prawidłowe, przesunięte o 90 stopni względem siebie ? W moim przypadku jest tylko niewielkie przesunięcie fazowe, czy zastosowanie maski zmieniło by coś ?
  • #97
    adamus202
    Poziom 12  
    kamilelektroda napisał:
    Kolego adamus202 pisałeś że zmontowałeś enkoder z myszki, mam pytanie czy przebiegi na wyjściu enkodera były prawidłowe, przesunięte o 90 stopni względem siebie ? W moim przypadku jest tylko niewielkie przesunięcie fazowe, czy zastosowanie maski zmieniło by coś ?

    Już za bardzo nie pamiętam, ale przebiegi idealne nie były i mimo to nie najlepiej ale jakoś to wszystko chodziło. Mam rozumieć że maska to zastosowanie komparatorów. A ich zastosowana jest niezbędne aby ukształtować przebieg z fototranzystorów.
  • #98
    kamilelektroda
    Poziom 12  
    Witam, źle przykładałem tarcze do fototranzystorów bo są dwa typy ustawione pionowo i poziomo. Kształtuje przebiegi przez 74HC14 i nie są idealne, muszę jeszcze z tym powalczyć aby można było zamontować do silnika.
  • #99
    sebastian11
    Poziom 16  
    Czesc Ziomki

    a próbowaliscie może uruchomić źródła na innym układzie ? np Mega 8535 ?
    trzeba zmienic 2313inc.def na 8535def.inc
    na poczatku zrodla oraz wektory przerwań na początku

    ; Interrupt Vectors (AT90S2313)
    rjmp reset ; Reset
    rjmp int0_isr ; Extrenal INT0
    rjmp 0 ; External INT1
    rjmp 0 ; TC1 capture
    rjmp 0 ; TC1 compare
    rjmp 0 ; TC1 overflow
    rjmp background ; TC0 overflow
    rjmp rxint ; UART Rx ready
    ; rjmp 0 ; UART Tx ready
    ; rjmp 0 ; UART Tx empty
    ; rjmp 0 ; Analog comparator


    na te z karty katalogowej Mega8535
    czy cos jeszcze ?

    pozdrowienia
    Seba
  • #101
    sebastian11
    Poziom 16  
    Witam

    po kilku dniach zabralem sie za to znowu i dziala na Atmega 8535 :) aż miło ;) mniam

    pozdrowienia
    Seba
  • #102
    sebastian11
    Poziom 16  
    Wiecie co

    czy macie moze jakieś sugestie czy moze byc spowodowane zachowanie serva że:
    servo chodzi z lewej max na prawą max samo

    czasem jest tak że wytrącając z położenia równowagi oś silnika powraca - tak jak sie oczekuje
    a czasem wystarczy małe drgnięcie żeby zaczęło wariować lewa prawa od max do min położenia

    sprawdzalem zasilanie enkodera i jest ok

    pozdrowienia
    Seba
  • #103
    kamilelektroda
    Poziom 12  
    Witam, do "sebastian11" czy próbowałeś z różnymi nastawami PID ? Jak zmniejszasz wartość P4 to nadal tak wariuje ? Podstawa to enkoder czy właściwie podłączony ? Jak sterujesz mostkiem wykonawczym przez konwerter czy bezpośrednio ?
  • #104
    sebastian11
    Poziom 16  
    Witam

    sprawdzałem to o czym mówisz a włąsciwie to ze nie da rady zrobic nic jak sie dzieje tak - tzn że servo waruje

    wystepuje tez problem z komuniacją bo sterownik sam sie resetuje i wyskakuje
    napis w terminalu AVR Servo ..... i za kilka sekund max to samo

    wiec problem lezy gdzies indziej niż nastawa

    zmontowałem 3 płytki serw i 2 działają ok

    bede sprawdzał tą trzecią od strony polączen zimnych lutów itp może sie gdzieś wdał jakiś dzikus :)

    to co do tej pory zuważyłem też ze ma to zwiazek ze zrodłem zasilania

    zwykły stabilizator 7805 bez zadnych kondensatorów filrtujących nie sprawdza sie u mnie. A impulsowy lm 2575 działa lux

    i pewnie tez musze poprawic układ resetu bo mam jedynie rezystor 100k do plusa

    dam znac jak coś wyczaję :)))))

    pozdrowienia
    Seba
  • #105
    domek22
    Poziom 17  
    Witam.
    Zaprojektował ktoś płytki pod układ IR2184? Jeśli tak to czy można udostępnić wzory płytek pod żelazko. Uruchomiłem to na układach IR2111 jednak nie podobają mi się te konwertery napięć.
    Pozdrawiam.
  • #106
    Bogus105
    Poziom 16  
    Czy koledzy kontynuują temat tanich sterowników do małych serw? jakie postępy? chciałem zrobić serwo elm chana, z rok, może dwa temu skompletowałem wszystkie elementy do testu, ale z braku czasu temat odłożyłem. Ostatnio chciałem się tym na nowo zająć, a tu zonk - strona elm chana zniknęła... nie mam źródła ani schematu. Proszę o materiały. Czy ktoś zaprojektował płytkę? Na dniach jak mi się uda odzyskać dane ze starego dysku wrzucę swoją propozycję płytki, którą zrobiłem w eagle jakiś czas temu.

    Zachęcam do odświeżenia tematu:)
  • #108
    Bogus105
    Poziom 16  
    pogrzebie tam też, konto na cnczone mam już parę lat...
  • #109
    pukury
    Poziom 35  
    Witam.
    Jak byś się nie " dogrzebał " to napisz na pw - mam na dysku pliki i tak dalej ( projekt płytki również ) .
    Pozdrawiam .
    dodając - poza tym strona nie zniknęła http://elm-chan.org/
    byłem TAM teraz :D
  • #110
    Bogus105
    Poziom 16  
    Teraz działa:) wcześniej przekierowywało na yahoo.com. Może coś nie tak z serwerem było...
    Napisałem na priv.
  • #111
    olollo
    Poziom 12  
    A jak zrobić i podłączyć wyświetlacz do tego cacka ? :)
    Można by było tu zamieścić schemat podłączenia do programu mach3 ?
    A co z sygnałem ENABLED ?
  • #112
    adamus202
    Poziom 12  
    olollo napisał:
    A jak zrobić i podłączyć wyświetlacz do tego cacka ? :)
    Można by było tu zamieścić schemat podłączenia do programu mach3 ?
    A co z sygnałem ENABLED ?


    Jak to "podłączyć wyświetlacz"!?. Nie bardzo rozumiem jaki wyświetlacz i w jakim celu by miał być podłączony?
    Ten schemat chyba wszystko wyjaśnia. A sygnał ENABLE w tym projekcie nie jest potrzebny.
    Dc servomotor controller na Attiny 2313
  • #113
    olollo
    Poziom 12  
    adamus202 napisał:
    Jak to "podłączyć wyświetlacz"!?. Nie bardzo rozumiem jaki wyświetlacz i w jakim celu by miał być podłączony?

    W poście nr #34 jest link do strony twórcy projektu gdzie na samym dole jest zdjęcie wykonanego projektu z wyświetlaczem a na górze (wcześniej niewidziałem) link do schematu wyświetlacza.
  • #114
    adamus202
    Poziom 12  
    No tak zapomniałem o tym wyświetlaczu pozycji. Ale w praktycznym zastosowaniu nie widzę sensu zastosowania tego wyświetlacza, ponieważ w czasie pracy będą tam tylko zmieniały się nic nam nie mówiące liczby kroków serwa. Oczywiście przy współpracy np. z programem Mach.
  • #115
    bateryjka
    Poziom 2  
    Witam
    Temat trochę stary ale problemy pozostały.
    A więc...
    Zbudowałem serwocontroler wg projektu Elm-Chan, załadowałem wsadem z 2 strony tego wątku - nawet zadziałało.
    Połączyłem się poprzez terminal z Attiny
    Cytat:
    Po włączeniu zasilania powinny się wyświetlić napisy powitania " AVR servo....."
    I od tej chwili można parametryzować nasz sterownik.

    Napis się pojawił i dla mnie tu kończy się przygoda obojętnie co wpiszę i wyślę to samo pojawi się w oknie odbioru, próbowałem literek dużych i małych (tych z parametrami, używam Bray Terminal), może o czymś nie wiem może jakaś inna kombinacja klawiszy?

    Proszę o rady i sugestie.
  • #116
    onepiotr
    Poziom 25  
    Witam
    Temat naprawdę interesujący i szkoda by umarł :cry:
    Czy któryś sterownik doczekał się swojej maszyny?
    Właśnie składam frezareczkę i chętnie bym wsadził jakieś nieoklepane napędy. :D :idea:
    Dajcie koledzy znać o waszych postępach :spoko:
  • #117
    Gizmoń
    Poziom 28  
    No właśnie, jak to się sprawuje w maszynie? Jak się zachowuje taki sterownik, gdy na wejście "step" nagle zostanie podany sygnał z częstotliwością odpowiadającą dużej prędkości, a później nagle wyłączony (tak jakby program sterujący miał wyłączoną funkcję łagodnego przyspieszenia/opóźnienia)? Silnik gwałtownie rusza i gwałtownie się zatrzymuje, czy może sterownik sygnalizuje błąd, bo ma za duży uchyb?

    Też mam zamiar użyć tych sterowników we frezarce CNC. U mnie enkoder z tarczą 892CPR (X, Y) lub 1200CPR (Z) byłby założony nie na wał silnika, tylko na śrubę pociągową sprzęgniętą z silnikiem za pomocą paska zębatego. Dzięki temu maszyną pewnie będą mogły ruszać silniczki z drukarek, a sterownik spokojnie zliczy impulsy z tak precyzyjnego enkodera dzięki przekładni 4,5:1 (również z drukarki).

    Acha, mam jeszcze pytanie jak działa "Pulse Multiplier" ustawiany parametrem #6? Czy to zmienia kąt obrotu na impuls? Na przykład ustawienie 1 oznacza, że jeden impuls "Step" powoduje obrót o jedną kreskę enkodera, a ustawienie 5, że o pięć kresek za jednym zamachem? To ważne, bo dla prędkości np. 1200obr/min i enkodera 892CPR musiałbym przez LPT wysłać sygnał o częstotliwości 17,84kHz, a z takim mnożnikiem wystarczyłoby o wiele mniej, np. 1,784kHz przy skoku co 10 kresek.
  • #118
    Gizmoń
    Poziom 28  
    Wygląda na to, że umarł.

    Z tego co znalazłem na CNCforum, ten układ działa, ktoś go już użył w tokarce, i było dobrze. Ja też mam nadzieję, że będzie dobrze, bo złożyłem już pół maszyny i kupiłem prawie wszystkie elementy potrzebne do trzech takich sterowników (razem ok. 100zł!). Jakby się okazało, że nie działa, to miałbym poważny problem i stratę. Ale jestem dobrej myśli i mam nadzieję jeszcze w tym miesiącu uruchomić przynajmniej jedną oś (i oczywiście napisać jak poszło) :)

    Co do enkoderów o których pisałem wcześniej, to zmieniłem koncepcję, i zastosuję enkoderki z myszek kulkowych. Te z drukarek mają zbyt gęste paski, nie potrzebuję dokładności 20nm (!) w maszynie która przecież nie jest idealnie sztywna i będzie służyła do frezowania w drewnie i MDF...

    Ciekawe też jak z ustawianiem parametrów, znam metodę ustawiania normalnego PIDa, ale w tym ustrojstwie nie widzę parametru D, są za to inne. Jeżeli ktoś opracował dobry sposób, niech się podzieli (ustawiać na chybił trafił każdy może, chodzi o kolejność ustawiania parametrów, a nie o konkretne wartości oczywiście).
  • #119
    Szopler
    Poziom 21  
    Dziękuję za odpowiedź, a nadpobudliwemu moderatorowi dziękuję za usunięcie mojego posta i ostrzeżenie...

    Szukam najlepszego rozwiązania dla siebie. Na chwilę obecną znam w zasadzie 2 sterowniki do których dostępna jest dokumentacja (schemat, PCB i spis części) oraz trzeba oddzielnie dokupić zaprogramowany procesor. Mowa oczywiście o UHU (w różnych wersjach końcówki mocy) i sterowniku ELM-CHAN, który jednak nie ma kontroli prądu. Wczoraj znalazłem też coś takiego - hobbycnc.iz.rs/servodriver.htm (wygląda na jakiś klon UHU).
    Dlatego zapytałem co polecają użytkownicy, którzy mieli okazję w praktyce przetestować w.w. układ.
  • #120
    Gizmoń
    Poziom 28  
    Uruchomiłem już jeden taki regulator i ustawiłem parametry. Nie było żadnych problemów, jedynie trochę wątpliwości podczas ustawiania fusebitów w ATtiny2313. Zamiast tranzystorów 2SK1653 zastosowałem BUZ11, a diody 1JU42 zastąpiłem diodami BA159. Na płytce sterownika nie ma interfejsu RS-232 z układem 7414. Zamiast tego zrobiłem porządny interfejs RS-232 <-> UART na układzie MAX232 jako osobny element. Integrowanie go z płytką sterownika nie ma sensu, bo układ przydaje się tylko podczas ustawiania parametrów - później jest zbędnym obciążeniem dla zasilacza. Wygląda to tak:

    Dc servomotor controller na Attiny 2313 Dc servomotor controller na Attiny 2313 Dc servomotor controller na Attiny 2313

    USTAWIANIE PARAMETRÓW REGULATORA PID:

    0. Parametry P0, P4 i P5 ustawić na jakieś duże wartości, żeby ograniczenia nie przeszkadzały podczas strojenia PIDa
    1. Wyłączyć człony całkujący i różniczkujący (P1=0, P3=0)
    2. Zwiększać P2 do momentu, aż w układzie wystąpią oscylacje po wyprowadzeniu go z równowagi (w moim przypadku ta wartość krytyczna wyniosła ok. 8000). Do wyprowadzenia z równowagi najlepiej posłużyć się komendami "+n" i "-n", gdzie n to ilość kroków (n=PPRenkodera×4 da 1 obrót wału na którym jest enkoder, co będzie dobrym testem).
    3. Ustawić P2 na 0,6 wartości krytycznej, oscylacje powinny zaniknąć. Kręcenie wałkiem silnika powinno przypominać skręcanie sprężyny.
    4. Zwiększyć P3 tak, aby układ nie zaczął oscylować, ale żeby uchyb regulacji był jak najmniejszy (w czasie nagłego hamowania mogą powstawać drgania gasnące). Teraz już kręcenie wałkiem będzie trudne.
    5. Zwiększyć P1 tak, aby amplituda drgań przy nagłym hamowaniu była jak najmniejsza (jak najmniejsze przeregulowanie).
    6. Gotowe, chociaż możliwe, że trzeba będzie kilka razy powtórzyć kroki 4 i 5 dla uzyskania lepszego efektu.

    USTAWIANIE PARAMETRÓW P0, P4:

    We wzorach podanych na stronie źródłowej chyba jest jakiś błąd, przez co dobrałem te parametry doświadczalnie:

    P0

    1. Wpisać do P0 np. 10 i zobaczyć z jaką prędkością będzie się kręcił silnik podczas wykonywania komendy "+n" lub "-n".
    2. Zwiększać (lub zmniejszać) tą wartość, aby maksymalna prędkość była taka, jak maksymalna przy największym przewidywanym obciążeniu. Ta wartość jest zaskakująco niska.

    P4

    1. Ustawić P5 według wzoru ze strony - ten chyba jest dobry
    2. Wpisywać do P4 coraz większe wartości, aby dioda ograniczenia nie zapalała się lub migała podczas normalnej pracy.

    Parametry mojego układu:
    P0=40
    P1=2560
    P2=4650
    P3=1150
    P4=560
    P5=185

    Silnik z drukarki HP z przekładnią 4,5:1
    Enkoder z myszki kulkowej Dexxa, PPR=38
    Rsilnika=6Ω
    Uzas=24V
    Imax=2,5A
    Maksymalna prędkość obrotowa wału 500obr/min
    KG≈60mV/obr/min

    Układ polecam, ponieważ jest od silników krokowych tańszy i szybszy, ale lepiej, żeby go budowały osoby mające już jakąś wiedzę dotyczącą działania regulatora PID.