修整雷射切割機的時候順便調校了一下割字機,來看一下它底層是怎麼從電腦驅動的。
歷史的演進#
割字機有個親戚叫繪圖機。繪圖機是讓機器拿筆在紙上畫畫,而割字機則是把筆換成刀,可以用來切割卡典西德(cutting sheet)一類的材料。
割字機控的是 XY 軸,加上 Z 軸就成了 CNC(減法),再將刀改成原料噴嘴就成了 3D 印表機(加法)。
控制語法#
類似的東西背後往往都是一脈相承,就像 CNC 和 3D 列印都用 G-code;繪圖機和割字機也有幾個常見的控制語法。
- HP-GL - Hewlett-Packard Graphics Language
- GP-GL - Graphtec Plotter Graphic Language
- DMPL - Digital Microprocessor Plotter Language
- CAMM-GL - Roland 這家廠商用的 Graphic Language
實際連接#
以這次手邊新智捷(济南科星数控设备有限公司)的機器 800-PRO 來說,上面有 USB、RS-232 跟 SD 卡槽,支援 HPGL 及 DMPL 指令。
RS-232 跟 SD 卡槽好理解,一個是用 serial 的方式把指令送過去,另一個是把 HPGL 指令存成 PLT 檔後放在 SD 卡上做交換。
那 USB 又是怎麼一回事呢?
實際連接之後發現它有兩種模式,在不同模式下,接到電腦會看到不同的 PID,以不同的方式跟設備溝通。(VID 都是 STMicroelectronics 的,內部應該是用這家的 MCU)
- Virtual COM Port
- 0483:5740
- Serial port
- Linux device file:
/dev/ttyACM*
- Printer
- 0483:5750
- Parallel port
- Linux device file:
/dev/usb/lp*
Virtual COM Port 應該跟實體 COM Port 功能是一樣的,有趣的是 Printer 模式。看賣家給的 Windows 驅動居然又是另一家叫合肥润杰数控设备有限公司的廠商做出來的。
稍微研究了一下,該驅動的底層應該是用 Microsoft Plotter Driver 來實作。而 Microsoft Plotter Driver 又是走 HPGL 的,所以看來是不同廠商可以偷懶用同一份驅動程式,且用了這個驅動程式之後應該是 AutoCAD、Illustrator、CorelDRAW 都可以直接輸出。
跨平台驅動#
若出於理念或安全考量,想在電腦端使用純 open source,不用廠商寫的 binary 的話,可以用 Inkcut 驅動。最近因為要改收費訂閱制而鬧得滿城風雨的 Cricut 至少有幾款機型裡面用的是 Atmel AVR 的 MCU,找到 open source firmware 刷機成吃 HPGL 的 serial device 之後,也可以跳 Inkcut。(原本就是 serial device 但不確定是吃什麼樣的語法就是。)
Inkscape 和 Inkcut 都是 open source 且跨平台的,用這套方案就不用擔心被綁死。