slide5slide5slide5slide5

En Çok Arananlar

  24117
  24065
  23917
  23748
  23588
  23316
  23277
  23199
  22753
  22579

Ziyaretçi Sayımız

Bugün238
Ay5745
Toplam175035

Arduino CNC Plotter (CNC Çizici) + GRBL Inkspace

 

       İnternette bulunan mini CNC dışında A5 kağıdına yazabilecek bir çizici yaptık.  Arduino kullanarak projemizi gerçekleştirdik. 

CNC Plotter( CNC Çizici ) A5 Boyutunda

 

   Proje içerisinde kullandıklarımız;

   1-      Arduino Uno

   2-      Breadbord

   3-      2 x ULN2003A Step Motor Kartı

   4-      2 x 28byj-48 step motor

   5-      Mekanik kısmın gerçekleştirilmesi için Sunta ve Yazıcı Parçaları.

   6-      9V 1A batarya.

 

    Projemizde 3 eksen olacak x,y ve z ekseni. X ekseni kağıdın yatayını, y ekseni kağıdın dikeyini ve z eksenini de kalemin aşağıya ve yukarıya inmesini kontrol edecektir. Projemiz için kullandığımız suntaları okulumuzda bulunan marangoz atölyesinde kestik. Motorlarımızın uçlarındaki plastikleri, dönmeyi sağlayan plastikleri ve demir milleri eski birkaç yazıcı üzerindeki millerden elde ettik.  3D yazıcı kullanarak parçaları standart olarak yapmadığım için mekanik kısım üzerinde pek durmayacağım. Daha çok takıldığım dikkat edilmesi gereken kısımlar üzerinde duracağım.

    Şimdi sistemin çalışmasından biraz bahsedelim.

    Arduino, motor sürücüleri, step motorlar ve harici batarya bağlantılarını yaptık. Önemli olan bir nokta Harici batarya ve Arduino (-) Kutup uçları ortak bağlanmalıdır.

    Arduino Uno kartımıza programımızı atıyoruz. Program açıkça porttan gelecek bilgileri alacak şekilde yazılmış.  Processing programı ile de GCode dosyamızı porttan Arduino Uno kartımıza gönderiyoruz. Processing programından gelen GCode Arduino Uno tarafından çözümleniyor ve koda göre Step motorlar sürülüyor. Buraya kadar her şey güzeldir. Şimdi sorun şuradadır. Gelen kod çizimden geliyor mesela 40*40 diyelim. Step motoru kaç tur döndüreceğiz. Step motoru nasıl süreceğiz(Yarım -Tam). Step motor bir defada kaç mm hareket ediyor. Her motor için bu değişecektir.

    Şimdi hesabına geçelim. İlk önce step motorunuzun bir tam turdaki adım sayısını bulacaksınız. İnternetten datasheet olarak aratıp motor bilgilerini bulabilirsiniz. 28byj-48 step motoru bir tam turda 32 adım atmaktadır. Datasheet içerisinde tam sürüldüğünde adım açısı 5,625/64 derece,  yarım sürüldüğünde adım açısı 11,25/32 derecedir.

    Benim motorum tam turunda 48 mm yer değiştiriyorsa bunu 360 derecede yapıyordur. Buradan 1mm de 7,2 derece yer değiştiği bulunur.  Yani 1mm de 7,2/(11,25/64) =42,5 adım çıkar. Yazılımdan her gelen 1mm için step motorun 42,5 adım atması gerekecektir. Bunu Arduino Uno içerisindeki koda belirteceğiz.

    Bunu kolay yoldan bulmak isterseniz rastgele bir değer verirsiniz. Çizim yaptırırsınız. Cetvel ile ölçerek doğru olana kadar değeri değiştirirsiniz. Hangisi kolay gelirse yapabilirsiniz. Ben teorik olarak hesapladım.

    Önemli bir nokta daha step motorun bağlantısı;

 

    Arduino Uno ya Y Step motoru için 2, 3, 4, 5 numaralı girişleri,  X Step motoru için 8, 9, 10, 11 numaralı girişleri, Servo motor için ise 6 nolu girişi kullandık.

    Şimdi 28byj-48 motorunu Arduino Uno kartına bağlarken Y motoru için sürücü kartın IN4 ucu 2, IN2 ucu 3, IN3 ucu 4, IN1 ucu 5 nolu pine bağlandı. X motoru için IN1 ucu 8, IN3 ucu 9,IN2 ucu 10, IN4 ucu 11 nolu pine bağlandı. Servo için 6 nolu pine girişi bağlandı. Dikkat ederseniz stepler için internetteki bilgiler gibi sıralı değil baştaki ve sondaki pinler aynı fakat ortadaki pinler çapraz olacak şekilde bağlantı yapıldı. Yine dikkat ederseniz iki motorun IN1 ve IN4 girişleri birbirinden farklıdır. IN1 ve IN4 girişlerinin yeri değiştirilirse motorun gidiş yönü değişecektir. Benim çizicimde sol altta duruyor, sağ alt yapacaksak X motoru da Y motorunu ile aynı şekilde bağlanmalıdır. Yani ikisi de aynı olmalıdır.

    Projemde en çok takıldığım nokta burası oldu. İnternetteki ilgileri doğru olarak kabul ettim ve bu yüzden bütün kodda mı hata var diye bütün kodları analiz ettim. Uzun bir uğraştan sonra motor uçlarının internette gösterildiği gibi olmadığını fark ettim.

    Servo motor için 3 ayarımız vardır. Biri hangi pine bağlı olduğu. Diğerleri ise ilk konumu ve son konumudur. Servo motorun PenzUp ve PenDown yani kalemin aşağı inmesi ve yukarıya kalkması konum olarak verilmiştir. Sizin Kalemi kullanış şeklinize göre bu değerleri değiştirmelisiniz.

    İnkspace programı ile GCode dosyası oluşturabiliyoruz. İnkspace programının 0.48.5 sürümünü indirdikten sonra belirtilen dosyaları C:\Program Files\Inkscape\share\extensions yerine atıyoruz. Dosyaları attıktan sonra artık farklı kaydet dediğimizde GCode dosyası olarak kaydedebiliyoruz.

    İnkspace programına girip çizim yapacağımız yer sağ üst köşede diye yazıyor sitelerde fakat neden burada olduğunu kimse açıklamamış. Oluşturduğunuz inkspace sayfasını koordinat sistemi gibi düşünün. Sayfanın tam ortasında + şeklini çizin. Sağ üst kısım x’in + ve y’nin  + olduğu kısımdır. O yüzden sağ üst yani sayfanın dörtte biri yeri bizim çalışma alanımızı oluşturur.  Oluşturduğuöuz inkspace sayfasının boyutlarını ona göre ayarlayacağız. Mesala çalışma alanınız 40x40 sizin inkspace sayfanız 80x80 olmalıdır. Sağ üst kısma yazmanızda x ve y nin kordinatlarının artı olduğundan dolayıdır.

    Oluşturduğumuz GCode dosyalarını Processing programı ile ardunio kartımıza göndererek çizim işlemini gerçekleştiriyoruz.  P tuşu ile serial port seçilmektedir. Daha sonra ise g tuşu ile dosya seçilerek yazım işlemi gerçekleştirilmektedir.

    CNC Çizici Dosyalarını indirmek için tıklayınız.

    Processing programını indirmek için tıklayınız.

    İnkspace programını indirmek için tıklayınız.

 

    NOT:  Gördüğümüz eksikler misina yerine mil kullanılsa daha kusursuz bir sonuç elde edilebilir. Motorlar biraz fazla çalıştığında ısınıyor.  Bunun için ekran kartlarının üzerinde bulunan soğutucuları keserek motorların altına yerleştirdik. Nema17 motorlar daha kullanışlı olabilir. İlk projemiz olduğu için elimizde ne var ise kullanmaya çalıştık. CNC shield kartı ve sürücüleri kullanılabilir.

Submit to FacebookSubmit to Google PlusSubmit to Twitter

Yorum ekle


Güvenlik kodu
Yenile




İlker Danalı tarafından tasarlanmıştır. Tüm hakları saklıdır.