割字機驅動筆記

修整雷射切割機的時候順便調校了一下割字機,來看一下它底層是怎麼從電腦驅動的。

歷史的演進

割字機有個親戚叫繪圖機。繪圖機是讓機器拿筆在紙上畫畫,而割字機則是把筆換成刀,可以用來切割卡典西德(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 且跨平台的,用這套方案就不用擔心被綁死。

Posted in Technical.

Leave a Reply

Your email address will not be published. Required fields are marked *

Captcha loading...