CNC Router yapalım 1 - Gereken yazılımlar ve Arduino Uno nun hazırlanması

 

çinli CNC3018


CNC router, bilgisayar destekli kesim yapabilen bir makinedir. Ebay, Aliexpress veya direnc.net te kit olarak satılıyor fakat ben daha iyisini kendim yapmayı tercih etmiştim. Resim ebay den benimki değil. Resimdeki makine ile mdf, kontraplak ,dekota, pleksi, PE levha, delrin (pom), pvc gibi yumuşak malzemeleri kesmeniz mümkün fakat daha sert kompakt laminat, alucobond, alüminyum levha (6061) gibi malzemeleri kesmek için biraz daha güçlü bir makineye ihtiyaç oluyor. 

3D yazıcıda bastığınız plastik parçalar çok sağlam olmuyor. Bazen daha sağlam mekanik parçalara ihtiyaç duyuluyor. İşte bu gibi durumlar için router yapma ihtiyacı duymuştum.  

Alüminyum keserken bir video izlemek için tıklayın.. Ben de videodaki gibi soğutucu olarak sadece basınçlı hava kullanıyorum, 6061 i her seferinde malzemeye 0.5mm girerek 500mm/dakika hızla kesebiliyorum, uç olarak tek ağızlı alüminyum freze ucu kullanıyorum. Yumuşak malzemelerde her seferinde 3-4mm ile malzemeye girebilirsiniz. Bu değerler yani rpm, yürüme hızı, dalma derinliği, deneyerek tecrübe ile elde edildi, tamamen router konstrüksiyonunun sağlamlığına, kullanılan router kesme ucuna, malzemeye göre değişebilecek değerlerdir.  Parça kesilirken ortalık battığından bir elektrikli süpürge edinmenizi tavsiye ederim. 

Bu ucun takıldığı motora da spindle deniyor. Özelliği 12.000 devir/dakika ile dönebilmesi.. Spindle biraz da gürültü çıkardığından evde çalıştırmayın uygun bir yer bulun derim..



Tabi bu spindle ı almakla iş bitmiyor, buna uygun inverter ve takım tutucu aparatlar da gerekiyor. Bu kadar harcayamam derseniz Makita ahşap freze tercih edilebilir. Gerekli malzemelerle ilgili bir yazı yazacağım.

Router, iki boyutlu vektörel çizimi (dxf dosyası) bulunan bir parçayı kesebiliyor. Bunun için dxf dosyayı önce gcode a çevirmek gerekiyor. Gcode dosyası, makinanın anlayabileceği komutları içerir, örneğin x de 20mm y de 30mm şu hız ile git z de 1mm aşağı in.. gibi komutlar. 3D yazıcılar da gcode lar ile çalışmaktadır. Gcode u yorumlayıp makinaya hareket veren kontrolör kartlar, usb veya paralel kablo ile çalışabilen şekilde piyasada satılıyor. Fakat ben yine iş görsün yeter mantığı ile kontrolör olarak Arduino Uno kullandım. Cnc shield filan almaya da gerek yok bu arada. 




Resimde girişe G-code yazılmış ama dediğim gibi öncesinde dxf dosyaya ihtiyaç var.. Dxf çizim için Solidworks, Autocad, CorelDRAW gibi ücretli programların yanısıra Inkscape, freeCAD gibi ücretsiz programlar da var. Daha sonra, router da kesebileceğimiz basit bir şekil için gereken çizimi inkscape ile nasıl yaparız anlatacağım. 

Dxf dosyayı gcode a çevirmek için Inkscape in içinde ücretsiz bir aracı bulunuyor fakat kullanımı biraz karışık ve zahmetli. Bu iş için tercihim, Estlcam isminde bir program. Sitesinden indirip kullanabilirsiniz, ilk etapta ücret istemiyor, ücret ödenmezse daha sonra yavaşlıyormuş sanırım.

Gcode u Arduino ya yollamak için ücretsiz olan UniversalGcodeSender programını kullanabilirsiniz.

Arduino nun USB kablosu ilk kez PC ye takıldığında bilgisayar usb sürücü yüklemeye çalışacak fakat yükleyemeyecektir. Arduino Uno kartı CH340 haberleşme entegreli, çinden gelen bir klon olduğundan, Windows tarafından algılanamamaktadır. Linkteki zip li dosyada usb sürücü mevcuttur. Aygıt yöneticisinde sürücü güncelle yapıp CH341SER klasörünü göstermek gerekir. USB sürücü COMx olarak tanımlanacaktır. COM kaç olarak kurulduysa UGS (universal gcode sender) programında port u örneğin COM3, baud 115.200, firmware GRBL seçip OPEN a tıklanır. CNC ile bağlantı kurulacaktır.

Arduino Uno ya GRBL firmware i yüklemek gerekiyor. Arduino IDE programına gerek kalmadan XLoader ile yükleme yapabilirsiniz. Önce aygıt yöneticisinden arduino nun hangi com porta bağlı olduğuna bakın, XLoader ı açıp, Uno yu, gerekli grbl .hex dosyasını ve com portu seçin, upload a tıklayın, işlem tamamdır.

Dediğim gibi arduino shield e gerek yok, zaten o shield lere TB6600 türü step motor sürücüsü bağlanamıyor. Resimdeki gibi biraz delikli kart, biraz pin header, biraz lehim iş görüyor.

Not: Burada resimdeki delikli kartlar yerine router da kazıdığım bir pcb tasarladım bu iş için..




