DRO DIY

Na tym forum rozmawiamy o elektronice nie związanej bezpośrednio z tematem CNC

upanie
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 48
Posty: 1962
Rejestracja: 15 sty 2011, 09:26
Lokalizacja: Wyszków

#191

Post napisał: upanie » 15 maja 2017, 11:01

Warto ale to nie wystarczy.


czilałt...

Tagi:


mc2kwacz
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 7
Posty: 2920
Rejestracja: 27 maja 2013, 22:18
Lokalizacja: gdzieś

#192

Post napisał: mc2kwacz » 15 maja 2017, 11:22

pukury pisze:hej!
a ja tam jestem " Nikiforem " elektroniki.
metoda inżynierska ( tzw. ) - łączę - jak się spali lub nie działa - to łączę inaczej.
elementy dość tanie są w końcu.
prędzej czy później musi się udać.
pzd.
:lol:
Kiedy byłem mały (zupełnie mały) i z podziwem patrzyłem na żarzące się tudzież bzyczące bebechy urządzeń elektronicznych, byłem przekonany, bo inne rozwiązania uznawałem za niemożliwe, że takie rzeczy wymyśla się właśnie metodą przypadkowego łączenia przypadkowych części. Do skutku, aż coś wyjdzie. Niczym w radzieckim chemicznym instytucje badawczym,
Po kilku latach już wiedziałem, że takie rzeczy się projektuje i po kolejnych latach już nie dopuszczałem możliwości, żeby coś poprawnie zaprojektowanego nie działało OD RAZU. Ale pamiętam tamten "stan umysłu" do dziś. I ciągle widzę jego ślady-kopie w wielu wypowiedziach na różnych forach. Takie w rodzaju: "programuję bazy danych, więc jestem", "kupie sobie multimetr i będę elektronikiem" albo "umiem zaprogramować AVR, więc nie ma już dla mnie tajemnic" :lol:


upanie
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 48
Posty: 1962
Rejestracja: 15 sty 2011, 09:26
Lokalizacja: Wyszków

#193

Post napisał: upanie » 15 maja 2017, 11:34

:smile:
czilałt...


pukury
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 8
Posty: 7737
Rejestracja: 23 lis 2004, 22:41
Lokalizacja: kraków

#194

Post napisał: pukury » 15 maja 2017, 13:31

hej.
przecież żartowałem - szkoda czasu i cyny.
jak już coś robić to lepiej przemyśleć.
elektronik ze mnie żaden - ale jak coś wystrugam to i działa.
a że warto czasami poczytać " dataszyty " - to i podstawa.
i tak nic nie zastąpi doświadczenia i co tu kryć kultury technicznej.
patrząc na niektóre " dzieła " w sieci - jest mi wstyd - za tych ludzi.
pzd.
Mane Tekel Fares

Awatar użytkownika

pioterek
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 69
Posty: 1724
Rejestracja: 27 gru 2012, 02:40
Lokalizacja: kujawsko-pomorskie

#195

Post napisał: pioterek » 15 maja 2017, 14:00

Nie przeszkadzam tu za bardzo?
Ostatnio zmieniony 16 maja 2017, 18:05 przez pioterek, łącznie zmieniany 1 raz.


mc2kwacz
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 7
Posty: 2920
Rejestracja: 27 maja 2013, 22:18
Lokalizacja: gdzieś

#196

Post napisał: mc2kwacz » 15 maja 2017, 16:14

pukury pisze:hej.
przecież żartowałem
No przecież wiem, że żartowałeś :) Po prostu rozwinąłem temat w oparciu o posty wątku.

