style: apply fmt with clang-format

This commit is contained in:
Julien Oculi 2025-06-05 15:27:35 +02:00
parent 3ef45566d5
commit 5575f0cb3c
5 changed files with 93 additions and 108 deletions

View file

@ -1,20 +1,16 @@
#include "math.h" #include "math.h"
//rollH atan((22.5 - 18.5) / 236) ~0.97° // rollH atan((22.5 - 18.5) / 236) ~0.97°
//rollV ~1° // rollV ~1°
double degToRad(double deg) { double degToRad(double deg) { return deg * M_PI / 180.0; }
return deg * M_PI / 180.0;
}
double radToDeg(double rad) { double radToDeg(double rad) { return rad * 180.0 / M_PI; }
return rad * 180.0 / M_PI;
}
void angleToStep(long &stepX, long &stepY, double angleX, double angleY) { void angleToStep(long &stepX, long &stepY, double angleX, double angleY) {
//TODO remove magic numbers // TODO remove magic numbers
double stepRatioX = M_PI / ((51.2 / 15.0) * (100.0 * 64.0)); double stepRatioX = M_PI / ((51.2 / 15.0) * (100.0 * 64.0));
double stepRatioY = M_PI / ((48.0 / 15.0) * (100.0 * 64.0)); double stepRatioY = M_PI / ((48.0 / 15.0) * (100.0 * 64.0));
stepX = angleX / stepRatioX; stepX = angleX / stepRatioX;
stepY = angleY / stepRatioY; stepY = angleY / stepRatioY;
@ -25,18 +21,18 @@ double rollCorrection(double x, double max, double width) {
return x - correction; return x - correction;
} }
void cartesianToPolar(long &stepX, long &stepY, double zeroX, double zeroY, double x, double y, double z) { void cartesianToPolar(long &stepX, long &stepY, double zeroX, double zeroY,
//TODO remove magic numbers double x, double y, double z) {
double distance = 166.0; //turret to screen // TODO remove magic numbers
double offsetY = 21.0; //laser to stand double distance = 166.0; // turret to screen
double offsetX = 0.0; //unused double offsetY = 21.0; // laser to stand
double offsetX = 0.0; // unused
x = -x; //natural axis direction x = -x; // natural axis direction
double dX = x + offsetX; double dX = x + offsetX;
double dY = rollCorrection(y + offsetY, 0.2, 400.0); double dY = rollCorrection(y + offsetY, 0.2, 400.0);
double dZ = z + distance; double dZ = z + distance;
double roll = atan2(4.0, 236.0); double roll = atan2(4.0, 236.0);
double rollY = dX * tan(roll); double rollY = dX * tan(roll);
double rollX = dY * tan(roll); double rollX = dY * tan(roll);

View file

@ -1,4 +1,5 @@
double degToRad(double deg); double degToRad(double deg);
double radToDeg(double rad); double radToDeg(double rad);
void angleToStep(long &stepX, long &stepY, double angleX, double angleY); void angleToStep(long &stepX, long &stepY, double angleX, double angleY);
void cartesianToPolar(long &stepX, long &stepY, double zeroX, double zeroY, double x, double y, double z); void cartesianToPolar(long &stepX, long &stepY, double zeroX, double zeroY,
double x, double y, double z);

View file

@ -1,12 +1,13 @@
#include <kissStepper.h>
#include "config.h"
#include "turret.h" #include "turret.h"
#include "config.h"
#include "maths.h" #include "maths.h"
#include <kissStepper.h>
Turret::Turret( Turret::Turret(int pin_x_direction, int pin_x_pulse, int pin_x_enable,
int pin_x_direction, int pin_x_pulse, int pin_x_enable, int pin_x_home, int pin_x_home, int pin_y_direction, int pin_y_pulse,
int pin_y_direction, int pin_y_pulse, int pin_y_enable, int pin_y_home, int pin_y_enable, int pin_y_home, int pin_laser)
int pin_laser) : _stepperX(pin_x_direction, pin_x_pulse, pin_x_enable), _stepperY(pin_y_direction, pin_y_pulse, pin_y_enable) { : _stepperX(pin_x_direction, pin_x_pulse, pin_x_enable),
_stepperY(pin_y_direction, pin_y_pulse, pin_y_enable) {
_pin_x_direction = pin_x_direction; _pin_x_direction = pin_x_direction;
_pin_x_pulse = pin_x_pulse; _pin_x_pulse = pin_x_pulse;
@ -21,7 +22,7 @@ Turret::Turret(
_pin_laser = pin_laser; _pin_laser = pin_laser;
} }
Turret& Turret::init() { Turret &Turret::init() {
pinMode(_pin_laser, OUTPUT); pinMode(_pin_laser, OUTPUT);
pinMode(_pin_x_direction, OUTPUT); pinMode(_pin_x_direction, OUTPUT);
@ -40,7 +41,7 @@ Turret& Turret::init() {
return *this; return *this;
} }
Turret& Turret::gotoHome() { Turret &Turret::gotoHome() {
long xStop = 0; long xStop = 0;
long yStop = 0; long yStop = 0;
@ -71,8 +72,8 @@ Turret& Turret::gotoHome() {
return *this; return *this;
} }
Turret& Turret::gotoZero() { Turret &Turret::gotoZero() {
//TODO remove magic numbers // TODO remove magic numbers
_stepperX.prepareMove(_homeX + 9300); _stepperX.prepareMove(_homeX + 9300);
_stepperY.prepareMove(_homeY + 3500); _stepperY.prepareMove(_homeY + 3500);
@ -80,9 +81,12 @@ Turret& Turret::gotoZero() {
bool yStop = false; bool yStop = false;
while (true) { while (true) {
if (xStop && yStop) break; if (xStop && yStop)
if (!xStop) xStop = _stepperY.move() == STATE_STOPPED; break;
if (!yStop) yStop = _stepperX.move() == STATE_STOPPED; if (!xStop)
xStop = _stepperY.move() == STATE_STOPPED;
if (!yStop)
yStop = _stepperX.move() == STATE_STOPPED;
} }
_zeroX = _stepperX.getPos(); _zeroX = _stepperX.getPos();
@ -91,18 +95,19 @@ Turret& Turret::gotoZero() {
return *this; return *this;
} }
Turret& Turret::calibrate() { Turret &Turret::calibrate() {
gotoHome(); gotoHome();
gotoZero(); gotoZero();
return *this; return *this;
} }
Turret& Turret::moveTo(double x, double y, double z, Unit unit) { Turret &Turret::moveTo(double x, double y, double z, Unit unit) {
long stepX; long stepX;
long stepY; long stepY;
if (unit == Unit::MM) { if (unit == Unit::MM) {
cartesianToPolar(stepX, stepY, _zeroX, _zeroY, x / 10.0, y / 10.0, z / 10.0); cartesianToPolar(stepX, stepY, _zeroX, _zeroY, x / 10.0, y / 10.0,
z / 10.0);
} }
if (unit == Unit::CM) { if (unit == Unit::CM) {
@ -110,7 +115,8 @@ Turret& Turret::moveTo(double x, double y, double z, Unit unit) {
} }
if (unit == Unit::M) { if (unit == Unit::M) {
cartesianToPolar(stepX, stepY, _zeroX, _zeroY, x * 100.0, y * 100.0, z * 100.0); cartesianToPolar(stepX, stepY, _zeroX, _zeroY, x * 100.0, y * 100.0,
z * 100.0);
} }
if (unit == Unit::STEP) { if (unit == Unit::STEP) {
@ -126,7 +132,7 @@ Turret& Turret::moveTo(double x, double y, double z, Unit unit) {
angleToStep(stepX, stepY, degToRad(x), degToRad(y)); angleToStep(stepX, stepY, degToRad(x), degToRad(y));
} }
//TODO min(valueI, -_homeI); // TODO min(valueI, -_homeI);
_stepperX.prepareMove(_zeroX + stepX); _stepperX.prepareMove(_zeroX + stepX);
_stepperY.prepareMove(_zeroY + stepY); _stepperY.prepareMove(_zeroY + stepY);
@ -134,9 +140,12 @@ Turret& Turret::moveTo(double x, double y, double z, Unit unit) {
bool yStop = false; bool yStop = false;
while (true) { while (true) {
if (xStop && yStop) break; if (xStop && yStop)
if (!xStop) xStop = _stepperX.move() == STATE_STOPPED; break;
if (!yStop) yStop = _stepperY.move() == STATE_STOPPED; if (!xStop)
xStop = _stepperX.move() == STATE_STOPPED;
if (!yStop)
yStop = _stepperY.move() == STATE_STOPPED;
} }
_currentX = x; _currentX = x;
@ -146,7 +155,7 @@ Turret& Turret::moveTo(double x, double y, double z, Unit unit) {
return *this; return *this;
} }
Turret& Turret::moveBy(double x, double y, double z, Unit unit) { Turret &Turret::moveBy(double x, double y, double z, Unit unit) {
long zeroXStored = _zeroX; long zeroXStored = _zeroX;
long zeroYStored = _zeroY; long zeroYStored = _zeroY;
@ -165,51 +174,45 @@ Turret& Turret::moveBy(double x, double y, double z, Unit unit) {
return *this; return *this;
} }
Turret& Turret::moveToX(double x, Unit unit) { Turret &Turret::moveToX(double x, Unit unit) {
return moveTo(x, _currentY, _currentZ, unit); return moveTo(x, _currentY, _currentZ, unit);
} }
Turret& Turret::moveToY(double y, Unit unit) { Turret &Turret::moveToY(double y, Unit unit) {
return moveTo(_currentX, y, _currentZ, unit); return moveTo(_currentX, y, _currentZ, unit);
} }
Turret& Turret::moveToZ(double z, Unit unit) { Turret &Turret::moveToZ(double z, Unit unit) {
return moveTo(_currentX, _currentY, z, unit); return moveTo(_currentX, _currentY, z, unit);
} }
Turret& Turret::moveByX(double x, Unit unit) { Turret &Turret::moveByX(double x, Unit unit) { return moveBy(x, 0, 0, unit); }
return moveBy(x, 0, 0, unit);
}
Turret& Turret::moveByY(double y, Unit unit) { Turret &Turret::moveByY(double y, Unit unit) { return moveTo(0, y, 0, unit); }
return moveTo(0, y, 0, unit);
}
Turret& Turret::moveByZ(double z, Unit unit) { Turret &Turret::moveByZ(double z, Unit unit) { return moveTo(0, 0, z, unit); }
return moveTo(0, 0, z, unit);
}
Turret& Turret::getPosition(double &x, double &y, double &z, Unit unit) { Turret &Turret::getPosition(double &x, double &y, double &z, Unit unit) {
//TODO implement // TODO implement
return *this; return *this;
} }
Turret& Turret::getHome(double &x, double &y, double &z, Unit unit) { Turret &Turret::getHome(double &x, double &y, double &z, Unit unit) {
//TODO implement // TODO implement
return *this; return *this;
} }
Turret& Turret::getZero(double &x, double &y, double &z, Unit unit) { Turret &Turret::getZero(double &x, double &y, double &z, Unit unit) {
//TODO implement // TODO implement
return *this; return *this;
} }
Turret& Turret::laserOn() { Turret &Turret::laserOn() {
digitalWrite(_pin_laser, HIGH); digitalWrite(_pin_laser, HIGH);
return *this; return *this;
} }
Turret& Turret::laserOff() { Turret &Turret::laserOff() {
digitalWrite(_pin_laser, LOW); digitalWrite(_pin_laser, LOW);
return *this; return *this;
} }

View file

@ -4,49 +4,38 @@
#include <kissStepper.h> #include <kissStepper.h>
class Turret { class Turret {
public: public:
enum Unit { MM, CM, M, RAD, DEG, STEP };
enum Unit { Turret(int pin_x_direction, int pin_x_pulse, int pin_x_enable, int pin_x_home,
MM, int pin_y_direction, int pin_y_pulse, int pin_y_enable, int pin_y_home,
CM, int pin_laser);
M,
RAD,
DEG,
STEP
};
Turret( Turret &init();
int pin_x_direction, int pin_x_pulse, int pin_x_enable, int pin_x_home, Turret &gotoHome();
int pin_y_direction, int pin_y_pulse, int pin_y_enable, int pin_y_home, Turret &gotoZero();
int pin_laser
);
Turret& init(); Turret &moveTo(double x, double y, double z, Unit unit = Turret::Unit::CM);
Turret& gotoHome(); Turret &moveBy(double x, double y, double z, Unit unit = Turret::Unit::CM);
Turret& gotoZero();
Turret& moveTo(double x, double y, double z, Unit unit = Turret::Unit::CM); Turret &moveToX(double x, Unit unit = Turret::Unit::CM);
Turret& moveBy(double x, double y, double z, Unit unit = Turret::Unit::CM); Turret &moveToY(double y, Unit unit = Turret::Unit::CM);
Turret &moveToZ(double z, Unit unit = Turret::Unit::CM);
Turret& moveToX(double x, Unit unit = Turret::Unit::CM); Turret &moveByX(double x, Unit unit = Turret::Unit::CM);
Turret& moveToY(double y, Unit unit = Turret::Unit::CM); Turret &moveByY(double y, Unit unit = Turret::Unit::CM);
Turret& moveToZ(double z, Unit unit = Turret::Unit::CM); Turret &moveByZ(double z, Unit unit = Turret::Unit::CM);
Turret& moveByX(double x, Unit unit = Turret::Unit::CM); Turret &getPosition(double &x, double &y, double &z, Unit unit);
Turret& moveByY(double y, Unit unit = Turret::Unit::CM); Turret &getHome(double &x, double &y, double &z, Unit unit);
Turret& moveByZ(double z, Unit unit = Turret::Unit::CM); Turret &getZero(double &x, double &y, double &z, Unit unit);
Turret& getPosition(double &x, double &y, double &z, Unit unit); Turret &calibrate();
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();
Turret& laserOn();
Turret& laserOff();
private:
private:
kissStepper _stepperX; kissStepper _stepperX;
kissStepper _stepperY; kissStepper _stepperY;

View file

@ -1,11 +1,9 @@
#include "config.h" #include "config.h"
#include "turret.h" #include "turret.h"
Turret turret( Turret turret(PIN_X_DIRECTION, PIN_X_PULSE, PIN_X_ENABLE, PIN_X_HOME,
PIN_X_DIRECTION, PIN_X_PULSE, PIN_X_ENABLE, PIN_X_HOME, PIN_Y_DIRECTION, PIN_Y_PULSE, PIN_Y_ENABLE, PIN_Y_HOME,
PIN_Y_DIRECTION, PIN_Y_PULSE, PIN_Y_ENABLE, PIN_Y_HOME, PIN_LASER);
PIN_LASER
);
void setup() { void setup() {
turret.init(); turret.init();
@ -95,6 +93,4 @@ void setup() {
turret.gotoZero(); turret.gotoZero();
} }
void loop() { void loop() {}
}