technoshop.laser_turret_debug/turret.h

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;
long _homeX;
long _homeY;
long _zeroX;
long _zeroY;
long _currentX;
long _currentY;
long _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