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

Sterownik silników krokowych unipolarnych RS232/USB miniCNC

Karol966 03 Lut 2011 11:35 18726 14
  • Sterownik silników krokowych unipolarnych RS232/USB miniCNC
    Witam

    Chciałbym przedstawić prosty sterownik silników krokowych unipolarnych. Układ elektryczny zawiera w sobie jedynie kilka elementów. Najważniejszymi są mikrokontroler ATMEG8 oraz 4 tranzystory 2SK2382 (takie miałem pod ręką, a IRFZ44 dopiero były do mnie w drodze). Duży kondensator elektrolityczny połączony stabilizuje napięcie zasilania silnika (nie jest on raczej potrzebny gdyż silniki i tak powinno się zasilać stałym prądem a nie stałym napięciem). Ponadto na płytce znalazły się 4 diody LED sygnalizujące pracę kluczy oraz jedna sygnalizująca zasilanie. Istnieje możliwość zasilania zarówno silników jak i mikroprocesora z tego samego źródła (warunkiem jest to, aby napięcie zasilające było większe od 7V). Wystarczy zewrzeć jedną zworkę. Układ można również zasilić podłączając osobne źródło napięcia 5V do osobnego złącza ARK lub bezpośrednio z adaptera USB – RS-232 (+5V,TxD,RxD,GND). Wolne 3 złącza MOLEX służą do podłączenia włączników krańcowych (HOME, END) oraz przycisku awaryjnego (E_STOP).

    Układ powstał chyba w pierwszy wolny weekend tego roku w celu przetestowania posiadanych przeze mnie silników krokowych przed podłączeniem ich do małej, budowanej frezarki. Po ich mechaniczny połączeniu z konstrukcją (tych wybranych ;) ) będzie można sterować jak na razie jedną osią precyzyjnie za pomocą komputera. Zdjęcie konstrukcji również załączone.
    Aktualne oprogramowanie uP pisane w WinAVR oraz PC pisane w VS C# 2010 Express nie jest dokończone. Wczoraj znalazłem drobne błędy oraz muszę dorobić obsługę wejść (teraz tylko wiem, że działają).

    Odnośnie rozbudowy na sterowanie 3 lub więcej osiowe to na samo wysyłanie informacji do sterownika koncepcje posiadam. Gorzej z wysyłaniem informacji do komputera. Trzeba by rozbudować układ o dodatkowe 2 linie I/O oraz dobudować moduł komunikacyjny z dodatkowym procesorem – jest to wykonalne.

    Sterownik silników krokowych unipolarnych RS232/USB miniCNC Sterownik silników krokowych unipolarnych RS232/USB miniCNC Sterownik silników krokowych unipolarnych RS232/USB miniCNC Sterownik silników krokowych unipolarnych RS232/USB miniCNC Sterownik silników krokowych unipolarnych RS232/USB miniCNC




    Sterownik silników krokowych unipolarnych RS232/USB miniCNC Sterownik silników krokowych unipolarnych RS232/USB miniCNC Sterownik silników krokowych unipolarnych RS232/USB miniCNC Sterownik silników krokowych unipolarnych RS232/USB miniCNC Sterownik silników krokowych unipolarnych RS232/USB miniCNC

    Wygląd budowanej frezareczki CNC:

    Sterownik silników krokowych unipolarnych RS232/USB miniCNC

    Rozważałem również wykonanie optoizolacji oraz użycie układu FT232R jednakże szkoda mi było dokładać do tego drugie tyle kosztów. Wszystkie elementy posiadałem (kiedyś kupione). Orientacyjny koszt budowy takiego urządzenia to 30zł.

    Zapomniałbym o screenie panelu sterowania:

    Sterownik silników krokowych unipolarnych RS232/USB miniCNC

    Dodatkowo przebiegi ze sterowania kluczami:

    Sterownik silników krokowych unipolarnych RS232/USB miniCNC Sterownik silników krokowych unipolarnych RS232/USB miniCNC


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • Mitronik
  • #2 03 Lut 2011 14:38
    adamus202
    Poziom 12  

    Ale jaki program na PC-cie będzie mógł współpracoać z tym sterownikiem?

  • #3 03 Lut 2011 14:48
    Karol966
    Poziom 30  

    Pytanie raczej powinno brzmieć "jak współpracuje" ;)
    Program na PC wysyła i odbiera dane poprzez port RS-232. Z racji tego, że w laptopie portu COM brak układ używa pośrednio przejściówki USB na RS-232. Co do samej komunikacji, wysyłane są ramki od 1 do 4 bajtów danych zależnie od rozkazu. Następnie dane są odpowiednio interpretowane przez mikroprocesor.

  • Mitronik
  • #5 03 Lut 2011 18:24
    FastProject
    Poziom 28  

    Po przeczytaniu tematu pomyślałem, że ktoś wreszcie zbudował jakiś sterowniczek sterowany bezpośrednio z USB (z zintegrowaną przejściówka albo USB "wpisanym" w ATmege) niestety po przeczytaniu reszty okazało się, to jednak sterowane jest tylko przez RS232.

    Nie mniej jednak podoba mi minimalistyczna płytka.

    Pytanie: jakimi mocami i silnikami na jakie napięcie możesz sterować. Pytam bo nie widzę tam żadnego drivera do MOSFETów.

  • #6 03 Lut 2011 18:35
    blue_17
    Poziom 32  

    Według mnie wszystko fajnie ale przydał by się interpreter G-kodu oraz zegar czasu rzeczywistego bo różne dziwne rzeczy będą się dział, większość systemów sterownia cnc właśnie posiada zegar czasu rzeczywistego do synchronizacji osi,

    Co do sterowania frezarką to jeśli kolega będzie chciał dalej tworzyć to polecam buforowanie i wysyłanie sygnałów z kontrolera a nie "w czasie rzeczywistym" po USB lub RS232.

    Do sterowania CNC polecam EMC2 - dystrybucję linuxa z jadrem czasu rzeczywistego, można tym sterować frezarki tokarki ale i również różnego rodzaju ramienia i roboty, kwestia konfiguracji, oczywiście wszystko za free

    http://linuxcnc.org/

    Sterowanie odbywa się za pomocą portu równoległego LPT, a jeśli niema się takiego portu to program również działa na kartach rozszerzeń.

    Znając nieco Pythona można dowolnie przerobić interfejs programu jak i jego funkcję

    Pozdrawiam

  • #7 04 Lut 2011 22:17
    excray
    Poziom 39  

    W jaki sposób ustalany jest prąd cewki silnika krokowego? Czy silnik dostaje sinus czy jest sterowany zwykłym "prostokątem"?

  • #8 05 Lut 2011 00:06
    ^Rachel
    Poziom 21  

    excray napisał:
    W jaki sposób ustalany jest prąd cewki silnika krokowego? Czy silnik dostaje sinus czy jest sterowany zwykłym "prostokątem"?


    Z przebiegów widać, że silnik jest sterowany prostokątem, nie ma tu sterowania mikrokrokowego, tylko pelno krokowe lub polkrokowe.

  • #9 05 Lut 2011 22:03
    Karol966
    Poziom 30  

    Drivera do tranzystorów nie ma i mam nadzieje, że nie będzie on potrzebny. Myślę, że przy prądach silników rzędu kilku amper użyte tranzystory (15A prąd ciągły, lub domyślne IRFZ44) spokojnie poradzą sobie ze stabilną pracą. Urządzenie jest bardzo proste w budowie a za razem przydatne do ręcznego sterowania lub testowania silnika krokowego. Aplikację na PC można dowolnie przerobić (ew napisać podobną) tak aby była możliwość sterowania ruchem np głowicy za pośrednictwem klawiatury.

    Co do USB to mam nadzieję, że niedługo się za to zabiorę - ten układ powstał na szybko i spełnia moje wszelkie oczekiwania (tych drobnych błędów nie poprawiłem - brak czasu).

    Generowanie G-kodu jest tu raczej zbędne - nie jest to do tego ;).
    Swoją drogą chciałbym stworzyć oprogramowanie pozwalające sterować silnikami krokowymi (STEP/DIR/ENABLE) z MACH2/3 z komputera bez LPT...

    Prąd cewki ustalany jest zasilaczem. Do układu można podłączyć 2 osobne źródła zasilania - 5V dla procesora oraz dowolne napięcie (oczywiście w zakresie pracy tranzystorów/ cewek) do zasilania silnika.

    O frezarce koledze pisałem na gg - nie chcę to urobić bałaganu - jest zbudowane tyle ile widać. Na resztę brak czasu. Kupiłem łożyska oraz śruby a także wrzeciono 260W. Zaprojektowałem również płytę sterowania silnikami krokowymi (jedna duża płyta ok 10x16cm ze złączem LPT oraz wyjściami na silniki, krańcówki, zasilacze, ipt). Dla ciekawostki mogę napisać, że jest ona tylko na jednym mikroprocesorze Atmega16 dla wszystkich silników a nie jak to zwykle bywało po jednym procesorze dla każdej osi i ew procesor na płycie głównej dla dodatkowych opcji ;).

  • #10 10 Lut 2011 01:46
    mrowaa
    Poziom 15  

    Witam!
    Czy jak podasz np liczbę kroków 20 i później będziesz chciał dać jeszcze 5 to ważne jest które cewki włączysz najpierw podczas wykonywania następnych 5 kroków? Jeśli tak jest to skąd silnik ma wiedzieć po pierwszym uruchomieniu od której cewki zacząć?

  • #11 11 Lut 2011 14:38
    Karol966
    Poziom 30  

    Pewnie, że jest to ważne. Silnik "nie wie" niczego ;) To już zadanie mikro kontrolera aby pamiętał w jakiej pozycji ostatnio skończył pracę. Tzn pamiętany jest nr kroku (od 0 do 7 dla sterowania pół krokowego oraz odpowiednio co 2 dla pełno krokowego). W programie mam zdefiniowaną tabelę poszczególnych kroków i do niej się później tylko odwołuję. Jedyny problem jest przy zmianie trybu z pół krokowego na pełno krokowy. Dla pełnego kroku używam modulo2 więc przechodząc z pół kroku na pełen trzeba zwiększyć dodatkowo (lub zmniejszyć - w zależności od kierunku) indeks tabeli.

  • #12 11 Lut 2011 17:48
    jezyczekm
    Poziom 10  

    Jedna płytka steruje tylko jednym silnikiem?? czyli do wysterowania czterech potrzeba podłączyć cztery takie płytki do czterech portów usb??

  • #13 11 Lut 2011 18:00
    Karol966
    Poziom 30  

    Posiadając prezentowaną wersję urządzenia dla każdego silnika potrzeba jednego takiego sterownika. Nie budowałem go z myślą o sterowaniu więcej niż jednym silnikiem gdyż ma on służyć jedynie do testów. W łatwy sposób można określić dzięki temu sterownikowi wraz z oprogramowaniem na komputer PC skok śruby (oczywiście z pewną dokładnością). Ja nim osobiście np sprawdzałem jaka była siła silnika pracującego ze śrubą metryczną M10 - nie mogłem go zatrzymać więc moc dobra. Później sprawdziłem czy skok śruby zgadza się z tym, co odnalazłem w sieci - obliczyłem ile potrzebowałem kroków na 10cm przesunięcia nakrętki i tyle właśnie obrotów + reszta w krokach wpisałem aby silnik wykonał.(można max 200 kroków na raz wykonać albo max 100 obrotów). I po to właśnie jest przede wszystkim to urządzenie.

    Dodano po 3 [minuty]:

    Jeżeli chciałbym sterować czterema osiami to musiałbym znacząco przerobić oprogramowanie. Cały panel musiał by być praktycznie 4 krotnie rozbudowany. Płytka bieżącego układu w sumie nie nadawałaby się do przerobienia - potrzebna była by nowa płyta. Jest to wykonalne jak najbardziej.

  • #14 12 Lut 2011 00:49
    mrowaa
    Poziom 15  

    aha dzieki za odpowiedź?:)
    czyli jak sie zgubi jeden krok to 3 nastepne nie zostana wykonane? a skad wiesz z jakiej pozycji silnik startuje?:)

  • #15 12 Lut 2011 00:52
    Karol966
    Poziom 30  

    Włączenie układu jest w przypadkowym momencie - nie mam żadnego enkodera. Dalej układ już pamięta pozycję. Nie wiem skąd to pytanie, że jak się zgubi 1 krok to 3 następne nie zostaną wykonane ;)