rampa elektroda
- tomaszdko
- Posty: 72
- Rejestracja: 06 gru 2018, 19:58
rampa elektroda
Bartek dzięki za kod do rampy , chodzi zajebiście . Mam jednak pytanie do tego co napisałeś - "Osobiście bym tego tak nie napisał. Nie wiem po co to ciągle obliczać jak można raz..."
No niby można bo dane opóźnień są w tablicy więc można odwoływać się doczytując w pętlach ale to by było dobre jeśli silnik ma wykonywać ten sam ruch przód-tył (rampa wznosząca - prosta - rampa opadająca i od nowa) . Dużą wadą tego kodu gościa z yt jest to że jest pamięciożerny (zapis całej drogi , nie tylko ramp). Próbowałem napisać funkcję by odrazu przeliczyła rampe bez potrzeby zapisu do tablicy ale nie wychodzi mi taka dynamika jak w tym programie z YT . Jak masz jakiś pomysł to byś coś zapodał .
ps. gdzie można kupić moduły z Xmega za normalną kasę , ja ostatnio kupiłem z Niemiec https://www.alvidi.de/products/EN/AVR_D ... rb_v20.php
świetna płytka ale niestety nie tania i trzeba cło doliczyć :/
No niby można bo dane opóźnień są w tablicy więc można odwoływać się doczytując w pętlach ale to by było dobre jeśli silnik ma wykonywać ten sam ruch przód-tył (rampa wznosząca - prosta - rampa opadająca i od nowa) . Dużą wadą tego kodu gościa z yt jest to że jest pamięciożerny (zapis całej drogi , nie tylko ramp). Próbowałem napisać funkcję by odrazu przeliczyła rampe bez potrzeby zapisu do tablicy ale nie wychodzi mi taka dynamika jak w tym programie z YT . Jak masz jakiś pomysł to byś coś zapodał .
ps. gdzie można kupić moduły z Xmega za normalną kasę , ja ostatnio kupiłem z Niemiec https://www.alvidi.de/products/EN/AVR_D ... rb_v20.php
świetna płytka ale niestety nie tania i trzeba cło doliczyć :/
- niveasoft
- Posty: 1216
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: rampa elektroda
To pokaż co tam już namodziłeś.
Na jakim to uC ma chodzić?
Dynamika pewnie nie taka bo tam opóźnienia są na Waitus a mogłoby to pracowac na Timerze.
Kiedy Timer by odliczał to uC mógłby policzyć kolejne opóźnienie
Na jakim to uC ma chodzić?
Dynamika pewnie nie taka bo tam opóźnienia są na Waitus a mogłoby to pracowac na Timerze.
Kiedy Timer by odliczał to uC mógłby policzyć kolejne opóźnienie
- niveasoft
- Posty: 1216
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: rampa elektroda
Co do Xmeg to najtańszą chyba opcją jest zaprojektowanie sobie płytki i zamówienia dziesięciu w Chinach za 2$ Do takiej płytki dolutowujesz sobie uC i gotowe.
Zobacz jaką kopię DIL zrobił sobie mój znajomy (to ta dłuższa).
Inny znów znajomy zamowił sobie projekt takiej płytki z gniazdem baterii, DS3231, flash i gniazdem karty SD. Może sobie teraz tych płyteczek zamawiać ile chce.
Tak więc chyba najtaniej to ta pierwsza opcja z kopią X64_DIL.
Zobacz jaką kopię DIL zrobił sobie mój znajomy (to ta dłuższa).
Inny znów znajomy zamowił sobie projekt takiej płytki z gniazdem baterii, DS3231, flash i gniazdem karty SD. Może sobie teraz tych płyteczek zamawiać ile chce.
Tak więc chyba najtaniej to ta pierwsza opcja z kopią X64_DIL.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
- tomaszdko
- Posty: 72
- Rejestracja: 06 gru 2018, 19:58
Re: rampa elektroda
Wszystko rozbija się o dynamikę silnika jak w kodzie z YT . Moje były oparte na "całkowaniu i różniczkowaniu" , odciełem człony z sterownika pid , który kiedyś napisałem
Nie chodzi to tak fajnie jak na YT . Próbowałem na funkcjach SIN i TAN ale to nadal nie to :/ . Ja nie piszę tak programów jak ty jedną ręką przy porannej kawie
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- CEL=com6
- BLAD=CEL-AKTUALNE
- IF BLAD > 0 THEN
- VARTOSC_Q=BLAD/2
- VARTOSC=VARTOSC+VARTOSC_Q 'STEROWNIK P
- AKTUALNE=VARTOSC
- AKTUALNE=AKTUALNE-1
- WAITUS AKTUALNE
- TOGGLE PORTD.0
- END IF
- IF BLAD < 0 THEN
- VARTOSC_Q=BLAD/-2
- VARTOSC=VARTOSC-VARTOSC_Q
- AKTUALNE=VARTOSC
- AKTUALNE=AKTUALNE+1
- WAITUS AKTUALNE
- TOGGLE PORTD.0
- END IF
- tomaszdko
- Posty: 72
- Rejestracja: 06 gru 2018, 19:58
Re: rampa elektroda
Projekty płytek z dokumentacją to nie problem , znam kilka stron sklepów i można pobrać pcb,schemat czyli cały projekt z opisem (tak jak w tym linku co wcześniej zapodałem) ale nigdy nie zamawiałem w firmie samych pcb. Pomyślę z tym bo ceny gotowych są nie małe ale też trudno dostępne bo wiele sklepów już nie sprzedaje .
- niveasoft
- Posty: 1216
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: rampa elektroda
Żeby wszyscy wiedzieli o co chodzi. To tłumaczenie kodu z Arduino na Bascom które napisałem na Elektrodzie w tym temacie -> LINK
Napisz co tak naprawdę potrzebujesz bo po tym Twoim opisie to ja dalej nie wiem. To jakieś pendulum czy co?
Taka Mega328 ma 2kB RAM i KAŻDY bajt jest zapłacony i powinno się tego używać STĄD-DOTĄD a nie oszczędzać.
Jeśli problemem jest moc obliczeniowa (sin,tan,log etc.) to można wygenerować tablice wcześniej, zapisać ją we flash a potem sięgać po nią poprzez Lookup.
No rozwiązań jest więcej, ale ja nie wiem z czym tu mamy do czynienia.
BTW. Mamy tu dział tłumaczeń Arduino do Bascom
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- $regfile = "m328pdef.dat"
- $crystal = 16000000
- $hwstack = 64
- $swstack = 32
- $framesize = 128
- Config Base = 0
- Config Submode = New
- Dir_pin Alias Portd.2 : Config Dir_pin = Output
- Step_pin Alias Portd.3 : Config Step_pin = Output
- Enable_pin Alias Portd.4 : Config Enable_pin = Output
- Const Steps = 400
- Dim Delays(steps) As Word '0-399
- Const Angle = 1.0
- Const Accel = 0.01
- Const C0 = 2000 * Sqr(2 * Angle / Accel) * 0.67703 '54162400
- Dim Lastdelay As Single
- Dim Highspeed As Word
- Dim I As Word , Stepsw As Word
- Highspeed = 100
- Stepsw = Steps - 1 'base=0
- Sub Constant_accel
- Local D As Single
- Local Templ1 As Long
- Local Temps1 As Single
- Local Tempw As Word
- Lastdelay = 0
- For I = 0 To Stepsw '0-399
- D = C0
- If I > 0 Then
- Templ1 = I * 4 : Incr Templ1
- Temps1 = Lastdelay * 2
- Temps1 = Temps1 / Templ1
- D = Lastdelay - Temps1
- End If
- Templ1 = D 'rzutowanie
- If Templ1 < Highspeed Then Templ1 = Highspeed
- Delays(i) = Templ1
- Lastdelay = Templ1
- Next
- For I = 0 To Stepsw
- Set Step_pin
- Tempw = Delays(i)
- Waitus Tempw
- Reset Step_pin
- Next
- For I = Stepsw To 0 Step - 1
- Set Step_pin
- Tempw = Delays(i)
- Waitus Tempw
- Reset Step_pin
- Next
- End Sub
- Do
- Reset Dir_pin
- Constant_accel
- Set Dir_pin
- Constant_accel
- Loop
Taka Mega328 ma 2kB RAM i KAŻDY bajt jest zapłacony i powinno się tego używać STĄD-DOTĄD a nie oszczędzać.
Jeśli problemem jest moc obliczeniowa (sin,tan,log etc.) to można wygenerować tablice wcześniej, zapisać ją we flash a potem sięgać po nią poprzez Lookup.
No rozwiązań jest więcej, ale ja nie wiem z czym tu mamy do czynienia.
BTW. Mamy tu dział tłumaczeń Arduino do Bascom
- tomaszdko
- Posty: 72
- Rejestracja: 06 gru 2018, 19:58
Re: rampa elektroda
Na razie zostanę przy tablicach i stałym przyspieszeniu (do projektu jeszcze brakuje mi ogarnięcie timera ale to w innym temacie zapodam by nie mieszać) ...Twój znajomy nie chce zarobić ? Interesuje mnie ta kopia X3-DIL64 , właśnie na niej mi się najlepiej robi . Jeśli ma kilka na zbyciu pcb to chętnie kupie .
- Jacek
- Posty: 384
- Rejestracja: 25 kwie 2016, 19:14
Re: rampa elektroda
Cześć - mam gdzieś schowane gołe pcb pod xmegę ale bez gniazda karty.
pozdrawiam Jacek.
pozdrawiam Jacek.
- tomaszdko
- Posty: 72
- Rejestracja: 06 gru 2018, 19:58
Re: rampa elektroda
Zajebiście , chętnie kupie ! Tylko jak to zrobimy bo ja mieszkam w UK . Masz konto na ebay ? Ustawisz aukcje prywatna , cene + przesyłka ...chyba że masz inne rozwiązanie.
- Jacek
- Posty: 384
- Rejestracja: 25 kwie 2016, 19:14
Re: rampa elektroda
OK coś pomyślimy najpierw muszę je odszukać - a nie wiesz jak idzie z Irlandii wysyłka do UK bo Brat jutro przyjeżdża do Polski i może on by wysłał z Irlandii a pay pal masz?
pozdrawiam Jacek.
P.S. jak dzisiaj poszukam to wstawię fotki.
pozdrawiam Jacek.
P.S. jak dzisiaj poszukam to wstawię fotki.