DRO DIY

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

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

#201

Post napisał: strikexp » 22 maja 2017, 21:53

Yogi_ pisze: Niestety ale pieprzysz głupoty. To nie piszący programy jest ważny w firmie ale ci, dla których się je pisze.
Głupoty to Ty piszesz. Jest wiele firm które piszą tylko dla siebie. I na ogół w takich najlepiej sie zarabia/pracuje.
Yogi_ pisze: Natomiast w tym programie nie zwalaj na użytkowników obliczeń skoku śruby i pochodnych od tego.
Nie powinien się zająć, bo wtedy nie będzie mógł ogarnąć każdego przypadku. Ja dopuszczam dowolną konstrukcję mechaniczną. Trzeba sobie tylko wyliczyć odległość na impuls.
Yogi_ pisze:
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.
Tu być może masz rację. A może wynika to z jakiegos powodu, nie pamiętam. Wiem za to że wyświetlacz jest tak zaprogramowany aby to przeliczanie było bardzo żadkie. Czyli w sumie nie ma to zbytniego znaczenia.


pioterek pisze: 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.?
Sęk w tym że nie wie. Zna tylko odległość na impuls i go liczy :wink:
A Ty na enkoderze masz tak naprawdę 4000 impulsów. Ale napisane jest że 1000, bo 4 impulsy to kompletny kod Gray'a.
pioterek pisze: 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"
A to ciekawe, nie mam pojęcia z czego to wynika. A na enkoderze 1000imp/obr. jest prawidłowo?
Możliwe że źle wpisałeś, ale przyczyn może być wiele.

pioterek pisze: No to jak przestawię sobie kropkę w prawo, to będę mógł użyć do tokarki 21 metrów :roll: :roll:
Niezupełnie. Kropka to jest sztucznie wyświetlana.
Ale jakbyś ją cofnął i distance podzielił przez 10 to tak.
Mógłbyś liczyć odległości 21metrów, co wazne plus minus 21 metrów :mrgreen:
Tyle że pierwszej cyfry nie pokazuje na wyświetlaczu, jest zastąpiona minusem. Trzeba by jeszcze zmniejszyć dzielniki dla wyświetlacza. Tak aby pokazywał pierwszą cyfre przed minusem. Albo przy liczbach dodatnich ją po prostu wyświetlać w pustym miejscu.
pioterek pisze: Może się nauczę, ale wątpię.
Elektroniki można się nie nauczyć, bo to jest ogrom wiedzy. Ale programowanie Arduino to pestka.
Kup sobie książkę dla dzieciaków, są najłatwiejsze dla amatora.
W helion mozesz sobie przeczytać fragment niemal każdej książki. A niektóre kosztuja tyle co zgrzewka piwa:
książki helion



Tagi:

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

#202

Post napisał: pioterek » 01 cze 2017, 09:56

No widzisz, można uznać, że działający prototyp programu jest wykonany. Jako, że to prototyp to zgłaszam pewne rzeczy które by warto udoskonalić. I tak: Zera które są dalej na lewo niż jedno przed przecinkiem wyłączyć. Wprowadzić dodatkowe cztery przyciski z których jedna para by ustawiała cyfrę, a kolejna para dawała możliwość zmiany jej wartości w górę i w dół, tak jak to jest na wielu monitorach do zmiany parametrów obrazu. Pozostałe rzeczy opisałem prędzej, jednak szkoda, że wywołały tylko Twe zdziwienie i na tym koniec. Wygląda to tak, że nie masz czasu albo ochoty na dokończenie tego, więc napisz jak jest, bo zawsze warto by wiedzieć.


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

#203

Post napisał: strikexp » 01 cze 2017, 19:23

pioterek pisze:I tak: Zera które są dalej na lewo niż jedno przed przecinkiem wyłączyć.
Można przerobić DRO na jedną cyfrę po przecinku. Ale obliczenia muszą być wykonywane do wielu miejsc po przecinku. Inaczej powstaje ten cholerny błąd liniowy ( i tak powstaje ale względnie mały).
Jednak nie widzę sensu takiego działania. Jak podłączysz ekran 4 cyfrowy to masz zakres jedynie 99,9mm. Trzeba by by przerobić program tak aby dla liczb dodatnich wyświetlał dodatkową cyfrę na miejscu zera. Ale wtedy i tak nei cofniesz się o wiecej niż 99,9mm.
Sensowniej zakleić zbędne miejsca po przecinku taśmą :wink:

