zadawanie kroków mikrokontroler

Rozmowy na temat układów elektronicznych sterowania obrabiarek CNC
Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 7874
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: zadawanie kroków mikrokontroler

#21

Post napisał: tuxcnc » 27 kwie 2020, 21:10

Avalyah pisze:
27 kwie 2020, 20:17
zrobiłem sterownik CNC do tokarki w pełni na arduino (...) Zrobiłem wyżej wymieniony program w VisualStudio z nakładką VisualMicro.
Chyba mamy problem z tym, że dwie rzeczy nazywają się podobnie - płytka z Atmegą i środowisko programowania. O ile sama płytka z procesorem ma możliwości czysto fizyczne, ileś pinów i jakiś czas wykonania czegoś tam, to środowisko programowania nakłada czasem nieoczywiste ograniczenia. Np. Arduino IDE dokleja do każdego programu kod, którego istnienia i działania użytkownik nie koniecznie jest świadomy. Np. dlaczego działa millis() ? Bo Arduino IDE rezerwuje niektóre przerwania dla własnych celów.
Często dobrze działający program przestaje działać po dopisaniu jednej linii a przyczyny można szukać długo.
Dlatego kiedy piszę że ArduinoIDE nadaje się tylko do migania lampkami, to mam na myśli środowisko programowania o takiej nazwie.
Ja zaczynałem przygodę z mikrokontrolerami od Intela 8048, więc dla Atmegi mam szacunek, to jest potężny procesor, choć dziś standardem są dużo potężniejsze i dużo szybsze.

Natomiast co do przedmiotowego projektu, to chyba zafiksowałem się na swoich projektach i na tym żeby uniknąć użycia drogiego i delikatnego enkodera.
Natomiast gdyby jako warunek postawić użycie dokładnego enkodera, np. 2000 cpr, to zrobienie posuwu synchronizowanego można zrobić prymitywnie prostą metodą - poprzez wycinanie impulsów.
Przykładowo, jeśli enkoder daje 2000 impulsów na obrót, a sterownik silnika ustawimy na 400 impulsów na obrót, to łącząc bezpośrednio wyjście enkodera z wejściem sterownika, silnik zrobi dokładnie pięć obrotów na obrót wrzeciona. Oczywiście powyżej pewnej prędkości wrzeciona silnik nie ruszy tylko będzie brzęczał ( to po to są akceleracje ), ale to się da łatwo ominąć, o czym później. Jeżeli teraz pomiędzy enkoder a sterownik wstawimy układ, który będzie wycinał pewne impulsy z przebiegu enkodera, to sterownik dostanie ich mniej niż enkoder wysłał, więc silnik obróci się mniej niż pięć obrotów na obrót wrzeciona. Teoretycznie możemy uzyskać dowolnie niską prędkość silnika, ale nadal zsynchronizowaną z wrzecionem. Teraz wystarczy poczekać z początkiem ruchu na indeks wrzeciona i zrobić prostą akcelerację polegającą na rozpoczęciu ruchu z określonym bezpiecznym dzielnikiem i podniesieniu go stopniowo do zadanej prędkości, to samo na koniec ruchu tylko odwrotnie, żeby nie zgubić pozycji.



Awatar użytkownika

pitsa
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 4695
Rejestracja: 13 wrz 2008, 22:40
Lokalizacja: PL,OP

Re: zadawanie kroków mikrokontroler

#22

Post napisał: pitsa » 27 kwie 2020, 21:13

tuxcnc pisze:Ograniczenia Atmegi powodują, ze program działa świetnie, ale tylko w określonym przedziale prędkości.

Arduinowo można ciut szybciej przechodząc z atmegii na esp32. No ale racja to dalej jest "pierdzenie" silnikami i mało elastyczne programowanie pod jedną robotę, gdy przechodząc na linuxacnc można mieć od razu dużo, dużo więcej. :-)
zachowanie spokoju oznacza zdolności do działania
ᐃ 🜂 ⃤ ꕔ △ 𐊅 ∆ ▵ ߡ


Avalyah
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 6
Posty: 2364
Rejestracja: 29 lis 2015, 00:38
Lokalizacja: Bielsko-Biała

Re: zadawanie kroków mikrokontroler

#23

Post napisał: Avalyah » 27 kwie 2020, 21:41

pitsa pisze:programowanie pod jedną robotę, gdy przechodząc na linuxacnc

To przecież absolutnie dwie różne rzeczy, stosowane do innych celów. Moim zdaniem do elektrogitary angażowanie komputera jest przesadą. Jeśli pojawi się na drugiej osi silnik - do czego zachęcam - to już zupełnie inna rozmowa.