W kwestii kultury technicznej i w ogóle świadomości różnych (czy może jakichkolwiek) zasad - można zauważyć pewną zależność oglądając "internetowe dzieła wybrane". Otóż od razu widać, jak bardzo róźnią się poziomem opracowania blogowate projekty radioamatorów anglosaskich tudzież niemieckojęzycznych, od wypocin naszych rodaków. I nie mam tu na myśli poziomu merytorycznego rozwiązań - ten jest zbliżony, tylko jakość i formę prezentacji.
Tamte projekty mają zazwyczaj ładny przemyślany opis, zazwyczaj czytelny i kompletny. Mają uporządkowana strukturę informacji, jasną i użyteczną dokumentację.
U nas - jakby krowa przelatywała i się ze..ła. Braki, błędy, bzdurne opisy. Niezrozumiałe informacje, przynajmniej dla tych dla których to w ogóle może być przydatne. Taka amatorszczyzna w amatorszczyźnie. Widać w tym głęboką niechęć do porządku, brak wyuczenia zasad i reguł. Takie wrodzone bałaganiarstwo i bylejakość. Mi się kojarzy z chłopem który przyjechał do miasta by zamieszkać w bloku, ale przywiózł ze sobą zwyczaje których nie umie się pozbyć. Np że po psie się sprząta albo że jest coś takiego jak ład domowy.
No a potem, jak się Jaś za młodu...

Awatar użytkownika

pioterek
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 69
Posty: 1724
Rejestracja: 27 gru 2012, 02:40
Lokalizacja: kujawsko-pomorskie

#197

Post napisał: pioterek » 16 maja 2017, 18:08

strikexp pisze:...Masz tam dwie zmienne(zapamietać tą nazwę). Nadaje się im stałą wartość więc mogłyby być i stałą(zapamietać tą nazwę) a nie zmienną. Ale już takie moje zboczenie z bardziej zaawansowanego programowania. Że stałych raczej nie używam.
Do rzeczy, zgodnie z angielskimi nazwami, zmienna distance określa rozdzielczość DRO. A zmienna clearance luzy na połączeniu nakrętka-śruba.
...to w miarę rozumię
strikexp pisze:...Distance określami obliczając dystans jaki pokonuje nasz suport pomiędzy dwoma kolejnymi impulsami. Całe obliczenia robimy na parametrach mechanicznych, obliczając jaki dystans przypada na jeden obrót enkodera. Dopiero na końcu dzielimy obrót enkodera przez ilość impulsów i otrzymujemy docelową odległość.
Jednak DRO z powodów wydajnościowych, robi obliczenia na liczbach całkowitych. Przyjmując że liczba 1 odpowiada odległości 0,000001mm (mogłem pomylić ilość zer, ale to sobie sprawdzisz). Czyli mając np dystans 0,00073827894mm na impuls, wpisujemy w zmienną distance wartość 738. Zaokrąglając cyfry spoza zakresu.
...Za to tego to wcale nie rozumię co tu napisałeś, ale postanowiłem połączyć enkoder 1000 imp/obr. i wyczaić to doświadczalnie
i tak luzy nakrętki nastawiłem na zero, na enkoder założyłem pokrętło Φ 40 z kreską, zrobiłem kreskę na enkoderze i po wpisywaniu "distance" powychodziły mi na wyświetlaczu następujące liczby:

Kod: Zaznacz cały

     dla "distance   >-->  liczba po jednym obrocie enkodera 1000 imp/obr.
             50              200
             100             400
             125             500
             127             508
             150             600
             200             800
             250             1000
             256  nie liczył wcale
             300             175
             600             350
Wygląda mi na to, że wyświetlana liczba jest o cztery razy większa niż zapisana w "distance" przynajmniej dopuki nie dojdzie do wartości "256" natomiast co się z nią dzieje dla wyższych wartości jest to dla mnie czarna magia ( narazie niezrozumiałe). Jeżeli możesz to wyjaśnij to jakoś prościej.
strikexp pisze:...Warto mieć takie przełożenie aby wyszło dokładne zaokrąglenie. Wszelkie nierówności są wtedy kumulowane powodując liniowy błąd pozycji DRO. .
Z tym natomiast postanowiłem pokombinować, i wyszło mi, że można w "distance" wpisać ułamek i tak po kolei nasuwały mi się wnioski, że wpisując "200/4" daje to samo co wpisał bym "50". Idąc dalej tym tropem zachciało mi się ustawić nie do ustawienia wartość 1/6 cala. Ponieważ jest to nie mniej i nie więcej 4,233333333~ i tak w nieskończoność wpisując ułamek "1270/12" można być zadowolonym, że program się wgrywa i działa poprawnie wyświetlając w milimetrach na calowej śrubie pociągowej. Zastosowanie do TSA-16 jak najbardziej wskazane. i do innych ze śrubą 1/6 cala.
strikexp pisze:Natomiast zmienna clearance powinna zawierać liczbę impulsów które wystąpią przy zmianie kierunku DRO. Zanim suport faktycznie zacznie się poruszać. Czyli po prostu trzeba wyliczyć:
1. Ile luzu jest w nakrętce 2. Podzielić luz przez dystans przypadający na jeden impuls. Np z powyższego przykładu podzielmy luz np 0,01mm przez 0,00073827894mm wyjdzie 13,54501593 obrotu. Zła liczba bo nie da sie jej dokłądnie zaokrąpglić, ale niech bedzie już 14 bo luz się powiększa z czasem. I właśnie 14 należy wpisać jako wartość zmiennej clearance.
DRO będzie sobie symulowało pozycję w nakrętce i naliczało zmianę odległości jedynie w momencie przekroczenia krawędzi gwintu/luzu.
To jest całkiem fajne i bardzo przydatne. Wielkie dzięki za ten program bo przyda się nie jednemu koledze z forum.

