refactor!: remove zero offset magic number

This commit is contained in:
Julien Oculi 2025-06-12 09:46:52 +02:00
parent 9a57d8a827
commit 5f0235eec7
4 changed files with 16 additions and 8 deletions

View file

@ -32,6 +32,10 @@
#define STEP_RATIO_X (6432 / M_PI) #define STEP_RATIO_X (6432 / M_PI)
#define STEP_RATIO_Y (6432 / M_PI) #define STEP_RATIO_Y (6432 / M_PI)
// Offset between home and zero [step]
#define ZERO_OFFSET_X (0)
#define ZERO_OFFSET_Y (2500)
// Offset between turret and lidar [cm] // Offset between turret and lidar [cm]
#define OFFSET_X (0) #define OFFSET_X (0)
#define OFFSET_Y (21) #define OFFSET_Y (21)

View file

@ -3,8 +3,8 @@
#include "maths.h" #include "maths.h"
#include <kissStepper.h> #include <kissStepper.h>
Turret::Turret(StepRatio step_ratio, Offset offset, PinMap pin_map_x, Turret::Turret(StepRatio step_ratio, Offset offset, ZeroOffset zero_offset,
PinMap pin_map_y) PinMap pin_map_x, PinMap pin_map_y)
: _stepper(kissStepper(static_cast<uint8_t>(pin_map_x.direction), : _stepper(kissStepper(static_cast<uint8_t>(pin_map_x.direction),
static_cast<uint8_t>(pin_map_x.pulse), static_cast<uint8_t>(pin_map_x.pulse),
static_cast<uint8_t>(pin_map_x.enable)), static_cast<uint8_t>(pin_map_x.enable)),
@ -16,6 +16,7 @@ Turret::Turret(StepRatio step_ratio, Offset offset, PinMap pin_map_x,
_pin.y = pin_map_y; _pin.y = pin_map_y;
_step_ratio = step_ratio; _step_ratio = step_ratio;
_offset = offset; _offset = offset;
_zero_offset = zero_offset;
} }
Turret::~Turret() { Turret::~Turret() {
@ -79,9 +80,8 @@ Turret &Turret::gotoHome() {
} }
Turret &Turret::gotoZero() { Turret &Turret::gotoZero() {
// TODO remove magic numbers _stepper.x.prepareMove(_home.x + _zero_offset.x);
_stepper.x.prepareMove(_home.x + 0); _stepper.y.prepareMove(_home.y + _zero_offset.y);
_stepper.y.prepareMove(_home.y + 2500);
bool xStop = false; bool xStop = false;
bool yStop = false; bool yStop = false;

View file

@ -30,6 +30,8 @@ public:
// y -> laser to stand // y -> laser to stand
// z -> unused // z -> unused
using ZeroOffset = vec2<long>;
struct PinMap { struct PinMap {
int home; int home;
int direction; int direction;
@ -38,8 +40,8 @@ public:
int laser; int laser;
}; };
Turret(StepRatio step_ratio, Offset offset, PinMap pin_map_x, Turret(StepRatio step_ratio, Offset offset, ZeroOffset zero_offset,
PinMap pin_map_y); PinMap pin_map_x, PinMap pin_map_y);
~Turret(); ~Turret();
Turret &init(); Turret &init();
@ -74,6 +76,7 @@ private:
vec2<PinMap> _pin; vec2<PinMap> _pin;
StepRatio _step_ratio; StepRatio _step_ratio;
Offset _offset; Offset _offset;
ZeroOffset _zero_offset;
}; };
#endif #endif

View file

@ -19,8 +19,9 @@ Turret::PinMap pinY = {
Turret::StepRatio stepRatio(STEP_RATIO_X, STEP_RATIO_Y); Turret::StepRatio stepRatio(STEP_RATIO_X, STEP_RATIO_Y);
Turret::Offset offset(OFFSET_X, OFFSET_Y, OFFSET_Z); Turret::Offset offset(OFFSET_X, OFFSET_Y, OFFSET_Z);
Turret::ZeroOffset zeroOffset(ZERO_OFFSET_X, ZERO_OFFSET_Y);
Turret turret(stepRatio, offset, pinX, pinY); Turret turret(stepRatio, offset, zeroOffset, pinX, pinY);
void setup() { void setup() {
turret.init(); turret.init();