Autor tematu
andrejch2
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 7
Posty: 494
Rejestracja: 15 wrz 2019, 07:56

Re: zadawanie kroków mikrokontroler

#24

Post napisał: andrejch2 » 28 kwie 2020, 08:00

A nie można użyć większej atmegi i podpiąć lepszy oscylator? Ewentualnie ten pomysł z układem cyfrowym pomiędzy enkoderem a silnikiem krokowym śruby jest bardzo ciekawy, jednak robienie tego na bramkach a nawet jeśli są w scalaku . Nie wiem jak odporne było by to na przegrzania czy inne zakłócenia od silnika.
Też powoli skłaniam się do komputera, linuxa i silników krokowych. Po pierwsze jest tego dużo w internecie i jest to już przetestowane. Nawet jeśli na początku komputer obsługiwał by tylko jedną oś to po czasie na pewno dołoże jeszcze jeden silnik na oś drugą.
No i komputer ma jeszcze jedną zaletę, że mogę wyświetlać sobie na nim rysunek techniczny więc koniec z latającymi kartkami.

A tak w ogóle jestem mgr mechatroniki także programować umiem a raczej umiałem, układy też nie są mi obce. Po prostu nie używam na co dzień programowania i po kilku latach sporo zapomniałem, dlatego chciałem wiedzieć co proponujecie. Żebym wiedział w jakim kierunku odświeżać wiedze.
Moim zdaniem stm32 to przerost na takie zastosowanie.

Może ktoś spotkał się z schematem takiego układu pomiędzy enkoderem a silnikiem?

Awatar użytkownika

TOP67
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 6
Posty: 2224
Rejestracja: 17 wrz 2018, 10:47
Lokalizacja: Wrocław
Kontakt:

Re: zadawanie kroków mikrokontroler

#25

Post napisał: TOP67 » 28 kwie 2020, 08:16

Układ mechaniczno-elektryczny będzie identyczny w obu przypadkach. Koszt arduino jest pomijalny i nawet w przypadku rezygnacji na pewno się przyda. A odświeżenie umiejętności programowania bezcenne.

Możesz skorzystać z tego rosyjskiego projektu, albo pobawić się samemu. Ale faktycznie zapomnij o accelstepper i gotowych bibliotekach. Użyj wbudowanych timerów i przerwań.


Autor tematu
andrejch2
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 7
Posty: 494
Rejestracja: 15 wrz 2019, 07:56

Re: zadawanie kroków mikrokontroler

#26

Post napisał: andrejch2 » 28 kwie 2020, 08:58

Co to ten accelstepper tak dokłądnie ?

Awatar użytkownika

TOP67
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 6
Posty: 2224
Rejestracja: 17 wrz 2018, 10:47
Lokalizacja: Wrocław
Kontakt:

Re: zadawanie kroków mikrokontroler

#27

Post napisał: TOP67 » 28 kwie 2020, 09:16

To jedna z bibliotek do sterowania krokowcami. Przydatna, jak nie masz osobnego sterownika, zwłaszcza do silników unipolarnych. Można podłączyć silnik bezpośrednio do arduino (jeśli prądowo wydoli) lub przez prostre układy Darlingtona.
Do bipolarnych najlepiej użyć sterownika, któremu wysyłasz tylko impulsy step. A to bardzo prosto oprogramować.


Avalyah
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 6
Posty: 2364
Rejestracja: 29 lis 2015, 00:38
Lokalizacja: Bielsko-Biała

Re: zadawanie kroków mikrokontroler

#28

Post napisał: Avalyah » 28 kwie 2020, 09:17

Biblioteka arduinowa do obsługi silników krokowych z wbudowanymi przyspieszeniami. Działa kiepsko, ma sporo ograniczeń. Na początku możesz moim zdaniem ominąć przyspieszenia w ogóle, jeśli będziesz robił to sam, bo znacznie ułatwi Ci to zadanie.

Awatar użytkownika

pitsa
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 4695
Rejestracja: 13 wrz 2008, 22:40
Lokalizacja: PL,OP

Re: zadawanie kroków mikrokontroler

#29

Post napisał: pitsa » 28 kwie 2020, 09:19

zachowanie spokoju oznacza zdolności do działania
ᐃ 🜂 ⃤ ꕔ △ 𐊅 ∆ ▵ ߡ


Autor tematu
andrejch2
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 7
Posty: 494
Rejestracja: 15 wrz 2019, 07:56

Re: zadawanie kroków mikrokontroler

#30

Post napisał: andrejch2 » 28 kwie 2020, 09:19

Jest już pewne, że uzyje linux cnc i laptopa. Dziękuje wszystkim za pomoc.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika CNC”