3 Boyutlu CNC ile Baskı Devre (PCB) Kazıma Projesi.

taptazesut

Üye
Katılım
14 Ağu 2013
Mesajlar
6
Puanları
1
Yaş
33
Merhaba arkadaşlar, Elektrik-Elektronik müh. 4.sınıfta okuyorum. Bu dönem bir elektronik firmasında uzun dönem iş yeri eğitimi göreceğim. Konuya gelirsek, benden önce staj yapan arkadaş "3 boyutlu CNC ile baskıdevre kazıma" projesini başlatmış, stajının bitimine kadar CNC’nin mekanik tüm işlerini bitirmiş, kontrol kartı tasarlanmış. Yalnızca CNC'nin bilgisayarla haberleşmesi için yazılımsal kısım kalmış. Staj yaptığım yer de bu işi yeni gelen stajyer öğrencilere devretmeyi planlamış, bu biz oluyoruz.
Bu haftayı "Gerber Dosyaları" hakkında araştırma yaparak geçiriyorum. Anladığım kadarı ile her pcb tasarım programının gerber dosyaları farklı oluyor. Benim elimdeki örnekte Pcb tasarımları için "Mentor Graphics PADS" programı kullanılmış ve oluşan gerber dosyaları da resimdeki gibi.

Z1LQaZ.png


.pho uzantılı dosyaları "Viewmate" programı ile açarak örnek tasarımı görebildim. Bizden istenilen şey çizilecek koordinatların bulunduğu katman dosyasını mesela "bottom_layer.pho" dosyasını bir şekilde bilgisayardan cnc’ye aktarmak. Bunun için yazılım yazmamız gerekebilirmiş. Biraz araştırma sonucu bu gerber dosyasını programlarla “g code” haline getirip mach3 programını kullanarak cncye aktarılabildiğini gördüm. Bu yöntemi kullanmanın belli şartları var mı? Tasarlanan kontrol kartıyla uyumlu olması mı gerekiyor? Çünkü bizden önceki arkadaş mach3 kullanarak yapamadığını söyledi. Bu konular hakkında daha önce bu tür projelerde arkadaşlar bilgilerinize ihtiyacım var.

027NAW.jpg
B9Z619.jpg
lzkr8k.jpg
rdg8aM.jpg
 
Öncelikle pcb kazımak derken ne şekilde ve hassasiyette kazımaktan bahsediliyor kısmını açmak lazım.
Resimdeki makinanın z ekseni henüz bitmemiş sanırım. pcb kazımak için yüksek devirli bir spindle motoru hassas bir şekilde taşıyabilmesi gerekli.


Gerber dosyasından g code çıkartmak için coppercam gibi yazılımlardan birini kullanmanız işinizi çok kolaylaştırır.
Yazılımı kendiniz yazmak istiyorsanız da önerim sağlam bir poligon kütüphanesi edinmeniz.

Biraz detaya girersek;
Gerber yada tam adı ile rs274x formatındaki dosyalarda pcb aperture denen kare, dikdörtgen daire vs. şekillerde çeşitli boylarda geometrik şekillerle ifade edilir. Ayrıca çok noktalı poligon larda desteklenir.
Gerber dosyasının gcoda uygun hale gelebilmesi için en azından bu aperture ların oluşturduğu şeklin outline hali, yani çok noktalı tek bir poligon ile ifade edilebilir hale getirilmesi gerekir.
Pcb tasarlandığının aynısı şekilde istenmez sadece bakır yolların izolasyonu yeterli olacaksa g40-41-42 gibi tool kompanzasyonu komutları ile bu poligonların noktalarını g1 komutları ile izlemek yeterli olur.
Bu şekilde çalışılırsa tek şart pcb nin kazıma ucu kalınlığına uygun tasarlanmasıdır.
pcb nin aynısını çıkartmak için ise çok daha fazla matematik gerekir ve hazır bir poligon kütüphanesi kullanmanız işinizi çok kolaylaştırır.

