circleXY()

描述

使用順時針弧或逆時針劃一個完整的圓。方向是從發生圓周運動的 Z 軸的正方向看的。
此方法使用圓心模式來控制弧線路徑,也由於是一個完整的圓周運動,所以目標位置將會回到起始位置。
如欲了解各種運動方法請詳見運動方法解說頁面。

語法


machine.circleXY(cX, cY);
machine.circleXY(cX, cY, revDir);
machine.circleXY(cX, cY, revDir, feedrate);

參數

machine:為 Machine物件。

cX:圓心模式下的圓心 X 座標。

cY:圓心模式下的圓心 Y 座標。

revDir:反轉方向,逆時針時使用 true,順時針時使用 false,預設使用順時針。

feedrate:進給速度,不傳參數時將使用最後一次記錄的進給速度。

回傳

bool:

true: 機器存在且創建成功。

false: 機器不存在或創建失敗。

範例

設定機器的基本參數,並將機器在 XY 平面上劃圓。

 
#include "Motion86.h"

// 產生機器物件,最多可使用 machine 0~2 三台機器,每台機器三軸。 
Machine machine(0);

// 步進馬達 enable pin。
int EnablePin = 4;

void setup() {
  while (!Serial);
  pinMode(EnablePin, OUTPUT);

  // 若有需要,可以反轉運動軸的運動方向。
  // 在此範例中,需要反轉 x 軸和 y 軸的方向。
  machine.config_ReverseDirection(AXIS_X);
  machine.config_ReverseDirection(AXIS_Y);

  // PPU (pulse per unit) 是一虛擬長度單位,依照不同需求而定。
  // 此例 x 軸的單位長度設定為 80 pulses,對應到實際應用為 1 mm。
  machine.config_PPU(AXIS_X, 80.0);
  machine.config_PPU(AXIS_Y, 80.0);
  machine.config_PPU(AXIS_Z, 1600.0);

  // 控制之前,必須啟動機器。
  machine.machineOn();
  machine.setDefaultFeedrate(400);

  // 啟動步進馬達。
  digitalWrite(EnablePin, LOW);
}

void loop() {
  // 以圓心 (0, 10, 0) 順時針移動一個圓。
  machine.circleXY(0, 10, true);

  // 以圓心 (0, 10, 0) 逆時針移動一個圓。
  machine.circleXY(0, 10, false);
  
  // 等待直到已規劃之運動完成。
  while (machine.isMoving());
}

See also


函式庫參考主頁面

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.