Initial effects

This commit is contained in:
osiu97
2026-07-08 21:02:48 +02:00
parent 1a94ca3947
commit 0ef1e99daf
8 changed files with 243 additions and 78 deletions
+3 -2
View File
@@ -190,7 +190,8 @@ hamburger (`☰`) button. It contains `<button data-route="...">` nav items that
Centralised trajectory generation and streaming module.
- **Why**: Moving side-to-side linearly in joint space causes the arms to arc dangerously out-of-bounds at the top.
- **How it works**: Intercepts `Motion.goto(x, y)`, slices the Cartesian straight line into small segments (max `25 mm` by default, configurable in `Motion.CONFIG.SEGMENT_SIZE_MM`), and streams them to the ESP32.
- **Dynamic Blending**: It monitors `P:` positional updates from the ESP32 and fires the next waypoint *before* `AccelStepper` decelerates (when within `BLEND_THRESHOLD_STEPS`). This produces a seamless Cartesian trajectory with no MCU code changes and allows for future "visual flavor" movement effects (e.g. snaky, erratic).
- **Dynamic Blending**: It monitors `P:` positional updates from the ESP32 and fires the next waypoint *before* `AccelStepper` decelerates (when within `BLEND_THRESHOLD_STEPS`). This produces a seamless Cartesian trajectory with no MCU code changes.
- **Motion Effects**: The `Motion.goto(x, y, mode)` method accepts visual flavor modes (snaky, erratic, jumpy, hesitant, overshoot, random, direct). The system translates these into path perturbations and dynamic speed/acceleration modifiers (`SPD:` and `ACC:` BLE commands injected during execution) to create complex behavior over the linkage while maintaining safety limits.
- **Simulation Sync**: In simulation mode, `Motion.goto()` instantly updates its internal steps and manually dispatches a fake `ble:status` event containing `P:s1,s2`. This allows all UI components to effortlessly sync their visual state using their existing BLE listeners.
---
@@ -405,7 +406,7 @@ The router currently only has three routes. These sections need to be created/ex
### `board-control` section (implemented)
- Uses predefined background maps (SVG/PNG) with corresponding JSON config files specifying clickable coordinates in physical mm.
- Click a spot on the map or select from a compact list → IK move to coordinates.
- Supports movement modes (e.g., Direct, Erratic, Random, Snaky).
- Supports movement modes (e.g., Direct, Snaky, Erratic, Jumpy, Hesitant, Overshoot, Random).
- Requires arm to be homed; homing state is persisted across sessions via `localStorage`.
### `input-text` section (implemented)