Jest jeszcze pewna ważna sprawa, liczby jakie pojawiają się na wyświetlaczu są cały czas po prawej stronie kropki, zamiast jednego milimetra wyświetla 0,100 mm. Nie wiem co Tobie sugerować przesunięcie przecinka czy może lepiej przesunięcie liczby tak by zapisywały się pełne wartości milimetrów po lewej stronie kropki. Te drugie wydaje mi się lepsze. Jest jeszcze inna możliwość która wydaje mi się najlepsza. Można by zrobić, żeby jeden impuls enkodera powodował wpisanie więcej impulsów niż ułamek czy pełna pojedyncza ich liczba i tak dla przykładu gdy jedna cyfra na wyświetlaczu określająca jedną tysięczną milimetra jest generowana z kilku impulsów enkodera, mogło by być dla przykładu tak, żeby jeden impuls generował prawie pięć tysięcznych milimetra, to wtedy liczba całkowita określająca pełne milimetry idąca na licznik była by automatycznie po właściwej stronie kropki. opisz proszę jak to zmienić, w końcu pokrywa się to z tym, co napisałeś.
strikexp pisze:..Słusznie przypuszczasz że dostosowanie do maszyny to nie tylko ten zacytowany fragment. Ale dla nas istotne jest tylko to, powinno wystarczyć.
Jak widać to nie wystarcza i inne fragmenty mogą być bardzo istotne, a więc jeżeli możesz to podaj wszystkie informacje na ten temat.


strikexp
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 105
Posty: 4690
Rejestracja: 31 mar 2017, 19:47
Lokalizacja: Warszawa

#198

Post napisał: strikexp » 17 maja 2017, 20:07

Odnośnie hejtu:
Datasheet był dostepny przez spory czas i jakoś nikt nie czytał. Za to cwaniakować jak to trzeba go czytać to teraz jeden przez drugiego.
No i gówno Wam da datasheet, jak macie problemy z połączeniami lub uszkodzony element. Już kilka takich sytuacji mi się zdarzyło.

pioterek pisze: Wygląda mi na to, że wyświetlana liczba jest o cztery razy większa niż zapisana w "distance"
Mnożnik x4 wynika z tego że jeden impuls to 4 stany kodu Graya, czyli w sumie na 2 przewodach mamy tak jakby 4000 impulsów na obrót. Impulsy podane na enkoderze dotyczą pełnego impulsu z 4 stanami kodu Graya. Ustawiając DRO należy pomnożyć impulsy przez 4 aby uzyskać jego rozdzielczość.
Wyświetlacz nie wyświetla trzech najmniej znaczących cyfr. W twoim wypadku pokazał 4000 większą liczbę bez 3 ostatnich cyfr. Trzeba pamietać że z technicznego punktu widzenia on pokazał 200000 ze sztucznie dostawioną kropką i zerami.

pioterek pisze: przynajmniej dopuki nie dojdzie do wartości "256" natomiast co się z nią dzieje dla wyższych wartości jest to dla mnie czarna magia ( narazie niezrozumiałe).
Ja testowałem wieksze wartości i działało prawidłowo. Może coś źle wpisałeś albo za szybko kręciłeś?


