RAMPA na ARDUINO

Dyskusje na temat silników krokowych i sterowników silników krokowych.
Awatar użytkownika

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

#71

Post napisał: pitsa » 16 kwie 2012, 01:13

Leoo pisze: Jeśli po wykonaniu ruchu przeciwnego oś wróci na tą samą pozycję, to niczego nie trzeba sprawdzać
Tego nawet nie trzeba sprawdzać, bo to się usłyszy. ;-)

Do badań silnika można zastosować czujnik piezoelektryczny do pomiaru drgań. http://layer.uci.agh.edu.pl/pl/dydaktyk ... s/cw1.html Można też obserwować bezpośrednie efekty mechaniczne. Na przykład jak mocno po danym obrocie przesuwa się tarcza tłumika tarciowego, lub prędkość zsuwania się samego silnika po pochyłości.

W załączeniu to co mi już wystarczy do jednego zastosowania - urządzenie do testowania nakrętek trapezowych z tworzywa. Pierwszy cel osiągnięty. Teraz czas na eliminację "delay" i poważniejsze wzory. :)
Załączniki
arduino_silnik_krokowy_pitsa2.zip
Próbka jazdy w te i we wte z małą rampą "mnożeniową" x 1.09
(1.26 KiB) Pobrany 136 razy


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


GSM
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 8
Posty: 183
Rejestracja: 01 kwie 2007, 21:05
Lokalizacja: Warszawa

#72

Post napisał: GSM » 16 kwie 2012, 03:45

Udało mi się komputer do współpracy namówić.
Kolego Yogi_, w odpowiedzi na twoje pytanie przeprowadziłem krótkie testy z wykorzystaniem avr-gcc (pod ATmega32):

Kod: Zaznacz cały

Działanie c = a / b
Optymalizacja: 0

Typ      Ilość cykli
int8:     248
uint8:     93
int16:    254
uint16:   221
int32:    646
uint32:   613
int64:   4001
uint64:  3726
float:    473
Z tym że ilość cykli będzie zależna od wartości zmiennych, najbardziej dla float, waha się w zakresie +/-20.
Optymalizacja nieznacznie poprawi te wyniki bo dzielenie wykonują i tak już zoptymalizowane funkcje.
Yogi_ pisze:Ośmiobitowego procka może to zaboleć ;-)
Czy ma go co boleć? Jeśli (po spojrzeniu na to pobieżnie) dobrze rozumiem to przy każdym roku jest przeliczane tylko tylko p a to tylko dodawanie i 3 mnożenia (w trakcie ramp) i jakieś skoki warunkowe. Zakładając użcie float-ów (przy całkowitych możnaby myślę, że prawie 2 krotnie zaoszczędzić czasu), icząc PI razy drzwi wychodzi coś kolo 600 cykli, przy 16MHz to 37,5us i puki nie będziemy silnika kręcić szybciej niż te około 20~25kHz to można się zmieścić jeszcze z jakąś komunikacją.
20kHz przy mikrokroku 1/16 i silniku 200 step/rev daje nam 6,25 obr/sek, przy kole o średnicy 1 cm to prawie 20 cm/s na pasku prędkości przesuwu karetki.
Yogi_ pisze:ten "variable delay period" bym stablicował, w zależności od ilości
Może mi coś umknęło, ale co tam jest do tablicowania? R obliczamy raz przed wykonaniem ruchu a m przyjmuje tylko trzy wartości, jeden if i po sprawie.

Są AVRki co i szybsze zegary wytrzymują a i tak drobny mikrokrok w tym zastosowaniu nie wydaje się aż tak potrzebny (jedynie aby wygładzić przejazd, ale to też i przy mniejszej ilości kroków odpowiednim sterownikiem można zrobić), stąd też uważam, że nie ma się co martwić. :wink:

Pozdrawiam,
GSM

P.S.
W dzień przeczytam sobie dokładnie tego PDF-a, bo teraz trochę ciężko się myśli.

Awatar użytkownika

Yogi_
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 16
Posty: 759
Rejestracja: 13 sty 2010, 08:07
Lokalizacja: Braniewo

#73

Post napisał: Yogi_ » 17 kwie 2012, 00:14

