Mach3 Tarzı Program Yapmak

kny10101

Üye
Katılım
23 Şub 2009
Mesajlar
3
Puanları
1
Yaş
41
oncelikle herkese kolay gelsin bu konu hakkinda fikirlerini paylasanlarada tesekkur ediyorum.
ben herhangi bir cnc icin kontrol programi yazmak istiyorum. bu program uzerinden kafanin konumu gormek ve istenilen eksende hareket saglamak ayrica paint tarzi bir program ile bir yazi yada sekil cizmek.. bu konulara uzagim fakat bir arkadasim ile bu programi yazmayi dusunuyoruz. herhangi bir ticari kaygisi olmayip sadece akademik alanda kullanacagimiz bir calisma olacaktir.
cnc yapimi ile vakit kaybetmek istemiyoruz bu yuzden ebay.com, amazon.com gibi sitelerde hobi tarzi cnc'lere bakiyoruz. yaklasik fiyatlarida 1000 dolar gibi bir rakam. turkiyede bu isi pazarlayan bir yer bulamadik. birinci sorum bu cnc'yi yurt disindan getirmek mi mantikli yoksa bu konuda beni yonlendirebileceginiz yerler var midir?
ikinci sorumda bu kontrol kartlarina uygun programi yazabilir miyim? (mach3 tarzi bir program yapacagiz). yoksa kendi kontrol kartimi kendim mi yapmaliyim?
 
Hangi programlama dilini kullanacaksınız bilmiyorum ama LPT porttan sinyal gönderip alma işini yapabilirseniz ve ekran grafiklerini hazırlayabilirseniz neden olmasın.

Çok abartılacak bir yanı yok, ama öyle kolayca halledilecek birşey de değil. Hazırlığınızı iyi yapmanız lazım. Bence önceliğinizi yazılıma verin. Her dilin LPT porttan iletişim sağlayan komponentleri var. O kısım işin en kolay yanı. Ekran grafikleri G code lardan grafiklerin oluşturulması, arayüzler. Tanımlamalar ve hesaplamalar sizi epey zorlayacaktır.

CNC yi boşuna yurtdışından getirtmeye uğraşmayın, piyasada bolca hobby CNC satan firma yada kişiler var. Yurtdışı fiyata kargo bedelide binecek ayrıca gümrüklerde uğraşma derdi çıkabilir, çünkü belli tutarı geçen ürünlerde +KDV ve ÖTV gibi vergiler binebilir. Bir sorun olduğunda destek almakta yurtdışı firmalar için bir o kadar zor olacaktır.

Ama öncelikle bir TB6560 (veya başka bir sürücü) ve küçük bir step motor alıp (100-150 TL yaklaşık) yazacağınız programla step motorlara hükmedip hükmedemeyeceğinizi deneseniz daha iyi olur.

Böylece hem Mach3 le de bu sürücüye bağlanıp işlemler yapabilir ve örnekler alabilirsiniz.

Yerli bir firmadan kafanıza uygun bir CNC bulup alabilirsiniz hatta bu forumda size satış yapabilecek kişilerde vardır sanırım.

Birkaç Hobby CNC örneği.
(Hiçbirini tanımam sadece Google amca öyle söyledi...)
CNC MARKET
CEOCNC HOBBYCNC' DE TEK ADRES
Masüstü CNC İmalatı, Pantograf, Kaplin, El Çarkı - Masüstü CNC İmalatı, Pantograf, Kaplin, El Çarkı
ATEM / eurocnc - CNC Router
 
Son düzenleme:
Aslinda paralel port'dan (eger Win. isletim sistemi ise) yuksek hizda, kesintisiz data basmak pek de kolay bir is degil. Tahminimce driver yazmaniz gerekecektir.
 
