Strona 1 z 2
rampa elektroda
: 26 paź 2021, 12:50
autor: tomaszdko
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ć :/
Re: rampa elektroda
: 26 paź 2021, 12:54
autor: niveasoft
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

Re: rampa elektroda
: 26 paź 2021, 13:13
autor: niveasoft
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.
Re: rampa elektroda
: 26 paź 2021, 13:14
autor: tomaszdko
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
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
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

Re: rampa elektroda
: 26 paź 2021, 13:18
autor: tomaszdko
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 .
Re: rampa elektroda
: 27 paź 2021, 11:06
autor: niveasoft
Żeby wszyscy wiedzieli o co chodzi. To tłumaczenie kodu z Arduino na Bascom które napisałem na Elektrodzie w tym temacie ->
LINK
$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
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

Re: rampa elektroda
: 04 lis 2021, 16:49
autor: tomaszdko
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 .
Re: rampa elektroda
: 04 lis 2021, 17:04
autor: Jacek
Cześć - mam gdzieś schowane gołe pcb pod xmegę ale bez gniazda karty.
pozdrawiam Jacek.
Re: rampa elektroda
: 04 lis 2021, 17:18
autor: tomaszdko
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.
Re: rampa elektroda
: 04 lis 2021, 17:22
autor: Jacek
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.