Sumator dwóch sygnałów DRO na Arduino/ESP8266

Dyskusje dotyczące pomiarów, narzędzi pomiarowych stosowanych przy obróbce ręcznej i maszynowej.

Autor tematu
DawidMechatronik
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 6
Posty: 21
Rejestracja: 14 paź 2021, 14:15

Sumator dwóch sygnałów DRO na Arduino/ESP8266

#1

Post napisał: DawidMechatronik » 02 gru 2022, 02:47

Ostatnio wykonałem taki mini projekt i chyba wyszło całkiem nieźle :D

Chodzi oczywiście o sumator DRO, który ma zastosowanie w frezarce (ZX7045). Jeden liniał jest na kolumnie a drugi na pinoli. Na pinoli używam liniału typu suwmiarka, może dałoby się to przerobić na kolejny liniał optyczny z dokładnością 0,005mm ... ale nie wiem czy taka dokładność ma sens w tak giętkiej frezarce.



Suwmiarka pinoli to zestaw od Chinola, firmy SHAHE:
Zasilanie bateryjne 3V, ale da się podpiać 3,3V i działa
Sygnał z pozycją jest w postaci cyfrowej, jest to sygnał w stylu SPI, 2 linie: DATA i CLK

Liniał od kolumny osi Z to kolejny Chińczyk, kupiłem komplet DRO na 3 osie z monitorkiem:
Zasilanie 5V
Sygnał wyjściowy to zwykły enkoder, sygnał A i B. Jest jeszcze jeden sygnał ale można pominąć (coś w stylu drugiej masy, ale delikatnie przesuniętej).

Z monitorka wychodzi zasilanie 5V, którym jest zasilana płytka z mikrokontrolerem ESP8266. Obyło się więc bez dodatkowych zasilaczy.

Dziś zrobiłem testy na maszynie i wydaje się działać OK :)




zwyczajny
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 192
Rejestracja: 25 gru 2017, 16:26

Re: Sumator dwóch sygnałów DRO na Arduino/ESP8266

#2

Post napisał: zwyczajny » 02 gru 2022, 07:54

Technicznie jak to jest sumowane?


Autor tematu
DawidMechatronik
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 6
Posty: 21
Rejestracja: 14 paź 2021, 14:15

Re: Sumator dwóch sygnałów DRO na Arduino/ESP8266

#3

Post napisał: DawidMechatronik » 02 gru 2022, 09:51

Główna pętla programu wygląda tak:

void loop()
{
if((millis() % 50) == 0)
{
readoutSHAHE.loopAtLeastEvery100ms();
encoderEmulator.updateTargetPosition(-readoutSHAHE.getValue()*2 - encoderReader.getValue());
}
encoderEmulator.generateSignal();
}


readoutSHAHE.getValue() - wartość z linijk suwmiarkowej. Jest w rozdzielczości 0,01mm więc musiałem pomnożyć *2 aby generowało dwa razy więcej impulsów, bo monitorek DRO oczekuje impulsów co 0,005mm. Sygnał wygląda tak:

Obrazek

Jest wysyłany co około 100ms, trwa około 9ms, jest wysyłane 6 paczek po 4 bity. Jak sygnał zegarowy rośnie to wtedy trzeba sprawdzić jaka jest wartość na lini danych. Zwracamy uwagę tylko na 20 bitów, gdzie 20 jest znakiem +/-.

encoderReader.getValue() - wartość z fabrycznego liniału optycznego DRO. Sygnał jest najzwyklejszym enkoderem A/B.

Obie wartości są dodawane do siebie, a potem porównywane z aktualną wartością generowanego sygnału enkodera. Różnica między wartością generowanego enkodera, a odczytem z liniałów mówi ile razy trzeba wygenerować sygnał enkodera aby monitorek DRO wyświetlił poprawną pozycję.


zwyczajny
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 192
Rejestracja: 25 gru 2017, 16:26

Re: Sumator dwóch sygnałów DRO na Arduino/ESP8266

#4

Post napisał: zwyczajny » 02 gru 2022, 11:07

Dzięki za wyjaśnienie. Jest spryt i jest prostota rozwiązania. :-)
Wyrazy podziwu!


Autor tematu
DawidMechatronik
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 6
Posty: 21
Rejestracja: 14 paź 2021, 14:15

Re: Sumator dwóch sygnałów DRO na Arduino/ESP8266

#5

Post napisał: DawidMechatronik » 02 gru 2022, 11:37

Dziękuję bardzo :)

Awatar użytkownika

RomanJ4
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 11061
Rejestracja: 17 mar 2009, 08:55
Lokalizacja: Skępe

Re: Sumator dwóch sygnałów DRO na Arduino/ESP8266

#6

Post napisał: RomanJ4 » 02 gru 2022, 13:16

DawidMechatronik pisze:Jeden liniał jest na kolumnie a drugi na pinoli. Na pinoli używam liniału typu suwmiarka, może dałoby się to przerobić na kolejny liniał optyczny z dokładnością 0,005mm ... ale nie wiem czy taka dokładność ma sens w tak giętkiej frezarce.