pioterek pisze:Wprowadzić dodatkowe cztery przyciski z których jedna para by ustawiała cyfrę, a kolejna para dawała możliwość zmiany jej wartości w górę i w dół, tak jak to jest na wielu monitorach do zmiany parametrów obrazu.
Nie za bardzo rozumiem co chcesz ustawiać. Podziałka jest stała, nie widzę sensu robienia menu skoro można sobie to zaprogramować w razie potrzeby.
Ewentualnie można by ustawiać luzy, ale też pytanie czy jest sens. Podłączenie laptopa do Arduino i zaprogramowanie nowej wartości nie jest specjalnie skomplikowane.
Bardziej bym widział korygowanie ugięcia śruby prowadzącej bo to też można liczyć. Tyle że jak chce się dobre DRO to jednak trzeba skorzystać z czujników liniowych. Nie wiem czy jest sens robić coś bardziej skomplikowanego na enkoderze.
pioterek pisze: Pozostałe rzeczy opisałem prędzej, jednak szkoda, że wywołały tylko Twe zdziwienie i na tym koniec. Wygląda to tak, że nie masz czasu albo ochoty na dokończenie tego, więc napisz jak jest, bo zawsze warto by wiedzieć.
Przede wszystkim programuję 5 dni w tygodniu po 7-8 godzin. Ostatnio nawet 9-10 więc jestem totalnie wykończony w tej kwestii.
W wolnym czasie, jeśli nie odpoczywam to robię inne potrzebne mi rzeczy. Ciężko mi znaleźć siły na rozbudowę tego DRO i narysowanie schematu.
Dlatego chciałem abyś podał jak liczyłeś te parametry że na enkoderze 600imp/obr wyszło jakieś dziwne 2,4x więcej niż powinno. Dla mnie priorytetem jest doprowadzenie do tego że będzie liczyło poprawnie na każdym enkoderze.
Ja nie mam możliwości testowania, raz że nie mam żadnego enkodera. A dwa że mieszkam w bloku gdzie tokarki nie wstawię, a w warsztacie jestem jedynie 1-2 soboty w miesiącu.

No i niestety w programowaniu nie da sie czegoś robić na raty. Trzeba do tego siąść i zrobić do końca, w przeciwnym wypadku trzeba zaczynać niemal od początku.

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

#204

Post napisał: Yogi_ » 01 cze 2017, 20:03

strikexp pisze:pioterek napisał/a:
I tak: Zera które są dalej na lewo niż jedno przed przecinkiem wyłączyć.
Można przerobić DRO na jedną cyfrę po przecinku.
Kurrr.... Z lewej strony!!!
strikexp pisze: Nie za bardzo rozumiem co chcesz ustawiać.
Wartość, od której można zjechać do "0".
Pozdrawiam
Krzysiek


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

#205

Post napisał: strikexp » 01 cze 2017, 21:26

Yogi_ pisze: Kurrr.... Z lewej strony!!!
Kumam, chodzi o to że wyświetlaja się zera a powinno być pusto. To ma sens i faktycznie pasowałoby dopracować w wolnej chwili.
Yogi_ pisze:
strikexp pisze: Nie za bardzo rozumiem co chcesz ustawiać.
Wartość, od której można zjechać do "0".
Trochę bez sensu tak klikać 4 przyciskami. Z drugiej strony nie wiem ile trwa takie typowe toczenie.
Ja to bym dał raczej klawiaturę numeryczną. Ale i to nie wszystko, rozumiem że problem leży w zapędzeniu się zbyt daleko. To w takim wypadku pasowałoby podłączyć głośnik z generatorem. Co będzie piszczał jak zjedzie się do wartości krytycznej.

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

#206

Post napisał: pioterek » 02 cze 2017, 04:37

Nie, to nie jest bez sensu. Jeżeli masz odrobinkę czasu to przeanalizuj sobie sposób w jaki jest wykonywany najbardziej typowy element na tokarce. Jest nim wałek:
http://www.itcimp.pwr.wroc.pl/~rysunek_ ... y/waly.htm
Zarówno na średnicy jak i na odległości od końca wałka są zazwyczaj określone odległości których trzeba się trzymać aby element był wykonany poprawnie, i tak na początek zakładając materiał w maszynie przeważnie jest on o jakieś kilka milimetrów za gruby na całej długości. Bierze się wtedy dojeżdża nożem do materiału aż nóż zacznie delikatnie na nim zaznaczać ślady, po tym można pojechać nożem za koniec materiału dosunąć nóż do jego środka o grubość zdzieranej warstwy i zedrzeć ją na całej długości. Można wtedy suwmiarką zmierzyć średnicę tego wałka i wpisać ją na wyświetlacz po to by wiedzieć do jakiej średnicy będzie się zdzierać kolejną warstwę. Myślę, że to ma sens, a zastosowanie klawiatury numerycznej jest niepotrzebne - "zbędny bajer".


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

#207

Post napisał: strikexp » 03 cze 2017, 22:41

Wdrożę te dwie zmiany, ale wątpię żebym miał czas przed sobotą. Dobrze będzie jak się przypomnisz na PW czy coś ruszyło.


