feat(uno-q): bundle the granular skill set alongside arduino-uno-q on every node

Vendors the fork's 11 granular UNO Q skills (bridge, flashing, led-matrix,
uno-q-hardware, sketch-patterns, modulino, linux-led, audio, vision, wireless,
arduino-app-lab) next to the comprehensive arduino-uno-q skill, and installs the
whole set into every agent's workspace on each board.

Why both: the comprehensive skill is the rich cloud reference (read_skill →
references); the granular skills are keyword-triggered and match the fork's eager
skill-inliner rules, so the on-board Qwen auto-inlines them (no read_skill
round-trip). flashing + led-matrix carry the exact uno_q_flash + frame-API /
ArduinoGraphics-not-installed detail that makes flashing reliable.

- push-skill.sh generalized: a single skill dir (has SKILL.md) OR a parent dir
  installs every skill under it; provision-fleet now ships all of skills/.
- Verified on board 65301572: cloud/Sonnet-5 lists all 12 skills.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
Omar Sobh
2026-07-16 09:32:11 -07:00
co-authored by Claude Opus 4.8
parent d2135a1938
commit 62c435c648
14 changed files with 555 additions and 37 deletions
+38
View File
@@ -0,0 +1,38 @@
---
name: vision
description: Camera and computer vision on the Arduino Uno Q — MIPI-CSI-2 camera via V4L2/GStreamer and OpenCV on the Linux side. Load this for capturing images/frames, camera pipelines, or running vision on the board.
---
# Vision on the Uno Q (Linux side)
The camera (MIPI-CSI-2) is a **Linux/MPU** device exposed via **V4L2**
(`/dev/video0`). Capture and processing run on the MPU, not the MCU.
## Capture a frame
Use the **`camera`** tool — it runs a single-frame GStreamer pipeline and writes a
JPEG (args: `device`, `width`, `height`, `output` under /tmp, /var/tmp, or $HOME).
Equivalent pipeline it runs:
```sh
gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1 \
! video/x-raw,width=1280,height=720 ! videoconvert ! jpegenc \
! filesink location=/tmp/frame.jpg
```
## Processing (Python, MPU)
```python
import cv2
img = cv2.imread("/tmp/frame.jpg")
# detect / annotate / stream ...
```
The Adreno 702 GPU provides hardware H.264/H.265/VP9 encode/decode for streaming.
## Pitfalls
- The camera is not accessible from a sketch — it's a Linux device. Drive vision
from Python (MPU); use Bridge if a sketch needs the result.
- `output` for `camera` must be an absolute path under /tmp, /var/tmp, or $HOME.