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]>
39 lines
1.2 KiB
Markdown
39 lines
1.2 KiB
Markdown
---
|
|
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.
|