pitsa pisze:W załączeniu to co mi już wystarczy do jednego zastosowania - urządzenie do testowania nakrętek trapezowych z tworzywa. Pierwszy cel osiągnięty. Teraz czas na eliminację "delay" i poważniejsze wzory. :)
Wydaje mi się, że w pierwszej pętli rampy powinno być zamiast

Kod: Zaznacz cały

for(int i= startsteps; i > 1 ; i = i / 1.09 - 1){

Kod: Zaznacz cały

for(int i= startsteps; i = 1 ; i = i / 1.09 - 1){
Patrzyłem, w arkuszu co prawda, ale początek rampy ma o jedną iterację mniej.

P.S. plik wciągnij myszą od razu na okno calca ;-D
Załączniki
końce.zip
(19.54 KiB) Pobrany 137 razy
Pozdrawiam
Krzysiek

Awatar użytkownika

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

#74

Post napisał: pitsa » 17 kwie 2012, 01:29

Dzięki, niestety i tak ten sposób na górce rampy nie daje łagodnego przejścia na stałą prędkość.
Próbuję teraz zrobić zmienne przyrosty, w arkuszu już działa ale z tłumaczeniem gorzej. :)
Idea liczenia przyrostu w tym pliku: rampa3.ods
zachowanie spokoju oznacza zdolności do działania
ᐃ 🜂 ⃤ ꕔ △ 𐊅 ∆ ▵ ߡ

Awatar użytkownika

Yogi_
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 16
Posty: 759
Rejestracja: 13 sty 2010, 08:07
Lokalizacja: Braniewo

#75

Post napisał: Yogi_ » 17 kwie 2012, 11:08

Może spróbuj przerobić w arkuszu, żeby obcinało do całkowitych (liczba.całk()). Bez konwersji do U2 w przypadku ułamków, to (w PIC'ach przynajmniej) obcina część ułamkową.
Kurde skąd można zassać kalkulator z Fedory 12? Wg mnie najlepszy do obrazowania operacji na bajtach. Obrazowania typu 7/2=3,5 -bin-> 11 -dec-> 3 były czasami bardzo pomocne.
Pozdrawiam
Krzysiek

Awatar użytkownika

Autor tematu
markcomp77
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 64
Posty: 3962
Rejestracja: 18 wrz 2004, 12:51
Lokalizacja: k/w-wy
Kontakt:

#76

Post napisał: markcomp77 » 17 kwie 2012, 17:39

Yogi_ pisze:kalkulator z Fedory 12?
a co to takiego? (wiem, że fedora to może być RH... czy chodzi jakiś konkretny kalkulator z dystrybucji)
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm

Awatar użytkownika

Yogi_
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 16
Posty: 759
Rejestracja: 13 sty 2010, 08:07
Lokalizacja: Braniewo

#77

Post napisał: Yogi_ » 17 kwie 2012, 17:48

Konkretny, z FC 12.
Fedora to free następczyni RH, który się skomercjalizował i poszedł w stronę serwerową.
Pozdrawiam
Krzysiek

Awatar użytkownika

Autor tematu
markcomp77
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 64
Posty: 3962
Rejestracja: 18 wrz 2004, 12:51
Lokalizacja: k/w-wy
Kontakt:

#78

Post napisał: markcomp77 » 17 kwie 2012, 17:57

w repozytoriach ubuntu jest wiele kalkulatorów...
liczę na Genius ;)

[ Dodano: 2012-04-17, 17:58 ]
http://www.jirka.org/genius.html
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm

Awatar użytkownika

Yogi_
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 16
Posty: 759
Rejestracja: 13 sty 2010, 08:07
Lokalizacja: Braniewo

#79

Post napisał: Yogi_ » 17 kwie 2012, 20:06

qalculate jest fajny :-)
markcomp77 pisze:liczę na Genius ;)
ale o dziwo kcalc :-D ,to jest to o co mi chodziło :-)
Pozdrawiam
Krzysiek

Awatar użytkownika

Autor tematu
markcomp77
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 64
Posty: 3962
Rejestracja: 18 wrz 2004, 12:51
Lokalizacja: k/w-wy
Kontakt:

#80

Post napisał: markcomp77 » 17 kwie 2012, 20:17

dziś zamówiłem Arduino.. pewnie za parę dni zacznę testy w realu...
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Silniki Krokowe / Sterowniki Silników Krokowych”