DRO DIY
-
- Lider FORUM (min. 2000)
- Posty w temacie: 7
- Posty: 2920
- Rejestracja: 27 maja 2013, 22:18
- Lokalizacja: gdzieś
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.

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"

-
- Lider FORUM (min. 2000)
- Posty w temacie: 8
- Posty: 7737
- Rejestracja: 23 lis 2004, 22:41
- Lokalizacja: kraków
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.
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
-
- Lider FORUM (min. 2000)
- Posty w temacie: 7
- Posty: 2920
- Rejestracja: 27 maja 2013, 22:18
- Lokalizacja: gdzieś
No przecież wiem, że żartowałeśpukury pisze:hej.
przecież żartowałem

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...
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 69
- Posty: 1724
- Rejestracja: 27 gru 2012, 02:40
- Lokalizacja: kujawsko-pomorskie
...to w miarę rozumię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.
...Za to tego to wcale nie rozumię co tu napisałeś, ale postanowiłem połączyć enkoder 1000 imp/obr. i wyczaić to doświadczalniestrikexp 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.
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
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:...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. .
To jest całkiem fajne i bardzo przydatne. Wielkie dzięki za ten program bo przyda się nie jednemu koledze z forum.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.
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ś.
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 pisze:..Słusznie przypuszczasz że dostosowanie do maszyny to nie tylko ten zacytowany fragment. Ale dla nas istotne jest tylko to, powinno wystarczyć.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 105
- Posty: 4690
- Rejestracja: 31 mar 2017, 19:47
- Lokalizacja: Warszawa
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.
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.
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.
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
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ć).
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.
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ść.pioterek pisze: Wygląda mi na to, że wyświetlana liczba jest o cztery razy większa niż zapisana w "distance"
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.
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: 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).
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.pioterek pisze:
można w "distance" wpisać ułamek
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.
Zwiększ dziesięciokrotnie wartość distance.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.
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

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.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.
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ć).
-
- Specjalista poziom 3 (min. 600)
- Posty w temacie: 25
- Posty: 759
- Rejestracja: 13 sty 2010, 08:07
- Lokalizacja: Braniewo
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.strikexp pisze:Niestety, ale to już trzeba nauczyć się programować. To jak tłumaczenie czytania analfabecie bez pokazywania liter.
Powyższe tyczy się też clearance.
Pozdrawiam
Krzysiek
Krzysiek
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 69
- Posty: 1724
- Rejestracja: 27 gru 2012, 02:40
- Lokalizacja: kujawsko-pomorskie
pioterek pisze: Wygląda mi na to, że wyświetlana liczba jest o cztery razy większa niż zapisana w "distance"
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.?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.
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
A mi nie chce działać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ś?


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.
No to jak przestawię sobie kropkę w prawo, to będę mógł użyć do tokarki 21 metrówstrikexp 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![]()


Może się nauczę, ale wątpię.strikexp pisze:Niestety, ale to już trzeba nauczyć się programować.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.