Strona 1 z 2

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

: 02 gru 2022, 02:47
autor: DawidMechatronik
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 :)

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

: 02 gru 2022, 07:54
autor: zwyczajny
Technicznie jak to jest sumowane?

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

: 02 gru 2022, 09:51
autor: DawidMechatronik
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ę.

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

: 02 gru 2022, 11:07
autor: zwyczajny
Dzięki za wyjaśnienie. Jest spryt i jest prostota rozwiązania. :-)
Wyrazy podziwu!

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

: 02 gru 2022, 11:37
autor: DawidMechatronik
Dziękuję bardzo :)

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

: 02 gru 2022, 13:16
autor: RomanJ4
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

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

: 02 gru 2022, 14:22
autor: DawidMechatronik
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 :)

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

: 02 gru 2022, 14:37
autor: RomanJ4
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ż.

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

: 02 gru 2022, 15:37
autor: DawidMechatronik
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

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

: 02 gru 2022, 19:31
autor: RomanJ4
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