Arduino Uno ya sakın ola ki besleme kablosu takmayın, pc den gelen usb kablosu ile beslemesi yapılmaktadır. Her eksen için bir TB6600 ve bir nema 23 step motor gerekmektedir. Router yerine örneğin fazla güç istemeyen baskı devre veya normal resim çizici (plotter) veyahut strafor kesme makinesi gibi birşey yapacaksanız nema 17 veya 14 motorlar ve sürücü olarak da Easydriver, A4988 veya DRV8825 kullanabilirsiniz.

X ekseni,
TB6600    Bağlantı
VCC          24 VDC
GND         Güç kaynağı GND
ENA-         Boş
ENA+       
Boş
DIR-          Arduino GND
DIR+         Pin 5 Arduino
PUL-          Arduino GND
PUL+         Pin 2 Arduino
A-, A+       Coil 1 step motor X ekseni
B-, B+       Coil 2 step motor X ekseni

Y ekseni,
TB6600    Bağlantı
VCC          24 VDC
GND         Güç kaynağı GND
ENA-         Boş
ENA+        
Boş
DIR-          Arduino GND
DIR+         Pin 6 Arduino
PUL-          Arduino GND
PUL+         Pin 3 Arduino
A-, A+       Coil 1 step motor Y ekseni
B-, B+       Coil 2 step motor Y ekseni

Z ekseni,
TB6600    Bağlantı
VCC          24 VDC
GND         Güç kaynağı GND
ENA-         Boş
ENA+        
Boş
DIR-          Arduino GND
DIR+         Pin 7 Arduino
PUL-          Arduino GND
PUL+         Pin 4 Arduino
A-, A+       Coil 1 step motor Z ekseni
B-, B+       Coil 2 step motor Z ekseni





Dilerseniz A0 a resetleme, A1 e durdurma, A2 ye devam etme için normalde açık butonlar bağlayabilirsiniz. Butonların diğer bacakları Arduino gnd ye bağlanmalıdır. Butonun iki bacağı arasına 100nF kapasitör atmanız iyi olur. Ayrıca spindle ve router gövdesi kalın kablolarla toprağa bağlanmalıdır.



Bendeki sürücülerde dip switch ayarı bu şekilde 3 ve 5 on diğerleri off, yani 1/16 uStep kullanılıyor. Bu ayar GRBL ayarlarıyla bağlantılıdır. 


GRBL ayarları

Evet, yukarıda anlattığım şekilde arduino ya grbl yüklediyseniz bir kerelik bazı ayarlar yapmamız gerekiyor. UniversalGcodeSender ile arduino ya 115200 baud ile bağlanıyoruz ve komut satırına $$ yazıp enter a basınca veya ilk bağlantı olduğunda bize ayarlar liste halinde gelecektir. 

$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=0
$3=0
$4=0
$5=0
$6=0
$10=3
$11=0.010
$12=0.002
$13=0
$20=0
$21=0
$22=0
$23=0
$24=25.000
$25=500.000
$26=250
$27=1.000
$100=640.000 (x, step/mm)
$101=640.000 (y, step/mm)
$102=640.000 (z, step/mm)
$110=500.000 (x max rate, mm/min)
$111=500.000 (y max rate, mm/min)
$112=100.000 (z max rate, mm/min)
$120=10.000 (x accel, mm/sec^2)
$121=10.000 (y accel, mm/sec^2)
$122=5.000 (z accel, mm/sec^2)
$130=400.000 (x max travel, mm)
$131=200.000 (y max travel, mm)
$132=200.000 (z max travel, mm)

En önemlileri step/mm $100, $101 ve $102 dir. 1mm ilerleme için motora kaç tane pulse verilmelidir, onu belirtir. Bu değerler kullanılan vidalı mil hatvesi ve sürücüdeki mikro step ayarına bağlıdır. Bu değer prusa hesap makinesi sayfasındaki vidalı mil ayarları kısmından bakılabilir. Örneğin bendeki hatve 5mm ve mikro step 1/16 olduğundan bu değerler tarafımdan 640 olarak girilmiştir.



Örneğin sizdeki hatve 8mm ise komut satırına $100=400 yazıp enter yapmanız gerekir, değer değişmiş mi diye $$ ile tekrar kontrol ediniz.

Estlcam ayarları

Örneğin 3mm çapında bir uç kullanıyorsam, Tool list teki ayarlarım böyle olmalıdır. Alüminyum için Z+ ayarım 0,5mm.. Spindle hızını kumanda etmediğimden 24000rpm yazan kısmın önemi yok normalde 10000 rpm de sabit tutuyorum. Soldaki ingiliz anahtarına tıklayınca ekstra ayar sayfası çıkıyor, orada stepover değerini %50 yapmışım. Tool Liste tıklayarak bu ayarları save edebilirsiniz.



Setup -> Basic settings e tıklayınca, ayarlar böyle olmalıdır..


Milling direction için, conventional da seçebilirsiniz.

Setup -> CNC programs a tıklayınca ayarlar aşağıdaki gibi olmalıdır..






Resmini koymadığım ayarlar aynen kalacaktır, dokunmanıza gerek yok. Bu ayarları sadece programı kurunca bir kez yapmak gerekiyor. Tabi ki farklı uç veya malzeme kullandığınızda, Tool List e yeni bir kalem ekleyerek uç çapını ve Z+ değerini ayarlamalısınız.

Yorumlar

Bu blogdaki popüler yayınlar

VBA - Mscomm (seri port) ile veri loglama

RJ45 2 - Novexx barkod yazıcıya, S7-1200 plc ile etiket yazdırma

Uzak I/O modülü olarak PLC kullanmak