G-code控制馬達入門
實體運算w12:CNC Shield
學習重點:grbl 、G-code
本周延續 w8步進馬達的內容,
進一步透過 CNC Shield、GRBL來達成控制多顆馬達.
CNC Shield
針對 CNC 的功能所設計的擴充板 (Shield),至多可以控制 4個步進馬達
- 關於 CNC(Computer Numerical Control)
中文:電腦數值控制工具機,
常見的機器有 3D列印機(堆疊)、CNC銑床(切削). - 關於 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