G-code控制馬達入門

Cheng-Lin, Hung
互動的風格
Published in
3 min readDec 3, 2020

實體運算w12:CNC Shield
學習重點:grbl 、G-code

本周延續 w8步進馬達的內容,
進一步透過 CNC Shield、GRBL來達成控制多顆馬達.

CNC Shield

針對 CNC 的功能所設計的擴充板 (Shield),至多可以控制 4個步進馬達

CNC Shield。圖片來源:CSJH-Maker
  1. 關於 CNC(Computer Numerical Control)
    中文:電腦數值控制工具機,
    常見的機器有 3D列印機(堆疊)、CNC銑床(切削).
  2. 關於 Shield
    中文:擴充板
    針對特定功能所設定的擴充板,可以省去複雜的接線.

3. CNC Shield 特色(dataSheet)

a. 可相容於Arduino UNO

b. 支援4軸(X, Y, Z, A)
A可以重複X, Y, Z 或 客製成第4軸 (D12, D13)

c. 使用 GRBL 作為控制軟體

d. 馬達電源供應(12~24V)

e. 可使用 A4988或 DRV8825 作為步進馬達驅動器
使用 jumper 可提高馬達解析度,
分別為1/2、1/4、1/8、1/16、1/32步,
不接的情況為全步.

4. 安裝GRBL 函式庫

(https://github.com/grbl/grbl) :點選code → download ZIP
解壓縮ZIP,將資料夾複製到「文件/Arduino/libraries 」.

5. 開啟範例程式(grblUpload.ino)

5.1 範例程式

電路接線完成後,燒錄程式至Arduino.

#include <grbl.h>

5.2 開啟 Serial Port

Serial Port上方可以輸入字串,grbl 支援 G-code的指令.
以下為部分常見指令(更多參閱:https://github.com/grbl/grbl):

動作模式: G1
距離模式: G90(絕對位置)、G91(相對位置)
顯示個別設定的參數: $$

5.3 將動作換算成 G-code練習

步進馬達一圈為200步

Q1.
X:100 steps/sec *5sec
Ans.
5秒共走500步→ X: 100*5 /200 = 2.5(圈)
頻率為每分鐘走幾圈 → F: 2.5 *(60/5) = 30(圈/分鐘)

G1 X2.5 F30

— — —
Q2.
X:100 steps/sec *5sec
Y:200 steps/sec *5sec
Ans.
X: 100*5/200 = 2.5
Y: 200*5/200 = 5
F: √(2.5² + 5² ) * (60/5) = 67

G1 X2.5Y5 F67

— — —
Q3.
X:1000 steps
Y:2000 steps
Total:2 sec
Ans.
X: 1000/200 = 5
Y: 2000/200 = 10
F: √(5²+10²) * (60/2) = 335.4

G1 X5Y10 F335.4

--

--