jakiś czas temu zamarzyło mi się, żeby przestać kręcić korbkami w nutoolu i coś z tym trzeba było zrobić. Sama przeróbka nutoola nie zostanie tutaj pokazana, bo nie ma w tym niczego interesującego, za to nie uśmiechało mi się stawiać komputera z monitorem (wszystko trzeba by kupić) obok maszyny, więc trzeba było pójść w innym kierunku. Nie uśmiechał mi się też Mach, nie wiedziałem też, jak fajnym programem jest Fusion360 więc postanowiłem zrobić wszystko samemu. Ogólnie rzecz biorąc pewnie lepiej było iść standardową drogą, ale co się nauczyłem po drodze, to moje

Konstrukcja
Sterownik jest na bazie arduino mega, do tego ekranik dotykowy 5" o rozdzielczości 480x272. W zestawie obudowa wycięta laserowo, płytka PCB żeby ładnie powyprowadzać wszystkie złącza i 4 przyciski wandaloodporne.
Funkcje - ekran główny
- sterowanie osiami za pomocą przycisków w trybie ciągłym(continuous) i w trybie krokowym(step) z możliwością wykonywania ruchów o rozdzielczości 0.01mm, 0.1mm, 1mm i 10mm.
- tryb ruchu szybkiego (move) i standardowego (turn).
- blokada dla każdej z osi (lock).
- DRO.

Funkcje - opcje
- ustawienie posuwu dla każdej z osi osobno (feed ).
- załączany enkoder (czasem wyłączam żeby przetestować coś bez zabezpieczenia, które wyłącza posuw przy braku obrotów wrzeciona) do gwintowania i zabezpieczenia.
- automatyczne kasowanie luzu dla każdej z osi (backlash).
- rpmy do wyboru jak na tokarce, na ich podstawie wyliczna jest prędkość silnika dla danego posuwu.
- średnica to pozostałość po usuniętej opcji.

Funkcje - półautomat
- automatyczne przetaczanie czoła (średnica i ilość materiału do przetoczenia).

- automatyczne przetaczanie z jednej średnicy na drugą na podanej długości.

- automatyczne gwintowanie dla skoków 0.5, 0.75, 1 i 1.5mm domyślnie (po zmianie mikrokroku do 6mm).

Funkcje - automat
- pełne toczenie kształtowe z podanym posuwem. Pliki wczytywane z karty uSD.

Realizacja funkcji
1. Kasowanie luzów - przy zmianie kierunku dla którejkolwiek z osi silnik wykonuje dodatkowo zadaną liczbę kroków z maksymalną prędkością (w końcu nic mu nie stawie oporu wtedy). Na zdjęciu wyżej widać dość spory luz na X, ale to dlatego, że chyba rozjechała mi się nakrętka z kasacją luzu i nie chciało mi się jej poprawiać. Nie zauważyłem różnicy między podaniem tutaj luzu 0.05mm a 0.3mm. Dla osi z nie ma kasacji bo jej nie potrzebuję, w trakcie toczenia oś z porusza się zawsze w tym samym kierunku, a przy nawrocie robi dodatkowe kilka mm żeby skasować luz i tyle. Ale opcja jest, jakby było ważne nawracanie w miejscu. Zwykle też luz ustawiam delikatnie mniejszy, niż w rzeczywistości, bo jeżeli się przesadzi, to widać na detalu szarpnięcie, więc lepiej skasować o 0.01mm za mało, niż za dużo.
2. Gwintowanie - kroki silnika są sprzężone bezpośrednio z impulsami enkodera, stąd tylko kilka różnych skoków. Głębokość oblicza się sama korzystając ze stałej dla gwintów metrycznych. Mikrokrok można zmniejszyć i wtedy powiększy się zakres gwintów.
3. Toczenie automatyczne - sterownik przyjmuje plik, który zawiera bezpośrednie instrukcje dla każdego silnika, tzn. każdy bajt posiada bit kierunku i wykonania kroku dla każdej z osi (4 bity) oraz pozostałe 4 bity na ewentualne komunikaty dla sterownika (jak np. włączenie szybszego przesuwu). Taki podejście praktycznie nie obciąża procesora, natomiast ma dość oczywisty minus, którego pewnie nie ma w profesjonalnych systemach - w przypadku, gdy poruszają się obie osie jednocześnie, prędkość posuwu wzrasta o maksymalnie 41% (kiedy wykonywany jest ruch pod kątem 45st i obie osie się poruszają) co wynika z prostej trygonometrii. Noo i trzeba dobry plik podać, bo gkodów nie przyjmuje

Czego nie ma
Pewnie wielu rzeczy, ale pierwszą, która mi się nasuwa to brak przyspieszeń - silnik albo się porusza, albo nie. Szczerze mówiąc nie zauważyłem w praktyce minusów tego rozwiązania (albo raczej jego braku), ale pewnie nie bez przyczyny ktoś to wymyślił. Druga to taka, że z punktu widzenia toczenia w pełnym automacie wykorzystywane są tylko G0 i G1, chociaż dodanie innych funkcjonalności nie byłoby raczej specjalnie skomplikowane, natomiast nie są mi potrzebne, więc póki co nie marnuję więcej czasu.
Wrażenia
Ogólnie muszę powiedzieć, że jestem bardzo zadowolony. Wszystko działa mi płynnie i elegancko, jest dopasowane do mnie, a jak czegoś brakuje to sobie dopiszę i tyle

Krótki filmik z responsywności sterownika (biorąc pod uwagę, że to arduino, jestem zachwycony - wszystko dzięki FT800).
W zestawie do sterownika napisałem też własnego CAD/CAMa, którego wykorzystuję do generowania ścieżek, ale to przedstawię chyba w innym temacie i pewnie innym dziale.
Zajęło mi to pewnie dużo więcej czasu, niż powinno i ogólnie rzecz biorąc jakiś mach zapewne byłby szybszy, ale przynajmniej miałem okazję trochę pokodzić, pokombinować i teoretycznie wyszło znacznie taniej (chociaż w praktyce wydałem 2 razy więcej, niż trzeba było na pomyłki, próby i zapasowe części). No ale korzystanie z tokarki stało się przyjemnością

W przyszłości, gdybym miał za dużo wolnego czasu i pieniędzy pewnie napisałbym wszystko jeszcze raz na innym procesorze (np. xmega), zrobił cały układzik elektroniczny dedykowany dla tego zastosowania i wszystko odpicował, ale chyba będzie trzeba się obejść bez tego, bo nie zanosi się
