aslında tam olarak bu şekilde değil arduino yüklendiğinde beraberinde gelen Standartfirmata python gibi programlarla iletişimi sağlıyor ve Python kodunda arduino yu kütüphane olarak ekliyorsun şimdi kodu atıyorum anlaşılırlığı biraz zor maalesef.
firmata kütüphanesi Arduino'dan pin durumu okuma, pin set etme, analog okuma yapma gibi bir altyapı sağlıyor.
Yani dediğim gibi gcode phyton ile yorumlanıp arduino ya motorlara puls yollaması için pin durumlarını set ediyor.
Görebildiğim kadarı ile de eksen hesapları için ayrı bir kütüphane var.
Gcode parse ederken herşeyin standart sırada geleceğini varsayıyorsun.
Hatan büyük ihtimalle burada.
Mesela her satırda F değerinin geleceğini varsayıyorsun. Senin koduna göre F değeri gelmezse Y değerini hatalı okursun.
Oysa F yani eksen hızı gcode'da modal bir parametredir. Bir kere set edildikten sonra her satırda tekrarlanması gerekmez.
Ayrıca kod da biraz spagetti olmuş.
Koduna olabildiğince açıklamalar eklersen, paragraflara dikkat edersen sonrasında sende daha rahat okursun.
evt arduino kullanıyorum ama daha sonra programı özelleştirmeyi planladığım için grbl ye hiç bulaşmadım. Yani sıradan bir cnc olarak kalmasını istemiyorum ve grbl ye şuanki cnc yi uydurmak için biraz alışveriş yapmam gerecek sanırım teşekkürler.
Demişsin ama bu yapı özellikli bir cnc için daha iyi değil. En başta performans sorunu olur.
Görebildiğim kadarı ile USB HID veya com port kullanıyor. Her bir puls için bu ortamdan komut göndermek tam bir darboğaz.
Ne kadar hızlı da olsa bir işletim sistemi çalıştıran bir PC 'de puls zamanlamaları vs. bir mikrodan daha kaliteli olmuyor. Özellikle de puls lar seri şekilde gönderildiğinde.
Mesela Mach3 paralel port kullanır. Buna rağmen mach3 çalıştıran makinada başka programların çalışması tavsiye edilmez. Puls zamanlama kalitesi bozulmasın diye. Mach3 USB vs çalışanlarda gcode'u mikro üzerinde işlerler veya sağlam bir buffer üzerinden pulsler iletilir.
GRBL, firmata denen bu yapıdan çok daha iyi ve oturmuş durumda.
Ayrıca motorların vs. çalışıyorsa grbl için niye alışveriş ihtiyacın olsun ki. grbl içinde pin ayarları, eksenlerin bir devrinde ne kadar hareket ettiği gibi ayarları yapman yetmiyormu?
İlk gcode yorumlayıcı kodu yazalı 10 yıldan fazla oldu. O dönemde grbl gibi oturmuş hazır bir ortam olsaydı, Ne code yorumlamakla nede gerber'den gcode üretmekle uğraşmazdım sanırım. Ya grbl, linux-cnc gibi açık kaynak bir projeyi yi alır direkt kullanır, yada ihtiyacıma göre modifiye etmeyi tercih ederdim.
Önerimdir.