fikirleriniz icin tesekkur ederim ramerturk ve mayacnc.. yurt icinde bu makineyi temin etmem daha mantikli gorunuyor ilerde bir sorun olacak olursa muhatap bulabilirim SIKINTI yasamam..
ben herhangi bir surucuye kendi kodlarim ile hukmedebilir miyim? henuz kullanilan entegreleri incelemedim. bunlarida sadece fikir sahibi olmak icin soruyorum. karti kendim herhangi bir mikrodenetleyici ile mi yapmaliyim yoksa mevcut kartlar benim programima cevap verebilir? programi c++ 'da yazacagim bu yuzden donanima hukmetmek daha kolay olacak.
 
Mach3 yerine kullanabileceğiniz bir program yazmak çok da zor değil. Sonuçta puls-dir mantığında G-kodlara göre doğru zamanda doğru darbeleri senkron bir şekilde üretmeniz yeterli olacak. Bu işi yapan kartların, programların genel adıda Indexer.

Kendi adıma düşüncem paralel port vs. ile uğraşmaktansa bu işi bir MCU ya yıkmak daha mantıkı görünüyor.
Seri veya USB bir arabirim kullanabilme şansı sağladığı gibi PC yi bu işe atama gibi gereklilikleri de kaldırır. Ayrıca PC üzerindeki driver vs. lerle uğraşmaktan bence daha kolay olur. İstediğiniz kadar eksende çalışma olanağı da sağlar. Sensör, switch gibi şeylerden aldığınız sinyalere tepki vermeniz daha hızlı olur.

Tabii PC tarafında da bir yazılım çalışması gerekecek. Ama bu yazılımın yapacağı sadece G-kodları indexer kartına aktarmaktan ibaret. Gelen g-koda göre lineer veya dairesel enterpolasyon yapmak, serbest gezinmek gibi işleri MCU üzerinde programlamak gerekir. Flash, RAM, donanımsal PWM vs. gibi özellikleri düzgün, nispeten yüksek seviyeli, hızlı bir MCU seçerseniz, işiniz daha kolay olur.

İşin paint benzeri programda şekiller çizip bunlardan g-kod çıkarma kısmı bence daha çok vakit alır. Yani CAM process kısmı. Yapacağınız işin seviyesine göre değişir ama vektör, poligon, curve hesaplarına girmek kaçınılmaz gibi. Özellikle G02-3 gibi kodlar çıkarabilmek için.. Girmezseniz de oldukça fazla sayıda kod çıkacaktır ki bu durumda kesintisiz çalışabilmek için bir buffer kullanmak çözüm olabilir.
 
ismaily tesekkur ederim bilgilerin icin.. atmega kullanmayi dusunuyorum eger karti kendim yapacaksam. ama piyasadaki hazir kartlari kullanabilirsem sadece program kismina odaklanmayi istiyorum. program iki kisimdan ibaret; birinci kisim uc ekseni istedigim sekilde hareket ettirebilecegim ve konumlarini okuyacagim panel, ikinci kisim ise paint tarzi bir ekrandaki sekli yada yaziyi kagida yazabilmek. pixellere gore bir hareket ekseni cikaracak bir matris dusunuyorum..
 
ismaily tesekkur ederim bilgilerin icin.. atmega kullanmayi dusunuyorum eger karti kendim yapacaksam. ama piyasadaki hazir kartlari kullanabilirsem sadece program kismina odaklanmayi istiyorum. program iki kisimdan ibaret; birinci kisim uc ekseni istedigim sekilde hareket ettirebilecegim ve konumlarini okuyacagim panel, ikinci kisim ise paint tarzi bir ekrandaki sekli yada yaziyi kagida yazabilmek. pixellere gore bir hareket ekseni cikaracak bir matris dusunuyorum..

Bahsedilene benzer bir sistemi dsPIC kullanarak yapmıştım. Indexer ve 3 eksen için step sürücüsü şeklinde. PC tarafında da G-kodları MCU ya aktaran, ayrıca PCB kazıma için basit bir CAM proses işlemi yapan bir yazılım..

