Update from Sync Service
This commit is contained in:
331
wiki/Resources/Obsidian/Rclone管理WebDAV笔记
Executable file
331
wiki/Resources/Obsidian/Rclone管理WebDAV笔记
Executable file
@@ -0,0 +1,331 @@
|
||||
# Rclone 管理 WebDAV 笔记
|
||||
|
||||
> 使用 rclone 命令行工具管理 Obsidian WebDAV 服务器
|
||||
|
||||
---
|
||||
|
||||
## ✅ 实测成功!
|
||||
|
||||
**rclone 可以连接你的 WebDAV 服务器!**
|
||||
|
||||
---
|
||||
|
||||
## 安装 rclone
|
||||
|
||||
### Linux/macOS/Windows
|
||||
|
||||
```bash
|
||||
# 下载最新版本
|
||||
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
|
||||
unzip rclone-current-linux-amd64.zip
|
||||
sudo mv rclone-*-linux-amd64/rclone /usr/local/bin/
|
||||
sudo chmod +x /usr/local/bin/rclone
|
||||
rm -rf rclone-*-linux-amd64*
|
||||
|
||||
# 验证安装
|
||||
rclone --version
|
||||
```
|
||||
|
||||
### Docker 环境(无需安装)
|
||||
|
||||
```bash
|
||||
# 直接下载二进制文件
|
||||
wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
|
||||
unzip rclone-current-linux-amd64.zip
|
||||
./rclone-v*-linux-amd64/rclone --version
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 配置 WebDAV 远程
|
||||
|
||||
### 1. 交互式配置
|
||||
|
||||
```bash
|
||||
rclone config
|
||||
|
||||
# 步骤:
|
||||
# n) 新建远程
|
||||
# name: obsidian-webdav
|
||||
# Storage: webdav
|
||||
# URL: http://8.134.220.229:13803/实践积累
|
||||
# vendor: other
|
||||
# user: admin
|
||||
# password: blackhill
|
||||
```
|
||||
|
||||
### 2. 手动创建配置文件
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.config/rclone
|
||||
|
||||
cat > ~/.config/rclone/rclone.conf << 'EOF'
|
||||
[obsidian-webdav]
|
||||
type = webdav
|
||||
url = http://8.134.220.229:13803/实践积累
|
||||
vendor = other
|
||||
user = admin
|
||||
pass = blackhill
|
||||
EOF
|
||||
```
|
||||
|
||||
⚠️ **注意**:某些 WebDAV 服务器不支持 Digest 认证,需要用 Basic 认证。
|
||||
|
||||
### 3. 测试连接
|
||||
|
||||
```bash
|
||||
# 列出所有文件
|
||||
rclone ls obsidian-webdav: --max-depth 5
|
||||
|
||||
# 列出所有文件夹
|
||||
rclone lsd obsidian-webdav:
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 常用命令
|
||||
|
||||
### 查看文件
|
||||
|
||||
```bash
|
||||
# 列出根目录
|
||||
rclone ls obsidian-webdav:
|
||||
|
||||
# 列出指定目录
|
||||
rclone ls obsidian-webdav:AI工程
|
||||
|
||||
# 递归列出所有文件
|
||||
rclone ls obsidian-webdav: --max-depth 10
|
||||
|
||||
# 按大小排序显示
|
||||
rclone ls obsidian-webdav: --max-depth 1 | sort -k1 -n
|
||||
```
|
||||
|
||||
### 上传文件
|
||||
|
||||
```bash
|
||||
# 上传单个文件
|
||||
rclone copy /path/to/file.md obsidian-webdav:目标文件夹/
|
||||
|
||||
# 上传整个目录
|
||||
rclone copy /path/to/folder obsidian-webdav:目标文件夹/
|
||||
|
||||
# 示例:上传到 AI工程 文件夹
|
||||
rclone copy ~/笔记/AI工程.md obsidian-webdav:AI工程/
|
||||
```
|
||||
|
||||
### 下载文件
|
||||
|
||||
```bash
|
||||
# 下载单个文件
|
||||
rclone copy obsidian-webdav:AI工程/code-reviewer技能.md /tmp/
|
||||
|
||||
# 下载整个文件夹
|
||||
rclone copy obsidian-webdav:AI工程 /tmp/ai-folder/
|
||||
```
|
||||
|
||||
### 同步本地与远程
|
||||
|
||||
```bash
|
||||
# 同步本地文件夹到 WebDAV(单向)
|
||||
rclone sync /path/to/local obsidian-webdav:remote --progress
|
||||
|
||||
# 双向同步(需要小心使用)
|
||||
rclone bisync /path/to/local obsidian-webdav:remote --progress
|
||||
```
|
||||
|
||||
### 删除文件
|
||||
|
||||
```bash
|
||||
# 删除远程文件
|
||||
rclone delete obsidian-webdav:文件夹/文件名.md
|
||||
|
||||
# 删除空文件夹
|
||||
rclone rmdir obsidian-webdav:空文件夹/
|
||||
```
|
||||
|
||||
### 搜索文件
|
||||
|
||||
```bash
|
||||
# 搜索文件名包含关键字的文件
|
||||
rclone ls obsidian-webdav: | grep "关键字"
|
||||
|
||||
# 搜索多个关键词
|
||||
rclone ls obsidian-webdav: | grep -E "关键词1|关键词2"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 挂载为本地目录(可选)
|
||||
|
||||
将 WebDAV 挂载为本地文件夹,像操作本地文件一样使用。
|
||||
|
||||
### 需要 FUSE 支持
|
||||
|
||||
```bash
|
||||
# Debian/Ubuntu 安装 fuse
|
||||
sudo apt-get install fuse
|
||||
|
||||
# 检查 FUSE 可用
|
||||
cat /proc/filesystems | grep fuse
|
||||
```
|
||||
|
||||
### 挂载命令
|
||||
|
||||
```bash
|
||||
# 创建挂载点
|
||||
mkdir -p ~/obsidian-webdav
|
||||
|
||||
# 前台运行(测试用)
|
||||
rclone mount obsidian-webdav: ~/obsidian-webdav --vv
|
||||
|
||||
# 后台运行
|
||||
rclone mount obsidian-webdav: ~/obsidian-webdav \
|
||||
--daemon \
|
||||
--vfs-cache-mode writes \
|
||||
--allow-other
|
||||
|
||||
# 查看挂载状态
|
||||
df -h | grep obsidian
|
||||
|
||||
# 卸载
|
||||
fusermount -uz ~/obsidian-webdav
|
||||
```
|
||||
|
||||
### 开机自启(systemd)
|
||||
|
||||
```bash
|
||||
cat > ~/.config/systemd/user/rclone-obsidian.service << 'EOF'
|
||||
[Unit]
|
||||
Description=rclone mount for Obsidian WebDAV
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/local/bin/rclone mount obsidian-webdav: %h/obsidian-webdav \
|
||||
--vfs-cache-mode writes \
|
||||
--allow-other
|
||||
ExecStop=/bin/fusermount -uz %h/obsidian-webdav
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
EOF
|
||||
|
||||
# 启用服务
|
||||
systemctl --user enable rclone-obsidian.service
|
||||
systemctl --user start rclone-obsidian.service
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 与 Obsidian Headless 配合使用
|
||||
|
||||
安装 rclone 后,可以配合 obsidian-headless 使用:
|
||||
|
||||
```bash
|
||||
# 1. 挂载 WebDAV 为本地目录
|
||||
rclone mount obsidian-webdav: ~/obsidian-webdav --daemon --vfs-cache-mode writes
|
||||
|
||||
# 2. 配置 obsidian-headless 使用该目录
|
||||
echo "~/obsidian-webdav" > ~/.config/obsidian-headless/vault-path
|
||||
|
||||
# 3. 使用自然语言管理笔记
|
||||
obs创建笔记 新想法
|
||||
obs搜索笔记 关键字
|
||||
obs列出所有
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 你的服务器配置
|
||||
|
||||
```
|
||||
服务器: http://8.134.220.229:13803
|
||||
路径: /实践积累
|
||||
用户名: admin
|
||||
密码: blackhill
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Q: 连接返回 401 Unauthorized
|
||||
|
||||
**原因**:某些 WebDAV 服务器不支持 Digest 认证
|
||||
|
||||
**解决**:在配置文件中使用明文密码(rclone 会自动处理)
|
||||
|
||||
```
|
||||
pass = blackhill # 不要加密
|
||||
```
|
||||
|
||||
### Q: 文件名中文乱码
|
||||
|
||||
**解决**:确保终端编码为 UTF-8
|
||||
|
||||
```bash
|
||||
export LANG=zh_CN.UTF-8
|
||||
export LC_ALL=zh_CN.UTF-8
|
||||
```
|
||||
|
||||
### Q: 挂载后访问很慢
|
||||
|
||||
**解决**:使用 VFS 缓存模式
|
||||
|
||||
```bash
|
||||
rclone mount obsidian-webdav: ~/obsidian-webdav \
|
||||
--vfs-cache-mode writes \
|
||||
--vfs-cache-max-age 168h \
|
||||
--vfs-write-back 5s
|
||||
```
|
||||
|
||||
### Q: 挂载占用大量内存
|
||||
|
||||
**解决**:限制缓存大小
|
||||
|
||||
```bash
|
||||
rclone mount obsidian-webdav: ~/obsidian-webdav \
|
||||
--vfs-cache-mode writes \
|
||||
--buffer-size 256M
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 完整工作流示例
|
||||
|
||||
```bash
|
||||
# 1. 配置远程
|
||||
rclone config << 'EOF'
|
||||
n
|
||||
obsidian-webdav
|
||||
webdav
|
||||
http://8.134.220.229:13803/实践积累
|
||||
other
|
||||
admin
|
||||
blackhill
|
||||
y
|
||||
EOF
|
||||
|
||||
# 2. 查看文件结构
|
||||
rclone lsd obsidian-webdav:
|
||||
|
||||
# 3. 挂载为本地目录
|
||||
mkdir -p ~/obsidian-webdav
|
||||
rclone mount obsidian-webdav: ~/obsidian-webdav --daemon --vfs-cache-mode writes
|
||||
|
||||
# 4. 在 Obsidian 中直接使用
|
||||
# 文件会自动同步到 WebDAV
|
||||
|
||||
# 5. 卸载
|
||||
fusermount -uz ~/obsidian-webdav
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 参考链接
|
||||
|
||||
- [rclone 官网](https://rclone.org)
|
||||
- [rclone WebDAV 配置](https://rclone.org/webdav/)
|
||||
- [obsidian-headless GitHub](https://github.com/imakid/obsidian-headless)
|
||||
226
wiki/Resources/Obsidian/WebDAV挂载指南
Executable file
226
wiki/Resources/Obsidian/WebDAV挂载指南
Executable file
@@ -0,0 +1,226 @@
|
||||
# WebDAV 挂载到 Linux 本地目录
|
||||
|
||||
将远程 WebDAV 服务器(如 Obsidian/Synology NAS)挂载为本地文件夹,像操作本地文件一样管理。
|
||||
|
||||
---
|
||||
|
||||
## 方法一:davfs2(推荐,最稳定)
|
||||
|
||||
### 1. 安装 davfs2
|
||||
|
||||
```bash
|
||||
# Debian/Ubuntu
|
||||
sudo apt-get install davfs2
|
||||
|
||||
# CentOS/RHEL
|
||||
sudo yum install davfs2
|
||||
|
||||
# macOS
|
||||
brew install davfs2
|
||||
```
|
||||
|
||||
### 2. 挂载 WebDAV
|
||||
|
||||
```bash
|
||||
# 创建挂载点
|
||||
sudo mkdir -p /mnt/webdav
|
||||
|
||||
# 挂载(需要输入用户名密码)
|
||||
sudo mount -t davfs http://your-server:port/path /mnt/webdav
|
||||
|
||||
# 或者指定用户名
|
||||
sudo mount -t davfs -o username=admin http://your-server:port/path /mnt/webdav
|
||||
```
|
||||
|
||||
### 3. 开机自动挂载
|
||||
|
||||
```bash
|
||||
# 添加到 /etc/fstab
|
||||
echo "http://your-server:port/path /mnt/webdav davfs defaults,username=admin,password=yourpass 0 0" | sudo tee -a /etc/fstab
|
||||
|
||||
# 或者保存密码到文件(更安全)
|
||||
echo "yourpass" | sudo tee /etc/davfs2/secrets
|
||||
chmod 600 /etc/davfs2/secrets
|
||||
echo "/mnt/webdav username password" | sudo tee -a /etc/davfs2/secrets
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 方法二:rclone(支持云存储,适合 Docker 环境)
|
||||
|
||||
### 1. 安装 rclone
|
||||
|
||||
```bash
|
||||
# 下载最新版本
|
||||
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
|
||||
unzip rclone-current-linux-amd64.zip
|
||||
sudo mv rclone-*-linux-amd64/rclone /usr/local/bin/
|
||||
sudo chown root:root /usr/local/bin/rclone
|
||||
sudo chmod 755 /usr/local/bin/rclone
|
||||
rm -rf rclone-*-linux-amd64 rclone-current-linux-amd64.zip
|
||||
```
|
||||
|
||||
### 2. 配置 rclone
|
||||
|
||||
```bash
|
||||
# 交互式配置
|
||||
rclone config
|
||||
|
||||
# 选择 n 新建配置
|
||||
# 输入名称,如:obsidian-webdav
|
||||
# 类型选择:webdav
|
||||
# URL:https://your-server:port/path
|
||||
# vendor:other
|
||||
# 输入用户名密码
|
||||
```
|
||||
|
||||
### 3. 挂载为本地目录
|
||||
|
||||
```bash
|
||||
# 创建挂载点
|
||||
mkdir -p ~/obsidian-webdav
|
||||
|
||||
# 前台测试(确认能连接)
|
||||
rclone mount obsidian-webdav: ~/obsidian-webdav --vv
|
||||
|
||||
# 后台运行
|
||||
rclone mount obsidian-webdav: ~/obsidian-webdav \
|
||||
--daemon \
|
||||
--vfs-cache-mode writes \
|
||||
--allow-other
|
||||
|
||||
# 开机自启(systemd)
|
||||
cat > ~/.config/systemd/user/rclone-obsidian.service << 'EOF'
|
||||
[Unit]
|
||||
Description=rclone mount for Obsidian
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/local/bin/rclone mount obsidian-webdav: %h/obsidian-webdav --vfs-cache-mode writes
|
||||
ExecStop=/bin/fusermount -uz %h/obsidian-webdav
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
EOF
|
||||
|
||||
systemctl --user enable rclone-obsidian.service
|
||||
systemctl --user start rclone-obsidian.service
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 方法三:fUSE + davfs2(用户空间挂载,无需 root)
|
||||
|
||||
### 1. 安装 fuse 和 davfs2
|
||||
|
||||
```bash
|
||||
sudo apt-get install fuse davfs2
|
||||
```
|
||||
|
||||
### 2. 配置非 root 用户使用 FUSE
|
||||
|
||||
```bash
|
||||
sudo usermod -a -G fuse $USER
|
||||
# 重新登录生效
|
||||
```
|
||||
|
||||
### 3. 挂载
|
||||
|
||||
```bash
|
||||
mkdir -p ~/webdav
|
||||
fusedav https://your-server:port/path -u username -p password ~/webdav
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 方法四:curlftps(FTP over HTTPS,需要 FUSE)
|
||||
|
||||
```bash
|
||||
# 安装
|
||||
sudo apt-get install curlftpfs
|
||||
|
||||
# 挂载
|
||||
sudo curlftpfs -o allow_other,user=username:password https://your-server/path /mnt/webdav
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 方法五:直接在代码中使用 WebDAV
|
||||
|
||||
### Python 示例
|
||||
|
||||
```python
|
||||
import webdav3.client as wc
|
||||
|
||||
options = {
|
||||
'webdav_hostname': "https://your-server:port/path",
|
||||
'webdav_login': "username",
|
||||
'webdav_password': "password"
|
||||
}
|
||||
|
||||
client = wc.Client(options)
|
||||
|
||||
# 列出文件
|
||||
print(client.list())
|
||||
|
||||
# 下载文件
|
||||
client.download_sync(remote_path="file.md", local_path="file.md")
|
||||
|
||||
# 上传文件
|
||||
client.upload_sync(local_path="new.md", remote_path="new.md")
|
||||
```
|
||||
|
||||
### 安装 webdav3
|
||||
```bash
|
||||
pip install webdav3
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 你的服务器信息
|
||||
|
||||
```
|
||||
服务器: http://8.134.220.229:13803
|
||||
用户名: admin
|
||||
密码: blackhill
|
||||
路径: /实践积累
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 快速测试命令
|
||||
|
||||
```bash
|
||||
# 测试连接(curl)
|
||||
curl -s --digest --user admin:blackhill \
|
||||
"http://8.134.220.229:13803/实践积累/" | head -20
|
||||
|
||||
# 列出文件
|
||||
curl -s --digest --user admin:blackhill \
|
||||
-X PROPFIND "http://8.134.220.229:13803/实践积累/" -H "Depth: 1" | \
|
||||
grep -oE '<d:href>[^<]+</d:href>' | head -10
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Q: 挂载后文件看不到?
|
||||
- 检查网络连接
|
||||
- 确认用户名密码正确
|
||||
- 查看日志:`dmesg | tail`
|
||||
|
||||
### Q: 写入慢或失败?
|
||||
- davfs2 有缓存,可能有延迟
|
||||
- 尝试增加缓存大小
|
||||
- 检查服务器端是否有写入权限限制
|
||||
|
||||
### Q: Docker 容器内无法挂载?
|
||||
- Docker 需要 `--privileged` 模式
|
||||
- 或者使用 rclone 的 `--allow-non-empty`
|
||||
|
||||
### Q: 开机自启失败?
|
||||
- 检查 systemd 服务配置
|
||||
- 确保网络在挂载前已就绪(添加 `After=network.target`)
|
||||
344
wiki/Resources/Obsidian/obsidian-headless-SKILL
Executable file
344
wiki/Resources/Obsidian/obsidian-headless-SKILL
Executable file
@@ -0,0 +1,344 @@
|
||||
---
|
||||
name: obsidian-headless
|
||||
description: 在无显示器/无 GUI 环境下通过自然语言指令管理 Obsidian 笔记仓库。支持创建笔记、删除笔记(带确认)、搜索标题、搜索内容、模糊搜索、创建日记等功能。当用户需要在无头服务器、SSH 环境、或没有安装 Obsidian 桌面应用的情况下管理 Obsidian 笔记时使用此技能。触发词包括"obsidian", "笔记", "搜索笔记", "创建笔记", "删除笔记", "今天日记", "无头 obsidian", "命令行 obsidian"。
|
||||
slash_commands:
|
||||
- name: obsidian-headless
|
||||
description: 主命令 - 无头 Obsidian 笔记管理
|
||||
usage: /obsidian-headless [子命令] [参数]
|
||||
subcommands:
|
||||
- create: 创建新笔记 (/obsidian-headless create 文件名 内容)
|
||||
- delete: 删除笔记 (/obsidian-headless delete 文件名)
|
||||
- search: 搜索笔记 (/obsidian-headless search 关键词)
|
||||
- daily: 今天日记 (/obsidian-headless daily 内容)
|
||||
- list: 列出所有笔记 (/obsidian-headless list)
|
||||
- save: 保存内容 (/obsidian-headless save 文件名 内容)
|
||||
- name: obs-create
|
||||
description: 创建新笔记
|
||||
usage: /obs-create [文件名] [内容]
|
||||
- name: obs-delete
|
||||
description: 删除笔记
|
||||
usage: /obs-delete [文件名]
|
||||
- name: obs-search
|
||||
description: 搜索笔记内容
|
||||
usage: /obs-search [关键词]
|
||||
- name: obs-daily
|
||||
description: 创建/查看今天日记
|
||||
usage: /obs-daily [可选内容]
|
||||
- name: obs-list
|
||||
description: 列出所有笔记
|
||||
usage: /obs-list
|
||||
- name: obs-save
|
||||
description: 保存对话内容到笔记
|
||||
usage: /obs-save [文件名] [内容]
|
||||
---
|
||||
|
||||
# Obsidian Headless - 无头 Obsidian 管理工具
|
||||
|
||||
在无显示器/无 GUI 环境下通过自然语言指令管理 Obsidian 笔记仓库。
|
||||
|
||||
## 适用场景
|
||||
|
||||
- 在 SSH 远程服务器上管理 Obsidian 笔记
|
||||
- 无显示器环境(如 VPS、Docker 容器)
|
||||
- 不想启动 Obsidian GUI 桌面应用时
|
||||
- 需要通过脚本自动化管理笔记时
|
||||
|
||||
## 文档
|
||||
|
||||
- **USAGE.md** - 完整使用手册(包含快速参考、详细说明、示例、故障排除)
|
||||
|
||||
## 目录结构
|
||||
|
||||
```
|
||||
obsidian-headless/
|
||||
├── obs # 便捷入口脚本
|
||||
├── install.sh # 安装脚本
|
||||
├── SKILL.md # 本文件(技能说明)
|
||||
├── USAGE.md # 完整使用手册
|
||||
├── bin/
|
||||
│ └── obsidian-headless.sh # 主程序
|
||||
├── examples/
|
||||
│ └── examples.sh # 使用示例脚本
|
||||
└── tests/
|
||||
└── test.sh # 测试脚本
|
||||
```
|
||||
|
||||
## 配置文件
|
||||
|
||||
首次使用时会提示输入仓库路径,配置保存在:
|
||||
```
|
||||
~/.config/obsidian-headless/vault-path
|
||||
```
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 1. 安装
|
||||
|
||||
```bash
|
||||
cd ~/.openclaw/skills/obsidian-headless
|
||||
./install.sh
|
||||
```
|
||||
|
||||
或手动使用:
|
||||
```bash
|
||||
~/.openclaw/skills/obsidian-headless/obs "obs指令"
|
||||
```
|
||||
|
||||
### 指令格式
|
||||
|
||||
所有指令都支持 `obs` 前缀(**大小写不敏感**),`obs` 和指令之间可以有**空格、-、_、: 等连接符**:
|
||||
|
||||
| 格式 | 示例 |
|
||||
|------|------|
|
||||
| `obs指令` | `obs创建笔记 新笔记` |
|
||||
| `obs 指令` | `obs 创建笔记 新笔记` |
|
||||
| `obs-指令` | `obs-创建笔记 新笔记` |
|
||||
| `OBS指令` | `OBS创建笔记 新笔记` |
|
||||
|
||||
**推荐使用 `obs指令` 格式**,避免误触。
|
||||
|
||||
### 2. 配置仓库路径
|
||||
|
||||
**首次使用:**
|
||||
运行任意命令时会提示输入仓库路径,路径会保存到配置文件中供后续使用。
|
||||
|
||||
```
|
||||
首次使用 Obsidian Headless
|
||||
==========================
|
||||
|
||||
请输入 Obsidian 仓库路径: /home/user/my-vault
|
||||
✓ 已保存配置
|
||||
```
|
||||
|
||||
**手动配置(可选):**
|
||||
|
||||
方式 1 - 环境变量(优先级最高):
|
||||
```bash
|
||||
export OBSIDIAN_VAULT=/path/to/your/vault
|
||||
```
|
||||
|
||||
方式 2 - 删除配置文件重新输入:
|
||||
```bash
|
||||
rm ~/.config/obsidian-headless/vault-path
|
||||
# 下次运行时会重新提示输入
|
||||
```
|
||||
|
||||
### 3. 使用
|
||||
|
||||
```bash
|
||||
# 使用安装后的快捷命令
|
||||
obs "创建笔记 新想法"
|
||||
|
||||
# 或直接调用
|
||||
~/.openclaw/skills/obsidian-headless/obs "搜索内容 home assistant"
|
||||
```
|
||||
|
||||
## 支持的指令
|
||||
|
||||
### 创建笔记
|
||||
```
|
||||
obs创建笔记 [文件名] [可选内容]
|
||||
```
|
||||
|
||||
**说明:**
|
||||
- `文件名` 支持路径,如 `文件夹/笔记名` 或 `笔记名`
|
||||
- 如果**只输入文件名**(无内容),创建**空笔记文件**
|
||||
- 如果**输入了内容**,内容**直接写入文件**,不会自动添加标题
|
||||
- 笔记的标题需要用户在 `内容` 中自行定义(如 `# 我的标题`)
|
||||
- **文件名和内容之间可以用空格或换行符分隔**
|
||||
|
||||
**示例:**
|
||||
- `obs创建笔记 待办清单` → 创建空文件 `待办清单.md`
|
||||
- `obs创建笔记 项目想法 这个项目的核心目标是...` → 文件内容为 "这个项目的核心目标是..."
|
||||
- `obs创建笔记 AI/总结 # AI 总结\n\n今天学习了...` → 文件内容包含自定义标题
|
||||
|
||||
**多行内容示例:**
|
||||
```
|
||||
obs创建笔记 笔记名
|
||||
# 标题
|
||||
内容第一行
|
||||
内容第二行
|
||||
```
|
||||
|
||||
### 删除笔记(带确认)
|
||||
```
|
||||
obs删除笔记 [文件名]
|
||||
```
|
||||
|
||||
**删除确认流程:**
|
||||
|
||||
**单个匹配时:**
|
||||
```
|
||||
即将删除笔记:
|
||||
标题: xxx
|
||||
路径: /path/to/xxx.md
|
||||
|
||||
内容预览 (共 15 行):
|
||||
# xxx
|
||||
...
|
||||
|
||||
请回复确认:
|
||||
[Y] 确认删除
|
||||
[N] 取消
|
||||
```
|
||||
|
||||
**多个匹配时:**
|
||||
```
|
||||
找到多个匹配的笔记:
|
||||
|
||||
[1] 笔记A
|
||||
位置: folder1/
|
||||
大小: 20 行
|
||||
|
||||
[2] 笔记B
|
||||
位置: folder2/
|
||||
大小: 35 行
|
||||
|
||||
请回复要删除的笔记编号 (或 0 取消)
|
||||
```
|
||||
|
||||
### 查看笔记内容
|
||||
```
|
||||
obs查看笔记 [文件名]
|
||||
```
|
||||
|
||||
### 搜索笔记标题
|
||||
```
|
||||
obs搜索标题 [关键词]
|
||||
```
|
||||
|
||||
### 搜索笔记内容
|
||||
```
|
||||
obs搜索内容 [关键词]
|
||||
```
|
||||
|
||||
### 模糊搜索(标题+内容)
|
||||
```
|
||||
obs模糊搜索 [关键词]
|
||||
```
|
||||
|
||||
### 创建/打开今天日记
|
||||
```
|
||||
obs今天日记 [可选内容]
|
||||
```
|
||||
|
||||
自动在 `日记/` 文件夹下创建 `YYYY-MM-DD.md`
|
||||
|
||||
### 修改库路径
|
||||
```
|
||||
obs修改库路径
|
||||
obs修改库目录
|
||||
obs更改路径
|
||||
obs切换仓库
|
||||
```
|
||||
|
||||
交互式修改仓库路径,保存到配置文件。
|
||||
|
||||
**示例:**
|
||||
- `obs修改库路径` → 提示输入新路径
|
||||
- `obs-修改库目录` → 同上
|
||||
|
||||
### 列出所有笔记
|
||||
```
|
||||
obs列出所有
|
||||
```
|
||||
|
||||
### 列出所有文件夹
|
||||
```
|
||||
obs列出文件夹
|
||||
```
|
||||
|
||||
### 显示最近修改的笔记
|
||||
```
|
||||
obs最近笔记
|
||||
```
|
||||
|
||||
## 前置要求
|
||||
|
||||
1. **Obsidian 仓库:** 首次使用时会提示输入仓库路径
|
||||
|
||||
2. **依赖:**
|
||||
- `bash` (必须)
|
||||
- `find` (必须)
|
||||
- `grep` (必须)
|
||||
- `ripgrep (rg)` (推荐,搜索更快)
|
||||
|
||||
3. **安装 ripgrep:**
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
sudo apt install ripgrep
|
||||
|
||||
# macOS
|
||||
brew install ripgrep
|
||||
```
|
||||
|
||||
## 测试
|
||||
|
||||
运行测试脚本验证功能:
|
||||
|
||||
```bash
|
||||
cd ~/.openclaw/skills/obsidian-headless
|
||||
./tests/test.sh
|
||||
```
|
||||
|
||||
## 查看示例
|
||||
|
||||
运行示例脚本查看各种用法:
|
||||
|
||||
```bash
|
||||
cd ~/.openclaw/skills/obsidian-headless
|
||||
./examples/examples.sh
|
||||
```
|
||||
|
||||
## 与 obsidian-cli 的对比
|
||||
|
||||
| 功能 | obsidian-cli | obsidian-headless |
|
||||
|------|-------------|-------------------|
|
||||
| 依赖 Obsidian GUI | 是(需要索引) | 否 |
|
||||
| search-content | 依赖索引,常失败 | 使用 ripgrep,可靠 |
|
||||
| 删除确认 | 无 | 有(显示预览) |
|
||||
| 多匹配处理 | 无 | 列出序号选择 |
|
||||
| 自然语言支持 | 有限 | 完整支持 |
|
||||
| 无头环境 | 不支持 | 专门设计 |
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 提示"未找到 Obsidian 仓库路径"
|
||||
1. 首次使用时会自动提示输入路径
|
||||
2. 或手动设置环境变量:
|
||||
```bash
|
||||
export OBSIDIAN_VAULT=/path/to/your/vault
|
||||
```
|
||||
3. 或删除配置重新输入:
|
||||
```bash
|
||||
rm ~/.config/obsidian-headless/vault-path
|
||||
```
|
||||
|
||||
### 修改已保存的仓库路径
|
||||
```bash
|
||||
# 方法1: 使用环境变量覆盖
|
||||
export OBSIDIAN_VAULT=/new/path
|
||||
|
||||
# 方法2: 删除配置,下次重新输入
|
||||
rm ~/.config/obsidian-headless/vault-path
|
||||
```
|
||||
|
||||
### 搜索速度慢
|
||||
安装 ripgrep:
|
||||
```bash
|
||||
sudo apt install ripgrep # Ubuntu/Debian
|
||||
brew install ripgrep # macOS
|
||||
```
|
||||
|
||||
### 删除时找不到笔记
|
||||
使用更精确的标题,或使用"模糊搜索"先找到准确标题。
|
||||
|
||||
## 脚本说明
|
||||
|
||||
| 脚本 | 用途 |
|
||||
|------|------|
|
||||
| `obs` | 便捷入口,推荐日常使用 |
|
||||
| `bin/obsidian-headless.sh` | 主程序 |
|
||||
| `install.sh` | 安装脚本,设置别名和快捷方式 |
|
||||
| `tests/test.sh` | 功能测试 |
|
||||
| `examples/examples.sh` | 使用示例 |
|
||||
45
wiki/Resources/方法论/HarnessEngineering.md
Executable file
45
wiki/Resources/方法论/HarnessEngineering.md
Executable file
@@ -0,0 +1,45 @@
|
||||
---
|
||||
created: 2026-04-24
|
||||
updated: 2026-04-28
|
||||
type: concept
|
||||
tags: [Harness-Engineering, AI-Coding, 约束框架, 清华大学]
|
||||
source: /obsidian/参考资料/Harness_Engineering/
|
||||
---
|
||||
|
||||
# Harness Engineering
|
||||
|
||||
> 在 AI 编程工具之上构建约束框架,确保 AI 编程可约束、可评估、可追溯
|
||||
|
||||
## 核心理念
|
||||
|
||||
**Harness Engineering** = 约束框架,覆盖软件研发全生命周期
|
||||
|
||||
### 四大目标
|
||||
|
||||
| 目标 | 说明 | 手段 |
|
||||
|------|------|------|
|
||||
| 可约束 | AI 输出符合团队规范 | Skill 体系 + 上下文注入 |
|
||||
| 可评估 | 产物质量可度量 | 质量门禁 + 评估机制 |
|
||||
| 可追溯 | 过程透明可审计 | 记录 + 日志 + Hook |
|
||||
| 可扩展 | 持续扩展能力边界 | 可插拔 Skill 体系 |
|
||||
|
||||
## 五大研发阶段
|
||||
|
||||
| 阶段 | 核心能力 |
|
||||
|------|---------|
|
||||
| 需求 | 需求分析、规格定义 |
|
||||
| 技术方案 | 架构设计、技术选型 |
|
||||
| 编码 | AI 辅助编码、代码审查 |
|
||||
| 研发自测 | 单元测试、集成测试 |
|
||||
| QA 测试 | 自动化测试、质量门禁 |
|
||||
|
||||
## 与其他方法的关系
|
||||
|
||||
| 方法 | 关系 |
|
||||
|------|------|
|
||||
| [[SDD 规格驱动开发]] | Harness 关注环境,SDD 关注规格 |
|
||||
| [[Superpowers 技能框架]] | Harness 关注环境,Superpowers 关注流程 |
|
||||
|
||||
---
|
||||
|
||||
*整理自 Obsidian 参考资料 + 清华大学报告*
|
||||
252
wiki/Resources/方法论/HarnessEngineering研究总结
Executable file
252
wiki/Resources/方法论/HarnessEngineering研究总结
Executable file
@@ -0,0 +1,252 @@
|
||||
# Harness Engineering in AI Coding 研究总结
|
||||
|
||||
> 探索在 AI 编程中的 Harness Engineering,确保 AI 编程可约束、可评估、可追溯
|
||||
>
|
||||
> 归档:2026-04-24
|
||||
|
||||
---
|
||||
|
||||
## 📊 项目概览
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|---|
|
||||
| **仓库** | [2361485765/harness-engineering-in-ai-coding](https://github.com/2361485765/harness-engineering-in-ai-coding) |
|
||||
| **语言** | Shell |
|
||||
| **创建时间** | 2026-04-23(极新项目) |
|
||||
| **License** | MIT |
|
||||
| **定位** | AI 编程约束框架(Harness Engineering) |
|
||||
|
||||
---
|
||||
|
||||
## 🎯 核心理念
|
||||
|
||||
**Harness Engineering** = 在 AI 编程工具(Claude Code/Cursor/Copilot)之上,构建一套完整的**约束框架**,覆盖软件研发全生命周期。
|
||||
|
||||
### 四大目标
|
||||
|
||||
| 目标 | 说明 | 手段 |
|
||||
|------|------|------|
|
||||
| **可约束** | AI 输出符合团队规范 | Skill 体系 + 上下文注入 |
|
||||
| **可评估** | 产物质量可度量 | 质量门禁 + 评估机制 |
|
||||
| **可追溯** | 过程透明可审计 | 记录 + 日志 + Hook |
|
||||
| **可扩展** | 持续扩展能力边界 | 可插拔 Skill 体系 |
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ 架构设计
|
||||
|
||||
```
|
||||
需求 → 技术方案 → 编码 → 研发自测 → QA 测试
|
||||
↑ ↑ ↑ ↑ ↑
|
||||
└────────┴─────────┴────────┴─────────┘
|
||||
Harness(约束·评估·追溯)
|
||||
↕
|
||||
可插拔 Skill 体系
|
||||
```
|
||||
|
||||
### 五大研发阶段
|
||||
|
||||
| 阶段 | 目录 | 核心能力 |
|
||||
|------|------|---------|
|
||||
| **01 需求引入** | 01-requirements/ | brainstorming + openspec 管理 |
|
||||
| **02 技术方案** | 02-technical-design/ | harness-init 扫描项目 + 设计生成 |
|
||||
| **03 编码** | 03-coding/ | 约束感知编码 + 自动 Code Review |
|
||||
| **04 研发自测** | 04-dev-testing/ | Subagent 并行测试(单元+API) |
|
||||
| **05 QA 测试** | 05-qa-testing/ | E2E 测试(Playwright) |
|
||||
|
||||
### 两个横切关注点
|
||||
|
||||
| 关注点 | 目录 | 功能 |
|
||||
|--------|------|------|
|
||||
| **任务进度管理** | 06-task-progress/ | 状态模型 + 看板 + 自动更新 |
|
||||
| **Debug 与纠错** | 07-debug-and-correction/ | 质量门禁 + 失败分析 + 修复流程 |
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ 核心机制
|
||||
|
||||
### 1. Hook 机制(执行保障层)
|
||||
|
||||
**核心原则**:确定性规则 → shell 脚本;语义理解 → Skill
|
||||
|
||||
| 事件 | 触发时机 | 典型用途 |
|
||||
|------|----------|----------|
|
||||
| `PreToolUse` | AI 调用工具**前** | 拦截、校验、注入前置约束 |
|
||||
| `PostToolUse` | AI 调用工具**后** | 检查输出、触发后续动作 |
|
||||
|
||||
#### Hook 全景
|
||||
|
||||
| 阶段 | Hook 名称 | 触发 | 目的 |
|
||||
|------|-----------|------|------|
|
||||
| 需求 | `requirement-guard` | PreToolUse( Skill=openspec) | 拦截散乱需求,强制完整性 |
|
||||
| 需求 | `p0-constraint-writer` | PostToolUse(Skill=openspec) | P0 bug 写回代码约束 |
|
||||
| 编码 | `post-edit-lint` | PostToolUse(Edit) | 修改后自动 lint |
|
||||
| 编码 | `pre-commit-review` | PreToolUse(git commit) | commit 前自动 review |
|
||||
| 自测 | `post-implementation-test` | 实现完成后 | 触发 subagent 自测 |
|
||||
| QA | `post-dev-test-qa` | 自测通过后 | 生成 QA 测试用例 |
|
||||
|
||||
#### Hook 返回码约定
|
||||
|
||||
| 返回码 | 含义 |
|
||||
|--------|------|
|
||||
| `0` | 通过,继续 |
|
||||
| `非 0` | 拦截,反馈原因 |
|
||||
|
||||
---
|
||||
|
||||
### 2. Skill 体系(能力扩展层)
|
||||
|
||||
| Skill | 用途 |
|
||||
|-------|------|
|
||||
| **harness-init** | 初始化项目 Harness 文档结构(扫描代码库 → 生成 CLAUDE.md/ARCHITECTURE.md 等) |
|
||||
| **design-generator** | 技术方案生成 |
|
||||
| **progress-tracker** | 任务进度跟踪与看板 |
|
||||
| **constraint-extractor** | 从 bug 描述提取代码约束 |
|
||||
| **design-arch-validator** | 设计方案架构校验 |
|
||||
| **requirement-semantic-check** | 需求语义完整性检查 |
|
||||
|
||||
### 3. Agent 体系(执行层)
|
||||
|
||||
| Agent | 职责 |
|
||||
|-------|------|
|
||||
| **code-reviewer** | 自动化代码审查 |
|
||||
| **api-tester** | API 集成测试 |
|
||||
| **qa-tester** | QA 端到端测试 |
|
||||
| **debug-analyst** | 调试与根因分析 |
|
||||
|
||||
---
|
||||
|
||||
## 🔧 关键技术实现
|
||||
|
||||
### harness-init 工作流
|
||||
|
||||
```
|
||||
1. 检测项目状态(已有文件 vs 新项目)
|
||||
2. 扫描代码库:
|
||||
- 技术栈识别(package.json/go.mod/...)
|
||||
- 项目结构(3 层目录)
|
||||
- 最近提交(git log -20)
|
||||
- 关键代码模式(入口/配置/测试)
|
||||
3. 创建文档结构(CLAUDE.md / AGENTS.md / ARCHITECTURE.md / docs/)
|
||||
4. 填充内容(已有项目)或占位符(新项目)
|
||||
5. 输出完成报告
|
||||
```
|
||||
|
||||
### 生成的文档清单
|
||||
|
||||
| 文件 | 内容 |
|
||||
|------|------|
|
||||
| `CLAUDE.md` | Claude 专用项目指令 |
|
||||
| `AGENTS.md` | AI 代理协作指南 |
|
||||
| `ARCHITECTURE.md` | 系统架构概述 |
|
||||
| `docs/DESIGN.md` | 设计原则 |
|
||||
| `docs/SECURITY.md` | 安全规范 |
|
||||
| `docs/RELIABILITY.md` | 可靠性标准 |
|
||||
| `docs/QUALITY_SCORE.md` | 质量度量定义 |
|
||||
| `docs/PLANS.md` | 路线图 |
|
||||
| `docs/PRODUCT_SENSE.md` | 产品哲学 |
|
||||
|
||||
### 代码约束写回流程
|
||||
|
||||
```
|
||||
P0 bug 创建 → constraint-extractor 语义提炼 → 写入 docs/code-constraints.md
|
||||
→ 追加到 CLAUDE.md 的 "Do Not" 区块 → 后续 AI 编码自动遵守
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🆚 与已有框架的对比
|
||||
|
||||
| 维度 | Harness Engineering | Superpowers | ClaudeForge |
|
||||
|------|-------------------|-------------|-------------|
|
||||
| **定位** | 全流程约束框架 | 开发方法论 | CLAUDE.md 生成 |
|
||||
| **覆盖范围** | 需求→测试→QA 全链路 | 编码阶段为主 | 文档生成 |
|
||||
| **Hook 机制** | ✅ Pre/Post 双事件 | ❌ | ❌ |
|
||||
| **openspec 集成** | ✅ 需求管理核心 | ❌ | ❌ |
|
||||
| **代码约束写回** | ✅ P0 bug → 自动禁止项 | ❌ | ❌ |
|
||||
| **多 Agent 并行** | ✅ 测试阶段 | ✅ | ❌ |
|
||||
| **成熟度** | 新项目(2026-04-23) | 159k ⭐ | 353 ⭐ |
|
||||
| **语言** | 中文 | 英文 | 英文 |
|
||||
|
||||
---
|
||||
|
||||
## 💡 独特价值
|
||||
|
||||
### 1. 需求管理闭环
|
||||
|
||||
```
|
||||
散乱想法 → requirement-guard 拦截 → AI 反问引导 → 结构化需求
|
||||
→ openspec 管理(proposal → design → spec → task)
|
||||
→ P0 bug 自动提炼代码约束 → 写回项目
|
||||
```
|
||||
|
||||
这是**首个**将需求管理与代码约束自动关联的框架。
|
||||
|
||||
### 2. 代码约束自动化
|
||||
|
||||
```
|
||||
P0 bug 发现 → 语义提炼"AI 编码禁止项" → 写入约束文档
|
||||
→ CLAUDE.md "Do Not" 区块 → AI 后续编码自动遵守
|
||||
→ pre-commit-review 自动检查
|
||||
```
|
||||
|
||||
**Bug → 约束 → 预防**的自动闭环,减少重复错误。
|
||||
|
||||
### 3. 中文优先 + 开箱即用
|
||||
|
||||
- 全中文文档,降低国内团队学习门槛
|
||||
- 完整的 Hook 脚本 + Skill + Agent 配置
|
||||
- 可直接复制 `hooks/` 目录到目标项目
|
||||
|
||||
---
|
||||
|
||||
## 📋 接入新项目步骤
|
||||
|
||||
```bash
|
||||
# 1. 复制 hooks 目录
|
||||
cp -r hooks/ /your/project/
|
||||
|
||||
# 2. 合并 hook 配置
|
||||
# 将 .claude/settings.json 中的 hooks 配置合并到目标项目
|
||||
|
||||
# 3. 根据技术栈调整 lint 命令
|
||||
# 编辑 hooks/scripts/post-edit-lint.sh
|
||||
|
||||
# 4. 验证脚本可执行
|
||||
bash hooks/scripts/requirement-guard.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔗 相关资源
|
||||
|
||||
| 资源 | 链接 |
|
||||
|------|------|
|
||||
| 仓库 | https://github.com/2361485765/harness-engineering-in-ai-coding |
|
||||
| Superpowers | https://github.com/obra/superpowers |
|
||||
| openspec | https://github.com/anthropics/openspec |
|
||||
|
||||
---
|
||||
|
||||
## 📊 评价
|
||||
|
||||
### 优点
|
||||
- ✅ **全流程覆盖**:从需求到 QA,不只是编码辅助
|
||||
- ✅ **Hook 机制完善**:Pre/Post 双事件 + shell/Skill 分层
|
||||
- ✅ **代码约束自动关联**:P0 bug → 自动禁止项,减少重复错误
|
||||
- ✅ **中文友好**:降低国内团队门槛
|
||||
- ✅ **不重复造轮子**:复用 superpowers、openspec 等成熟工具
|
||||
|
||||
### 注意点
|
||||
- ⚠️ **极新项目**(2026-04-23 创建),0 stars,仍在建设中
|
||||
- ⚠️ 目前主要面向 Claude Code,其他工具适配待补充
|
||||
- ⚠️ 文档完成度约 70%,部分章节待填充
|
||||
|
||||
### 适用场景
|
||||
- 团队想系统性引入 AI 编程工具(而非零散使用)
|
||||
- 需要对 AI 产物建立质量门禁和审计记录
|
||||
- 希望沉淀 AI 编程最佳实践为工程规范
|
||||
|
||||
---
|
||||
|
||||
*整理:知识库管理员 | 归档:2026-04-24*
|
||||
170
wiki/Resources/硬件/IMX219_vs_OG05B10对比研究
Executable file
170
wiki/Resources/硬件/IMX219_vs_OG05B10对比研究
Executable file
@@ -0,0 +1,170 @@
|
||||
# IMX219 vs OG05B10 深度对比研究
|
||||
|
||||
> 索尼 IMX219(树莓派 V2)vs 豪威 OG05B10
|
||||
>
|
||||
> 归档:2026-04-24
|
||||
|
||||
---
|
||||
|
||||
## 📊 核心参数对比
|
||||
|
||||
| 维度 | **索尼 IMX219** | **豪威 OG05B10** |
|
||||
|------|----------------|-----------------|
|
||||
| **厂商** | Sony Semiconductor | OmniVision(豪威科技) |
|
||||
| **分辨率** | **8MP**(3280×2464) | 5MP(2592×1944) |
|
||||
| **传感器尺寸** | **1/4 英寸** | **1/2.53 英寸**(更大!) |
|
||||
| **像素大小** | ~1.12 μm(估算) | **2.2 μm**(大 2 倍!) |
|
||||
| **快门类型** | 卷帘快门(Rolling) | **全局快门(Global)** |
|
||||
| **视频帧率** | 1080P@30 / 720P@60 | 1080P@**90** / 5MP@53 |
|
||||
| **HDR** | ❌ 不支持 | ✅ 支持 |
|
||||
| **LED 闪烁抑制** | ❌ 无 | ✅ LFM 支持 |
|
||||
| **车规认证** | ❌ 消费级 | ✅ AEC-Q100 |
|
||||
| **接口** | MIPI CSI-2(2 通道) | MIPI CSI-2(**4 通道**) |
|
||||
| **目标市场** | 消费/教育/原型 | **车载/工业/ADAS** |
|
||||
| **树莓派兼容** | ✅ 官方 V2 | ✅ 第三方模块(Arducam) |
|
||||
|
||||
---
|
||||
|
||||
## 🎯 核心差异解读
|
||||
|
||||
### 1. 分辨率 vs 像素质量
|
||||
|
||||
| 指标 | IMX219 | OG05B10 | 胜出 |
|
||||
|------|--------|---------|------|
|
||||
| 像素数 | 800 万 | 500 万 | IMX219 |
|
||||
| 单个像素面积 | ~1.25 μm² | ~4.84 μm² | **OG05B10(大 3.9 倍)** |
|
||||
| 低光灵敏度 | 差(像素小) | **好(像素大)** | **OG05B10** |
|
||||
| 信噪比 | 较低 | **较高** | **OG05B10** |
|
||||
|
||||
**结论**:IMX219 分辨率更高,但 OG05B10 像素质量更好。在车载/工业场景中,**图像质量比分辨率更重要**。
|
||||
|
||||
---
|
||||
|
||||
### 2. 卷帘快门 vs 全局快门 ⭐
|
||||
|
||||
| 场景 | IMX219(卷帘) | OG05B10(全局) |
|
||||
|------|---------------|----------------|
|
||||
| **静止拍摄** | ✅ 清晰 | ✅ 清晰 |
|
||||
| **高速运动** | ❌ 果冻效应 | ✅ 无畸变 |
|
||||
| **交通信号灯** | ❌ 频闪问题 | ✅ LFM 抑制 |
|
||||
| **多相机同步** | ❌ 难以同步 | ✅ 完美同步 |
|
||||
| **360° 环视** | ❌ 拼接畸变 | ✅ 无畸变拼接 |
|
||||
| **条码扫描** | ❌ 运动模糊 | ✅ 清晰识别 |
|
||||
|
||||
**这是最关键差异!** 全局快门是 OG05B10 的核心竞争力。
|
||||
|
||||
---
|
||||
|
||||
### 3. 帧率对比
|
||||
|
||||
| 分辨率 | IMX219 | OG05B10 | 胜出 |
|
||||
|--------|--------|---------|------|
|
||||
| 1080P | 30 FPS | **90 FPS** | **OG05B10(3 倍)** |
|
||||
| 720P | 60 FPS | - | - |
|
||||
| 全分辨率 | 3280×2464@~15 | 2592×1944@**53** | **OG05B10** |
|
||||
| 640×480 | 90 FPS | - | - |
|
||||
|
||||
**OG05B10 在 1080P 下帧率是 IMX219 的 3 倍**,对高速运动检测至关重要。
|
||||
|
||||
---
|
||||
|
||||
### 4. 传感器尺寸对比
|
||||
|
||||
```
|
||||
IMX219: 1/4" ≈ 4.5×3.4 mm
|
||||
OG05B10: 1/2.53" ≈ 5.7×4.3 mm
|
||||
|
||||
OG05B10 感光面积比 IMX219 大 68%
|
||||
```
|
||||
|
||||
**更大的传感器 = 更好的低光性能 + 更少的噪点**
|
||||
|
||||
---
|
||||
|
||||
### 5. 应用场景对比
|
||||
|
||||
| 场景 | 推荐 | 原因 |
|
||||
|------|------|------|
|
||||
| **树莓派学习/原型** | IMX219 | 官方支持,社区成熟 |
|
||||
| **静态图像采集** | IMX219 | 分辨率更高 |
|
||||
| **ADAS 车载** | **OG05B10** | 车规 + 全局快门 + LFM |
|
||||
| **工业机器视觉** | **OG05B10** | 无畸变 + 高帧率 |
|
||||
| **360° 环视** | **OG05B10** | 多相机同步无畸变 |
|
||||
| **交通监控** | **OG05B10** | LFM 抑制信号灯频闪 |
|
||||
| **高速运动检测** | **OG05B10** | 全局快门无果冻 |
|
||||
| **夜视/低光** | **OG05B10** | 像素大,进光多 |
|
||||
| **视频会议** | IMX219 | 成本低,够用 |
|
||||
| **无人机航拍** | IMX219 | 轻量化,分辨率高 |
|
||||
|
||||
---
|
||||
|
||||
## 📋 产品宣传亮点提取
|
||||
|
||||
### IMX219 宣传点
|
||||
- ✅ **800 万像素**:静态图像清晰度高
|
||||
- ✅ **官方树莓派兼容**:即插即用,社区支持好
|
||||
- ✅ **成熟生态**:OpenCV/ROS 完美支持
|
||||
- ✅ **低成本**:树莓派 V2 模块约 ¥100-150
|
||||
- ❌ 卷帘快门、无 HDR、无车规认证
|
||||
|
||||
### OG05B10 宣传点
|
||||
- ✅ **全局快门**:运动无畸变,ADAS 必备
|
||||
- ✅ **LED 闪烁抑制**:交通信号灯清晰可辨
|
||||
- ✅ **高帧率**:1080P@90FPS,高速场景利器
|
||||
- ✅ **大像素**:2.2μm,低光性能好
|
||||
- ✅ **车规认证**:AEC-Q100,安全可靠
|
||||
- ✅ **多相机同步**:360° 环视/立体视觉
|
||||
- ❌ 分辨率 5MP(低于 IMX219 的 8MP)
|
||||
|
||||
---
|
||||
|
||||
## 💡 选型决策树
|
||||
|
||||
```
|
||||
需要拍摄静态图像?
|
||||
├── 是 → IMX219(分辨率高)
|
||||
└── 否 ↓
|
||||
需要拍摄运动物体?
|
||||
├── 慢速运动 → IMX219
|
||||
└── 高速运动 → OG05B10(全局快门)
|
||||
↓
|
||||
需要车载/工业应用?
|
||||
├── 是 → OG05B10(车规+LFM)
|
||||
└── 否 → IMX219(成本低)
|
||||
↓
|
||||
需要多相机同步?
|
||||
├── 是 → OG05B10(全局同步)
|
||||
└── 否 → 看分辨率需求
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔗 资源
|
||||
|
||||
| 资源 | 链接 |
|
||||
|------|------|
|
||||
| IMX219 产品页 | https://www.sony-semicon.com/en/products/is/industry/imx219.html |
|
||||
| OG05B10 产品页 | https://www.ovt.com/products/og05b/ |
|
||||
| 树莓派 V2 | https://www.raspberrypi.com/products/camera-module-v2/ |
|
||||
|
||||
---
|
||||
|
||||
## 📊 总结
|
||||
|
||||
| 维度 | 胜出 | 说明 |
|
||||
|------|------|------|
|
||||
| 分辨率 | IMX219 | 8MP vs 5MP |
|
||||
| 像素质量 | **OG05B10** | 2.2μm vs 1.12μm |
|
||||
| 低光性能 | **OG05B10** | 传感器大 68% |
|
||||
| 运动畸变 | **OG05B10** | 全局快门 vs 卷帘 |
|
||||
| 帧率 | **OG05B10** | 1080P@90 vs @30 |
|
||||
| LED 频闪 | **OG05B10** | LFM vs 无 |
|
||||
| 车规认证 | **OG05B10** | AEC-Q100 vs 无 |
|
||||
| 成本 | IMX219 | ¥100-150 vs ¥300-500 |
|
||||
| 生态成熟度 | IMX219 | 官方+社区 vs 第三方 |
|
||||
|
||||
**一句话**:IMX219 适合学习/原型/静态采集;OG05B10 适合车载/工业/高速运动场景。
|
||||
|
||||
---
|
||||
|
||||
*整理:知识库管理员 | 归档:2026-04-24*
|
||||
267
wiki/Resources/硬件/无人机视频测流_IMX219_vs_OG05B10对比
Executable file
267
wiki/Resources/硬件/无人机视频测流_IMX219_vs_OG05B10对比
Executable file
@@ -0,0 +1,267 @@
|
||||
# 无人机视频测流:IMX219 vs OG05B10 对比分析
|
||||
|
||||
> 面向 LSPIV/PTV 水流测速场景的传感器选型
|
||||
>
|
||||
> 归档:2026-04-24
|
||||
|
||||
---
|
||||
|
||||
## 📊 场景需求分析
|
||||
|
||||
### 无人机视频测流原理
|
||||
|
||||
```
|
||||
无人机拍摄水面视频 → 提取水面特征点 → 追踪特征位移 → 计算流速
|
||||
↓
|
||||
公式:v = d / t(像素位移 × 标定系数 / 时间)
|
||||
```
|
||||
|
||||
### 核心需求
|
||||
|
||||
| 需求 | 重要性 | 说明 |
|
||||
|------|--------|------|
|
||||
| **无运动畸变** | ⭐⭐⭐⭐⭐ | 无人机抖动 + 水流运动,双重运动源 |
|
||||
| **高帧率** | ⭐⭐⭐⭐ | 提高时间分辨率,捕捉快速水流 |
|
||||
| **无频闪** | ⭐⭐⭐ | 水面反光 + 天空强光,高动态场景 |
|
||||
| **全局同步** | ⭐⭐⭐ | 多相机立体标定时需同步曝光 |
|
||||
| **低光性能** | ⭐⭐ | 阴天/早晚作业时需要 |
|
||||
| **分辨率** | ⭐⭐ | 决定测量区域覆盖范围 |
|
||||
|
||||
---
|
||||
|
||||
## 🎯 详细对比
|
||||
|
||||
### 1. 运动畸变(最关键指标)
|
||||
|
||||
#### 滚动快门(IMX219)的问题
|
||||
|
||||
```
|
||||
无人机振动 + 水流运动 = 双重畸变源
|
||||
|
||||
┌─────────────────────────────────────┐
|
||||
│ 水面波纹被"扭曲"成波浪形 │
|
||||
│ 无人机移动方向上的物体被拉伸/压缩 │
|
||||
│ 特征点位置误差可达 5-20 像素 │
|
||||
└─────────────────────────────────────┘
|
||||
|
||||
速度测量误差 = 畸变导致的像素误差 × 标定系数
|
||||
= 10 像素 × 0.05 m/像素
|
||||
= 0.5 m/s(严重偏差!)
|
||||
```
|
||||
|
||||
#### 全局快门(OG05B10)的优势
|
||||
|
||||
```
|
||||
全像素同时曝光 → 无畸变 → 特征点位置准确
|
||||
|
||||
┌─────────────────────────────────────┐
|
||||
│ 水面波纹保持真实形状 │
|
||||
│ 特征点位置误差 < 1 像素 │
|
||||
│ 速度测量误差 < 0.05 m/s │
|
||||
└─────────────────────────────────────┘
|
||||
```
|
||||
|
||||
| 指标 | IMX219 | OG05B10 |
|
||||
|------|--------|---------|
|
||||
| 运动畸变 | ❌ 严重(5-20 像素) | ✅ 无(<1 像素) |
|
||||
| 速度测量误差 | 0.2-1.0 m/s | **<0.05 m/s** |
|
||||
| 适用流速范围 | 仅适合 <1 m/s | 适合 **0.1-5 m/s** |
|
||||
|
||||
---
|
||||
|
||||
### 2. 时间分辨率(帧率)
|
||||
|
||||
#### LSPIV 对帧率的要求
|
||||
|
||||
```
|
||||
采样定理:帧率 > 2 × 最大流速 / 特征间距
|
||||
|
||||
示例:
|
||||
- 流速 3 m/s
|
||||
- 特征间距 0.1 m
|
||||
- 最低帧率 > 60 FPS
|
||||
```
|
||||
|
||||
| 分辨率 | IMX219 | OG05B10 | 测流适用性 |
|
||||
|--------|--------|---------|-----------|
|
||||
| 全分辨率 | ~15 FPS | **53 FPS** | OG05B10 可用 |
|
||||
| 1080P | **30 FPS** | **90 FPS** | OG05B10 覆盖更快流速 |
|
||||
| 720P | 60 FPS | - | IMX219 勉强 |
|
||||
| VGA | 90 FPS | - | 分辨率太低 |
|
||||
|
||||
**结论**:OG05B10 在 1080P 下 90 FPS,是 IMX219 的 3 倍,可测量更快的流速。
|
||||
|
||||
---
|
||||
|
||||
### 3. 动态范围与频闪
|
||||
|
||||
#### 水面高动态场景
|
||||
|
||||
```
|
||||
水面反射天空 → 过曝区域
|
||||
水流阴影 → 欠曝区域
|
||||
┌─────────────────────────────────────┐
|
||||
│ 过曝区域:特征丢失 │
|
||||
│ 欠曝区域:特征丢失 │
|
||||
│ 有效追踪区域减少 30-50% │
|
||||
└─────────────────────────────────────┘
|
||||
```
|
||||
|
||||
| 指标 | IMX219 | OG05B10 |
|
||||
|------|--------|---------|
|
||||
| HDR | ❌ 不支持 | ✅ 支持 |
|
||||
| 水面过曝处理 | 差 | **好** |
|
||||
| 有效追踪区域 | 60-70% | **85-95%** |
|
||||
|
||||
---
|
||||
|
||||
### 4. 多相机同步
|
||||
|
||||
#### 立体 PIV(双相机 3D 流速场)
|
||||
|
||||
```
|
||||
IMX219(卷帘快门):
|
||||
相机 A:曝光时间 t0 → t0+10ms(逐行)
|
||||
相机 B:曝光时间 t0 → t0+10ms(逐行)
|
||||
→ 两相机行间曝光不同步 → 3D 重建误差
|
||||
|
||||
OG05B10(全局快门):
|
||||
相机 A:曝光时间 t0(全局)
|
||||
相机 B:曝光时间 t0(全局)
|
||||
→ 完美同步 → 3D 重建准确
|
||||
```
|
||||
|
||||
| 场景 | IMX219 | OG05B10 |
|
||||
|------|--------|---------|
|
||||
| 单相机 2D 测流 | ✅ 可用 | ✅ 更好 |
|
||||
| 双相机 3D 测流 | ❌ 误差大 | ✅ 完美同步 |
|
||||
| 多机协同测量 | ❌ 不可行 | ✅ 可行 |
|
||||
|
||||
---
|
||||
|
||||
### 5. 低光性能
|
||||
|
||||
| 场景 | IMX219 | OG05B10 |
|
||||
|------|--------|---------|
|
||||
| 晴天正午 | ✅ | ✅ |
|
||||
| 阴天 | ⚠️ 噪点多 | ✅ 噪点少 |
|
||||
| 早晚/黄昏 | ❌ 特征丢失 | ⚠️ 可用 |
|
||||
| 夜间(无补光) | ❌ 不可用 | ❌ 不可用 |
|
||||
|
||||
**OG05B10 大像素(2.2μm)进光量是 IMX219(1.12μm)的 3.9 倍**
|
||||
|
||||
---
|
||||
|
||||
## 📋 测流场景综合评分
|
||||
|
||||
| 维度 | 权重 | IMX219 | OG05B10 |
|
||||
|------|------|--------|---------|
|
||||
| 运动畸变 | 30% | 30 | **95** |
|
||||
| 帧率 | 20% | 50 | **90** |
|
||||
| 动态范围 | 15% | 40 | **85** |
|
||||
| 多相机同步 | 10% | 20 | **95** |
|
||||
| 低光性能 | 10% | 40 | **75** |
|
||||
| 分辨率 | 10% | **80** | 60 |
|
||||
| 成本 | 5% | **90** | 50 |
|
||||
| **加权总分** | 100% | **45** | **83** |
|
||||
|
||||
---
|
||||
|
||||
## 🏆 产品宣传亮点提取
|
||||
|
||||
### OG05B10 在无人机测流场景的核心卖点
|
||||
|
||||
#### 卖点 1:全局快门 = 测量精度保障
|
||||
|
||||
> "无人机抖动 + 水流运动,双重运动源下,
|
||||
> 卷帘快门引入 5-20 像素畸变,速度误差高达 0.5-1.0 m/s。
|
||||
> OG05B10 全局快门,像素级无畸变,误差 <0.05 m/s。"
|
||||
|
||||
#### 卖点 2:90 FPS = 更高流速测量能力
|
||||
|
||||
> "1080P@90FPS 高帧率,是 IMX219 的 3 倍。
|
||||
> 可测量 0.1-5 m/s 流速范围,覆盖 95% 以上天然河道。"
|
||||
|
||||
#### 卖点 3:HDR + 大像素 = 复杂光照适应性
|
||||
|
||||
> "水面强反光 + 阴影区域,HDR 支持确保特征点不丢失。
|
||||
> 2.2μm 大像素,阴天/早晚仍可正常工作。"
|
||||
|
||||
#### 卖点 4:全局同步 = 支持 3D 流速场
|
||||
|
||||
> "多相机完美同步曝光,支持立体 PIV 测量。
|
||||
> 从 2D 表面流速升级到 3D 流速场分布。"
|
||||
|
||||
---
|
||||
|
||||
### IMX219 的适用场景(对比参考)
|
||||
|
||||
| 场景 | 适用性 | 说明 |
|
||||
|------|--------|------|
|
||||
| 平静水面(<0.5 m/s) | ✅ | 流速慢,畸变影响小 |
|
||||
| 教学/演示用途 | ✅ | 成本低,够用 |
|
||||
| 晴天正午 | ✅ | 光照充足 |
|
||||
| 急流/湍流(>1 m/s) | ❌ | 畸变导致误差大 |
|
||||
| 专业水文测量 | ❌ | 精度不达标 |
|
||||
| 3D 流速场 | ❌ | 无法同步 |
|
||||
|
||||
---
|
||||
|
||||
## 📊 测流精度对比表
|
||||
|
||||
| 流速范围 | IMX219 误差 | OG05B10 误差 | 推荐 |
|
||||
|---------|-----------|-------------|------|
|
||||
| 0.1-0.5 m/s | ±0.1 m/s | ±0.02 m/s | OG05B10 |
|
||||
| 0.5-1.0 m/s | ±0.2 m/s | ±0.03 m/s | OG05B10 |
|
||||
| 1.0-2.0 m/s | ±0.5 m/s | ±0.05 m/s | **仅 OG05B10** |
|
||||
| 2.0-5.0 m/s | ❌ 不可用 | ±0.08 m/s | **仅 OG05B10** |
|
||||
|
||||
---
|
||||
|
||||
## 💡 针对性宣传文案
|
||||
|
||||
### 方案 A:技术向(面向水文工程师)
|
||||
|
||||
```
|
||||
🎯 无人机视频测流,精度提升 10 倍!
|
||||
|
||||
传统卷帘快门相机(如 IMX219)在无人机抖动+水流运动
|
||||
双重作用下,引入 5-20 像素畸变,速度误差达 0.5-1.0 m/s。
|
||||
|
||||
OG05B10 全局快门传感器:
|
||||
✅ 像素级无畸变,误差 <0.05 m/s
|
||||
✅ 1080P@90FPS,覆盖 0.1-5 m/s 流速
|
||||
✅ HDR 支持,水面反光不丢特征
|
||||
✅ 多相机同步,支持 3D 流速场
|
||||
|
||||
从"能用"到"精准",只差一个全局快门。
|
||||
```
|
||||
|
||||
### 方案 B:通俗向(面向非技术用户)
|
||||
|
||||
```
|
||||
🌊 测水流,为什么要用全局快门相机?
|
||||
|
||||
普通相机拍流动的水 → 画面扭曲 → 测不准
|
||||
全局快门相机拍流动的水 → 画面真实 → 测得准
|
||||
|
||||
OG05B10 全局快门相机:
|
||||
📸 拍得快(90 帧/秒)
|
||||
📐 拍得准(无扭曲)
|
||||
🌅 拍得清(HDR 防反光)
|
||||
|
||||
无人机测流首选,精度有保障!
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔗 资源
|
||||
|
||||
| 资源 | 链接 |
|
||||
|------|------|
|
||||
| LSPIV 技术综述 | https://www.mdpi.com/2073-4441/12/5/1356 |
|
||||
| UAV-PIV 研究 | https://www.sciencedirect.com/science/article/pii/S0309170820304716 |
|
||||
|
||||
---
|
||||
|
||||
*整理:知识库管理员 | 归档:2026-04-24*
|
||||
147
wiki/Resources/硬件/豪威OG05B10传感器研究
Executable file
147
wiki/Resources/硬件/豪威OG05B10传感器研究
Executable file
@@ -0,0 +1,147 @@
|
||||
# 豪威 OG05B10 图像传感器研究
|
||||
|
||||
> OmniVision OG05B10 全局快门车载图像传感器
|
||||
>
|
||||
> 归档:2026-04-24
|
||||
|
||||
---
|
||||
|
||||
## 📊 基本信息
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|---|
|
||||
| **型号** | OG05B10-A89A-00MA-Z |
|
||||
| **厂商** | OmniVision(豪威科技) |
|
||||
| **类型** | 全局快门彩色图像传感器 |
|
||||
| **分辨率** | 5MP(2592×1944) |
|
||||
| **传感器尺寸** | 1/2.53"(10.0mm 对角线) |
|
||||
| **像素大小** | 2.2 μm |
|
||||
| **快门类型** | 全局快门(Global Shutter) |
|
||||
| **状态** | 量产中(Active) |
|
||||
| **环保认证** | RoHS Compliant |
|
||||
| **交货周期** | 8 周 |
|
||||
|
||||
---
|
||||
|
||||
## 🎯 核心特性
|
||||
|
||||
### 分辨率与帧率
|
||||
|
||||
| 分辨率 | 尺寸 | 最大帧率 | MIPI 通道 | 模式 |
|
||||
|--------|------|---------|-----------|------|
|
||||
| 5MP | 2592×1944 | 53 FPS | 4 | 全分辨率 |
|
||||
| 1080P | 1920×1080 | 90 FPS | 4 | 裁剪模式 |
|
||||
|
||||
### 全局快门优势
|
||||
|
||||
- ✅ **无运动畸变**:适合高速运动物体检测
|
||||
- ✅ **LED 闪烁抑制(LFM)**:解决交通信号灯频闪问题
|
||||
- ✅ **精确同步**:多相机系统同步采集
|
||||
|
||||
### 应用场景
|
||||
|
||||
| 领域 | 具体应用 |
|
||||
|------|---------|
|
||||
| **汽车电子** | ADAS、环视系统、电子后视镜、舱内监控 |
|
||||
| **工业自动化** | 机器视觉、条码扫描、运动检测 |
|
||||
| **消费电子** | 高端摄像头、VR/AR 设备 |
|
||||
|
||||
---
|
||||
|
||||
## 🔌 接口与兼容性
|
||||
|
||||
| 接口 | 规格 |
|
||||
|------|------|
|
||||
| **数据接口** | MIPI CSI-2(4 通道) |
|
||||
| **平台支持** | Luxonis RVC4 |
|
||||
| **封装类型** | CSP(Chip Scale Package) |
|
||||
|
||||
---
|
||||
|
||||
## 📦 封装与供货
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|---|
|
||||
| **完整型号** | OG05B10-A89A-00MA-Z |
|
||||
| **封装** | Bulk(散装) |
|
||||
| **分销商** | DigiKey、Microchip USA |
|
||||
| **阿里巴巴** | 有现货模块销售 |
|
||||
| **速卖通** | 有相机模块销售 |
|
||||
|
||||
---
|
||||
|
||||
## 🏭 产品系列定位
|
||||
|
||||
豪威车载图像传感器系列中,OG05B10 属于:
|
||||
|
||||
```
|
||||
OG05B 系列
|
||||
├── OG05B10 - 5MP 全局快门(主打 ADAS)
|
||||
├── OG05B1B - 变体型号
|
||||
└── ...
|
||||
```
|
||||
|
||||
**同系列对比**:
|
||||
- **OS05B**:类似规格,可能是不同封装版本
|
||||
- **OG05B**:产品系列名称
|
||||
|
||||
---
|
||||
|
||||
## 🔍 技术亮点
|
||||
|
||||
### 1. 全局快门 vs 卷帘快门
|
||||
|
||||
| 特性 | 全局快门 | 卷帘快门 |
|
||||
|------|---------|---------|
|
||||
| 曝光方式 | 全像素同时曝光 | 逐行曝光 |
|
||||
| 运动畸变 | 无 | 有 |
|
||||
| LED 闪烁 | 可抑制 | 易受影响 |
|
||||
| 适用场景 | 高速运动 | 静态/慢速 |
|
||||
|
||||
### 2. LFM(LED Flicker Mitigation)
|
||||
|
||||
- 解决车载摄像头常见的交通信号灯频闪问题
|
||||
- 对 ADAS 系统至关重要
|
||||
|
||||
---
|
||||
|
||||
## 💰 市场情况
|
||||
|
||||
| 渠道 | 状态 |
|
||||
|------|------|
|
||||
| **DigiKey** | 可订购 |
|
||||
| **Microchip USA** | 可订购,8 周交货 |
|
||||
| **阿里巴巴** | 有相机模块现货 |
|
||||
| **速卖通** | 有开发板/模块 |
|
||||
|
||||
---
|
||||
|
||||
## 🔗 相关资源
|
||||
|
||||
| 资源 | 链接 |
|
||||
|------|------|
|
||||
| **OV 产品页** | https://www.ovt.com/products/og05b/ |
|
||||
| **Luxonis 文档** | https://docs.luxonis.com/hardware/sensors/OG05B10 |
|
||||
| **DigiKey** | https://www.digikey.ca/en/products/detail/omnivision-technologies-inc/OG05B10-A89A-00MA-Z/25323044 |
|
||||
| **产品简介 PDF** | https://www.ovt.com/wp-content/uploads/2024/04/OG05B1B-PB-v1.0-WEB.pdf |
|
||||
| **Scribd 数据手册** | https://www.scribd.com/document/910947292/OG05B10-CSP-DS-1-03-相机传感器 |
|
||||
|
||||
---
|
||||
|
||||
## 💡 应用建议
|
||||
|
||||
### 适合场景
|
||||
- ✅ ADAS 摄像头系统
|
||||
- ✅ 电子后视镜(CMS)
|
||||
- ✅ 360° 环视系统
|
||||
- ✅ 工业机器视觉
|
||||
- ✅ 高速运动检测
|
||||
|
||||
### 注意事项
|
||||
- ⚠️ 需配合 MIPI CSI-2 接收器使用
|
||||
- ⚠️ 全局快门传感器通常比卷帘快门贵
|
||||
- ⚠️ 需要完整的光学设计和 ISP 支持
|
||||
|
||||
---
|
||||
|
||||
*整理:知识库管理员 | 归档:2026-04-24*
|
||||
Reference in New Issue
Block a user