Kontrol kartının mach3 ile çalışmasını sağlamak için ya kontrol kartı paralel porttan her bir eksen için dır ve puls darbelerini kontrol etmeli yada usb vs. yüksek hızlı bir port kullanıp mach3 için uygun bir plugin yazılmalı.

Mach3 kullanılmadığı durumda ise gcode ların pc veya kontrol kartında yorumlanması gerekir. g0-1-2-3 desteklese yeterli olur. Birde mach3 ü sadece görsellik için kullanıp g-code ları capture edip bunları seri, usb vs. üzerinden kontrol kartınıza gönderip yine gcode yorumlatmak da mümkün.

Öğrenme değilde iş yapma amaçlı olarak devam edecekseniz önerim o kontrol kartınızı kullanmayıp tb6560-tb6600 gibi 3 eksen bir motor sürücü kart ile mach3 kullanmanız yönünde olur. Yada kontrol kartının paralel port üzerinden veri almasını sağlayıp mach3 kullanın.
Mach3 kullanılmadığı durumda Gcode yorumlama vs. denen işler de oldukça vaktinizi alır.
 
Öncelikle cevabınız için teşekkür ederim. Diğer yazılarınızdan da anladığım kadarıyla gerçekten takdir edilesi bir tecrübeye sahipsiniz.Şuanda önceliğimiz en basit anlamda cncnin bilgisayar ile kontrol edilmesi sağlamak, hassasiyet sonradan üzerinde durabileceğimiz bir konu olabilir. Burada bir nevi staj gördüğümüzden proje tabiki öğrenme amaçlı olacak (3 ay süremiz var), başka bir kart alıp mach3 kullanarak sorunun çözülmesi belki ilerki zamanlarda olabilir. Şuanda 3. staj günüm ve bir arkadaşla beraber araştırma aşamasındayız, hala yapacağımız işlemin ne olacağını bilemiyoruz açıkcası. Deneme yanılma yolu ile zamanla biyerlere geleceğimizi umuyorum. Maalesef yazılım bilgim çok fazla yok fakat kendimi bu konuda geliştirmeye açık buluyorum. Dediğiniz gibi bir plugin yazmak için önce nereden başlamayı tavsiye edersiniz ?
 
Rica ederim, ve teşekkürler..

Cam proses yani gerber to gcode konusunu ayırırsak, cnc nin bilgisayar ile kontrol edilmesi konusunda özellikle kontrol kartı için daha detaylı bilgi vermeniz gerekli..

Step-dir puls larını mı kabul ediyor, gcode yorumlayabiliyormu?
Bilgisayar ile bağlantı için ne kullanılıyor?
Üzerinde bir mcu varmı? Varsa mcu ve geliştirme ortamı nedir? vs. Ve siz bunların ne kadarına hakimsiniz.?

Eğer 3 ay bu işe odaklanacaksa ve yazılım bilginizde yeterli ise süre de yeterli.

Bence işi bir an önce bitirmek istiyorsanız sisteminizi standartlara uygun hale getirmeniz ki bunun anlamı kontrol kartının mach3 ile uyumlu çalışmasını sağlamak.

Yani step-dir puls lerine göre motorların kontrolünü yapmak. Ki bir mcu üzerinde gcode yorumlamak vs işlerden çok daha basit bir konudur.

Sonrasında dilerseniz mcu üzerinde gcode yorumlama, enterpolasyon, akserelasyon vs. kontrol teknikleri üzerinde yine çalışabilirsiniz.

Yazılım tecrübeniz, gömülü yazılım konularına ne kadar hakimsiniz gibi kişisel konuları da detaylandırırsanız daha doğru yön verilebilir.
 
