Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Dla wyjadaczy tematu: płynne sterowanie silnikiem krokowym w

Romcio 11 Nov 2006 21:39 7180 13
Helukabel
  • #1
    Romcio
    Level 11  
    Jestem nowym użytkownikiem tego forum. Dlatego też proszę o nieco wyrozumiałości.

    Szukałem co nieco na tym forum, ale nie znalazłem odpowiedzi na nurtujący mnie problem, który niżej opisuję. Jest dość podobny https://www.elektroda.pl/rtvforum/topic505682.html , ale tak prawdę mówiąc to w szczegółach zasadniczo inny !

    Chcę zbudować kran kamerowy. Dla niewtajemniczonych: to taki żuraw (jak do wyciągania wody ze studni) do kamery. Główne ramię steruje się ręcznie. Zaś samą głowicą z kamerą chcę sterować za pomocą silników krokowych z zastosowaniem przekładni pasowej o przełożeniu około 1:10. Proszę zerknąć na stronkę http://klub.chip.pl/sk.bkp/news_p.html - to powinno wiele wyjaśnić. To nie jest moja stronka - jest tylko (lub aż) źródłem inspiracji do działania.

    Założenia sterowania:
    1 - sterowanie obrotu i pochylenia kamery za pomocą dwóch silników krokowych (mam nadzieję wykorzystać silniki z drukarek atramentowych odpowiedzialnych za posuw papieru)
    2 - silniki będą napędzać przekładnie pasowe o przełożeniu około 1:10
    3 - silnik odpowiedzialny za obrót będzie pokonywać tylko bezwładność kamery, czyli nie potrzebuje dużego momentu obrotowego
    4 - prędkość obracania się kamery to maksymalnie około 0,2 obrotu na sekundę, czyli potrzeba będzie około 5 sekund na pełny obrót kamery, czyli silnik będzie się obracał max 2 obr/s (pamiętajmy o zastosowaniu przekładni)
    5 - kamera oczywiście nie będzie się kręciła w jedna stronę non-stop; w praktyce to max około 1 obrót w prawo/lewo, czyli razem 2 obroty (720 stopni - ograniczenie w postaci owijających się przewodów wokół głowicy kranu kamerowego z zamontowaną kamerą), a w zasadzie kąt obrotu nie będzie przekraczał 120-150 stopni w prawo/lewo (razem max 300 stopni)
    6 - silnik odpowiedzialny za pochylenie będzie pokonywać także tylko bezwładność kamery, czyli nie potrzebuje dużego momentu obrotowego; kamera będzie umocowana w ten sposób, aby środek ciężkości kamery pokrywał się z osią pochylania kamery
    7 - prędkość pochylania się kamery w zasadzie taka sama, jak obrotu
    8 - wychylenie w górę to max 90 stopni, w dół to max 270 stopni (dla ciekawości - wychylenie w dół o 180 stopni to filmowanie do góry nogami), czyli max 360 stopni wychylenia; w praktyce to około 60 stopni w górę, 90 stopni w dół (razem 150 stopni)
    9 - sterowanie za pomocą zwykłego joysticka komputerowego poprzez podłączenie się bezpośrednio do potencjometrów (czyli cała elektronika poza potencjometrami zostaje usunięta z joysticka); ewentualnie sterowanie za pomocą dowolnego urządzenia przypominającego joystick - według zasady wychylania dźwigni w prawo/lewo/przód/tył
    10 - pozycja środkowa dźwigni joysticka - silniki stoją; oczywiście należy pamiętać o tolerancji zerowego położenia, czyli wychylenie joysticka max o np. 2 stopnie jest ciągle pozycją neutralną/zerowym wychyleniem
    11 - wychylenie joysticka nieco w prawo/lewo (np. o 5 stopni) powoduje powolny obrót kamery w prawo/lewo, mocniejsze wychylenie joysticka (np. o 10 stopni) powoduje szybszy obrót
    12 - oczywiście tak samo wychylenie joysticka nieco w przód/tył powoduje powolne wychylenie kamery w dół/górę, mocniejsze wychylenie joysticka powoduje szybsze wychylenia
    13 - wg opisów w punktach 11 i 12 oczywistym jest, że joystickiem regulujemy bezpośrednio prędkość obrotów, a nie kąt obrotu wału silnika !!!
    14 - nie potrzebuję żadnego sprzężenia zwrotnego informującego o wielkości/prędkości/ilości obrotów; to wszystko będę oceniać wizualnie za pomocą podglądu obrazu z kamery na np. małym siedmiocalowym panelu LCD
    15 - jestem świadom, że długie przytrzymanie joysticka wychylonego w jedna stronę spowoduje owinięcie/zaplątanie/urwanie przewodów, to już mój problem - nie przewiduję żadnych wyłączników krańcowych
    16 - bezwzględnie ważna jest płynna zmiana prędkości obracania się silników (głowicy kranu kamerowego) bezpośrednio zależna od stopnia wychylenia joysticka
    17 - bardzo ważne jest, aby silniki w czasie swej pracy były naprawdę ciche, w warunkach idealnych (wiem - to raczej niemożliwe) wręcz niesłyszalne z odległości 10-20 cm; kamera w ciszy zaczyna nagrywać szum własnych mechanizmów !


    To tyle założeń. Sądzę, że dość szczegółowo to opisałem.

    I teraz moje pytanie: co i jak należy podłączyć pomiędzy wyprowadzeniem suwaków potencjometrów a wyprowadzeniami uzwojeń silników, aby to wszystko działało według zasad opisanych powyżej.

    Można by dać taki sterownik do silników krokowych, który ma własny generator i regulację prędkości, lecz pojawia się problem zmiany kierunku obrotów w prawo/lewo, zmiana kierunku obrotów realizowana jest np. podaniem napięcia (zmiana stanu 0V na na +5V) na określonym pinie sterownika, a to już jest sprzeczne z w/w założeniami (z budową joysticka).

    Bardzo proszę o wskazówki, linki itp. Dodam dla ułatwienia, że elektronika nie jest dla mnie ciemną magią, lecz z powodów zawodowych okres fascynacji i zabawy lutownicą/tranzystorami mam już za sobą. Fakt, telewizor naprawiam sobie sam (mając schemat ideowy), lecz idzie mi to dość opornie. Jestem skłonny (tak prawdę mówiąc - to właśnie wolałbym) zapłacić/kupić gotowe rozwiązanie (czytaj: gotowe zmontowane płytki), które mogę podłączyć do silnika/potencjometrów joysticka, lecz problem: gdzie to kupić ? Na Allegro nie znalazłem czegoś takiego.

    Można by pokusić się o sterowanie mechaniczne głowicy kranu kamerowego za pomocą linek (częściowo w pancerzach), lecz pojawia się problem dużego kąta obrotu. Wychylenie góra/dół plus/minus 60 stopni jest do zaakceptowania, lecz obrót plus/minus 60 stopni to często za mało, dlatego też szukam rozwiązania elektrycznego.
  • Helukabel
  • #2
    bogdan_p
    Level 39  
    przy Twoich założeniach nie wiem czy nie lepszy jest silnik DC , nie chcesz stosować krańcówek a więc jedyny sposób pomiaru to zastosowanie enkodera , zapytam czy dasz radę napisać na uC odpowiedni program do obsługi
    dla silnika krokowego http://www.hobby-elec.org/e_step.htm masz prosty sterownik z opcjami regulacji prędkości oraz L/P
  • Helukabel
  • #3
    Romcio
    Level 11  
    bogdan_p wrote:
    nie chcesz stosować krańcówek a więc jedyny sposób pomiaru to zastosowanie enkodera


    Nie bardzo rozumiem. Silnik ma się kręcić tak długo, jak to sobie zażyczę, (nawet, jeżeli miałoby to doprowadzić do uszkodzeń - patrz punkty 13 i 14). Co miałoby być mierzone ?

    bogdan_p wrote:
    http://www.hobby-elec.org/e_step.htm masz prosty sterownik z opcjami regulacji prędkości oraz L/P

    Jeżeli dobrze zrozumiałem te rozwiązanie, to potencjometr służy tylko do zmiany prędkości obrotów - a wg moich potrzeb powinien także zmieniać kierunek obrotów. Tutaj zmianę kierunku realizują inne elementy - włączniki SW1 i SWS3. Jest to rozwiązanie niezgodne z moimi założeniami - punkty 10,11 i 12.

    Mimo wszystko dzięki za wskazówki ;)
  • #4
    bogdan_p
    Level 39  
    a jak w inny sposób wyznaczysz punkty graniczne kiedy silnik ma się zatrzymać
    enkoderem policzysz ile obrotów ma wykonać , jego wartość musi być zapamiętana w programie uC tak aby przy następnym poleceniu wiedział ile może jeszcze wykonać ruchu w danym kierunku
  • #5
    Romcio
    Level 11  
    Być może nie do końca zrozumiałeś mojego problemu.

    To, ile silnik ma się kręcić będę oceniał na bieżąco stojąc przy kranie kamerowym, operując nim i równocześnie patrząc na ekran podglądu monitora LCD. Kran kamerowy wymaga obecności operatora (kamerzysty) - to nie jest automat.

    Niżej opisane rozważanie zakłada, że potencjometr dzielę na dwie części: cała lewa strona od położenia środkowego ma 50 % skoku, cała prawa strona od położenia środkowego ma następne 50 % skoku
    Największym problemem jest rozwiązanie tego, aby:
    - położenie suwaka potencjometru w środkowym położeniu = STOP dla silnika
    - położenie suwaka potencjometru np. 10% w lewo od środkowego położenia = 20% prędkości w lewo
    - położenie suwaka potencjometru np. 20% w lewo od środkowego położenia = 40% prędkości w lewo
    - itd. itd.......
    - położenie suwaka potencjometru np. 50% w lewo od środkowego położenia = 100% prędkości w lewo


    tak samo w prawo
    - położenie suwaka potencjometru np. 10% w prawo od środkowego położenia = 20% prędkości w prawo
    - położenie suwaka potencjometru np. 20% w prawo od środkowego położenia = 40% prędkości w prawo
    - itd. itd.........
    - położenie suwaka potencjometru np. 50% w prawo od środkowego położenia = 100% prędkości w prawo
  • Helpful post
    #6
    bogdan_p
    Level 39  
    w układzie jest wymagane jakiekolwiek zabezpieczenie w krańcowych położeniach
    taki układ zbudujesz na tranzystorach ale dla silnika DC , wystarczy para komplementarna , bazy tranzystorów razem z środkiem potencjometru
    w pozycji środkowej układ będzie zrównoważony wychylenie w daną stone zwiększy wysterowanie danego tranzystora co z kolei spowoduje zwiększenie prędkości
    przy zastosowaniu mikrokontrolera z przetwornikiem A/C 10 bitowym program sprawdza wartość z przetwornika przy położeniu neutralnym wynosi ( 1024 / 2 ) 512 dodając pewien margines tolerancji , wartości > 513 to ruch w prawo , < 511 ruch w lewo teraz dla poszczególnych wartości 0 ÷ 511 i 513 ÷ 1024 należy ustalić zakres zmiany współczynika PWM dla silnika DC lub szybkość generatora taktującego dla silnika krokowego , tak więc podstawa to dobrze napisany program na uC
  • #7
    Romcio
    Level 11  
    Czy może ktoś mi jeszcze pomóc ? Jakiś schemat ? Link do pliku ?
  • Helpful post
    #8
    gmp
    Level 19  
    Romcio wrote:
    Czy może ktoś mi jeszcze pomóc ? Jakiś schemat ? Link do pliku ?


    Nistety nie za bardzo mam czs zby wykonac takie urzadzenie, ale moge Ci podpowiedziec dwa rozwiazania jakie mi sie nasuwja:
    1. Uzywasz LM339(4 komparatory) , 2 komparatory na kazdy potencjometr + dwoch potencjometry(na srubokret) do regulacji poziomu zlaczenia. Sluza one do wlaczania obrotow po niewielkim odchyleniu joysticka. Osobiscie polacalbym jeszcze przycisk ktory bedzie zalczal pozwolenie na obracanie(taki FIRE z joysticka). Na ukladach 555 robisz przetwornik napiecie na czestotliosc (4 uklady) Komparatory wybieraja uklad z ktorego podawana jest czestotliwosc na driver silnika( do kupienia w WOBIT) i jednoczesnie wybieraja kierunek obrotow. No i uklad pownien dzilac. Ale jest jeden problem , trzeba w jednym kierunku zrobic przetwoenik ktory z zmnijszniem napiecia bedzie zwiekszal f(czestotliwosc) a w drugim kierunku odwrotnie.

    2. drugie rozwiaznie , podalczyc potencjometry do mikrokontrolra, no i odopowiedni program ktory bedzie reagowal na polzenie potencjometrow i genrowal czestotliwosc i kierunek obrotow dla drivera silnika krokowgo.

    To pierwsze rozwiaznie jest ciekawsze a drugie prostsze.
  • #9
    bogdan_p
    Level 39  
    raczej nie znajdziesz gotowego schematu , szczególnie jeżeli chodzi o układ z mikrokontrolerem , po prostu musisz sam dobrać odpowiednie elementy i napisać stosowny program , ogólną zasadę masz już napisaną
    jeżeli chodzi o propozycję w wersji analogowej dla silnika DC to przejrzyj działy "warsztat" oraz "inne" jak się nie mylę był tam schemat regulatora obrotów i kierunku według zasady o której wcześniej pisałem z parą komplementarną tranzystorów
  • #10
    Romcio
    Level 11  
    Sądziłem, że mój problem jest banalnie prosty. Cóż, okazało się inaczej. Jestem wdzięczny za odpowiedzi. Mimo wszystko, mam nadzieję spotkać tutaj Świętego Mikołaja, który zechciałby wyłozyć kawę na ławę (czytaj: schemat dla laika w tej dziedzinie).
  • #12
    squdow
    Level 11  
    Myśle że stron powyżej wiele tłumaczy

    ja będe próbował na ATmega8 takie coś zbudować
    wszelkie wskazówki mile widziane ;)
  • #13
    michalxb
    Level 13  
    Nie wiem czy dorze zrozumiałem załozenia projektu.
    Ale wydaje mi się że można się obejść bez tychh wszystkich mikroporcesorów itd.

    Skoro "elementem nadzorującym":) jest perator to wystarcz możliwość płynnego zwiększania mocy silników

    Ja bym zrobił to dając silniki na prąd stały plus regulatory mocy na potencjometrach potem już tylko kwestia fizycznego podłączenia potencjometrów do joysticka.
    Jeżeli chcesz to mogę rozrysować jak ja bym widział element sterując(system połączeń joya z potencjometrami.

    Pozdrawiam.
    Michał M.
  • #14
    me_super
    Level 29  
    Romcio wrote:
    Sądziłem, że mój problem jest banalnie prosty. Cóż, okazało się inaczej. Jestem wdzięczny za odpowiedzi. Mimo wszystko, mam nadzieję spotkać tutaj Świętego Mikołaja, który zechciałby wyłozyć kawę na ławę (czytaj: schemat dla laika w tej dziedzinie).



    Rozwiązanie dane przez gmp wygląda sensownie. Wychył pałki joysticka zmienia opór. To można łatwo przerobić na zmianę napięcia. Teraz potrzebujemy VCO czyli GPN czyli generator przestrajalny napięciowo; zmieniając napięcie (=wychylenie pałki) można zmieniać częstotliwość generowanego sygnału, czyli pałka lekko wychylona generator wolno generuje przebiegi itp. w drugim wypadku. Teraz bierzesz kontroler silników krokowych (ja używam tych z Wobitu) i dajesz na wejście zegarowe sygnał z VCO; kontroler silnika krokowego robi krok jeśli zmieni się sygnał zegarowy.. Gdy wychylenie pałki jest duże to sygnał zegarowy ma dużą częstość i wał silnika kręci się szybko. Zmianę kierunku załatwiasz komparatorem analogowym; komparator ma wyjście TTL które podłączasz do sterownika. Warto kupić silniki o większym kroku, kilka stopni na krok. Pchanie się mikrokontrolery to kiepskie rozwiązanie.