Cách Chỉnh sửa code và phần mềm điều khiển CNC Gctrl
2016-12-06 11:21
Để không đợi lâu mình mạn phép hướng dẫn cho các bạn cách khắc phục tình trạng motor stepper kêu e e mà không chịu di chuyển.
I. Đo phần cứng.
Các bạn tự phải đo hành trình trục XY của các bạn là bao nhiêu.
Trong bài viết này hành trình mình chọn là X=40mm và Y=40mm.
Với motor step của CD-Rom nó quay 1 vòng cần 20 bước, tức là 1 bước nó quay 18 độ.
Các bạn lấy thước đo, đo khoảng cách từ rãnh ren này sang rãnh ren kia là bao nhiêu mili rồi lấy số đó chia cho 20. VD: 20/4mm=5
Vậy là cần 5 bước để đi đc 1mm.
Trong bài viết này mình chọn X=5 bước, Y=10 bước
II. Chỉnh sửa code.
Phần này các bạn sửa lại các lệnh sau.
1. const int stepsPerRevolution = 20; (Đây là số bước của stepper để quay 1 vòng)
Các bạn chỉnh lại là 200 tức là x10 lên, vì sao thì lát sẽ hiểu nhé.
2. int StepDelay = 0; (Sau khi stepper hoàn thành 1 lệnh sẽ nghỉ trong khoảng thời gian mà ms)
Các bạn chỉnh lại là 1 nhé, để sau mỗi lệnh nó cho stepper nghỉ 1ms, đừng để cao quá 10 sẽ bị giật do thời gian nghỉ lâu.
3. float StepsPerMillimeterX = 100;
float StepsPerMillimeterY = 100; (Đây là số bước để đi được 1mm)
Mình lấy thông số ở mục I thay xuống do đã đo rồi, thay vào các giá trị trục tương ứng ở lệnh này đồng thời x10 nó lên.
float StepsPerMillimeterX = 50;
float StepsPerMillimeterY = 100;
4. float Xmin = 0;
float Xmax = 40;
float Ymin = 0;
float Ymax = 40; (Đây là hành trình tối đa của các trục XY các bạn đo như ở mục I rồi điền thông số vào)
Ở mục I mình đo được là 40mm trên cả 2 trục nên sẽ để nguyên.
5. myStepperX.setSpeed(700);
myStepperY.setSpeed(700); (Đây là tốc độ stepper tương ứng mỗi trục, mặc định là 700 nhưng mình khuyên k nên để quá 500)
Các bạn chỉnh như sau. Ở mục I mình chọn X=5 bước, Y=10 bước, tốc độ của X lúc nào cũng nhanh hơn tốc độ của Y, vì Y cần đến 10 bước để đi 1mm còn X chỉ mất 5 bước => Gấp 2 lần. Mình chỉnh lại như sau.
myStepperX.setSpeed(250);
myStepperY.setSpeed(500); => Tốc độ của Y phải nhanh gấp 2 lần để đồng bộ tốc độ di chuyển trục với nhau.
III. Thiết lập Gctrl.
Mặc định khi mở lên Gctrl sẽ chọn là 1mili.
Vì trong code đã x10 nghĩa là 10mili nên ta nhấn phím 2 để chọn chế độ 10mili.
Nhấp P để chọn cổng COM của Arduino.
Nhấn G để chọn Gcode.
IV. Test.
Các bạn mở Inkscape 0.48 lên.
Chỉnh lại khổ giấy ứng với kích thước hành trình XY ở mục I. (Phím tắt là Ctrl+Shift+D)
Dung công cụ Draw bezier để vẽ 1 đường thẳng từ gốc tọa độ lên đỉnh tọa độ như hình
Sau đó save as với gcode.
Đưa gcode vừa xuất cho vào Gctrl để chạy nhé. Xem nó đi hết hành trình không?
Chúc các bạn thành công!