pioterek pisze:
można w "distance" wpisać ułamek
Nie można. Jeśli nawet zadziała to zaokrągli Ci ten ułamek do wartości całkowitej. A wszystko to co po przecinku spowoduje błąd liniowy.
Chyba że ja coś źle zrozumiałem to co napisałeś.
W każdym razie trzeba pomnożyć odległość na impuls (a właściwie 1/4 bo impuls jak wcześniej pisałem to 4 kody Graya) podaną w mm, przez 1.000.000. I tą wartość wpisać w distance jako liczbę całkowitą. Czyli bez części po przecinku (zaokrągloną), bo to jest już poza możliwościami tego programu. I im większe jest przybliżenie, tym większy błąd liniowy DRO.

pioterek pisze: Jest jeszcze pewna ważna sprawa, liczby jakie pojawiają się na wyświetlaczu są cały czas po prawej stronie kropki, zamiast jednego milimetra wyświetla 0,100 mm. Nie wiem co Tobie sugerować przesunięcie przecinka czy może lepiej przesunięcie liczby tak by zapisywały się pełne wartości milimetrów po lewej stronie kropki.
Zwiększ dziesięciokrotnie wartość distance.
To wynika z przyczyn techniczno matematycznych. Zakres obliczeń nie może być dowolny.
Miałem do wyboru zakresy (każdy kolejny o dwukrotnie większym obciążeniu obliczeniowym)
A) byte od -127 do 127
B) int od -32.768 do 32.767
C) long od -2.147.483.648 do 2.147.483.647
D) własny według tego wzoru (potęgi liczby 2)

Jak łatwo sie domyślić, w grę wchodził tylko long i większe. Ale większe mogły być zbyt wymagajace obliczeniowo i wymagały dużo mojego czasu. W tej chwili DRO liczy na liczbach całkowitych i sztucznie wstawia przecinek przed szóstą cyfrą. W ten sposób ma zakres na wyświetlaczu 999,9999mm, a w praktyce od -2147,483648 do 2147,483647.
Gdy przekreci się je ponad tą liczbę do przeskoczy na drugi koniec zakresu. Ale założyłem że nikt nie założy takiego gównianego DRO do maszyny o polu roboczym ponad 2,1m :mrgreen:
pioterek pisze: Jak widać to nie wystarcza i inne fragmenty mogą być bardzo istotne, a więc jeżeli możesz to podaj wszystkie informacje na ten temat.
Niestety, ale to już trzeba nauczyć się programować. To jak tłumaczenie czytania analfabecie bez pokazywania liter. Wystarczy nauczyć go owych liter i sam zrozumie.
Nie mówię jednak że to DRO to wersja ostateczna. Musi jednak liznąć trochę praktyki aby było wiadomo co jest w nim do rozbudowy.
I jak celnie ktoś zauważył, enkoder łapie wszelkie luzy... Znacznie lepiej użyć czujnika liniowego, który niestety jest wrażliwy na zanieczyszczenia.
Ale to już odrębny temat, na zrobienie drugiego DRO z suwmiarki za 20zł (albo i 1000zł jak kogos stać).

Awatar użytkownika

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

#199

Post napisał: Yogi_ » 18 maja 2017, 01:46

strikexp pisze:Niestety, ale to już trzeba nauczyć się programować. To jak tłumaczenie czytania analfabecie bez pokazywania liter.
Niestety ale pieprzysz głupoty. To nie piszący programy jest ważny w firmie ale ci, dla których się je pisze. Jeśli w swojej firmie masz tak super to tylko Ci pogratulować. Natomiast w tym programie nie zwalaj na użytkowników obliczeń skoku śruby i pochodnych od tego. Powinna być jasna deklaracja skoku śruby i ilości impulsów na obrót enkodera, a rachunkami (prostymi zresztą) powinien się zająć mikrokontroler. BTW używasz liczb z kropką, którą odejmujesz w przypadku cyfr innych niż jedność, a powinieneś dodać raz a nie odejmować siedem razy.
Powyższe tyczy się też clearance.
Pozdrawiam
Krzysiek

