arcXY()

説明

時計回りまたは反時計回りの円弧を使用します。方向は、円弧運動が発生するZ軸の正方向からとなります。
この方式では、異なる入力パラメータに応じて2つの異なる方法で円弧経路を制御します。
1. 中心モード – 中心と終点の位置を指定して円弧経路を計算します。
2. 半径モード – 半径と終点の位置を指定して円弧経路を計算します。
※ どの円弧運動方式を使用しても、パラメータ設定が誤っているとターゲットが円弧上になく、機械が予期しない動きをする可能性がありますのでご注意ください。
様々な練習方法について知りたい場合は、練習方法の説明ページを参照してください。

文法

machine.arcXY(r, dstX, dstY);
machine.arcXY(r, dstX, dstY, revDir);
machine.arcXY(r, dstX, dstY, revDir, feedrate);
machine.arcXY(cX, cY, dstX, dstY);
machine.arcXY(cX, cY, dstX, dstY, revDir);
machine.arcXY(cX, cY, dstX, dstY, revDir, feedrate);

パラメータ

machine: Machine オブジェクトです。

r: 半径モードの場合の円弧の半径。

cX: 中心モードの場合の中心 X 座標。

cY: 中心モードの場合の中心 Y 座標。

dstX: ターゲット X 座標。

dstY: ターゲット Y 座標。

revDir: 方向を反転します。反時計回りの場合は true、時計回りの場合は false を指定します。デフォルトでは時計回りです。

feedrate: 送り速度。パラメータが渡されない場合は、最後に記録された送り速度が使用されます。

戻り値

bool:

true: マシンが存在し、正常に作成されました。
false: マシンが存在しないか、作成に失敗しました。

マシンの基本パラメータを設定し、XY平面上で2つのモードでマシンを移動させます。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

#include "Motion86.h"

 

// マシンオブジェクトを生成します。マシン0~2まで、それぞれ3軸のマシンを最大3台使用できます。

Machine machine(0);

 

// ステッピングモーターの有効ピン。

int EnablePin = 4;

 

void setup() {

  while (!Serial);

  pinMode(EnablePin, OUTPUT);

 

  // 必要に応じて、軸の方向を反転できます。

  // この例では、X軸とY軸の方向を反転する必要があります。

  machine.config_ReverseDirection(AXIS_X);

  machine.config_ReverseDirection(AXIS_Y);

 

  // PPU(パルス/ユニット)は、さまざまなニーズに応じた仮想的な長さの単位です。

  // この例では、X軸の単位長さは80パルスに設定されており、これは実際のアプリケーションでは1mmに相当します。

  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() {

  // 半径10で時計回りに(10, 10, 0)に移動します。

  machine.arcXY(10, 10, 10, true);

 

  // 移動反時計回りに半径 10 で (0, 0, 0) まで移動します。

  machine.arcXY(10, 0, 0, false);

 

  // 円を (0, 0, 10) から時計回りに (10, 10, 0) まで移動します。

  machine.arcXY(0, 10, 10, 10, true);

 

  // 中心 (0, 0, 10) から反時計回りに (0, 0, 0) まで移動します。

  machine.arcXY(0, 10, 0, 0, false);

 

  // 計画された移動が完了するまで待機します。

  while (machine.isMoving());

 

参照

arcYZ()
arcXZ()
arcXY_Theta()
arcYZ_Theta()
arcXZ_Theta()


関数ライブラリリファレンスのメインページ

86Duinoの参考資料のテキストはクリエイティブ・コモンズの表示に従っています-Creative Commons Attribution-ShareAlike 3.0 License。参考資料内のコード例はパブリック ドメインにリリースされています。