nova-control-command 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/dist/nova-control-command.js +6 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -238,6 +238,16 @@ nova-control> exit
|
|
|
238
238
|
|
|
239
239
|
---
|
|
240
240
|
|
|
241
|
+
## Related packages
|
|
242
|
+
|
|
243
|
+
| package | description |
|
|
244
|
+
| --- | --- |
|
|
245
|
+
| [`nova-control-browser`](../nova-control-browser/README.md) | browser ESM module — Web Serial API (Chrome / Edge 89+) |
|
|
246
|
+
| [`nova-control-node`](../nova-control-node/README.md) | Node.js ESM module — `serialport` package |
|
|
247
|
+
| [`nova-control-mcp-server`](../nova-control-mcp-server/README.md) | MCP server — lets an AI assistant control the robot |
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
241
251
|
## License
|
|
242
252
|
|
|
243
253
|
[MIT License](../../LICENSE.md) © Andreas Rozek
|
|
@@ -146,24 +146,24 @@ function S(e = !1) {
|
|
|
146
146
|
p = n.port, m = Number(n.baud ?? "9600"), h = n.onError ?? "stop";
|
|
147
147
|
})), t.command("home").description("send all servos to their home positions").action(async () => {
|
|
148
148
|
await (await _()).home();
|
|
149
|
-
}), t.command("move").description("set one or more servo positions without interrupting the others").option("--shift-to <
|
|
149
|
+
}), t.command("move").description("set one or more servo positions without interrupting the others").option("--shift-to <angle>", "shift head forward (>90°) or back (<90°) — s1").option("--roll-to <angle>", "roll head clockwise (>90°) or counter-clockwise (<90°) — s2").option("--pitch-to <angle>", "pitch head up (>110°) or down (<110°) — s3").option("--rotate-to <angle>", "rotate body around Z-axis — s4").option("--lift-to <angle>", "lift head on secondary axis, range 20°–150° — s5").action(async (e) => {
|
|
150
150
|
let t = {};
|
|
151
151
|
if (e.shiftTo != null && (t.s1 = Number(e.shiftTo)), e.rollTo != null && (t.s2 = Number(e.rollTo)), e.pitchTo != null && (t.s3 = Number(e.pitchTo)), e.rotateTo != null && (t.s4 = Number(e.rotateTo)), e.liftTo != null && (t.s5 = Number(e.liftTo)), Object.keys(t).length === 0) throw new d("move: specify at least one servo option (--shift-to, --roll-to, --pitch-to, --rotate-to, --lift-to)", u.UsageError);
|
|
152
152
|
let n = await _();
|
|
153
153
|
n.State = t, await n.sendServoState();
|
|
154
|
-
}), t.command("shift-to").description("shift head forward (>90°) or back (<90°) — s1").argument("<
|
|
154
|
+
}), t.command("shift-to").description("shift head forward (>90°) or back (<90°) — s1").argument("<angle>", "target angle in degrees").action(async (e) => {
|
|
155
155
|
let t = await _();
|
|
156
156
|
t.State = { s1: Number(e) }, await t.sendServoState();
|
|
157
|
-
}), t.command("roll-to").description("roll head clockwise (>90°) or counter-clockwise (<90°) — s2").argument("<
|
|
157
|
+
}), t.command("roll-to").description("roll head clockwise (>90°) or counter-clockwise (<90°) — s2").argument("<angle>", "target angle in degrees").action(async (e) => {
|
|
158
158
|
let t = await _();
|
|
159
159
|
t.State = { s2: Number(e) }, await t.sendServoState();
|
|
160
|
-
}), t.command("pitch-to").description("pitch head up (>110°) or down (<110°) — s3").argument("<
|
|
160
|
+
}), t.command("pitch-to").description("pitch head up (>110°) or down (<110°) — s3").argument("<angle>", "target angle in degrees").action(async (e) => {
|
|
161
161
|
let t = await _();
|
|
162
162
|
t.State = { s3: Number(e) }, await t.sendServoState();
|
|
163
|
-
}), t.command("rotate-to").description("rotate body around Z-axis — s4").argument("<
|
|
163
|
+
}), t.command("rotate-to").description("rotate body around Z-axis — s4").argument("<angle>", "target angle in degrees").action(async (e) => {
|
|
164
164
|
let t = await _();
|
|
165
165
|
t.State = { s4: Number(e) }, await t.sendServoState();
|
|
166
|
-
}), t.command("lift-to").description("lift head on secondary axis, range 20°–150° — s5").argument("<
|
|
166
|
+
}), t.command("lift-to").description("lift head on secondary axis, range 20°–150° — s5").argument("<angle>", "target angle in degrees").action(async (e) => {
|
|
167
167
|
let t = await _();
|
|
168
168
|
t.State = { s5: Number(e) }, await t.sendServoState();
|
|
169
169
|
}), t.command("wait").description("pause for <ms> milliseconds before the next command").argument("<ms>", "duration in milliseconds (non-negative number)").action(async (e) => {
|