Awatar użytkownika

pioterek
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 69
Posty: 1724
Rejestracja: 27 gru 2012, 02:40
Lokalizacja: kujawsko-pomorskie

#200

Post napisał: pioterek » 20 maja 2017, 10:36

pioterek pisze: Wygląda mi na to, że wyświetlana liczba jest o cztery razy większa niż zapisana w "distance"
strikexp pisze: Mnożnik x4 wynika z tego że jeden impuls to 4 stany kodu Graya, czyli w sumie na 2 przewodach mamy tak jakby 4000 impulsów na obrót. Impulsy podane na enkoderze dotyczą pełnego impulsu z 4 stanami kodu Graya. Ustawiając DRO należy pomnożyć impulsy przez 4 aby uzyskać jego rozdzielczość.
Wyświetlacz nie wyświetla trzech najmniej znaczących cyfr. W twoim wypadku pokazał 4000 większą liczbę bez 3 ostatnich cyfr. Trzeba pamietać że z technicznego punktu widzenia on pokazał 200000 ze sztucznie dostawioną kropką i zerami.
No to ja nie wiem o co chodzi, w takim razie skąd ten arduino wie,że mu podłączyłem akurat enkoder 1000imp/obr.?

Kod: Zaznacz cały

     dla "distance"  >-->  liczba po jednym obrocie enkodera 1000 imp/obr.
                                      >-->  liczba po jednym obrocie enkodera 600 imp/obr.
             100             400              240
             125             500              300
             150             600              360
             200             800              480
             250             1000             600
Wyżej dopisałem co wyświetla się na wyświetlaczu przy zastosowaniu enkodera 600imp/obr. i jakoś ta powyższa teoria nie pasuje, bo liczba wyświetlana jest o 2,4 razy większa od wpisanej do "distance"
strikexp pisze: Ja testowałem wieksze wartości i działało prawidłowo. Może coś źle wpisałeś albo za szybko kręciłeś?
A mi nie chce działać :sad: :???: . Za szybko to jest ile obr / minutę? A jak można źle wpisać?
pioterek pisze: można w "distance" wpisać ułamek
strikexp pisze: Nie można...
pioterek pisze: Jest jeszcze pewna ważna sprawa, liczby jakie pojawiają się na wyświetlaczu są cały czas po prawej stronie kropki, zamiast jednego milimetra wyświetla 0,100 mm. Nie wiem co Tobie sugerować przesunięcie przecinka czy może lepiej przesunięcie liczby tak by zapisywały się pełne wartości milimetrów po lewej stronie kropki.
strikexp pisze: Zwiększ dziesięciokrotnie wartość distance.
To wynika z przyczyn techniczno matematycznych. Zakres obliczeń nie może być dowolny.
Miałem do wyboru zakresy (każdy kolejny o dwukrotnie większym obciążeniu obliczeniowym)
A) byte od -127 do 127
B) int od -32.768 do 32.767
C) long od -2.147.483.648 do 2.147.483.647
D) własny według tego wzoru (potęgi liczby 2)

Jak łatwo sie domyślić, w grę wchodził tylko long i większe. Ale większe mogły być zbyt wymagajace obliczeniowo i wymagały dużo mojego czasu. W tej chwili DRO liczy na liczbach całkowitych i sztucznie wstawia przecinek przed szóstą cyfrą. W ten sposób ma zakres na wyświetlaczu 999,9999mm, a w praktyce od -2147,483648 do 2147,483647.
Gdy przekreci się je ponad tą liczbę do przeskoczy na drugi koniec zakresu. Ale założyłem że nikt nie założy takiego gównianego DRO do maszyny o polu roboczym ponad 2,1m :mrgreen:
No to jak przestawię sobie kropkę w prawo, to będę mógł użyć do tokarki 21 metrów :roll: :roll:
strikexp pisze:
pioterek pisze: Jak widać to nie wystarcza i inne fragmenty mogą być bardzo istotne, a więc jeżeli możesz to podaj wszystkie informacje na ten temat.
Niestety, ale to już trzeba nauczyć się programować.
Może się nauczę, ale wątpię.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika ogólna”