Ja mam dwa liniały 1µ (też zsumowana oś Z+U) na jeszcze mniejszej i mniej masywnej ZX32G-1,
Obrazek
i nie jest wcale z tym tak źle.
Przykład - dość udarowe frezowanie zamocowanej tylko jednopunktowo pośrodku długiej wąskiej listwy z NC11 głowiczką ⌀50mm na APKT, wszystkie zaciski poza osią Y stołu zaciśnięte, wskazania DRO (Z+U) z włączonym tłumikiem wskazań...
.
i co ciekawe, po frezowaniu ustawiony wymiar na U zmienił się o niepełną setkę...
Myślę, że liniały 5µ jak najbardziej są na miejscu, tyle, że do pomiaru wysuwu wrzeciona(pinoli) z braku miejsca na głowicy najlepsze typu SLIM, np KA200
Obrazek
Obrazek

u mnie,
Obrazek

musiałem go tylko nieco odstawić podkładkami z aluminiowych listew od korpusu by karetka nie zawadzała o wskaźnik oleju, przy tym funkcja skrętu głowicy zachowana,
Obrazek Obrazek
pozdrawiam,
Roman


Autor tematu
DawidMechatronik
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 6
Posty: 21
Rejestracja: 14 paź 2021, 14:15

Re: Sumator dwóch sygnałów DRO na Arduino/ESP8266

#7

Post napisał: DawidMechatronik » 02 gru 2022, 14:22

Nawet nie wiedziałem że są takie fajne DRO na 4 osie, z sumowaniem Z+U. I masz ciekawy sposób na montaż liniału z tyłu.

Jak będę kiedyś ulepszać suwmiarkę do prawilnego liniału to chyba zrobię podobnie :)

Awatar użytkownika

RomanJ4
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 11061
Rejestracja: 17 mar 2009, 08:55
Lokalizacja: Skępe

Re: Sumator dwóch sygnałów DRO na Arduino/ESP8266

#8

Post napisał: RomanJ4 » 02 gru 2022, 14:37

Gdybyś potrzebował, to mam więcej zdjęć jak to zrobiłem...
A moje DRO (Ditron D-80) ma polskie menu... Wygodne zwłaszcza jak korzystasz z funkcji..
Instrukcję PL też.
pozdrawiam,
Roman


Autor tematu
DawidMechatronik
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 6
Posty: 21
Rejestracja: 14 paź 2021, 14:15

Re: Sumator dwóch sygnałów DRO na Arduino/ESP8266

#9

Post napisał: DawidMechatronik » 02 gru 2022, 15:37

Z fotek wydaje się wszystko jasne, poza sposobem mocowania tej poziomej belki do pinoli.

Jakbyś dosłał fotkę tego mocowania do pinoli to bym sobie wszystko zapisał na dysk na lepsze czasy :D

Awatar użytkownika

RomanJ4
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 4
Posty: 11061
Rejestracja: 17 mar 2009, 08:55
Lokalizacja: Skępe

Re: Sumator dwóch sygnałów DRO na Arduino/ESP8266

#10

Post napisał: RomanJ4 » 02 gru 2022, 19:31

Sposób mocowania jest bardzo prosty, przykręcana jest do żeliwnej obejmy 129 na tulei 128,

Obrazek

odwróconej o 180° rozcięciem do frontu frezarki.
Obrazek

Aluminiowy wspornik(kwadratowy pręt alu 16x16 z OBI) jest przykręcany do obejmy 129 jedną śrubą imbusową, co pozwala na dowolne ustawianie go w płaszczyźnie poziomej w stosunku do położenia osi liniału.
Obrazek

Łeb śruby jest nieco wpuszczony we wspornik by przy pełnym schowaniu tulei nie uderzał w korpus głowicy, co zapobiega przestawieniom zamocowania karetki i zmianom bazy odczytu liniału. Można ew. dać jeszcze nakrętkę kontrującą od dołu.
Obrazek Obrazek

Wspornik ma w osi wyfrezowany podłużny otwór który pozwala na dokładne swobodne ustawienie i zamocowanie do niego bez generowania bocznych naprężeń popychacza karetki liniału.
Obrazek Obrazek

Popychacz wykonany jest z pręta aluminiowego(OBI) ⌀8mm obustronnie nagwintowanego,
Obrazek

wkręcanego w wyfrezowaną (z takiegoż 16x16 alu pręta) nakładkę 16x14mm
Obrazek

nakładaną na karetkę liniału
Obrazek

Taki prosty system mocowania belki do pinoli i popychacza karetki do tej belki pozwala na dokładne wzajemne ich ustawienie by na karetkę oprócz siły równoległej do osi liniału przy wysuwaniu pinoli nie działały żadne niepożądane siły boczne/naprężenia, które mogłyby powodować nieprecyzyjne przesuwanie karetki po liniale, i fałszować odczyt.
Obrazek
Obrazek
pozdrawiam,
Roman

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Pomiary, Kalibracja, Narzędzia Pomiarowe”