Yazılım konularında bir geçmişim yok sadece okuldaki programlama derslerinden temel konuları biliyorum. Kartın üzerinde xilinx spartan marka bir entegre var (fpga) olarak geçiyor ve sanırım usbden kontrol edilmesi planlanmış. Kart hakkında detaylı bilgiye sahip değilim şuan. Haftaya donanım ile içli dışlı olacağımızı sanıyorum.Sizin içinde sorun değilse o zaman sorularınızı istediğiniz şekilde cevaplayabilirim. Yardımlarınız için teşekkürler.
 
Rica ederim, ve teşekkürler..

Cam proses yani gerber to gcode konusunu ayırırsak, cnc nin bilgisayar ile kontrol edilmesi konusunda özellikle kontrol kartı için daha detaylı bilgi vermeniz gerekli..

Step-dir puls larını mı kabul ediyor, gcode yorumlayabiliyormu?
Bilgisayar ile bağlantı için ne kullanılıyor?
Üzerinde bir mcu varmı? Varsa mcu ve geliştirme ortamı nedir? vs. Ve siz bunların ne kadarına hakimsiniz.?

Eğer 3 ay bu işe odaklanacaksa ve yazılım bilginizde yeterli ise süre de yeterli.

Bence işi bir an önce bitirmek istiyorsanız sisteminizi standartlara uygun hale getirmeniz ki bunun anlamı kontrol kartının mach3 ile uyumlu çalışmasını sağlamak.

Yani step-dir puls lerine göre motorların kontrolünü yapmak. Ki bir mcu üzerinde gcode yorumlamak vs işlerden çok daha basit bir konudur.

Sonrasında dilerseniz mcu üzerinde gcode yorumlama, enterpolasyon, akserelasyon vs. kontrol teknikleri üzerinde yine çalışabilirsiniz.

Yazılım tecrübeniz, gömülü yazılım konularına ne kadar hakimsiniz gibi kişisel konuları da detaylandırırsanız daha doğru yön verilebilir.

Tekrar merhaba hocam, kart hakkında bilgilerimi paylaşmak istedim. Kartta NXP (founded by Philips) LPC1759 ARM Cortex-M3 tabanlı bir işlemci kullanılmış. Bilgisayar bağlantısı usb veya seri port ile yapılabiliyor. Bizden istenilen bir arayüz tasarlamak ve oluşturacağımız gcodelar ile motorların kontrolünü sağlamak. Bu nasıl olacak şimdilik bilmiyorum. Aklımıza ilk gelen kartı mach3 gibi bir programla uyumlu hale getirmek oldu. Ayrıca piyasada pek çok mach3 uyumlu yazılarak kontrol kartı satılmakta. Bu kartların mach3 ile uyumlu olmasını sağlayan kriter nedir ? Herhangi bir kartı mach3 ile uyumlu hale getirebilir miyiz ? Şu an bu konu hakkında fikirlerinize ihtiyacım var.
 
Son düzenleme:
Öncelikle kontrol kartı üzerinde yapılması gereken işler, yazılması gereken kodlar bitmişmi vs. yi bilmek gerekli.
Kontrol kartına G0X100F200 vb. gibi bir kod aktardığımızda çalışacakmı. ?

Kontrol kartı üzerindeki geliştirme işlemleri bitti ise bilmeniz gerekenler kartın kabul ettiği G kodları nelerdir, ekstra konfigürasyon komutları varmıdır, haberleşme parametreleri nedir gibi şeyler.

Buna göre pc tarafında kartın işleyebileceği şekilde g-kod dosyası oluşturabilmeniz gerekir.
Gerber den g-kod çıkartan programlara göstereceğiniz kartınıza göre tanımlanmış bir post-proses dosyası ile yapılabilir. Doğal olarak kart minimum gereksinimleri karşılıyorsa.

Haberleşme için ise seri port için baud, akış kontrolu vs. USB için HID kullanıldı ise kullanılan VID, PID gibi değerlerin bilinmesi gerekir. HID dışında CDC vs. bir protokol kullanıldı ise PC nin kartı tanıyabilmesi için bir driver yazılması-kullanılması da gerekir.

