rampa elektroda

Pytania, kody i porady dotyczące nie tylko Bascom.
Awatar użytkownika
tomaszdko
Posty: 72
Rejestracja: 06 gru 2018, 19:58

rampa elektroda

Post autor: tomaszdko » 26 paź 2021, 12:50

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ć :/
Awatar użytkownika
niveasoft
Posty: 1216
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: rampa elektroda

Post autor: niveasoft » 26 paź 2021, 12:54

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 ;)
Awatar użytkownika
niveasoft
Posty: 1216
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: rampa elektroda

Post autor: niveasoft » 26 paź 2021, 13:13

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.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Awatar użytkownika
tomaszdko
Posty: 72
Rejestracja: 06 gru 2018, 19:58

Re: rampa elektroda

Post autor: tomaszdko » 26 paź 2021, 13:14

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
  1. CEL=com6
  2. BLAD=CEL-AKTUALNE
  3.  
  4. IF BLAD > 0 THEN        
  5. VARTOSC_Q=BLAD/2
  6. VARTOSC=VARTOSC+VARTOSC_Q                                 'STEROWNIK P
  7. AKTUALNE=VARTOSC
  8. AKTUALNE=AKTUALNE-1
  9. WAITUS AKTUALNE
  10. TOGGLE PORTD.0
  11. END IF
  12.  
  13. IF BLAD < 0 THEN        
  14. VARTOSC_Q=BLAD/-2
  15. VARTOSC=VARTOSC-VARTOSC_Q
  16. AKTUALNE=VARTOSC
  17. AKTUALNE=AKTUALNE+1
  18. WAITUS AKTUALNE
  19. TOGGLE PORTD.0
  20. 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 :)
Awatar użytkownika
tomaszdko
Posty: 72
Rejestracja: 06 gru 2018, 19:58

Re: rampa elektroda

Post autor: tomaszdko » 26 paź 2021, 13:18

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 .
Awatar użytkownika
niveasoft
Posty: 1216
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: rampa elektroda

Post autor: niveasoft » 27 paź 2021, 11:06

Żeby wszyscy wiedzieli o co chodzi. To tłumaczenie kodu z Arduino na Bascom które napisałem na Elektrodzie w tym temacie -> LINK
  1. $regfile = "m328pdef.dat"
  2. $crystal = 16000000
  3. $hwstack = 64
  4. $swstack = 32
  5. $framesize = 128
  6.  
  7. Config Base = 0
  8.  
  9. Config Submode = New
  10.  
  11. Dir_pin Alias Portd.2 : Config Dir_pin = Output
  12. Step_pin Alias Portd.3 : Config Step_pin = Output
  13. Enable_pin Alias Portd.4 : Config Enable_pin = Output
  14.  
  15. Const Steps = 400
  16.  
  17. Dim Delays(steps) As Word                                           '0-399
  18.  
  19. Const Angle = 1.0
  20. Const Accel = 0.01
  21. Const C0 = 2000 * Sqr(2 * Angle / Accel) * 0.67703          '54162400
  22.  
  23. Dim Lastdelay As Single
  24. Dim Highspeed As Word
  25. Dim I As Word , Stepsw As Word
  26.  
  27. Highspeed = 100
  28. Stepsw = Steps - 1                                          'base=0
  29.  
  30. Sub Constant_accel
  31.  
  32.   Local D As Single
  33.   Local Templ1 As Long
  34.   Local Temps1 As Single
  35.   Local Tempw As Word
  36.  
  37.   Lastdelay = 0
  38.  
  39.   For I = 0 To Stepsw                                       '0-399
  40.     D = C0
  41.     If I > 0 Then
  42.      Templ1 = I * 4 : Incr Templ1
  43.      Temps1 = Lastdelay * 2
  44.      Temps1 = Temps1 / Templ1
  45.      D = Lastdelay - Temps1
  46.     End If
  47.  
  48.     Templ1 = D                                              'rzutowanie
  49.     If Templ1 < Highspeed Then Templ1 = Highspeed
  50.     Delays(i) = Templ1
  51.     Lastdelay = Templ1
  52.   Next
  53.  
  54.   For I = 0 To Stepsw
  55.    Set Step_pin
  56.    Tempw = Delays(i)
  57.    Waitus Tempw
  58.    Reset Step_pin
  59.   Next
  60.  
  61.   For I = Stepsw To 0 Step - 1
  62.    Set Step_pin
  63.    Tempw = Delays(i)
  64.    Waitus Tempw
  65.    Reset Step_pin
  66.   Next
  67.  
  68.  
  69.  
  70. End Sub
  71.  
  72. Do
  73.  Reset Dir_pin
  74.   Constant_accel
  75.  Set Dir_pin
  76.   Constant_accel
  77. Loop
Napisz co tak naprawdę potrzebujesz bo po tym Twoim opisie to ja dalej nie wiem. To jakieś pendulum czy co? :D
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 :D
Awatar użytkownika
tomaszdko
Posty: 72
Rejestracja: 06 gru 2018, 19:58

Re: rampa elektroda

Post autor: tomaszdko » 04 lis 2021, 16:49

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 .
Awatar użytkownika
Jacek
Posty: 384
Rejestracja: 25 kwie 2016, 19:14

Re: rampa elektroda

Post autor: Jacek » 04 lis 2021, 17:04

Cześć - mam gdzieś schowane gołe pcb pod xmegę ale bez gniazda karty.
pozdrawiam Jacek.
Awatar użytkownika
tomaszdko
Posty: 72
Rejestracja: 06 gru 2018, 19:58

Re: rampa elektroda

Post autor: tomaszdko » 04 lis 2021, 17:18

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.
Awatar użytkownika
Jacek
Posty: 384
Rejestracja: 25 kwie 2016, 19:14

Re: rampa elektroda

Post autor: Jacek » 04 lis 2021, 17:22

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.
ODPOWIEDZ