66 lines
1.5 KiB
C++
66 lines
1.5 KiB
C++
#ifndef TURRET_H
|
|
#define TURRET_H
|
|
|
|
#include <kissStepper.h>
|
|
|
|
class Turret {
|
|
public:
|
|
enum Unit { MM, CM, M, RAD, DEG, STEP };
|
|
|
|
Turret(int pin_x_direction, int pin_x_pulse, int pin_x_enable, int pin_x_home,
|
|
int pin_y_direction, int pin_y_pulse, int pin_y_enable, int pin_y_home,
|
|
int pin_laser);
|
|
|
|
Turret &init();
|
|
Turret &gotoHome();
|
|
Turret &gotoZero();
|
|
|
|
Turret &moveTo(double x, double y, double z, Unit unit = Turret::Unit::CM);
|
|
Turret &moveBy(double x, double y, double z, Unit unit = Turret::Unit::CM);
|
|
|
|
Turret &moveToX(double x, Unit unit = Turret::Unit::CM);
|
|
Turret &moveToY(double y, Unit unit = Turret::Unit::CM);
|
|
Turret &moveToZ(double z, Unit unit = Turret::Unit::CM);
|
|
|
|
Turret &moveByX(double x, Unit unit = Turret::Unit::CM);
|
|
Turret &moveByY(double y, Unit unit = Turret::Unit::CM);
|
|
Turret &moveByZ(double z, Unit unit = Turret::Unit::CM);
|
|
|
|
Turret &getPosition(double &x, double &y, double &z, Unit unit);
|
|
Turret &getHome(double &x, double &y, double &z, Unit unit);
|
|
Turret &getZero(double &x, double &y, double &z, Unit unit);
|
|
|
|
Turret &calibrate();
|
|
|
|
Turret &laserOn();
|
|
Turret &laserOff();
|
|
|
|
private:
|
|
kissStepper _stepperX;
|
|
kissStepper _stepperY;
|
|
|
|
int _homeX;
|
|
int _homeY;
|
|
|
|
int _zeroX;
|
|
int _zeroY;
|
|
|
|
int _currentX;
|
|
int _currentY;
|
|
int _currentZ;
|
|
|
|
int _pin_x_direction;
|
|
int _pin_x_pulse;
|
|
int _pin_x_enable;
|
|
|
|
int _pin_y_direction;
|
|
int _pin_y_pulse;
|
|
int _pin_y_enable;
|
|
|
|
int _pin_x_home;
|
|
int _pin_y_home;
|
|
int _pin_laser;
|
|
};
|
|
|
|
#endif
|