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
48
49
50
51
52
|
#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() {
// 向左移到 (-10, 0)。
machine.line(-10, 0, 0);
// 以半径 10 顺时针移动 90 度到 (0, 10)。
machine.arcXY(10, 0, 10, true );
// 向下移到 (0, -10)。
machine.line(0, -10, 0);
// 以半径 10 逆时针移动 90 度到 (10, 0)。
machine.arcXY(10, 10, 0, false );
// 向左移到 (0, 0)。
machine.line(0, 0, 0);
// 运动将于 1 秒后停止。
delay(1000);
machine.emgStop();
machine.clearEMGStop();
}
|