Motion86 函式庫

86Diuno IDE 從 Coding 318 版開始加入此函式庫,利用此函式庫能讓 86Duino 成為一個簡單的多軸運動控制器 (Motion controller)。運動控制 (Motion control) 是自動化技術的一部份,產業自動化可以提升生產速度、降低生產成本、改善生產品質、增強市場競爭力,所以運動控制常被運用在包裝、印刷、紡織、半導體器件製造及生產線。

Motion86 函式庫能讓 86Duino 成為一個具備 Arduino 親切好上手特色且容易開發的運動控制器,應用於自動化領域,能加快控制器開發速度並降低開發成本。Motion86 函式庫主要特色如下:

  • 至多 9 軸的步進與伺服馬達運動控制,最高 10MHz 脈波輸出。
  • 最多 3 組獨立軸群。
  • 支援 G-Code。
  • 多軸直線、圓弧、螺旋插補,細插補週期 0.5ms。
  • 支援 JOG 功能。
  • 支援手搖輪 (MPG)。
  • 速度前瞻 (Look Ahead),程式預讀 1024 個單節。
  • 即時反應的速度重設功能 (Feedrate Override)。
  • 可設定電子齒輪比的軸跟隨功能。

接線說明與示例

Motion86 函式庫最多支援 Machine0、Machine1、Machine2 三個軸群,每個軸群可連接控制一台 XYZ 三軸直角坐標系機器 ── 例如 SABLE CNC 工作室 出品的三軸 CNC 雕刻機,如下圖所示:

zero_size

每個 Motion86 軸群提供 X-DIR / X-Pulse、Y-DIR / Y-Pulse、Z-DIR / Z-Pulse 六根接腳,分別連接至機器 X、Y、Z 三軸伺服馬達的方向與脈波輸入。其中,每一軸的脈波輸出皆提供 Pulse/DIR、CW/CCW、A/B Pulse 三種脈波模式,可在初始化階段透過 config_PulseMode() 函式進行組態。下面是每個軸群在不同型號 86Duino 開發板上的接腳對應表:

軸群編號 軸群腳位 86Duino Zero 86Duino One 86Duino EduCake
0 X-DIR 42 42 42
X-Pulse 9 9 9
Y-DIR 43 43 43
Y-Pulse 6 6 6
Z-DIR 44 44 44
Z-Pulse 5 5 5
1 X-DIR 不支援 18 18
X-Pulse 不支援 13 13
Y-DIR 不支援 19 19
Y-Pulse 不支援 11 11
Z-DIR 不支援 20 20
Z-Pulse 不支援 10 10
2 X-DIR 不支援 33 不支援
X-Pulse 不支援 29 不支援
Y-DIR 不支援 34 不支援
Y-Pulse 不支援 30 不支援
Z-DIR 不支援 35 不支援
Z-Pulse 不支援 31 不支援

下面以 Maker 自製 3D 印表機及 CNC 雕刻機時常用的 A4988 步進馬達驅動器為例,提供每個軸群在不同型號 86Duino 開發板上的接線範例:

86Duino Zero 86Duino One 86Duino EduCake
zero_size zero_size zero_size

Machine 類別

此類別提供組態與控制 XYZ 機器軸群的方法,並增加更進階的函式使運動控制更加彈性與多變。

基本方法

基本控制

寫入組態

讀取組態

JOG / MPG 控制

速度重設功能

軸跟隨功能

協助計算工具

使用限制

Motion86 函式庫在運作時會使用 86Duino 內部的計時器 (Timer),TimerWDT 函式庫和 AIServo86 函式庫也會使用該計時器,因此為了避免函式庫彼此發生衝突,這幾個函式庫不能同時使用。


展示影片


函式庫參考主頁面

The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.