Zmiana zer na puste miejsca wyświetlacza nie powinna być zbyt czasochłonna. Dodanie przycisków też nie jest skomplikowane. Mógłbyć mi tylko napisać instrukcję obsługi menu jakie mam dodać do DRO?
Z tego co zrozumiałem to ma resetować wynik i go edytować. Ale jaka ma być podziałka tej edycji?

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

#208

Post napisał: pioterek » 04 cze 2017, 05:25

Pierwszy z przycisków "Setup" ma włączać możliwość edycji aktualnie wyświetlanej wartości, funkcja ta powinna sprawić, że pierwsza cyfra zacznie migać i dzięki temu wiadomo, że to właśnie ją można zmieniać. Ponownie włączenie tego przycisku ma wyłączać możliwość (wpisywania) - zmiany wartości na wyświetlaczu. Funkcja ta, po jej włączeniu oprócz mrugania edytowaną cyfrą powinna aktywować pozostałe przyciski i zmieniać działanie trzeciego - patrz "Uwaga". ( Jeżeli te mruganie jest za trudne do wykonania, to można by włączyć wszystkie kropki poza tą której cyfrę edytujemy.)
Drugi przycisk "Select" powinien sprawić, że zaczyna migać kolejna cyfra i dzięki temu wiadomo, że to ją można edytować, ponowne wciskanie przełącza na kolejną cyfrę i tak w kółko bez końca, następna, następna, aż dojdzie do ostatniej i znów od pierwszej.
Trzeci przycisk "UP" wciśnięcie jego powoduje zmianę wartości migającej cyfry na kolejną wyższą, i tak gdy było 2, to zmieni ją na 3, itd zawsze o jedną w górę a po dojściu do wartości 9 zmienia ją na 0, potem na 1 i tak w kółko. Uwaga! gdy wcześniej nie został wybrany przycisk "Setup" i żadna cyfra nie mruga to ten trzeci przycisk powinien powodować wyzerowanie całego licznika tak jak dotychczasowy zastosowany w napisanym wcześniej programie.
Czwarty przycisk "DOWN" wciśnięcie jego powoduje zmianę wartości migającej cyfry na kolejną niższą, i tak gdy było 4, to zmieni ją na 3, itd zawsze o jedną w dół a po dojściu do wartości 0 zmienia ją na 9, potem na 8 i tak w kółko.
Zastosować należy jedynie takie wyjścia które fizycznie istnieją na płytce [Arduino Pro Mini], gdyż jej użycie jest ekonomicznie najbardziej zasadne i zajmuje najmniej miejsca. Proponuję zastosować dla pierwszych trzech przycisków końcówki 5, 6, 7, ( do tej pory zastosowano przycisk 6 ) (i) albo 10, 11, 12, 13. znajdujące się po drugiej stronie płytki.
Obrazek

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

#209

Post napisał: pioterek » 07 cze 2017, 10:47

Może jeszcze zobrazuję nieco inaczej o co mi chodziło wcześniej.

Miejmy na uwadze, że zastosowałem enkoder 1000 imp/obr., w tym wypadku po wykonaniu pełnego obrotu na wyświetlaczu pokazuje się taki widok
Obrazek

i teraz cokolwiek bym nie wpisał w distance ( a wpisałem tyle: )

Kod: Zaznacz cały

// liczba całkowita - odleglosc na impuls w 0,000001mm
int distance = 250;
to nie wyświetla mi wiele większej wartości po pełnym obrocie enkodera. Nie wiem teraz co właściwie jest na wyświetlaczu, centymetry, milimetry czy cale, nie wiem też jak sprawić, by wartość wyświetlana była po tym jednym pełnym obrocie kilku krotnie większa. Chciał bym wierzyć, że zgodnie z założeniami wyświetlane są milimerty. Co zrobić by, przy śrubie o skoku 5 mm, zobaczyć na wyświetlaczu liczbę o pięciokrotnie wyższej wartości?.

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

#210

Post napisał: Yogi_ » 07 cze 2017, 22:31

pioterek pisze:i teraz cokolwiek bym nie wpisał w distance ( a wpisałem tyle: )
Kod:
// liczba całkowita - odleglosc na impuls w 0,000001mm
int distance = 250;

to nie wyświetla mi wiele większej wartości po pełnym obrocie enkodera.
Według mnie powinieneś wpisać 5000.
A w ogóle zmienia się wartość jak kręcisz?

strikexp widzisz jakie są problemy?
A może:

Kod: Zaznacz cały

//skok śruby w mm
skok =5
//ilość impulsów na obrót
imp = 1000
//ewentualne przełożenie śruba - enkoder (jeśli nie ma to równe 1)
przelozenie = 1

distance = skok/(imp*przelozenie) 
I po ptokach. :-) Znaczy ogarnięty jest każdy przypadek.
Pozdrawiam
Krzysiek

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika ogólna”