added homing.

This commit is contained in:
PROFERIS - Mi³osz Stocki
2026-07-06 16:09:06 +02:00
parent a6aa6f00df
commit 2e3780cb0b
4 changed files with 115 additions and 19 deletions
+1
View File
@@ -39,6 +39,7 @@ const ARM = {
l2: 110.0, // distal link length (mm)
STEPS_PER_REV: 2048,
STEP_ANGLE_DEG: 360 / 2048, // ≈ 0.17578125 °/step
HOME_STEPS: { m1: 0, m2: -1024 }, // M1 at 0°, M2 at -180° (arms folded outward)
};
// ── WORKSPACE CONSTRAINTS ─────────────────────────────────────────
+17 -7
View File
@@ -45,8 +45,8 @@ const PX_L2 = IK.ARM.l2 * SV.SCALE;
const PX_D2 = IK.ARM.d2 * SV.SCALE;
// ── Section state ─────────────────────────────────────────────────
let steps1 = 0;
let steps2 = 0;
let steps1 = IK.ARM.HOME_STEPS.m1;
let steps2 = IK.ARM.HOME_STEPS.m2;
let eventCleanup = [];
// ── SVG element refs ──────────────────────────────────────────────
@@ -215,10 +215,16 @@ async function jogMotor(motor, delta) {
}
async function zeroMotor(motor) {
if (motor === 1) steps1 = 0;
else steps2 = 0;
if (motor === 'ALL') {
steps1 = IK.ARM.HOME_STEPS.m1;
steps2 = IK.ARM.HOME_STEPS.m2;
} else if (motor === 1) {
steps1 = IK.ARM.HOME_STEPS.m1;
} else {
steps2 = IK.ARM.HOME_STEPS.m2;
}
renderArmFromSteps();
const cmd = `HOME${motor}`;
const cmd = motor === 'ALL' ? 'HOMEALL' : `HOME${motor}`;
BLE.isConnected()
? await BLE.write(cmd).catch(e => UI.log(e.message, 'error'))
: UI.log(`[sim] ${cmd}`, 'info');
@@ -568,7 +574,7 @@ function buildHTML() {
${[10,50,100,512].map(n=>`<button class="btn btn-ghost" data-motor="1" data-steps="${n}">+${n}</button>`).join('')}
${[10,50,100,512].map(n=>`<button class="btn btn-ghost" data-motor="1" data-steps="-${n}">-${n}</button>`).join('')}
</div>
<button class="btn btn-danger btn-sm btn-full" id="s1-zero">Zero M1</button>
<button class="btn btn-danger btn-sm btn-full" id="s1-zero">Home M1</button>
</div>
<!-- Motor 2 -->
<div class="jog-motor">
@@ -584,9 +590,12 @@ function buildHTML() {
${[10,50,100,512].map(n=>`<button class="btn btn-ghost" data-motor="2" data-steps="${n}">+${n}</button>`).join('')}
${[10,50,100,512].map(n=>`<button class="btn btn-ghost" data-motor="2" data-steps="-${n}">-${n}</button>`).join('')}
</div>
<button class="btn btn-danger btn-sm btn-full" id="s2-zero">Zero M2</button>
<button class="btn btn-danger btn-sm btn-full" id="s2-zero">Home M2</button>
</div>
</div>
<div style="margin-top: 12px;">
<button class="btn btn-danger btn-full" id="sall-zero" style="padding: 10px; font-weight: bold; font-size: 0.9rem;">HOME BOTH MOTORS</button>
</div>
</div>
<!-- Event log -->
@@ -698,6 +707,7 @@ const StepperTestSection = {
document.getElementById('s2-ccw').addEventListener('click', () => jogMotor(2, -gs(2)));
document.getElementById('s1-zero').addEventListener('click', () => zeroMotor(1));
document.getElementById('s2-zero').addEventListener('click', () => zeroMotor(2));
document.getElementById('sall-zero').addEventListener('click', () => zeroMotor('ALL'));
// ── Quick-step buttons ────────────────────────────────────────
container.querySelectorAll('[data-motor][data-steps]').forEach(btn => {