Step sürücüleri hazır alıp MCU da sadece indexer çalıştıracaksanız atmega uygun olabilir. Ama eksen pozisyonları için min 16bit ve özellikle mikrostepping kullanılacaksa 32bitlik değişkenler kullanmanız gerekecek. Üst seviye 16-32bitlik işlemciler kullanmanız daha iyi olabilir.

Enterpolasyonlar için ya eksen hızları ile oynamak, oranlamak, adeta analog çalışır gibi işlem yapmak yada Bresenham gibi algoritmalar kullanarak eksen yollarını digitize etmek gerekiyor. Lineer ve dairesel enterpolasyonlar için kullanılan algoritmaları incelemenizde fayda var.
PC tarafında g-kodları indexere aktaracak yazılım tarafı daha basit.
CAM prosess kısmı ise daha uğraştıcı. Image üzerinde renk geçişlerini algılayarak vektör çıkarmaya yarayan hazır algoritmalar var. Bunlar kullanılabilir. Ancak çalışma alanı olarak ne büyüklük düşünüyorunuz bilmiyorum ama, pikseller üzerinden çalışırken ya Image bir piksel bir pulsa eşit olacak şekilde çalışılmalı --ki bu durumda devasa image size'lar ortaya çıkıyor-- yada piksel çözünürlüğünü düşürüp g-kod çıkarma aşamasında enterpolasyon gibi işlere girmek gerekiyor. Özellikle eğrilerde başağrıtıcı bir işlem.
Bir de işin makul sürede bitmesi gibi bir dert var. OpenGL, Direct2D, 3D ortamlarını kullanmak da perfomans açısından tavsiye edilebilir.
 
atmega kullanmayi dusunuyorum eger karti kendim yapacaksam.
Öncelikle kolay gelsin, ben de sizinki gibi bir çalışma içerisindeyim. ISMAILY arkadaşın da dediği gibi bir mcu kullanmak bana mantıklı gelmişti. Atmega platformunda kolay prototipleme için arduino kullanıyorum, araştırma yaparken grbl diye open source proje buldum.
Adamlar atmega içine gcode u çözüp step motor sürücülerini kontrol edecek bir yazılım yapmışlar.
Seri port ile GCode'u arduino'ya gönderiyorsunuz o da 3 çift step/dir pini ile motor sürücüleri kontrol ediyor.
Bire bir onu kullanmasanız dahi c++ ile yazılmış bir kod olarak referans alabilirsiniz.
Link : Dank

Ben bu kodu direk arduino içine yükledim ve linistepper adında yine open source bir step motor sürücü ile motorları kontrol etmeye başladım. Linistepper pic 16f688 ile çalışan FULL/HALF ve microstepping desteği olan bir sabit akım sürücüsü. Adam işi abartıp PWM ile olabildiğince analog benzeri bir dalga çıkarmayı başarmış. Elimdeki küçük motorlar için iyi bir sürücü.
Link : PIC Linear Stepper Motor Controller

GRBL ve linistepper kullanarak bilgisayardan işletim sisteminden bağımsız, hiç bilgisayar olmayan yerde bile çalışacak bi micro-cnc yapıyorum şu anda. Bilgisayarsız nasıl olacak : GRBL yüklü arduinoya ek olarak SD karttan GCode okuyup seri porttan GRBL e gönderen bir atmega daha olacak.

Bilgim ve becerim dahilinde birşeyler yapmaya çalışıyorum, umarım sonuç da iyi olur.
Size de projenizde başarılar dilerim.
 
Cad dosyasının cam den alınması g kodlarına dönüştürülmesi ve cnc yi kontrol etmesi sürecini anlatan bir kaynak döküman bulabilirmiyim.
teşekkürler
 

Forum istatistikleri

Konular
128,125
Mesajlar
915,240
Kullanıcılar
449,837
Son üye
betül hüsrevoğlu

Yeni konular

Çevrimiçi üyeler

Geri
Üst