Upgrade pathing
This commit is contained in:
@@ -195,8 +195,8 @@ async function moveToXY(targetX, targetY) {
|
||||
|
||||
const { theta1, theta2 } = IK.solve(targetX, targetY);
|
||||
|
||||
const newSteps1 = IK.radToStepsClosest(theta1, steps1);
|
||||
const newSteps2 = IK.radToStepsClosest(theta2, steps2);
|
||||
const newSteps1 = IK.radToStepsAbsolute(theta1, 1);
|
||||
const newSteps2 = IK.radToStepsAbsolute(theta2, 2);
|
||||
|
||||
const cmd = `X:${newSteps1},${newSteps2}`;
|
||||
|
||||
@@ -252,6 +252,9 @@ async function zeroMotor(motor) {
|
||||
renderArmFromSteps();
|
||||
console.log(`[sim] ${cmd}`);
|
||||
UI.log(`[sim] ${cmd}`, 'info');
|
||||
|
||||
const warningEl = document.getElementById('home-warning');
|
||||
if (warningEl) warningEl.style.display = localStorage.getItem('wiji_homed') === 'true' ? 'none' : 'block';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -498,7 +501,10 @@ function buildHTML() {
|
||||
|
||||
<!-- Current position -->
|
||||
<div class="card">
|
||||
<div class="card-header"><span class="card-title">Current Position</span></div>
|
||||
<div class="card-header">
|
||||
<span class="card-title">Current Position</span>
|
||||
<span id="home-warning" style="font-size:0.75rem;color:var(--accent-amber);font-weight:600;display:none;">⚠️ Not Homed</span>
|
||||
</div>
|
||||
<div class="pos-grid">
|
||||
<div class="pos-box">
|
||||
<div class="pos-val xy" id="curr-x">0.0</div>
|
||||
@@ -622,6 +628,7 @@ function buildHTML() {
|
||||
</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>
|
||||
<button class="btn btn-warning btn-full" id="fake-home" style="padding: 8px; margin-top: 8px; font-weight: bold; font-size: 0.8rem; background-color: transparent; border: 1px solid var(--accent-amber); color: var(--accent-amber);">Reset Position</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -736,6 +743,20 @@ const StepperTestSection = {
|
||||
document.getElementById('s1-zero').addEventListener('click', () => zeroMotor(1));
|
||||
document.getElementById('s2-zero').addEventListener('click', () => zeroMotor(2));
|
||||
document.getElementById('sall-zero').addEventListener('click', () => zeroMotor('ALL'));
|
||||
document.getElementById('fake-home').addEventListener('click', async () => {
|
||||
localStorage.setItem('wiji_homed', 'false');
|
||||
const warningEl = document.getElementById('home-warning');
|
||||
if (warningEl) warningEl.style.display = 'block';
|
||||
if (BLE.isConnected()) {
|
||||
await BLE.write('ZEROALL').catch(e => UI.log(e.message, 'error'));
|
||||
} else {
|
||||
steps1 = IK.ARM.HOME_STEPS.m1;
|
||||
steps2 = IK.ARM.HOME_STEPS.m2;
|
||||
renderArmFromSteps();
|
||||
console.log(`[sim] ZEROALL`);
|
||||
UI.log(`[sim] ZEROALL (Reset Position)`, 'info');
|
||||
}
|
||||
});
|
||||
|
||||
// ── Quick-step buttons ────────────────────────────────────────
|
||||
container.querySelectorAll('[data-motor][data-steps]').forEach(btn => {
|
||||
@@ -796,6 +817,9 @@ const StepperTestSection = {
|
||||
];
|
||||
|
||||
// ── Initial render ─────────────────────────────────────────────
|
||||
const warningEl = document.getElementById('home-warning');
|
||||
if (warningEl) warningEl.style.display = localStorage.getItem('wiji_homed') === 'true' ? 'none' : 'block';
|
||||
|
||||
renderArmFromSteps();
|
||||
UI.log('Stepper Test ready — 5-bar parallel IK active.', 'success');
|
||||
UI.log(`Arm: d=${IK.ARM.d}mm l1=${IK.ARM.l1}mm l2=${IK.ARM.l2}mm`, 'info');
|
||||
|
||||
Reference in New Issue
Block a user