PC tarafında G-kod dosyasını okuyup uygun şekilde karta gönderecek bir program yazılmalı. Ki çok da dert edilecek birşey değil. Gönderilen ve işlenen g-koda göre görsel bir şeyler de olsun derseniz ekstradan biraz grafik kütüphaneleri ile çalışırsınız.

Bu varsayımlar kartın g-kod işleyebildiği üzerine tabii.
Eğer kart g-kod değilde step-dır pulslarını kabul ediyorsa ek olarak g-kod yorumlayıp karta istediği puls leri üretecek bir yazılımda gerekir. Ya yeni bir kart üzerinde yada pc de.. Ya da kart üzerinde ki denetleyicinin yazılımına ekleyerek.
Eğer kart üzerinde yeterince paralel IO varsa mach3 ile uyumlu hale getirmekte mümkün.

Neyse fazla uzattım.
Benzer işler için birşeyler bende yapmıştım. Hem PC hem mcu için. ARM için de. Elimden geldiğince yardımcı olmaya çalışırım. Tabii amaç öğrenmek ise.

Ancak net birşey söyleyebilmek için kartın donanımı, özellikle giriş-çıkış portları, iletişim için gerekli parametreler, kart üzerindeki yazılımın g-code işleyip işlemediği, işliyorsa hangi komutlar, yazılımın kodları elinizde varmı, geliştirme ortamı, derleyici, vs. ve geliştirme ortamı pc de hazırmı. Source kodlar varsa incelediniz mi, hakimmisiniz gibi konuları açıklığa kavuşturmalı.
Öncelikle bunları bir araştırın, yoksa bu şekilde devam etmek havanda su dövmek olacak.
 
Öncelikle kontrol kartı üzerinde yapılması gereken işler, yazılması gereken kodlar bitmişmi vs. yi bilmek gerekli.
Kontrol kartına G0X100F200 vb. gibi bir kod aktardığımızda çalışacakmı. ?

.......

Eğer kart g-kod değilde step-dır pulslarını kabul ediyorsa ek olarak g-kod yorumlayıp karta istediği puls leri üretecek bir yazılımda gerekir. Ya yeni bir kart üzerinde yada pc de.. Ya da kart üzerinde ki denetleyicinin yazılımına ekleyerek.

Merhaba İsmail Bey, yapacağımız işi, sorularınızda ne alatmak istediğinizi yeni yeni anlıyoruz buna bir de bilgisizliğimiz eklenince mecburen yavaş ilerlemek zorunda kalıyoruz. Öncelikle kontrol kartı projesini incelemeniz için ekte paylaştım. Şuan kart içinde herhangi bir yazılım bulunmamakta, anladığım kadarı ile de STEP-DIR pulslerinde göre çalışacak. Yapmak istediğimiz işlemi şöyle anlatmak istiyorum. Gerber Dosyasından --> GKod'u herhangi bir cam programıyla çıkarttıktan sonra Gkodu yazacağımız yazılım ile yorumlayıp yorumlanmış bilgileri usb yoluyla karta aktarmak ve gelen bilgilerle motor sürücüler vasıtasıyla hareketin sağlaması. Takıldığım noktalardan biri Gkod bilgisayar ortamında mı yorumlanmalı yoksa kart üzerinde mi? Birde Gkod yorumlamadan kasıt interpolasyon konusu mu? Bu konuda biraz araştırma yaptım, G0,G1,G2,G3 işimize yarayan komutlar sanırım fakat nasıl koda dökeceğimi bilmiyorum. GKod'u bilgisayar ortamında yorumladıktan sonra makina bunu nasıl anlayacak, kartta nasıl bir program yazılmalı (STEP/DIR burada mı kullanılacak) ? Bu konular hakkında bilgi verebilir misiniz ? İlgilendiğiniz için teşekkürler.

Kontrol kartı şeması:
http://www7.zippyshare.com/v/59307745/file.html
 
