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

Super szybkie sterowanie silnikiem od cd-romu

mikmas 26 Wrz 2010 14:36 3424 10
  • #1 26 Wrz 2010 14:36
    mikmas
    Poziom 18  

    Wiem, wiem. Tematów już było milion na ten temat (z czego tysiąc stworzonych przeze mnie :P). Jednak przychodzi mi stawiać czoło problemom, na które nigdzie niestety nie mogę znaleźć odpowiedzi.

    Więc: wylutowałem z płytki cd-romu układy BA6790FP i BA6840FP (były koło siebie, czym się różnią?). Znalazłem bez żadnych problemów datasheet do niego, z którego wynika, że muszę dać sygnał servo. Tu pojawia się problem. Do sterowania mam aż 4 silniki, a kontroler regulujący ich prędkość tylko 1. Biorąc pod uwagę to, że będzie miał na głowie także inne rzeczy, nie tylko kontrolę silników może wystąpić niezbyt miły poślizg dla impulsu. Tutaj zobaczyłem, jak taki impuls servo wygląda
    Super szybkie sterowanie silnikiem od cd-romu
    Pytania:
    1. Nie ma czasem sterownika opartego na jakimś mniej zasobożernym protokole? Np. równoległym, albo nawet i2c?
    2. Co z 270st?
    3. Zakladajac, ze zrobienie 4 skokow do pelnego obrotu zajmie 4x 1.75ms. Czyli 1 obr na 7ms == ~8571obr/min maxymalnie. To troche za malo :/

    Sorry za brak polskich liter pod koniec postu, ale Alt mi padl chyba :)

    0 10
  • Pomocny post
    #2 29 Wrz 2010 00:42
    RitterX
    Poziom 36  

    Wiem, że masz głowę pełną pomysłów ale napisz co chcesz zrobić? Te silniki mają się obracać z określoną prędkością a może mają być elementami wykonawczymi serwomechanizmu?
    Układy kontroli napędów w CDROM różnią się przede wszystkim, z Twojego punktu widzenia, obciążalnością wyjściową. Jeden musi rozpędzić/zatrzymać i napędzać ze zmienną określoną prędkością płytę CD/DVD. Ten mniejszy steruje pracą maciupkiego silniczka napędu pozycjonera głowicy.

    0
  • #3 29 Wrz 2010 15:15
    mikmas
    Poziom 18  

    Chodzi mi o ten od napędu płyty. Potrzebuję szybkiej, ale "kontrolowanej" prędkości

    0
  • Pomocny post
    #4 29 Wrz 2010 20:33
    RitterX
    Poziom 36  

    Mam kolejne pytanie uściślające. Jaki jest rodzaj obciążenia tego silnika? Przecież nie będzie się kręcił sam dla siebie? Układ BA..., który przedstawiłeś służy do sterowania jednym silnikiem a nie kilkoma.
    Zapewne chodzi ci o sterowanie układem za pomocą kontrolera podającego sygnał na wejście "servo in" (lub podobnie). Sygnał do serwomechanizmu w takim sterowniku nie określa położenia a prędkość obrotową proporcjonalną do długości trwania impulsu. Zauważ, że jako sygnał sterujący jest tylko jeden a wewnątrz układu następuje konwersja sygnału na proporcjonalny 3-fazowy. Podobnie jak zmiana kierunku obrotów za pomocą pojedynczego pinu.
    Co do kontrolera nadrzędnego to nic nie stoi na przeszkodzie by obsługa sterowników silników była robiona synchronicznie. Czyli w jednym czasie na kilku pinach wystawiasz stan wysoki a kończysz w zależności od zadawanej prędkości obrotowej. Czyli można to zrobić za pomocą przerwań jak również do generacji stosownych impulsów sterujących serwami zastosować wyjścia typu PWM.

    0
  • #5 30 Wrz 2010 11:53
    mikmas
    Poziom 18  

    O! Czyli im krótszy impuls dla tego sterownika tym większa prędkość? To by było idealne do mojego rozwiązania. Zastosowanie? Śmigło :)
    Czyli sobie kulturalnie ustawić przerwanie co 1,75ms, a w nim dać stan wysoki, delay na np. 0,5ms i stan niski? Wtedy kontroler będzie się starać utrzymać x obr/min? To by było rzeczywiście fajne dla uC, bo mało procesorożerne

    0
  • Pomocny post
    #6 30 Wrz 2010 19:12
    RitterX
    Poziom 36  

    Im dłuższy impuls tym większe obroty. Sygnały do sterowania serwomechanizmami działają na zasadzie integratora i wzmacniacza błędu. Im dłuższy impuls tym napięcie na integratorze jest większe a to podawane jest na wzmacniacz błędu czyli porównuje się wartość napięcia przetworzonego na wartość stałą, z impulsów, z napięciem, w przypadku silnika, z układu pomiaru prędkości. Jeśli jest różnica to wzmacniacz wysyła sygnał do układu sterującego mostkiem zasilającym silnik by ją skorygować. W przypadku serwo do sterów jest tylko ta różnica, że tam sygnał steruje silnikiem obracającym dźwignię napędzającą płaszczyznę sterową.
    Impulsy sterujące muszą być podawane co pewien czas by odświeżyć wartość napięcia w integratorze.

    0
  • #7 30 Wrz 2010 20:33
    mikmas
    Poziom 18  

    Brzmi to bardzo miło :). Nie zamykam jeszcze tematu, bo jak coś nie będzie trybić ze sterowanie to pomarudzę wam jeszcze :)

    0
  • #8 01 Paź 2010 10:47
    kaziowichura
    Poziom 14  

    w sumie jestem dyletantem w temacie ale obrazek masz raczej od sterowania servem RC. Silnik od Cd romu to raczej silnik krokowy ( być może 'prawdziwe' servo (nie RC) ale wątpię)

    Więc hmm jak ta kwestia wygląda?

    0
  • #9 02 Paź 2010 11:18
    RitterX
    Poziom 36  

    Silnik napędu płyty jest silnikiem BLDC. Najczęściej 3. fazowym z czujnikami położenia rotora, niezbędnymi do poprawnej komutacji, wykonanymi na hallotronach. Do sterowania używany jest specjalizowany układ scalony zawierający 3. fazowy mostek kluczy, logikę sterującą, zabezpieczenia etc. Do tego kładu jest doprowadzany sygnał sterujący, który podawany jest na układ pomiaru błędu itd. Do sterowania prędkością, płyta w CD/DVD obraca się różnymi prędkościami, jest wykorzystywana pojedyncza końcówka układu sterującego. Do sterowania zwykle są wykorzystywane wyprowadzenia dla sygnału start/stop oraz zmiany kierunku obrotów.

    Silnik przesuwu głowicy najczęściej nie jest silnikiem krokowym. Przynajmniej ja takiego nie spotkałem. Dosyć często jest tam silnik komutatorowy z przekładnią zębatą, która następnie przekazuje zadane przemieszczenie na układ przesuwu głowicy.

    0
  • #10 03 Paź 2010 00:39
    kaziowichura
    Poziom 14  

    aha BLDC to silnik DC tyle że bezszczotkowy.... więc w zasadzie taki silnik krokowy... a hallotron to poprostu czujnik wykorzystujący efekt halla

    no dobra ale jak to ma się do obrazka z serva RC ?
    orginalny artykuł -> http://www.seattlerobotics.org/guide/servos.html

    0
  • #11 03 Paź 2010 18:21
    RitterX
    Poziom 36  

    Silnik krokowy to nie do końca BLDC gdyż jest to najczęściej silnik reluktancyjny o różnej liczbie zębów stojana i rotora.
    Sterowanie to sterowanie. Jeśli wyposażysz kosiarkę do trawy w interfejs rozumiejący sygnały serva RC to będziesz się z nią mógł porozumiewać. To co jest na obrazku to zwykłe serwo RC, które również rozumie sygnały sterujące modulacji czasowej. Tylko, że w nim nie następuje zamiana sygnału na prędkość obrotową a na położenie wałka. W serwach stosuje się zwykle silniki komutatorowe prądu stałego tak jak w tym przypadku, przekładnię z dołączonym do wałka potencjometrem, który przekazuje do układu porównania sygnał o położeniu wałka. Gdy sygnał wejściowy - sterujący jest taki sam co ten na potencjometrze to silnik nie zostaje wysterowany i pozostaje nadal w takim samym położeniu. W innym przypadku układ sterowania poprzez silnik i potencjometr będzie się starał zniwelować różnicę - błąd do zera tak by oba sygnały się pokrywały.

    1