Mały, prosty sterownik krokowca pod AVR

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

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

Re: Mały, prosty sterownik krokowca pod AVR

#81

Post napisał: TOP67 » 18 sty 2020, 00:26

A tak przy okazji, to jesteś w stanie zauważyć mikrokrok co 1s? Jeden obrót zajmie kilkanaście minut.




Autor tematu
oprawcafotografii
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 21
Posty: 6105
Rejestracja: 29 kwie 2009, 10:11
Lokalizacja: Kraków / Jaworzno / Kopanka

Re: Mały, prosty sterownik krokowca pod AVR

#82

Post napisał: oprawcafotografii » 18 sty 2020, 09:17

Częstotliwość 1Hz to oczywiście przesada, ale tak czy owak nie działa.

Pomigałem LEDem - sygnał na pinie 13 mój oscyloszkopik za 70zł pokazuje:
https://photos.app.goo.gl/gqYUorJssmW3hrNZA

Niestety ani na pinie 9 ani 10 nic sensownego nie widzę, same przydźwięki...

Sprawdziłem drugą płytkę solo - bez podłączonego czegokolwiek i to samo.

:(

q
„Największym wrogiem wolności jest najedzony niewolnik.”

Awatar użytkownika

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

Re: Mały, prosty sterownik krokowca pod AVR

#83

Post napisał: tuxcnc » 18 sty 2020, 09:44

Już o tym pisałem, ale najwyraźniej nikt nie zauważył ...
Generowanie częstotliwości zmianą dzielnika w timerze ma oczywistą wadę w postaci nieliniowej charakterystyki.
Jeśli ktoś nie kuma, to wyjaśniam, że zarówno zmiana podzielnika z 2 na 4, jak też z 20000 na 40000 da procentowo taką samą zmianę częstotliwości, czyli w tym przypadku dwa razy mniej.
Rozwiązaniem jest albo wydłużenie licznika, ale wtedy trzeba użyć 32 bitowego procesora, a więc już NIE AVR, albo technika gubienia impulsów przy stałej częstotliwości, czyli ZUPEŁNIE INNE rozwiązanie, wymagające z kolei dużej szybkości obliczeniowej, więc znowu NIE AVR.
Do tego należy dodać, że nie stosując ramp zdecydowanie ograniczamy maksymalne obroty silnika, więc odpada przekładnia, która przy pompie perystaltycznej może być koniecznością.
Podsumowując, albo trzeba się zadowolić biblioteką accelstepper, która jest mocno niedoskonała, albo przesiąść się na STM32F103, który cenowo wychodzi podobnie, ale sprzętowo to zupełnie inna bajka.


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

Re: Mały, prosty sterownik krokowca pod AVR

#84

Post napisał: Avalyah » 18 sty 2020, 10:35

tuxcnc pisze:ale wtedy trzeba użyć 32 bitowego procesora, a więc już NIE AVR

A właśnie, że nie. W Xmedze można łączyć timery.

Awatar użytkownika

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

Re: Mały, prosty sterownik krokowca pod AVR

#85

Post napisał: tuxcnc » 18 sty 2020, 10:39

Avalyah pisze:
18 sty 2020, 10:35
W Xmedze można
Możesz mi wyjaśnić po co mam się przesiadać na Xmega, skoro płytka z STM32F411 kosztuje na Aliexpress 15 PLN z dostawą ?

Awatar użytkownika

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

Re: Mały, prosty sterownik krokowca pod AVR

#86

Post napisał: TOP67 » 18 sty 2020, 11:42

oprawcafotografii pisze:
18 sty 2020, 09:17
Częstotliwość 1Hz to oczywiście przesada, ale tak czy owak nie działa.

Pomigałem LEDem - sygnał na pinie 13 mój oscyloszkopik za 70zł pokazuje:
https://photos.app.goo.gl/gqYUorJssmW3hrNZA

Niestety ani na pinie 9 ani 10 nic sensownego nie widzę, same przydźwięki...

Sprawdziłem drugą płytkę solo - bez podłączonego czegokolwiek i to samo.

:(

q
Wgrałeś tylko ten kod? Bez żadnych innych dodatków i wyświetlaczy?

Dodane 21 minuty 43 sekundy:
tuxcnc pisze:
18 sty 2020, 09:44
Już o tym pisałem, ale najwyraźniej nikt nie zauważył ...
Generowanie częstotliwości zmianą dzielnika w timerze ma oczywistą wadę w postaci nieliniowej charakterystyki.
Jeśli ktoś nie kuma, to wyjaśniam, że zarówno zmiana podzielnika z 2 na 4, jak też z 20000 na 40000 da procentowo taką samą zmianę częstotliwości, czyli w tym przypadku dwa razy mniej.
A gdzie tak jest zrobione?


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

Re: Mały, prosty sterownik krokowca pod AVR

#87

Post napisał: Avalyah » 18 sty 2020, 12:06

tuxcnc pisze:Możesz mi wyjaśnić po co mam się przesiadać na Xmega, skoro płytka z STM32F411 kosztuje na Aliexpress 15 PLN z dostawą ?


Powiedziałeś tylko, że to nie na AVR (z dodatkowym akcentem), więc sprostowałem. STMy to takie pół poziomu wyżej niż xmegi, także też bym się w dół pewnie nie przesiadał.


tomcat65
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 20
Posty: 1236
Rejestracja: 15 lis 2009, 02:46
Lokalizacja: Olsztyn
Kontakt:

Re: Mały, prosty sterownik krokowca pod AVR

#88

Post napisał: tomcat65 » 18 sty 2020, 16:07

oprawcafotografii pisze:Sprawdziłem drugą płytkę solo - bez podłączonego czegokolwiek i to samo.

Trochę dziwne, że na dwóch. Kiedyś nabyłem tanie "arduino" pod GRBL i miesiąc szarpałem się z niedziałającym krańcówkami. Uszkodzone dwa piny w procku - wymiana na nowy A328 i działa.
tuxcnc pisze:Jeśli ktoś nie kuma

No właśnie. Tryb CTC licznika znacznie różni się od normalnego - przepełnienie i przerwanie. Zresztą i ten tryb też można modyfikować.
I tak się właśnie kończy używanie kiepskich bibliotek i goo..ego kodu - zawsze brakuje mocy. W końcu przejście na cortex-y: M0, M3 itd.
Jak ściganie się na zaciągniętym ręcznym. Idąc tym tropem, to się okaże, że głupią pompkę trzeba sterować "potężnym Ryzenem i RTos-em".
Funkcja kol. TOP67 wydaje się być prawidłowa - choć nie doskonała. Nie mam wolnego Arduino ( ani komu podciągnąć :) ), aby sprawdzić.
Co do niedoskonałości:
-pozbyłbym się wszystkich zmiennych typu float. AVRy nie mają koprocesora matematycznego. Co prawda kompilator sobie z tym poradzi, ale generuje bardzo długi kod.
-Zmiana wartości licznika i ew. podzielnika powinna następować w ściśle określonym momencie - przy zerowaniu.
Ponieważ program dla pompki jest raczej prosty i liniowy, zastosowałbym flagę przepełnienia - nie przerwanie, i w pętli oczekiwał na jej wystąpienie. Ewentualne opóźnienie wysłania danych na wyświetlacz nie będzie miało żadnego znaczenia.

Awatar użytkownika

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

Re: Mały, prosty sterownik krokowca pod AVR

#89

Post napisał: TOP67 » 18 sty 2020, 16:30

tomcat65 pisze:
18 sty 2020, 16:07
-pozbyłbym się wszystkich zmiennych typu float. AVRy nie mają koprocesora matematycznego. Co prawda kompilator sobie z tym poradzi, ale generuje bardzo długi kod.
W pierwotnej wersji było long. Ale kolegę interesują bardzo małe częstotliwości, i skok co 1Hz byłby mało dokładny. Oczywiście jest kilka rozwiązań tego problemu, np.: zwiększyć mikrokrok, co podniesie częstotliwość; podawać parametr 10 lub 100 razy większy; podawać okres a nie częstotliwość.


Autor tematu
oprawcafotografii
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 21
Posty: 6105
Rejestracja: 29 kwie 2009, 10:11
Lokalizacja: Kraków / Jaworzno / Kopanka

Re: Mały, prosty sterownik krokowca pod AVR

#90

Post napisał: oprawcafotografii » 18 sty 2020, 16:49


Wgrałeś tylko ten kod? Bez żadnych innych dodatków i wyświetlaczy?
Tak, dokładnie to co pokazałem, nic więcej.

Nie wiem czy to oczywiste, ale używam Arduino Mega 2560..

Jakub
„Największym wrogiem wolności jest najedzony niewolnik.”

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika CNC”