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

ATMEGA - Sterowanie silnikiem

kryh00 19 Lip 2015 18:33 1209 24
  • #1 19 Lip 2015 18:33
    kryh00
    Poziom 8  

    Witam,
    od razu powiem, że jestem początkujący, ale zlecono mi zrobienie projektu, mającego na celu sterowanie silnikiem krokowym. Dokładnie chodzi o to, że silnik krokowy jest sterowany przez mikrokontroler (najlepiej ATMEGA) tyle że z komputera. Komputer podaje ilość obrotów w cyklu, ilość cykli oraz ich częstotliwość. Pytanie jest takie w jaki sposób można to zrealizować, jak połączyć uC z komputerem, no i jak nim sterować (np. LabView)?

    0 24
  • #2 19 Lip 2015 19:34
    piotrva
    Moderator na urlopie...

    Żeby zrobić taki projekt dobrze, musisz najpierw poznać podstawy.

    Potrzebne będą Ci:
    1. Obsługa portów IO
    2. Timery
    3. Przerwania
    4. UART

    Procesor z komputerem najlepiej (najprościej) połączyć przez układ FT232RL (lub podobny mostek USB<>UART) i potem z LV masz dostępny port szeregowy do komunikacji w dwie strony. LV to dobry pomysł - zrobisz szybko aplikację okienkową, bez konieczności wielkiego doświadczenia.

    Kto Ci zlecił ten projekt i czy jesteś pewien, że podołasz w krótkim czasie?

    0
  • #3 19 Lip 2015 20:03
    kryh00
    Poziom 8  

    Zleciła mi uczelnia, a to dlatego że za późno ogarnąłem wybór promotora i pracy, czasu mam kilka miesięcy, ale dość szybko się uczę jeśli mam dobre i jasno opisane materiały i źródła :) Co prawda jestem w temacie laikiem, gdyż uC w zasadzie nie mieliśmy, a temat do tej pory sam nie ruszyłem, ale ogólne pojęcie o elektronice jakieś mam ;) dzięki za pomoc, w razie czegoś można liczyć o jakieś nakierowanie w temacie?

    0
  • #6 19 Lip 2015 21:24
    atom1477
    Poziom 43  

    A tak przy okazji piania pracy dyplomowej to pasuje też zacząć używać precyzyjnych określeń:

    kryh00 napisał:
    Dokładnie chodzi o to, że silnik krokowy jest sterowany przez mikrokontroler (najlepiej ATMEGA) tyle że z komputera. Komputer podaje ilość obrotów w cyklu, ilość cykli oraz ich częstotliwość.

    A łatwo się domyśleć że powinno być:
    Cytat:
    Dokładnie chodzi o to, że silnik krokowy ma być sterowany przez mikrokontroler (najlepiej ATMEGA) tyle że z komputera. Komputer ma podawać ilość obrotów w cyklu, ilość cykli oraz ich częstotliwość.

    Bo się tego bardzo czepiają :D

    0
  • #7 20 Lip 2015 16:58
    kryh00
    Poziom 8  

    Dzięki za poprawkę, już przekonałem się o tym oddając pierwszy rozdział :) na ogół staram się wyrażać precyzyjnie, ale jak piszę w takich miejscach, z całym szacunkiem oczywiście, różnie bywa z czytaniem tego coś się napisało do tej pory :) taki mały offtop, w razie czego odświeżę temat, żeby nie wyjaśniać wszystkiego od początku

    @edit:
    Jako że wiedzę swoją lubię czerpać z książek (ebook-ów nie lubię), to do pod kątem tego projektu (silnik krokowy, komunikacja przez USB) lepsza będzie pozycja p. Francuza czy p. Kardasia?

    0
  • #9 20 Lip 2015 17:06
    kryh00
    Poziom 8  

    Rozumiem, miałem na myśli czy w którejś może jest pominięte zagadnienie komunikacji przez USB, gdyż zakup obu książek jest niemałym wydatkiem

    0
  • #10 20 Lip 2015 17:16
    tmf
    Moderator Mikrokontrolery Projektowanie

    kryh00 napisał:
    Rozumiem, miałem na myśli czy w którejś może jest pominięte zagadnienie komunikacji przez USB, gdyż zakup obu książek jest niemałym wydatkiem


    No to ich nie kupuj :)
    Co potrzebujesz do projektu:
    - procka z USB - ja bym proponował XMEGA, bo ma sprzętowe USB, a komunikację robisz prosto:
    http://mikrokontrolery.blogspot.com/2011/03/X...emulacja-portu-szeregowego-rs-232-na-USB.html
    - XMEGA ma sprzętowe wsparcie do sterowania silnikami krokowymi, ale... czasu masz mało, więc nie ma co rozkminiać uniwersalnych modułów, kup na aliexpress moduł z a4988, który jest kompletnym sterownikiem krokowców, wymagającym podania tylko step i dir, z możliwością mikrokoroków itd. Steruje silnikami do 2A/uzwojenie. Jak potrzebujesz więcej to są układy z serii DRV... Na Ali moduł kupisz za niecałe $7. Cały projekt można skończyć w oparciu o gotowce i naszą pomoc w ciągu dosłownie 4 godzin. Potem tylko pisać. Swoją drogą coś małoambitne to jest...

    0
  • #11 20 Lip 2015 17:37
    kryh00
    Poziom 8  

    To tylko jeden z elementów tej pracy, z resztą sobie poradzę. Niestety gotowe moduły nie mogą być, musi to być programowalny. W dodatku żeby programować XMEGA trzeba coś wiedzieć na temat programowania uC, ja praktycznie nic. Stąd pomysł o ATMEGA8, gdyż widzę, że to popularna sprawa i sporo jest na ten temat

    0
  • #12 20 Lip 2015 17:44
    tmf
    Moderator Mikrokontrolery Projektowanie

    Programator to programator (oba procki to AVRy, tyle, że jeden jest nowszy), chyba na uczelni coś masz. ATMega8 to najgorszy możliwy wybór, bo ani nie ma nic co sensownie wspiera sterowanie silnikiem krokowym, ani nie ma interfejsu USB, więc trzeba robić cyrki typu FT232-ATMega. A moduł to tylko scalak sterujący silnikiem przylutowany na płytce, możesz sobie sam to przylutować, ale chyba magisterka nie jest z lutowania (metaloznawstwo, czy co?:))

    0
  • #13 20 Lip 2015 17:53
    kryh00
    Poziom 8  

    Na uczelni nic nie mam, miałem jeden przedmiot z 8051 ale taki bylejaki... To nie magisterka tylko inżynierka, no i kierunek faktycznie troszkę inny. Co do wyboru uC, to jeśli wybrałbym XMEGA, to mimo wszystko podstawy będą aktualne z ATMegi? Czy proste programy typu mruganie ledami czy coś na początek lepiej zacząć na ATM8 a później się przesiąść?

    0
  • #14 20 Lip 2015 18:04
    dondu
    Moderator Mikrokontrolery Projektowanie

    W przedszkolu także zaczyna się od klocków :)
    A tak na poważnie, to stopniowanie trudności zawsze ma sens, przy nauce podstaw.

    0
  • Pomocny post
    #15 20 Lip 2015 18:23
    tmf
    Moderator Mikrokontrolery Projektowanie

    kryh00 napisał:
    Na uczelni nic nie mam, miałem jeden przedmiot z 8051 ale taki bylejaki... To nie magisterka tylko inżynierka, no i kierunek faktycznie troszkę inny. Co do wyboru uC, to jeśli wybrałbym XMEGA, to mimo wszystko podstawy będą aktualne z ATMegi? Czy proste programy typu mruganie ledami czy coś na początek lepiej zacząć na ATM8 a później się przesiąść?


    Obecnie rozpoczynanie od M8 IMHO nie ma sensu. Podstawy są podobne, ciutek różni się składnia, ale niewiele. W linkach z mojej stopki masz linki do darmowych przykładów programów demonstrujących różne elementy i dla ATMega i dla XMEGA. Na wspomnianej stronie http://mikrokontrolery.blogspot.com masz krótki kurs XMEGA, elementy, które będą ci potrzebne masz w nim omówione. Nie wiem co jeszcze masz w tym projekcie, ale jak pisałem to naprawdę dla początkującego, który jednakże zna chociaż trochę C - jakieś 4 h.

    1
  • Pomocny post
    #16 20 Lip 2015 18:46
    piotrva
    Moderator na urlopie...

    kryh00 napisał:
    Niestety gotowe moduły nie mogą być, musi to być programowalny.

    Tego fragmentu nie rozumiem - co musi być programowalny? Sterowanie silnikiem ma być programowo? Nie możesz zastosować scalaka, który załatwia sprawę?

    1
  • #17 20 Lip 2015 20:54
    kryh00
    Poziom 8  

    Ok dzięki panowie, narazie pobawię się w chwilach wolnych atmega 8, spróbuję posiąść cześć tej wiedzy, a jak już będę robił projekt to przesiądę się na XMEGA. Co do pytania to promotor mówił że są właśnie układy z gotowymi scalakami, ale to ma być własnoręcznie zrobione, bo wtedy student czegoś się uczy przy okazji i ma to sens

    0
  • #18 20 Lip 2015 21:17
    tmf
    Moderator Mikrokontrolery Projektowanie

    Akurat pomysł, żeby zaczynać od M8 i potem przesiąść się na XMEGA jest naprawdę zupełnie bez sensu. Cała składnia AVR-libc jest zupełnie inna bo inna jest filozofia peryferii w obu MCU. Także taka przesiadka to strata czasu. Prawdę mówiąc sam pomysł wykorzystania procka oznaczonego przez producenta jako "obsolete" dyskwalifikuje pracę. Dlaczego nie wolno stosować gotowych scalaków? Można sobie mostek H zbudować z elementów dyskretnych, ale co to wnosi w stosunku do gotowego scalaka? IMHO taka sztuka dla sztuki... no ale wiadomo, ciężko dyskutować z promotorem... Dlatego tym bardziej skłaniałbym się do XMEGA i jego układu AWeX, który służy do sterowania mostkami H. No chyba, że sprzętowe wprowadzanie dead time przy sterowaniu tranzystorami mostka to zbyt nowoczesne rozwiązanie dla promotora :)

    0
  • #19 20 Lip 2015 21:27
    atom1477
    Poziom 43  

    Promotorowi raczej chodziło o to żeby nie stosować gotowych scalaków do sterowania silnikami (takich co przyjmują sygnały STEP i DIR a dalej wszystko robią same).
    Samo wykorzystanie mostka H jeszcze by mu chyba nie będzie przeszkadzało, bo potrzebny byłby jeszcze dodatkowy układ generujący sygnały sterujące dla tego mostka. A tym dodatkowym układem mógł by być właśnie procek.

    0
  • #20 23 Lip 2015 14:14
    kryh00
    Poziom 8  

    Mhm problem polega głównie na tym, że w dniu kiedy założyłem temat, zgodnie z poradnikami w internecie zakupiłem programator USB ASP (jakiś zamiennik tylko 5V) oraz M8, no i oczywiście elementy R, C, diody itp. Jako że XM wymaga jakichś lepszych programatorów, no i jest w SMD (zestawy są drogie), więc jeśli zależy mi głównie na komunikacji z USB, coś takiego wystarczy AT90USB82/ATmega8U2?

    0
  • #22 23 Lip 2015 14:26
    tmf
    Moderator Mikrokontrolery Projektowanie

    Wystarczy, weź tylko pod uwagę, że nawet prosty stos USB obsługujący tylko CDC to jakieś 8 kB kodu, można optymalizować i zejść do jakiś 4 kB, ale z 8 kB FLASH i małą ilością pamięci to szaleństwo.
    A SMD lutuje się prościej niż DIP, programator, np. klon ISPMkII to koło 40zł. Jak musisz mieć DIP to Leon Instruments i Modułowo sprzedają XMEGA na płytce ze wszystkim, ącznie z LDO i USB w formacie przypominającym DIP40 na stykówkę. W dodatku mają preprogramowane bootloadery więc może się obejść bez programatora i wykorzystać FLIP.

    0
  • #23 23 Lip 2015 15:19
    kryh00
    Poziom 8  

    Mhm strasznie dużo nowej wiedzy i mi się to miesza, począwszy od C (słabo jeszcze znam).
    XMEGA256A3BU ten moduł wydaje się prosty i ciekawy, znaleziony na blogu mikrokontrolery, niestety, nie mogę go znaleźć w sprzedaży :/ wtedy rzeczywiście programator nie jest potrzebny? Obecnie korzystam Z WinAVR i Eclipse, czy przez ten FLIP będzie można programować z Eclipsa? Są wady takiego rozwiązania?

    0
  • #25 23 Lip 2015 16:02
    tmf
    Moderator Mikrokontrolery Projektowanie

    Tak, ten moduł posiada bootloader i możesz go programować przez USB. Kupić można w sklepach, które ci podałem: Leon Instruments lub Modułowo. FLIP to osobna aplikacja okienkowa, jeśli chcesz to sprząc z czymś to |Atmel daje narzędzia pracujące z linii poleceń. Z drugiej strony rozważ też Atmel Studio - dedykowane środowisko dla AVR.

    0