From 4fad71ec492a7221f05a02bf46401be02b810d03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?PROFERIS=20-=20Mi=C2=B3osz=20Stocki?= Date: Wed, 8 Jul 2026 14:19:39 +0200 Subject: [PATCH] more kinematics --- src/main.cpp | 28 ++++++++++++++++++++++++---- web/js/sections/board-control.js | 2 +- web/js/sections/input-text.js | 2 +- web/js/sections/sequence-editor.js | 2 +- web/js/sections/stepper-test.js | 4 ++-- 5 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 52b95d6..0bcdf9c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -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: 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: 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; } diff --git a/web/js/sections/board-control.js b/web/js/sections/board-control.js index ce54c5a..a921f0c 100644 --- a/web/js/sections/board-control.js +++ b/web/js/sections/board-control.js @@ -123,7 +123,7 @@ function buildHTML() { ${Settings.accel} - +
diff --git a/web/js/sections/input-text.js b/web/js/sections/input-text.js index f2ba0eb..46594ed 100644 --- a/web/js/sections/input-text.js +++ b/web/js/sections/input-text.js @@ -139,7 +139,7 @@ function buildHTML() { ${Settings.accel}
- +
diff --git a/web/js/sections/sequence-editor.js b/web/js/sections/sequence-editor.js index 2bb8f46..8e9310b 100644 --- a/web/js/sections/sequence-editor.js +++ b/web/js/sections/sequence-editor.js @@ -273,7 +273,7 @@ function buildHTML() { ${Settings.accel}
- +
diff --git a/web/js/sections/stepper-test.js b/web/js/sections/stepper-test.js index 4c46fe7..6eea721 100644 --- a/web/js/sections/stepper-test.js +++ b/web/js/sections/stepper-test.js @@ -561,7 +561,7 @@ function buildHTML() {
+ min="100" max="2000" step="50" value="600"/> 600
@@ -569,7 +569,7 @@ function buildHTML() {
+ min="50" max="2000" step="25" value="100"/> 100