Şemaya baktım. Allegro'nun A3977 chip'i kullanılıyor.
RS232 veya USB ile bilgisayar bağlantısı sağlanacak. A3977 leri LPC1759 kontrol ediyor. Artı regülatörler vs.
Birde karakter Lcd var. FPGA in kullanılma amacı nedir anlamadım.

G kod yorumlamak kullanacağınız, destekleyeceğiniz komut setine göre değişir ama evet, G0-G3 için interpolasyon demek diyebiliriz.
Artı olarak istediğiniz performans vs. göre ardışık komutları işletirken planlama vs. gibi şeyler. Örneğin g2-g3 yerine g1 ile daire çizerken ki performans gibi şeyler.

Elinizde bu tip bir kart varken G kod yorumlama, step, dir pulslerini PC de üretmek bence abes olur. Seri iletişimle pulslerin iletiminde zaman senkronu sağlamak gibi şeyler gerekir. Araya giren prosess, AV vs. sıkıntı çıkarır. Vs. vs.

Amacınıza bakınca g0,1,2,3 komutlarını işlemek yeterli gibi. Tabii eğer cam programınız da buna uygun g kod üretiyorsa. Gerekirse karmaşık g kodları PC tarafında g0-g3 arası kodlarla ifade edilebilir hale getirmekte mümkün.

Interpolasyon için önerebileceğim Bresenham algoritması kullanmanız.
Eğer başlangıçta g2-3 den vazgeçerseniz sadece g0-g1 kullanırsanız 3 eksen için 3 ayrı timerla da yapabilirsiniz. Bunu geliştirip g2-3 işlemeye de geçebilirsiniz. Ama benim önerim Bresenham.
Algoritma bir döngü içerisinde uzun yol kateden eksenin aldığı yola göre diğer eksenin alması gereken yolu hesaplar. Asıl olarak ekrana çizgi, daire çizmekle için piksel koymakla ilgilidir.

Bir diğer konuda PC ile iletişim yapmak. RS232 yani uart kullanımı oldukça kolaydır.
USB için teknik detay daha fazladır. Tavsiyem eğer USB kısmına aşina değilseniz LPC17xx ailesi için HID iletişim yapan hazır bir örnek kütüphane üzerinden başlamanız. İletişimi sağladıktan sonra diğer konuları örnek projeye ekleyerek devam edersiniz.

PC tarafında gkod dosyasını açıp, satır satır okumak, ve gerekirse satırları parse edip eksenlere atanan değerlere göre ekranda 2 boyutlu basit birşeyler çizmeniz yeterli sanırım. Hız, performans gibi şeyler önemli ise, direct2D, direct3D, openGL konularına da bakmak gerekebilir.
PC de rs232 ile ilgili sıkıntı çıkacağını sanmam. USB için ise bir HID kütüphanesi kullanmanız yeterli.
 
Arkadaşlar, proje üzerinde yaklaşık 3 ay uğraştık. Bu süre zarfında projenin donanımsal kısmından ziyade yazılımsal kısmıyla ilgilendik.Hazır bir kontrol programı kullanmak yerine kendimiz bir kontrol programı geliştirmeye çalıştığımızdan dolayı konuya dönüp güncelleme yapmadım.
Şuanda PADS, EAGLE, ARES, programlarından elde edilen Gerber (RS-274X) ve Excellon dosyalarını kullanarak Gkod üreten bir yazılımı tamamladık. Bu kısımdan sonra geriye donanım ile yazılımı bir araya getirerek projeyi tamamlamak kalıyor.

İşe başlarkenki bilgisizliğimiz ile konuya hakim olma eksikliğimiz sebebiyle projeyi tamamlayamadan stajımız sona erdi. İleride tamamlamak umuduyla...

Bizden bilgilerini esirgemeyen ISMAILY abimize sonsuz teşekkürler.
 

Forum istatistikleri

Konular
129,902
Mesajlar
931,152
Kullanıcılar
452,787
Son üye
Azemm333
Geri
Üst