more kinematics

This commit is contained in:
PROFERIS - Mi³osz Stocki
2026-07-08 14:19:39 +02:00
parent 400d3c914b
commit 4fad71ec49
5 changed files with 29 additions and 9 deletions
+24 -4
View File
@@ -49,6 +49,8 @@
#define STEPS_PER_REV 2048
#define DEFAULT_SPEED 600.0f // steps/sec
#define DEFAULT_ACCEL 100.0f // steps/sec²
float currentMaxSpeed = DEFAULT_SPEED;
float currentAccel = DEFAULT_ACCEL;
// ─── BLE UUIDs ────────────────────────────────────────────────────
#define SERVICE_UUID "18f3b235-9831-4c75-8ec0-210469b820a0"
@@ -147,6 +149,7 @@ void parseCommand(const String &cmd) {
// SPD:<n>
if (cmd.startsWith("SPD:")) {
float spd = cmd.substring(4).toFloat();
currentMaxSpeed = spd;
stepper1.setMaxSpeed(spd);
stepper2.setMaxSpeed(spd);
Serial.printf("[CFG] Max speed → %.0f steps/sec\n", spd);
@@ -155,6 +158,7 @@ void parseCommand(const String &cmd) {
// ACC:<n>
if (cmd.startsWith("ACC:")) {
float acc = cmd.substring(4).toFloat();
currentAccel = acc;
stepper1.setAcceleration(acc);
stepper2.setAcceleration(acc);
Serial.printf("[CFG] Acceleration → %.0f steps/sec²\n", acc);
@@ -281,6 +285,10 @@ void loop() {
if (stepper1.distanceToGo() == 0 && stepper2.distanceToGo() == 0) {
stepper1.disableOutputs();
stepper2.disableOutputs();
stepper1.setMaxSpeed(currentMaxSpeed);
stepper2.setMaxSpeed(currentMaxSpeed);
stepper1.setAcceleration(currentAccel);
stepper2.setAcceleration(currentAccel);
homingState = HOME_IDLE;
Serial.println("[SYS] Homing all complete.");
}
@@ -293,6 +301,8 @@ void loop() {
} else if (homingState == HOME_1_PHASE2) {
if (stepper1.distanceToGo() == 0) {
stepper1.disableOutputs();
stepper1.setMaxSpeed(currentMaxSpeed);
stepper1.setAcceleration(currentAccel);
homingState = HOME_IDLE;
}
} else if (homingState == HOME_2_PHASE1) {
@@ -304,6 +314,8 @@ void loop() {
} else if (homingState == HOME_2_PHASE2) {
if (stepper2.distanceToGo() == 0) {
stepper2.disableOutputs();
stepper2.setMaxSpeed(currentMaxSpeed);
stepper2.setAcceleration(currentAccel);
homingState = HOME_IDLE;
}
}
@@ -323,19 +335,27 @@ void loop() {
void performHomingAll() {
Serial.println("[SYS] Homing all: Phase 1 (Stall UP)");
stepper1.move(-2048);
stepper2.move(2048);
stepper1.setMaxSpeed(1500);
stepper2.setMaxSpeed(1500);
stepper1.setAcceleration(1500);
stepper2.setAcceleration(1500);
stepper1.move(-1200);
stepper2.move(1200);
homingState = HOME_ALL_PHASE1;
}
void performHoming1() {
Serial.println("[S1] Homing Motor 1: Phase 1 (Stall UP)");
stepper1.move(-2048);
stepper1.setMaxSpeed(1500);
stepper1.setAcceleration(1500);
stepper1.move(-1200);
homingState = HOME_1_PHASE1;
}
void performHoming2() {
Serial.println("[S2] Homing Motor 2: Phase 1 (Stall UP)");
stepper2.move(2048);
stepper2.setMaxSpeed(1500);
stepper2.setAcceleration(1500);
stepper2.move(1200);
homingState = HOME_2_PHASE1;
}