修正:MaixCam自定义开机启动画面;
增加:需求; 更新:模板
This commit is contained in:
parent
99dc02f18f
commit
cb8cff04cc
3
.obsidian/app.json
vendored
3
.obsidian/app.json
vendored
@ -12,5 +12,6 @@
|
||||
"landscape": false,
|
||||
"margin": "0",
|
||||
"downscalePercent": 100
|
||||
}
|
||||
},
|
||||
"useTab": false
|
||||
}
|
||||
5
.obsidian/appearance.json
vendored
5
.obsidian/appearance.json
vendored
@ -1 +1,4 @@
|
||||
{}
|
||||
{
|
||||
"theme": "obsidian",
|
||||
"showRibbon": true
|
||||
}
|
||||
2
.obsidian/graph.json
vendored
2
.obsidian/graph.json
vendored
@ -17,6 +17,6 @@
|
||||
"repelStrength": 10,
|
||||
"linkStrength": 1,
|
||||
"linkDistance": 250,
|
||||
"scale": 0.8099376787739266,
|
||||
"scale": 0.577708672522819,
|
||||
"close": false
|
||||
}
|
||||
2
.obsidian/templates.json
vendored
2
.obsidian/templates.json
vendored
@ -1,4 +1,4 @@
|
||||
{
|
||||
"folder": "03-资源/模板文件",
|
||||
"folder": "模板文件",
|
||||
"dateFormat": "YYYYMMDD"
|
||||
}
|
||||
107
.obsidian/workspace.json
vendored
107
.obsidian/workspace.json
vendored
@ -4,17 +4,31 @@
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "e8c82a2cdbb2272f",
|
||||
"id": "606a41e436bf356e",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "db18e826419dedf4",
|
||||
"id": "b2ea71d883210537",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "empty",
|
||||
"state": {},
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "00-临时碎片/20260114-备忘-Python-pyinstaller.md",
|
||||
"mode": "source",
|
||||
"source": false,
|
||||
"backlinks": true,
|
||||
"backlinkOpts": {
|
||||
"collapseAll": false,
|
||||
"extraContext": false,
|
||||
"sortOrder": "alphabetical",
|
||||
"showSearch": false,
|
||||
"searchQuery": "",
|
||||
"backlinkCollapsed": false,
|
||||
"unlinkedCollapsed": true
|
||||
}
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "新标签页"
|
||||
"title": "20260114-备忘-Python-pyinstaller"
|
||||
}
|
||||
}
|
||||
]
|
||||
@ -37,7 +51,7 @@
|
||||
"type": "file-explorer",
|
||||
"state": {
|
||||
"sortOrder": "alphabetical",
|
||||
"autoReveal": false
|
||||
"autoReveal": true
|
||||
},
|
||||
"icon": "lucide-folder-closed",
|
||||
"title": "文件列表"
|
||||
@ -49,7 +63,7 @@
|
||||
"state": {
|
||||
"type": "search",
|
||||
"state": {
|
||||
"query": "find_blobs",
|
||||
"query": "",
|
||||
"matchingCase": true,
|
||||
"explainSearch": false,
|
||||
"collapseAll": false,
|
||||
@ -182,6 +196,7 @@
|
||||
},
|
||||
"left-ribbon": {
|
||||
"hiddenItems": {
|
||||
"bases:新建数据库": false,
|
||||
"templater-obsidian:Templater": false,
|
||||
"switcher:打开快速切换": false,
|
||||
"graph:查看关系图谱": false,
|
||||
@ -189,53 +204,55 @@
|
||||
"daily-notes:打开/创建今天的日记": false,
|
||||
"templates:插入模板": false,
|
||||
"command-palette:打开命令面板": false,
|
||||
"bases:创建新数据库": false,
|
||||
"workspaces:管理工作区布局": false,
|
||||
"audio-recorder:开始/结束录音": false,
|
||||
"random-note:开始漫游笔记": false,
|
||||
"zk-prefixer:创建时间戳笔记": false
|
||||
}
|
||||
},
|
||||
"active": "db18e826419dedf4",
|
||||
"active": "b2ea71d883210537",
|
||||
"lastOpenFiles": [
|
||||
"01-项目/2025-MaixCam竞赛版/需求-色块合并.md",
|
||||
"01-项目/2025-MaixCam竞赛版/需求-程序更新渠道.md",
|
||||
"01-项目/2025-MaixCam竞赛版/需求-控制SK9822灯带.md",
|
||||
"01-项目/2025-MaixCam竞赛版/项目需求.md",
|
||||
"05-原子化笔记本/MaixCam-find_blobs说明.md",
|
||||
"01-项目/2025-MaixCam竞赛版/需求-忽略指定大小的色块.md",
|
||||
"03-资源/模板文件/模板-原子化笔记-代码.md",
|
||||
"03-资源/工具清单.md",
|
||||
"03-资源/模板文件/模板-Bug修复.md",
|
||||
"03-资源/模板文件/模板-需求.md",
|
||||
"03-资源/模板文件/模板-豆包-DataView语法.md",
|
||||
"03-资源/模板文件/模板-豆包-DataView归档.md",
|
||||
"03-资源/模板文件/模板-豆包-文档整理.md",
|
||||
"03-资源/模板文件/模板-豆包-翻译内容.md",
|
||||
"03-资源/模板文件/模板-备忘.md",
|
||||
"01-项目/2025-MaixCam竞赛版/需求-OCR补丁.md",
|
||||
"00-临时碎片/20260108-备忘-工具技巧-痛点收集.md",
|
||||
"00-临时碎片/20260107-备忘-MaixCam-需求简报.md",
|
||||
"01-项目/2026-新知识融合/模块-多媒体-清单.md",
|
||||
"02-领域/知识架构/领域知识地图.md",
|
||||
"05-原子化笔记本/知识架构-标签配置.md",
|
||||
"05-原子化笔记本/工具技巧-edge兼容性.md",
|
||||
"05-原子化笔记本/MaixCam-RGB转LAB.md",
|
||||
"05-原子化笔记本/Python-排序.md",
|
||||
"00-临时碎片/20260107-备忘-主题名-文件内容.md",
|
||||
"00-临时碎片/20260107-备忘-内容整理产物.md",
|
||||
"02-领域/Python",
|
||||
"attachments/Pasted image 20260106165348.png",
|
||||
"模板文件/模板-豆包-翻译内容.md",
|
||||
"00-临时碎片/20260114-备忘-Python-pyinstaller.md",
|
||||
"模板文件/模板-豆包-文档整理.md",
|
||||
"模板文件/模板-豆包-问题解答.md",
|
||||
"模板文件/模板-备忘.md",
|
||||
"02-领域/Linux/领域知识地图.md",
|
||||
"02-领域/MaixCam/领域知识地图.md",
|
||||
"00-临时碎片/20260114-备忘-MaixCam竞赛版-Windows客户端控制.md",
|
||||
"00-临时碎片/20260114-备忘-Linux-awk指令.md",
|
||||
"00-临时碎片/20260113-备忘-觉察知识-大模型工具化.md",
|
||||
"00-临时碎片/20260113-备忘-觉察知识-数据知识体系化.md",
|
||||
"00-临时碎片/20260113-备忘-MaixCam竞赛版-需求启动器.md",
|
||||
"未命名.base",
|
||||
"05-原子化笔记本/MaixCam-新设备初始化.md",
|
||||
"05-原子化笔记本/Linux-find命令说明.md",
|
||||
"05-原子化笔记本/Linux-sed命令说明.md",
|
||||
"00-临时碎片/20260112-备忘-MaixCam-需求简报.md",
|
||||
"00-临时碎片/20260113-备忘-知识架构-实践启动任务清单.md",
|
||||
"02-领域/知识架构/领域知识地图.md",
|
||||
"02-领域/觉察智慧/领域知识地图.md",
|
||||
"03-资源/链接-MaixCam竞赛版-使用说明.md",
|
||||
"02-领域/工具技巧/领域知识地图.md",
|
||||
"01-项目/2512-MaixCam竞赛版/项目-需求.md",
|
||||
"01-项目/2512-MaixCam竞赛版/模块-程序控制-文档说明.md",
|
||||
"01-项目/2512-MaixCam竞赛版/模块-参数调试-文档说明.md",
|
||||
"01-项目/2512-MaixCam竞赛版/需求-程序更新渠道.md",
|
||||
"01-项目/2512-MaixCam竞赛版/项目-修复.md",
|
||||
"未命名 3.base",
|
||||
"未命名 2.base",
|
||||
"未命名 1.base",
|
||||
"attachments/Pasted image 20260113101441.png",
|
||||
"attachments/MaixCAMMaixPy-开发源代码指南-文件下载完毕-开始打包.mp4",
|
||||
"attachments/MaixCam-新设备初始化.mp4",
|
||||
"02-领域/Linux",
|
||||
"attachments/Pasted image 20260112143446.png",
|
||||
"attachments/Pasted image 20260110124635.png",
|
||||
"03-资源/参数调试-v1.0.10.pdf",
|
||||
"03-资源/程序控制-v3.5.5.pdf",
|
||||
"01-项目/2512-物联实验室",
|
||||
"attachments/未命名.canvas",
|
||||
"03-资源/模板文件",
|
||||
"02-领域/工具技巧",
|
||||
"00-临时碎片/未命名.md.baiduyun.uploading.cfg",
|
||||
"00-临时碎片/未命名 1.md.baiduyun.uploading.cfg",
|
||||
"01-项目/2025-MaixCam竞赛版/模块-程序控制-文档说明.md.baiduyun.uploading.cfg",
|
||||
"templates/模板-备忘.md.baiduyun.uploading.cfg",
|
||||
"templates/模板-需求.md.baiduyun.uploading.cfg",
|
||||
"templates/模板-原子化笔记.md.baiduyun.uploading.cfg",
|
||||
"attachments/Pasted image 20260106165348.png",
|
||||
"attachments/Pasted image 20251231090751.png"
|
||||
]
|
||||
}
|
||||
6
00-临时碎片/20260112-备忘-MaixCam-需求简报.md
Normal file
6
00-临时碎片/20260112-备忘-MaixCam-需求简报.md
Normal file
@ -0,0 +1,6 @@
|
||||
|
||||
#状态/待处理
|
||||
|
||||
1. 手动标注检测区域框测试OCR
|
||||
2. 实验板机器学习算法
|
||||
3. 开发Windows客户端实现MaixCam的命令执行、文件传输
|
||||
34
00-临时碎片/20260113-备忘-MaixCam竞赛版-需求启动器.md
Normal file
34
00-临时碎片/20260113-备忘-MaixCam竞赛版-需求启动器.md
Normal file
@ -0,0 +1,34 @@
|
||||
#临时/备忘 #启动器/需求 #启动器/状态-启动中
|
||||
20260113-备忘-主题名-文件内容
|
||||
|
||||
标签类别
|
||||
- [ ] 启动器/计划中
|
||||
- [ ] 启动器/启动中
|
||||
|
||||
锚点类
|
||||
- [ ] 【新知】
|
||||
- [ ] 【已有】
|
||||
- [ ] 【问题】
|
||||
|
||||
## 一句话描述
|
||||
|
||||
启动:[[需求-程序更新渠道]]
|
||||
|
||||
## 实践前
|
||||
|
||||
### 最小目标
|
||||
|
||||
实现 Windows 和 MaixCam 之间的文件传输
|
||||
|
||||
### 依赖资源
|
||||
|
||||
- [__MaixCam通讯机制______]
|
||||
- [__pip install paramiko______]
|
||||
|
||||
### 验证标准
|
||||
|
||||
- [ ] 在 /tmp 文件夹上传下载一张图片
|
||||
|
||||
|
||||
|
||||
https://www.doubao.com/thread/w4bd621d448519406
|
||||
20
00-临时碎片/20260113-备忘-知识架构-实践启动任务清单.md
Normal file
20
00-临时碎片/20260113-备忘-知识架构-实践启动任务清单.md
Normal file
@ -0,0 +1,20 @@
|
||||
#临时/备忘
|
||||
20260113-备忘-主题名-文件内容
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[_实践前的任务清单_______]
|
||||
|
||||
实践前
|
||||
1. 复用原子,做实践任务清单
|
||||
根据原子笔记,生成1页实践清单
|
||||
- 最小启动目标:...
|
||||
- 依赖资源
|
||||
- 验证标准
|
||||
|
||||
记录锚点
|
||||
|
||||
【新知】
|
||||
【已有】
|
||||
【问题】
|
||||
|
||||
111
00-临时碎片/20260113-备忘-觉察知识-大模型工具化.md
Normal file
111
00-临时碎片/20260113-备忘-觉察知识-大模型工具化.md
Normal file
@ -0,0 +1,111 @@
|
||||
#临时/备忘
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[__高效的利用大模型______]
|
||||
|
||||
|
||||
|
||||
## 风险点:
|
||||
|
||||
1. 大模型脱离实际需求
|
||||
关于摄影技巧,推荐单反,但其实只有手机
|
||||
规避方法:明确使用场景+当前阶段
|
||||
2. 原子笔记变成复制粘贴拥挤站
|
||||
完全复制粘贴时,没有灵魂,实际上也很难记住和复用
|
||||
规避方法:沉淀时,必须加入【个人理解/实践计划】
|
||||
例如:核心内容逆光拍摄植物突出纹理(大模型总结),我理解的是对着太阳拍树叶,叶子变透明,应该很好看(个人理解)
|
||||
实践计划:明天散步时,试试拍路边的梧桐叶
|
||||
3. 盲目积累,原子笔记泛滥
|
||||
照单全收知识点,导致数量爆炸,增加管理成本
|
||||
规避方法:选1~2个最感兴趣的知识点沉淀,例如大模型推荐3个,只选“逆光拍摄”和“食物摆盘技巧”,剩下的放到00-临时碎片,标记待实践
|
||||
|
||||
实践 > 沉淀 > 完美主义
|
||||
|
||||
|
||||
|
||||
空想不如行动、积累胜于苛求。
|
||||
|
||||
实践不是盲目行动,而是带着“小目标、可验证“的方向试错,实践后必须沉淀(比如记录问题、总结规律),否则就是低水平重复。
|
||||
|
||||
> 我是否可以携带小目标、可验证,然后已现有的原子内容做基石,将查到的原子笔记内容和新知识内容随意的摆放在同一个碎片文件中,等实践结束后,再次进行沉淀
|
||||
|
||||
解答:
|
||||
不会拖慢实践进度
|
||||
1. 减少实践中的认知中断
|
||||
临时存储新知识、旧知识
|
||||
2. 降低启动门槛
|
||||
|
||||
方便后续沉淀
|
||||
1. 用标签/符号区分内容类型
|
||||
现有原子内容...加【已有】便签
|
||||
新学到的内容加【新知】标签
|
||||
遇到的问题,加【问题】标签
|
||||
例如【已有】机器学习监督学习三要素
|
||||
【新知】分类插件下载地址
|
||||
【问题】操作时加载失败
|
||||
2. 用分隔线划分实践阶段
|
||||
例如准备素材->演示实验->实际操作
|
||||
`---`来分割不同阶段的内容
|
||||
阶段1:准备素材
|
||||
【已有】...
|
||||
【新知】...
|
||||
---
|
||||
阶段2:演示实验
|
||||
【问题】...
|
||||
|
||||
快速沉淀
|
||||
1. 快速筛选
|
||||
把【已有】内容核对更新同步,把【新知】提炼原子笔记,把问题转为待解决的需求/Bug
|
||||
2. 当天可以只处理【新知】和【问题】,【已有】可以迭代时进行核对
|
||||
|
||||
|
||||
|
||||
|
||||
沉淀不是简单存档,而是为了”趋近完美“做的积累
|
||||
|
||||
完美不是一步到位的起点,而是”实践-沉淀“循环后的自然结果。先落地小案例,再沉淀优化,慢慢就会趋近理想。
|
||||
|
||||
|
||||
让口号变成可执行的步骤
|
||||
1. 破完美执念,启动时,只定最小可执行目标”
|
||||
2. 强沉淀动作:三问法沉淀1.达成了什么目标?2.遇到了什么问题?3.下次怎么改进?
|
||||
3. 以沉淀促实践:下一次实践,必须复用上次的沉淀结果,避免重复踩坑
|
||||
|
||||
- 警惕 **“无效实践”**:没有目标、没有复盘的实践,只是浪费时间(比如盲目学一堆 AI 工具,却不沉淀使用方法,最后啥也没记住);
|
||||
>学也好,不学也好,留痕复盘沉淀,免得啥也没记住好像没学过一样
|
||||
|
||||
|
||||
实践大于沉淀,沉淀大于完美;完美是沉淀的终局方向,沉淀是实践的复盘产物;分域施策,避坑落地,始于行动,终于迭代。
|
||||
|
||||
|
||||
|
||||
实践前
|
||||
1. 复用原子,做实践任务清单
|
||||
根据原子笔记,生成1页实践清单
|
||||
- 最小启动目标:...
|
||||
- 依赖资源
|
||||
- 验证标准
|
||||
|
||||
2. 沉淀标记位,记录锚点
|
||||
|
||||
【新知】
|
||||
【已有】
|
||||
【问题】
|
||||
|
||||
|
||||
实践中
|
||||
1. 快捷键
|
||||
2. 语音输入
|
||||
3. 粘贴板脚本
|
||||
|
||||
实践后
|
||||
解决沉淀耗时、用不上等问题
|
||||
1. 15分钟沉淀时间盒
|
||||
三步法:
|
||||
筛选:删除重复、无用内容(比如“学生很积极”这种无价值描述)
|
||||
拆分:拆成原子(比如”win10权限不足“拆成”AI插件win10权限解决方法“)
|
||||
联动:双向链接至已有知识
|
||||
2. 建立”实践-沉淀-复用“的闭环
|
||||
|
||||
|
||||
23
00-临时碎片/20260113-备忘-觉察知识-数据知识体系化.md
Normal file
23
00-临时碎片/20260113-备忘-觉察知识-数据知识体系化.md
Normal file
@ -0,0 +1,23 @@
|
||||
#临时/备忘
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[__高效的利用大模型______]
|
||||
|
||||
|
||||
拿到书籍,先花 30 分钟梳理核心框架,同步至领域知识地图
|
||||
|
||||
模板:[[模板-觉察知识-书籍框架]]
|
||||
|
||||
|
||||
学完某一小节后,从”能用的方法“出发拆解原子笔记,必须绑定框架节点+实践计划
|
||||
模板:[[模板-觉察知识-笔记拆解]]
|
||||
|
||||
## 核心规则
|
||||
|
||||
1. 框架优先:先完成框架梳理,再拆原子笔记,并回溯到框架节点,避免碎片化
|
||||
2. 实践为王:没有实践计划的原子笔记不沉淀,没有实践结果的笔记不算完整,避免囤知识不使用
|
||||
3. 定量控制:每周最多拆3条原子笔记,1本200页的书拆15~20条即可,避免笔记泛滥
|
||||
4. 联动迭代:每完成3条同分支原子笔记,会框架补充实践结论;整本书学完之后,基于框架+所有实践结论,生成个人化手册
|
||||
5. 标签规范:所有笔记必须带#觉察/兴趣-视觉类似的标签
|
||||
|
||||
6
00-临时碎片/20260114-备忘-Linux-awk指令.md
Normal file
6
00-临时碎片/20260114-备忘-Linux-awk指令.md
Normal file
@ -0,0 +1,6 @@
|
||||
#临时/备忘
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[____记录 awk 指令____]
|
||||
|
||||
69
00-临时碎片/20260114-备忘-MaixCam竞赛版-Windows客户端控制.md
Normal file
69
00-临时碎片/20260114-备忘-MaixCam竞赛版-Windows客户端控制.md
Normal file
@ -0,0 +1,69 @@
|
||||
#临时/备忘
|
||||
20260114-备忘-主题名-文件内容
|
||||
|
||||
## 操作需求
|
||||
|
||||
需要进行如下操作:
|
||||
我的问题是【输入内容】,请专业耐心的解答我的问题,并将你的答案整理归纳至【输出内容】
|
||||
|
||||
>若你觉得我的【输入内容】描述模糊,你需要先不回答,而是通过提问来协助我更加清晰的描述我的【输入内容】需求,同时总结至提问建议,以优化我的提问技巧
|
||||
|
||||
## 内容要求
|
||||
1. 语句通顺,避免口语化、冗余表述
|
||||
2. 结构完整,包含核心结论、详细解释、延伸补充(若适用)
|
||||
3. 针对复杂概念,需提供通俗化解读,例如费曼学习法,降低理解门槛(若适用)
|
||||
4. 适当添加辅助图标、图表减轻阅读负担
|
||||
5. 提供常见避坑点、浓缩知识点和进阶优化方向,从多维度区了解内容(若适用)
|
||||
|
||||
## 输出格式
|
||||
|
||||
- [x] markdown
|
||||
|
||||
```markdown
|
||||
## 一句话描述
|
||||
|
||||
【使用一句话概括】
|
||||
|
||||
## 详细解释
|
||||
|
||||
【你的解答】
|
||||
|
||||
## 延伸补充
|
||||
|
||||
...
|
||||
### 常见避坑点
|
||||
|
||||
### 知识点浓缩
|
||||
|
||||
【背诵级,解决反复查资料的核心需求】
|
||||
|
||||
### 进阶优化方向
|
||||
|
||||
## 提问建议
|
||||
...
|
||||
|
||||
---
|
||||
```
|
||||
|
||||
## 注意
|
||||
1. 请判断勾选框是否处于被勾选状态,例如markdown勾选框处于未被勾选状态,则无需输出markdown格式
|
||||
|
||||
以上内容为系统提示,为了辅助你更好的回答。
|
||||
|
||||
---
|
||||
|
||||
## 输入内容
|
||||
|
||||
| 项目 | 内容 |
|
||||
| ------ | ----------------------------------------------------------------------- |
|
||||
| 领域 | 编程 |
|
||||
| 你的角色设定 | 领域实战专家,擅长用通俗有趣的方式给新手拆解知识点,注重 “避坑 + 实操”,拒绝晦涩理论 |
|
||||
| 我的角色设定 | 具备基础的代码编写能力 |
|
||||
| 语言风格 | 口语化、接地气,像朋友聊天一样,避免专业术语;必要术语需搭配通俗解释 |
|
||||
| 约束 | 1. 每个知识点必须搭配**1 个可直接模仿的操作示例**;<br>4. 避免堆砌知识点,优先讲 “新手最需要的核心内容” |
|
||||
| 任务目标 | 基于paramiko给我解释如何实现windows和linux之间的文件传输和命令执行(注:若paramiko无法实现要求,为我可供其他方案) |
|
||||
| 解决问题 | 用户无法通过python实现自定义话工具,运行脚本传输下载文件 |
|
||||
| 服务于 | 文件传输、命令执行,并为后续python编写交互界面进行上述操作打下基础 |
|
||||
| | |
|
||||
|
||||
## 输出内容
|
||||
6
00-临时碎片/20260114-备忘-Python-pyinstaller.md
Normal file
6
00-临时碎片/20260114-备忘-Python-pyinstaller.md
Normal file
@ -0,0 +1,6 @@
|
||||
#临时/备忘
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[___pyinstaller的基础应用_____]
|
||||
|
||||
@ -1,33 +0,0 @@
|
||||
#需求/禅道
|
||||
|
||||
20260105-需求-主题名-文件内容
|
||||
## 模板变更
|
||||
- 20260105(`v1.0.5`):增加一句话描述
|
||||
- 20251231(`v1.0.4`):增加核心信息(需求描述、初步评估、关联资源)
|
||||
- 20251231(`v1.0.3`):增加关联模板
|
||||
|
||||
---
|
||||
|
||||
## 一句话描述
|
||||
|
||||
摄像头启动和程序启动速度慢
|
||||
|
||||
## 基本信息
|
||||
|
||||
### 需求描述
|
||||
|
||||
优化启动画面
|
||||
1. 查询资料编译自定义系统
|
||||
2. 询问官方途径
|
||||
|
||||
程序启动速度
|
||||
1. 评估启动速度
|
||||
2. 尝试开机优先启动画面来提升用户感受
|
||||
|
||||
### 初步评估
|
||||
|
||||
需要排查评估,预估开发时间未知
|
||||
|
||||
### 关联资源
|
||||
|
||||
- [[01-项目/2025-MaixCam竞赛版/项目需求|项目需求]]
|
||||
@ -1 +0,0 @@
|
||||
- 触摸屏菜单错位 -- [[MaixCam-触摸屏分辨率]]
|
||||
@ -1 +0,0 @@
|
||||
适配个人开发者的「PARA + 原子化笔记」知识架构
|
||||
@ -1,6 +0,0 @@
|
||||
|
||||
软件:Obisian + 第三方插件
|
||||
同步:Git 版本记录 + 云存储备份
|
||||
|
||||
- 目录配置 -> [[知识架构-目录配置]]
|
||||
- 标签配置 -> [[知识架构-标签配置]]
|
||||
@ -1,67 +0,0 @@
|
||||
|
||||
# 魔搭环境配置
|
||||
## 核心信息
|
||||
|
||||
- 高带宽机器推荐命令行下载,支持断电断续和高速下载
|
||||
|
||||
## 环境安装
|
||||
|
||||
```bash
|
||||
pip install modelscope
|
||||
```
|
||||
|
||||
|
||||
## 模型下载
|
||||
|
||||
### 命令行下载(推荐)
|
||||
|
||||
```bash
|
||||
modelscope download --model="Qwen/Qwen2.5-0.5B-Instruct" --local_dir ./model-dir
|
||||
```
|
||||
|
||||
### SDK 下载
|
||||
```python
|
||||
from modelscope import snapshot_download model_dir = snapshot_download("Qwen/Qwen2.5-0.5B-Instruct")
|
||||
```
|
||||
|
||||
### Git LFS 下载
|
||||
```bash
|
||||
git lfs install
|
||||
git clone https://www.modelscope.cn/Qwen/Qwen2.5-0.5B-Instruct.git
|
||||
```
|
||||
|
||||
|
||||
## 模型加载
|
||||
|
||||
### AutoModel
|
||||
|
||||
ModelScope 支持原生 pipeline 推理,同时也兼容了由Transformers,Diffusers等提供的AutoModel和Pipeline的加载
|
||||
|
||||
```bash
|
||||
pip install transformers
|
||||
```
|
||||
|
||||
```python
|
||||
from modelscope import AutoModelForCausalLM, AutoTokenizer
|
||||
|
||||
model_name = "Qwen/Qwen2.5-0.5B-Instruct"
|
||||
|
||||
model = AutoModelForCausalLM.from_pretrained(
|
||||
model_name,
|
||||
torch_dtype="auto",
|
||||
device_map="auto"
|
||||
)
|
||||
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
||||
```
|
||||
|
||||
### 使用 ModelScope pipeline 加载模型
|
||||
```python
|
||||
from modelscope.pipelines import pipeline
|
||||
word_segmentation = pipeline('word-segmentation',model='damo/nlp_structbert_word-segmentation_chinese-base')
|
||||
```
|
||||
|
||||
## 模型推理
|
||||
|
||||
```python
|
||||
from modelscope.pipelines import pipeline from modelscope.utils.constant import Tasks inference_pipeline = pipeline( task=Tasks.auto_speech_recognition, model='iic/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch', model_revision="v2.0.4") rec_result = inference_pipeline('https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_vad_punc_example.wav') print(rec_result)
|
||||
```
|
||||
@ -4,14 +4,16 @@
|
||||
|
||||
## 一、基本说明
|
||||
|
||||
- **版本号**:`v1.0.9.1`
|
||||
- **版本号**:`v1.0.10`
|
||||
- **用途**:用于测试视觉算法运行参数,包括分辨率、帧率、缩放比例、颜色空间采样及检测框显示等。
|
||||
- **适用算法**:OCR、色块、AprilTag、line
|
||||
- **适用算法**:OCR、色块、AprilTag、交叉点
|
||||
|
||||
---
|
||||
|
||||
## 二、菜单项配置说明
|
||||
|
||||
> 屏幕无操作十秒后,中心菜单项自动隐藏
|
||||
|
||||
### 分辨率
|
||||
|
||||
支持以下预设分辨率选项:
|
||||
@ -104,9 +106,14 @@
|
||||
|
||||
---
|
||||
|
||||
### 直线配置
|
||||
### 交叉点配置
|
||||
|
||||
测试中...
|
||||
交叉点检测本质上是线段检测算法的一种衍生形态,因此相关配置内容包含线段检测算法的参数。
|
||||
|
||||
| 字段 | 含义 |
|
||||
| ---- | ------ |
|
||||
| 合并距离 | 测试中... |
|
||||
| 合并角度 | 测试中... |
|
||||
|
||||
---
|
||||
|
||||
@ -119,6 +126,6 @@
|
||||
| **OCR** | 光学字符识别,提取图像中的文字内容 |
|
||||
| **色块** | 基于颜色(如LAB阈值)检测连通区域,输出色块位置与属性 |
|
||||
| **AprilTag** | 检测AprilTag二维码,输出ID、位置、姿态等信息 |
|
||||
| **line** | 测试中... |
|
||||
| **交叉点** | 测试中... |
|
||||
|
||||
---
|
||||
@ -4,10 +4,13 @@
|
||||
|
||||
## 一、基本说明
|
||||
|
||||
- **版本号**:`v3.5.4.1`
|
||||
- **版本号**:`v3.5.5`
|
||||
- **适用算法**:OCR、色块、AprilTag
|
||||
- **串口波特率**:115200
|
||||
- **协议详情参见**:[附录:通信协议规范](#附录:通信协议规范)
|
||||
- **关联文档**:参数调试`v1.0.10`
|
||||
|
||||
>建议先阅读关联文档,再来阅读本文档。
|
||||
|
||||
---
|
||||
|
||||
@ -19,21 +22,21 @@
|
||||
| `1` | 色块检测 | 默认 LAB 参数为 0,需配合 `S` 指令设置颜色范围 |
|
||||
| `2` | Apriltag | 检测 Apriltag 标签,返回 ID 与旋转角度 |
|
||||
| `3` | OCR | 光学字符识别 |
|
||||
| `4` | 交叉点 | 测试中功能,尚未稳定 |
|
||||
| `4` | 交叉点 | 检测交叉点中心区域 |
|
||||
|
||||
---
|
||||
|
||||
## 三、串口发送格式
|
||||
|
||||
| 操作 | 指令字符 | 参数格式与说明 | 示例命令 |
|
||||
| ------------ | ---- | ------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| ------------ | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| **开启指定算法** | `N` | `<算法ID>`<br>立即切换当前运行算法 | `N1`(启动色块检测) |
|
||||
| **设置LAB参数** | `S` | `<参数ID>+LMin+LMax+AMin+AMax+BMin+BMax>`<br>用于色块检测的颜色范围(LAB色彩空间,0~255) | `S1+0+100+30+80+20+70` |
|
||||
| **设置串口应答模式** | `A` | `<模式>`<br>• `-n`:定时上报,间隔 n 毫秒<br>• `0`:关闭上报<br>• `n>0`:仅上报第n个目标后自动切回 `A0` | `A-500`<br>`A0`<br>`A2` |
|
||||
| **缩放画面比例** | `Z` | `<缩放倍数>`<br>以画面中心为基准缩放。`Z100`=原始尺寸,`Z150`=放大至150% | `Z100`<br>`Z150` |
|
||||
| **设置分辨率** | `R` | `<分辨率>`<br>格式:`宽x高`,如 `552x368` | `R552x368` |
|
||||
| **设置检测框显示项** | `D` | `+标识符+状态`<br>标识符: `i`, `x`, `y`, `w`, `h`, `v`, `r`, `cx`, `cy`<br>状态: `1`=显示, `0`=隐藏 | `D+i1+cx1+cy1`<br>`D+i1+x0+y0` |
|
||||
| **设置色块算法参数** | `C` | `+合并开关+合并距离+最小X比例+最小Y比例`<br>合并开关:`1`=开启,`0`=关闭<br>合并距离:n>=0,小于n个像素的色块会被合并 | `C+1+30+0+0`(合并30像素间距色块)<br>`C+0+30+0+0`(不合并)<br>`C+0+30+30+50`(不合并,色块的面积、宽度、高度分别不低于面积阈值、最小Y尺寸,否则不返回) |
|
||||
| **设置色块算法参数** | `C` | `+合并开关+合并距离+最小X比例+最小Y比例`<br>合并开关:`1`=开启,`0`=关闭<br>合并距离:n>=0,小于n个像素的色块会被合并<br>最小X比例:0~100<br>最小Y比例:0~100<br>(`面积阈值=最小X尺寸 * 最小Y尺寸`,色块的面积、宽度和高度分别不低于面积阈值、最小Y尺寸,否则不返回。) | `C+1+30+0+0`(合并30像素间距色块)<br>`C+0+30+0+0`(不合并)<br>`C+0+30+30+50`(不合并,色块的面积、宽度、高度分别不低于面积阈值、最小Y尺寸,否则不返回) |
|
||||
|
||||
---
|
||||
|
||||
55
01-项目/2512-MaixCam竞赛版/需求-OCR搜索检测.md
Normal file
55
01-项目/2512-MaixCam竞赛版/需求-OCR搜索检测.md
Normal file
@ -0,0 +1,55 @@
|
||||
#需求/禅道
|
||||
|
||||
## 标签类别
|
||||
|
||||
临时类
|
||||
- [ ] 临时/需求
|
||||
|
||||
需求类
|
||||
- [ ] 需求/碎片
|
||||
- [x] 需求/评估
|
||||
- [ ] 需求/禅道
|
||||
- [ ] 需求/原子化
|
||||
- [ ] 需求/关闭
|
||||
- [ ] 需求/取消
|
||||
|
||||
---
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[_在远距离全画面情景下,搜索式OCR检测结果_____]
|
||||
|
||||
## 基本信息
|
||||
|
||||
### 需求描述
|
||||
|
||||
涉及内容:[_OCR检测算法、图像存储、图像裁剪_____]
|
||||
|
||||
涉及知识:
|
||||
- [OCR文字识别](https://wiki.sipeed.com/maixpy/doc/zh/vision/ocr.html)
|
||||
- [基本图像操作](https://wiki.sipeed.com/maixpy/doc/zh/vision/image_ops.html)
|
||||
|
||||
检查任务队列是否满足“三清”标准:
|
||||
- 来源清:[__字母卡片检测____] 驱动
|
||||
- 目的清:解决的[_OCR检测失效、不稳定____] 问题,服务于 [_获取字母卡片顺序__]
|
||||
- 状态清:[__进行中______]
|
||||
|
||||
(谁/什么驱动的?)(解决什么问题?服务哪个目标?)(进行中/等待/阻塞)
|
||||
|
||||
### 初步评估
|
||||
|
||||
方案简述:[__图像存储、图像裁剪、预设检测框、搜索算法、OCR识别______]
|
||||
|
||||
预估时间:[__1______] h
|
||||
|
||||
## 建议操作
|
||||
|
||||
1. [_图像存储_______]
|
||||
2. [__图像裁剪______]
|
||||
3. [___预设检测框,检测点,检测面积_____]
|
||||
4. [___搜索算法_____]
|
||||
5. [___OCR识别_____]
|
||||
|
||||
### 关联资源
|
||||
|
||||
- [[项目-需求|项目-需求]]
|
||||
@ -1,7 +1,5 @@
|
||||
#需求/禅道
|
||||
|
||||
20260107-需求-主题名-文件内容
|
||||
|
||||
## 标签类别
|
||||
|
||||
临时类
|
||||
@ -14,11 +12,6 @@
|
||||
- [ ] 需求/原子化
|
||||
- [ ] 需求/关闭
|
||||
|
||||
## 模板变更
|
||||
- 20260106(`v1.0.6)`:标签类别、需求描述、初步评估、建议操作
|
||||
- 20260105(`v1.0.5`):增加一句话描述
|
||||
- 20251231(`v1.0.4`):增加核心信息(需求描述、初步评估、关联资源)
|
||||
|
||||
---
|
||||
|
||||
## 一句话描述
|
||||
@ -56,4 +49,4 @@
|
||||
|
||||
### 关联资源
|
||||
|
||||
- [[01-项目/2025-MaixCam竞赛版/项目需求|项目需求]]
|
||||
- [[项目-需求|项目-需求]]
|
||||
50
01-项目/2512-MaixCam竞赛版/需求-交叉点绑定缩放比例.md
Normal file
50
01-项目/2512-MaixCam竞赛版/需求-交叉点绑定缩放比例.md
Normal file
@ -0,0 +1,50 @@
|
||||
#需求/禅道
|
||||
|
||||
## 标签类别
|
||||
|
||||
临时类
|
||||
- [ ] 临时/需求
|
||||
|
||||
需求类
|
||||
- [ ] 需求/碎片
|
||||
- [ ] 需求/评估
|
||||
- [x] 需求/禅道
|
||||
- [ ] 需求/原子化
|
||||
- [ ] 需求/关闭
|
||||
- [ ] 需求/取消
|
||||
|
||||
---
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[_交叉点算法绑定缩放比例为 180_____]
|
||||
|
||||
## 基本信息
|
||||
|
||||
### 需求描述
|
||||
|
||||
涉及内容:[_交叉点算法、缩放比例_____]
|
||||
|
||||
涉及知识:[__MaixCam画面处理______]
|
||||
|
||||
检查任务队列是否满足“三清”标准:
|
||||
- 来源清:[__交叉点算法使用____] 驱动
|
||||
- 目的清:解决的[_启动交叉点算法后要设置缩放比例____] 问题,服务于 [_简化操作流程__]
|
||||
- 状态清:[__进行中______]
|
||||
|
||||
(谁/什么驱动的?)(解决什么问题?服务哪个目标?)(进行中/等待/阻塞)
|
||||
|
||||
### 初步评估
|
||||
|
||||
方案简述:[__启动交叉点算法、设置缩放比例为180______]
|
||||
|
||||
预估时间:[__1______] h
|
||||
|
||||
## 建议操作
|
||||
|
||||
1. [__标记交叉点算法启动位置______]
|
||||
2. [设置缩放比例为180______]
|
||||
|
||||
### 关联资源
|
||||
|
||||
- [[项目-需求|项目-需求]]
|
||||
33
01-项目/2512-MaixCam竞赛版/需求-优化启动速度.md
Normal file
33
01-项目/2512-MaixCam竞赛版/需求-优化启动速度.md
Normal file
@ -0,0 +1,33 @@
|
||||
#需求/禅道
|
||||
|
||||
## 一句话描述
|
||||
|
||||
摄像头启动和程序启动速度慢
|
||||
|
||||
## 基本信息
|
||||
|
||||
### 需求描述
|
||||
|
||||
涉及内容:[_优化启动速度_____]
|
||||
|
||||
涉及知识:
|
||||
- [常见问题-十六、MaixCAM 启动非常缓慢](https://wiki.sipeed.com/maixpy/doc/zh/faq.html#MaixCAM-%E5%90%AF%E5%8A%A8%E9%9D%9E%E5%B8%B8%E7%BC%93%E6%85%A2%EF%BC%8C%E7%94%9A%E8%87%B3%E8%B6%85%E8%BF%87%E4%BA%86-1-%E5%88%86%E9%92%9F%EF%BC%8C%E6%88%96%E8%80%85%E5%B1%8F%E5%B9%95%E5%9C%A8%E9%97%AA%E5%8A%A8)
|
||||
|
||||
|
||||
https://wiki.sipeed.com/maixpy/doc/zh/faq.html
|
||||
|
||||
优化启动画面
|
||||
1. 查询资料编译自定义系统
|
||||
2. 询问官方途径
|
||||
|
||||
程序启动速度
|
||||
1. 评估启动速度
|
||||
2. 尝试开机优先启动画面来提升用户感受
|
||||
|
||||
### 初步评估
|
||||
|
||||
需要排查评估,预估开发时间未知
|
||||
|
||||
### 关联资源
|
||||
|
||||
- [[项目-需求|项目-需求]]
|
||||
@ -1,7 +1,5 @@
|
||||
#需求/禅道
|
||||
|
||||
20260108-需求-主题名-文件内容
|
||||
|
||||
## 标签类别
|
||||
|
||||
临时类
|
||||
@ -15,16 +13,11 @@
|
||||
- [ ] 需求/关闭
|
||||
- [ ] 需求/取消
|
||||
|
||||
## 模板变更
|
||||
- 20260106(`v1.0.6)`:标签类别、需求描述、初步评估、建议操作
|
||||
- 20260105(`v1.0.5`):增加一句话描述
|
||||
- 20251231(`v1.0.4`):增加核心信息(需求描述、初步评估、关联资源)
|
||||
|
||||
---
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[_忽略指定大小的色块(需考虑分辨率、缩放比例、宽、高不一致的情况_____]
|
||||
[_按百分比忽略指定x、y大小的色块_____]
|
||||
|
||||
## 基本信息
|
||||
|
||||
@ -53,8 +46,9 @@
|
||||
1. [__暴露参数给参数调试______]
|
||||
2. [__使用参数调试测试效果______]
|
||||
3. [__暴露参数给程序控制______]
|
||||
4. [__更新操作说明______]
|
||||
4. [__百分比参数转换为算法参数______]
|
||||
5. [__更新操作说明______]
|
||||
|
||||
### 关联资源
|
||||
|
||||
- [[01-项目/2025-MaixCam竞赛版/项目需求|项目需求]]
|
||||
- [[项目-需求|项目-需求]]
|
||||
@ -1,7 +1,5 @@
|
||||
#需求/取消
|
||||
|
||||
20260107-需求-主题名-文件内容
|
||||
|
||||
## 标签类别
|
||||
|
||||
临时类
|
||||
@ -15,11 +13,6 @@
|
||||
- [ ] 需求/关闭
|
||||
- [x] 需求/取消
|
||||
|
||||
## 模板变更
|
||||
- 20260106(`v1.0.6)`:标签类别、需求描述、初步评估、建议操作
|
||||
- 20260105(`v1.0.5`):增加一句话描述
|
||||
- 20251231(`v1.0.4`):增加核心信息(需求描述、初步评估、关联资源)
|
||||
|
||||
---
|
||||
|
||||
## 一句话描述
|
||||
@ -60,4 +53,4 @@
|
||||
|
||||
### 关联资源
|
||||
|
||||
- [[01-项目/2025-MaixCam竞赛版/项目需求|项目需求]]
|
||||
- [[项目-需求|项目-需求]]
|
||||
50
01-项目/2512-MaixCam竞赛版/需求-检测框字体动态调整.md
Normal file
50
01-项目/2512-MaixCam竞赛版/需求-检测框字体动态调整.md
Normal file
@ -0,0 +1,50 @@
|
||||
#需求/禅道
|
||||
|
||||
## 标签类别
|
||||
|
||||
临时类
|
||||
- [ ] 临时/需求
|
||||
|
||||
需求类
|
||||
- [ ] 需求/碎片
|
||||
- [x] 需求/评估
|
||||
- [ ] 需求/禅道
|
||||
- [ ] 需求/原子化
|
||||
- [ ] 需求/关闭
|
||||
- [ ] 需求/取消
|
||||
|
||||
---
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[_缩放比例后,检测框字体太大显示不全_____]
|
||||
|
||||
## 基本信息
|
||||
|
||||
### 需求描述
|
||||
|
||||
涉及内容:[_参数调试、程序控制程序屏幕显示_____]
|
||||
|
||||
涉及知识:[__字体切换______]
|
||||
|
||||
检查任务队列是否满足“三清”标准:
|
||||
- 来源清:[__程序升级迭代____] 驱动
|
||||
- 目的清:解决的[_缩放比例之后检测框文字也变大了__] 问题,服务于 [_屏幕显示使用__]
|
||||
- 状态清:[__进行中______]
|
||||
|
||||
(谁/什么驱动的?)(解决什么问题?服务哪个目标?)(进行中/等待/阻塞)
|
||||
|
||||
### 初步评估
|
||||
|
||||
方案简述:[__在每次缩放比例后,自动去更新字体大小______]
|
||||
|
||||
预估时间:[__2______] h
|
||||
|
||||
## 建议操作
|
||||
|
||||
1. [___标记缩放比例位置_____]
|
||||
2. [___更新字体大小_____]
|
||||
|
||||
### 关联资源
|
||||
|
||||
- [[项目-需求|项目-需求]]
|
||||
@ -1,24 +1,17 @@
|
||||
#需求/评估
|
||||
|
||||
20260105-需求-主题名-文件内容
|
||||
#需求/禅道
|
||||
|
||||
## 标签类别
|
||||
|
||||
临时类
|
||||
- [x] 临时/需求
|
||||
- [ ] 临时/需求
|
||||
|
||||
需求类
|
||||
- [x] 需求/碎片
|
||||
- [ ] 需求/碎片
|
||||
- [ ] 需求/评估
|
||||
- [ ] 需求/禅道
|
||||
- [x] 需求/禅道
|
||||
- [ ] 需求/原子化
|
||||
- [ ] 需求/关闭
|
||||
|
||||
## 模板变更
|
||||
- 20260106(`v1.0.6)`:标签类别、需求描述、初步评估、建议操作
|
||||
- 20260105(`v1.0.5`):增加一句话描述
|
||||
- 20251231(`v1.0.4`):增加核心信息(需求描述、初步评估、关联资源)
|
||||
|
||||
---
|
||||
|
||||
## 一句话描述
|
||||
@ -31,7 +24,10 @@
|
||||
|
||||
涉及内容:[_提供程序更新入口给用户_____]
|
||||
|
||||
涉及知识:[__MaixCam通讯机制______]
|
||||
涉及知识:
|
||||
- [__MaixCam通讯机制______]
|
||||
- [__pip install paramiko______]
|
||||
|
||||
|
||||
检查任务队列是否满足“三清”标准:
|
||||
- 来源清:[__程序升级迭代____] 驱动
|
||||
@ -49,10 +45,11 @@
|
||||
## 建议操作
|
||||
|
||||
1. [__先了解MaixCam的程序运行机制______]
|
||||
2. [___将程序文件发送给MaixCam_____]
|
||||
3. [___执行覆盖更新的操作_____]
|
||||
4. [___更新失败后回退_____]
|
||||
2. [__pip install paramiko______]
|
||||
3. [___将程序文件发送给MaixCam_____]
|
||||
4. [___执行覆盖更新的操作_____]
|
||||
5. [___更新失败后回退_____]
|
||||
|
||||
### 关联资源
|
||||
|
||||
- [[01-项目/2025-MaixCam竞赛版/项目需求|项目需求]]
|
||||
- [[项目-需求|项目-需求]]
|
||||
@ -1,7 +1,5 @@
|
||||
#需求/关闭
|
||||
|
||||
20260105-需求-主题名-文件内容
|
||||
|
||||
## 标签类别
|
||||
|
||||
临时类
|
||||
@ -12,11 +10,6 @@
|
||||
- [ ] 需求/评估
|
||||
- [ ] 需求/禅道
|
||||
|
||||
## 模板变更
|
||||
- 20260106(`v1.0.6)`:标签类别、需求描述、初步评估、建议操作
|
||||
- 20260105(`v1.0.5`):增加一句话描述
|
||||
- 20251231(`v1.0.4`):增加核心信息(需求描述、初步评估、关联资源)
|
||||
|
||||
---
|
||||
|
||||
## 一句话描述
|
||||
@ -53,6 +46,6 @@
|
||||
|
||||
### 关联资源
|
||||
|
||||
- [[01-项目/2025-MaixCam竞赛版/项目需求|项目需求]]
|
||||
- [[项目-需求|项目-需求]]
|
||||
- [[MaixCam-find_blobs说明]]
|
||||
|
||||
50
01-项目/2512-MaixCam竞赛版/需求-菜单切换控件位置颠倒.md
Normal file
50
01-项目/2512-MaixCam竞赛版/需求-菜单切换控件位置颠倒.md
Normal file
@ -0,0 +1,50 @@
|
||||
#需求/禅道
|
||||
|
||||
## 标签类别
|
||||
|
||||
临时类
|
||||
- [ ] 临时/需求
|
||||
|
||||
需求类
|
||||
- [ ] 需求/碎片
|
||||
- [ ] 需求/评估
|
||||
- [x] 需求/禅道
|
||||
- [ ] 需求/原子化
|
||||
- [ ] 需求/关闭
|
||||
- [ ] 需求/取消
|
||||
|
||||
---
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[_【上一个】、【下一个】的ui界面颠倒位置了,即【上一个】应该在上,【下一个】应该在下_____]
|
||||
|
||||
## 基本信息
|
||||
|
||||
### 需求描述
|
||||
|
||||
涉及内容:[_参数调试程序的ui界面_____]
|
||||
|
||||
涉及知识:[__控件坐标位置______]
|
||||
|
||||
检查任务队列是否满足“三清”标准:
|
||||
- 来源清:[__参数调试使用____] 驱动
|
||||
- 目的清:解决的[_现有界面不符合人为使用习惯____] 问题,服务于 [_菜单切换__]
|
||||
- 状态清:[__进行中______]
|
||||
|
||||
(谁/什么驱动的?)(解决什么问题?服务哪个目标?)(进行中/等待/阻塞)
|
||||
|
||||
### 初步评估
|
||||
|
||||
方案简述:[__替换按钮的Y坐标______]
|
||||
|
||||
预估时间:[__1______] h
|
||||
|
||||
## 建议操作
|
||||
|
||||
1. [___找到两个控件_____]
|
||||
2. [___替换Y坐标_____]
|
||||
|
||||
### 关联资源
|
||||
|
||||
- [[项目-需求|项目-需求]]
|
||||
51
01-项目/2512-MaixCam竞赛版/需求-菜单状态保存.md
Normal file
51
01-项目/2512-MaixCam竞赛版/需求-菜单状态保存.md
Normal file
@ -0,0 +1,51 @@
|
||||
#需求/碎片 #临时/需求
|
||||
|
||||
## 标签类别
|
||||
|
||||
临时类
|
||||
- [ ] 临时/需求
|
||||
|
||||
需求类
|
||||
- [ ] 需求/碎片
|
||||
- [x] 需求/评估
|
||||
- [ ] 需求/禅道
|
||||
- [ ] 需求/原子化
|
||||
- [ ] 需求/关闭
|
||||
- [ ] 需求/取消
|
||||
|
||||
---
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[_菜单状态保存_____]
|
||||
|
||||
## 基本信息
|
||||
|
||||
### 需求描述
|
||||
|
||||
涉及内容:[_菜单状态读写_____]
|
||||
|
||||
涉及知识:[__配置文件读写______]
|
||||
|
||||
检查任务队列是否满足“三清”标准:
|
||||
- 来源清:[__菜单配置保存____] 驱动
|
||||
- 目的清:解决的[_重启状态不保存,用户要经常重复性修改参数配置__] 问题,服务于 [_调试流程的使用__]
|
||||
- 状态清:[__进行中______]
|
||||
|
||||
(谁/什么驱动的?)(解决什么问题?服务哪个目标?)(进行中/等待/阻塞)
|
||||
|
||||
### 初步评估
|
||||
|
||||
方案简述:[__更新菜单状态后,同步配置文件______]
|
||||
|
||||
预估时间:[__3______] h
|
||||
|
||||
## 建议操作
|
||||
|
||||
1. [__标记更新菜单状态位置______]
|
||||
2. [__写入配置文件______]
|
||||
3. [___重启时读入配置文件_____]
|
||||
|
||||
### 关联资源
|
||||
|
||||
- [[项目-需求|项目-需求]]
|
||||
2
01-项目/2512-MaixCam竞赛版/项目-修复.md
Normal file
2
01-项目/2512-MaixCam竞赛版/项目-修复.md
Normal file
@ -0,0 +1,2 @@
|
||||
|
||||
- 触摸屏菜单错位 -- [[MaixCam-触摸屏分辨率]]
|
||||
2
01-项目/2512-MaixCam竞赛版/项目-总结.md
Normal file
2
01-项目/2512-MaixCam竞赛版/项目-总结.md
Normal file
@ -0,0 +1,2 @@
|
||||
|
||||
|
||||
2
01-项目/2512-MaixCam竞赛版/项目-配置.md
Normal file
2
01-项目/2512-MaixCam竞赛版/项目-配置.md
Normal file
@ -0,0 +1,2 @@
|
||||
|
||||
- [[操作说明-MaixCam竞赛版-增加参数]]
|
||||
@ -2,7 +2,7 @@
|
||||
```dataview
|
||||
TABLE without ID
|
||||
link(file.path, file.name) as "文件名", filter(file.tags, (t)=>startswith(t,"#需求/")) as "状态", file.mtime AS "最后修改时间"
|
||||
FROM "01-项目/2025-MaixCam竞赛版"
|
||||
FROM "01-项目/2512-MaixCam竞赛版"
|
||||
WHERE startswith(file.name, "需求") and any(file.tags, (t)=>t="#需求/评估")
|
||||
SORT file.mtime DESC
|
||||
```
|
||||
@ -10,7 +10,7 @@ SORT file.mtime DESC
|
||||
```dataview
|
||||
TABLE without ID
|
||||
link(file.path, file.name) as "文件名", filter(file.tags, (t)=>startswith(t,"#需求/")) as "状态", file.mtime AS "最后修改时间"
|
||||
FROM "01-项目/2025-MaixCam竞赛版"
|
||||
FROM "01-项目/2512-MaixCam竞赛版"
|
||||
WHERE startswith(file.name, "需求") and any(file.tags, (t)=>t="#需求/禅道")
|
||||
SORT file.mtime DESC
|
||||
```
|
||||
@ -18,7 +18,7 @@ SORT file.mtime DESC
|
||||
```dataview
|
||||
TABLE without ID
|
||||
link(file.path, file.name) as "文件名", filter(file.tags, (t)=>startswith(t,"#需求/")) as "状态", file.mtime AS "最后修改时间"
|
||||
FROM "01-项目/2025-MaixCam竞赛版"
|
||||
FROM "01-项目/2512-MaixCam竞赛版"
|
||||
WHERE startswith(file.name, "需求") and any(file.tags, (t)=>t="#需求/原子化")
|
||||
SORT file.mtime DESC
|
||||
```
|
||||
4
02-领域/Linux/领域知识地图.md
Normal file
4
02-领域/Linux/领域知识地图.md
Normal file
@ -0,0 +1,4 @@
|
||||
#状态/待处理
|
||||
|
||||
- [[Linux-sed命令说明]]
|
||||
- [[Linux-find命令说明]]
|
||||
@ -1,4 +1,6 @@
|
||||
## ui 界面相关
|
||||
#状态/待处理
|
||||
|
||||
## UI 界面相关
|
||||
|
||||
- [[MaixCam-触摸屏分辨率]]
|
||||
- [[MaixCam-自定义开机启动画面]]
|
||||
@ -6,4 +8,10 @@
|
||||
## 图像相关
|
||||
|
||||
- [[MaixCam-RGB转LAB]]
|
||||
- [[MaixCam-find_blobs说明]]
|
||||
|
||||
## 系统相关
|
||||
|
||||
- [[MaixCam-新设备初始化]]
|
||||
- [MaixPy 源码编译](https://wiki.sipeed.com/maixpy/doc/zh/source_code/build.html)
|
||||
- [镜像编译](https://github.com/sipeed/LicheeRV-Nano-Build)
|
||||
|
||||
@ -1,2 +1,3 @@
|
||||
|
||||
- [[Python-排序]]]
|
||||
- [[Python-排序]]
|
||||
- [[Python-多线程读写]]
|
||||
|
||||
@ -1,2 +1,11 @@
|
||||
|
||||
- [[工具技巧-edge兼容性]]
|
||||
## 工具
|
||||
|
||||
- [[物联实验室-清理红外指令]]
|
||||
|
||||
## 技巧
|
||||
|
||||
- [[操作说明-工具技巧-edge兼容性]]
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,2 +1,3 @@
|
||||
1. [[知识架构-目录配置]]
|
||||
2. [[知识架构-标签配置]]
|
||||
|
||||
- [[知识架构-目录配置]]
|
||||
- [[知识架构-标签配置]]
|
||||
|
||||
80
02-领域/觉察智慧/领域知识地图.md
Normal file
80
02-领域/觉察智慧/领域知识地图.md
Normal file
@ -0,0 +1,80 @@
|
||||
## 主线索引
|
||||
|
||||
#觉察/知识架构
|
||||
|
||||
- [[知识架构-目录配置]]
|
||||
- [[知识架构-标签配置]]
|
||||
|
||||
## 支线索引
|
||||
|
||||
#觉察/学习方法
|
||||
#觉察/学习-快速入门
|
||||
#觉察/学习-资料整理
|
||||
#觉察/学习-踩坑记录
|
||||
#觉察/学习-工具技巧
|
||||
|
||||
#觉察/健康管理
|
||||
#觉察/健康-睡眠
|
||||
#觉察/健康-饮食
|
||||
#觉察/健康-运动
|
||||
#觉察/健康-体检
|
||||
|
||||
#觉察/财务管理
|
||||
#觉察/财务-收支记录
|
||||
#觉察/财务-非必要支出
|
||||
#觉察/财务-应急储备
|
||||
#觉察/财务-小额理财
|
||||
|
||||
#觉察/兴趣爱好
|
||||
#觉察/兴趣-视频
|
||||
#觉察/兴趣-视觉
|
||||
#觉察/兴趣-动手
|
||||
#觉察/兴趣-文字
|
||||
#觉察/兴趣-思维
|
||||
#觉察/兴趣-编程玩具
|
||||
|
||||
#觉察/关系维护
|
||||
#觉察/关系-家人
|
||||
#觉察/关系-好友
|
||||
#觉察/关系-纪念日
|
||||
#觉察/关系-相处技巧
|
||||
|
||||
## 六、 避坑指南(核心,避免走偏)
|
||||
|
||||
1. 不贪多:支线永远≤5 条,每天只记录 1-2 条,避免精力透支;
|
||||
2. 不混淆:工作内容用 #工作 /xxx 标签,个人成长用 #成长 /xxx 标签,双重隔离;
|
||||
3. 不追求完美:初期模板可以简单,记录可以简短,先 “完成” 再 “优化”;
|
||||
4. 不提前开发工具:支线 4 必须 “痛点驱动”,没遇到实际麻烦,坚决不写脚本(避免变相加班);
|
||||
5. 不断档不焦虑:哪怕某天 / 某周没记录,后续恢复即可,不用愧疚 —— 架构是服务你的,不是束缚你的。
|
||||
|
||||
#### 标签使用规则(简单 2 条,杜绝混乱)
|
||||
|
||||
- 一条记录**最多 1 个核心标签 + 1 个细分标签**:比如 “今天拍了路边的树”→ `#成长/兴趣爱好` + `#成长/兴趣-视觉`;
|
||||
|
||||
|
||||
### 2. 用「统一模板」做 “标准化记录”,避免格式混乱
|
||||
|
||||
不管是摄影、盆栽还是随笔,都用**同一份「兴趣实践单次记录模板」**,确保记录的结构一致 —— 既不用纠结 “怎么写”,也方便后续检索和沉淀。
|
||||
|
||||
#### 兴趣实践单次记录模板(直接复制用)
|
||||
|
||||
markdown
|
||||
|
||||
```
|
||||
# 兴趣实践记录-【日期】-【主题】
|
||||
标签:#成长/兴趣爱好 #成长/兴趣-xxx(如#成长/兴趣-视觉)
|
||||
|
||||
## 一、 实践内容(1句话就行)
|
||||
______(如“散步时拍了5张天空的照片”“给绿萝浇了水,修剪了黄叶”)
|
||||
|
||||
## 二、 小收获/小感受(可选)
|
||||
______(如“逆光拍云真的好看”“绿萝剪完黄叶更精神了”)
|
||||
|
||||
## 三、 小技巧/小踩坑(可选)
|
||||
______(如“拍天空要降低曝光度”“绿萝不能浇太多水”)
|
||||
|
||||
## 四、 作品链接(可选)
|
||||
- 照片:
|
||||
- 随笔:[[随笔-今天的云.md]]
|
||||
```
|
||||
|
||||
23
03-资源/操作说明-MaixCam竞赛版-增加参数.md
Normal file
23
03-资源/操作说明-MaixCam竞赛版-增加参数.md
Normal file
@ -0,0 +1,23 @@
|
||||
#领域/MaixCam
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[__增加算法参数______]
|
||||
|
||||
## 操作步骤
|
||||
|
||||
### 参数调试
|
||||
|
||||
- [ ] 要增加的菜单项:[__设置色块算法设置______] 子菜单项:[__设置目标最小X尺寸、设置目标最小Y尺寸______]
|
||||
- [ ] 参数存储变量:[__BLOBS_CONFIG{area_x_threshold:1%~100%, area_y_threshold:1%~100%}_______]
|
||||
- [ ] 创建菜单项:[__设置检测框最小X尺寸、设置检测框最小Y尺寸______]
|
||||
- [ ] 创建挂载子菜单项:批量创建子菜单项
|
||||
- [ ] 创建回调函数
|
||||
- [ ] 登记菜单项:def auto_select_menu_item
|
||||
- [ ] 更新算法调用参数
|
||||
|
||||
### 程序控制
|
||||
|
||||
- [ ] 参数存储变量:[________]
|
||||
- [ ] 解析参数到变量:[________]
|
||||
- [ ] 更新算法调用参数
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
为了能够使用IE兼容模式打开网页,添加网址到 Internet Explorer 模式页面
|
||||
|
||||
## 核心定义
|
||||
## 操作步骤
|
||||
|
||||
1. 进入 edge 设置
|
||||
2. 进入”默认浏览器“-”Internet Explorer 兼容性"
|
||||
@ -1,13 +0,0 @@
|
||||
#临时/备忘
|
||||
|
||||
{{date}}-备忘-主题名-文件内容
|
||||
## 模板变更
|
||||
- 20260105(`v1.0.1`):增加分割线区分提示内容和实际内容
|
||||
- 20260105(`v1.0.0`):模板创建
|
||||
|
||||
---
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[________]
|
||||
|
||||
@ -1,5 +1,10 @@
|
||||
#觉察/兴趣爱好 #觉察/兴趣-视频
|
||||
|
||||
## 待看清单
|
||||
## 一句话描述
|
||||
|
||||
[___收藏待看的视频_____]
|
||||
|
||||
## 电视剧
|
||||
- 新闻女王
|
||||
- 搜神记
|
||||
- 宫心计
|
||||
@ -11,3 +16,7 @@
|
||||
- 唐朝诡事录
|
||||
- 潜伏
|
||||
- 晚酌的流派
|
||||
|
||||
## 电影
|
||||
|
||||
|
||||
10
03-资源/链接-MaixCam竞赛版-使用说明.md
Normal file
10
03-资源/链接-MaixCam竞赛版-使用说明.md
Normal file
@ -0,0 +1,10 @@
|
||||
#领域/MaixCam
|
||||
|
||||
## 图像操作
|
||||
|
||||
- [MaixPy 图像基础操作](https://wiki.sipeed.com/maixpy/doc/zh/vision/image_ops.html)
|
||||
|
||||
## 系统环境
|
||||
|
||||
- [MaixPy 开发源代码指南](https://wiki.sipeed.com/maixpy/doc/zh/source_code/build.html)
|
||||
- [镜像编译](https://github.com/sipeed/LicheeRV-Nano-Build)
|
||||
38
05-原子化笔记本/Linux-find命令说明.md
Normal file
38
05-原子化笔记本/Linux-find命令说明.md
Normal file
@ -0,0 +1,38 @@
|
||||
#领域/Linux
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[__find使用说明______]
|
||||
|
||||
## 核心定义
|
||||
|
||||
`find` 是Linux/Unix系统中**功能最强的文件/目录查找命令**
|
||||
|
||||
### 通用语法
|
||||
|
||||
```bash
|
||||
find [查找路径] [查找条件] [执行动作]
|
||||
```
|
||||
|
||||
|
||||
| 选项 | 说明 |
|
||||
| ----------- | ----------------------------------------------- |
|
||||
| -type | 查找类型<br>-type d 目录<br>-type f 文件<br>-type l 软链接 |
|
||||
| -maxdepth 1 | 查找深度 |
|
||||
| -name | 匹配名称 |
|
||||
| -iname | 忽略大小写,匹配名称 |
|
||||
| * | 匹配任意长度任意字符 |
|
||||
| ? | 匹配单个字符 |
|
||||
| [123] | 匹配括号内的单个字符 |
|
||||
| -a | 逻辑与,默认满足所有条件 |
|
||||
| -o | 逻辑或,满足任意一个条件即可 |
|
||||
| ! | 排除符合条件内容 |
|
||||
|
||||
### 执行动作
|
||||
|
||||
```bash
|
||||
# -eex 命令开头
|
||||
# {} 占位符
|
||||
# \ 终止符
|
||||
find [路径] [条件] -exec 命令 {} \;
|
||||
```
|
||||
30
05-原子化笔记本/Linux-sed命令说明.md
Normal file
30
05-原子化笔记本/Linux-sed命令说明.md
Normal file
@ -0,0 +1,30 @@
|
||||
#领域/Linux
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[__sed使用说明______]
|
||||
|
||||
## 核心定义
|
||||
|
||||
`sed` = **Stream Editor**(流式文本编辑器)
|
||||
|
||||
### 通用语法
|
||||
|
||||
```bash
|
||||
sed [选项] '处理指令' 文件
|
||||
```
|
||||
|
||||
|
||||
| 选项 | 说明 |
|
||||
| ------ | ---------- |
|
||||
| -i | 写入文件 |
|
||||
| -i.bak | 写出并备份bak文件 |
|
||||
| -n | 静默输出被处理过的行 |
|
||||
| | |
|
||||
|
||||
### 文本替换
|
||||
|
||||
```bash
|
||||
|
||||
sed 's/old/new/g' 文件
|
||||
```
|
||||
@ -1,12 +1,5 @@
|
||||
#领域/MaixCam
|
||||
|
||||
20260105-备忘-主题名-文件内容
|
||||
## 模板变更
|
||||
- 20260105(`v1.0.1`):增加分割线区分提示内容和实际内容
|
||||
- 20260105(`v1.0.0`):模板创建
|
||||
|
||||
---
|
||||
|
||||
## 一句话描述
|
||||
|
||||
说明 Image.find_bobs 函数
|
||||
|
||||
31
05-原子化笔记本/MaixCam-新设备初始化.md
Normal file
31
05-原子化笔记本/MaixCam-新设备初始化.md
Normal file
@ -0,0 +1,31 @@
|
||||
#领域/MaixCam
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[__新设备初始化流程______]
|
||||
|
||||
|
||||
## 相关资源
|
||||
|
||||
- 镜像内置脚本:/root/scripts/cam_install_app.sh
|
||||
- 镜像内置脚本:/root/scripts/cam_uninstall_app.sh
|
||||
- SD读卡器 boot 目录下的文件
|
||||
|
||||
|
||||
## 前置操作
|
||||
|
||||
>建议镜像内
|
||||
|
||||
放置 `cam_install_app.sh` 至 `/root/scripts/`
|
||||
|
||||
|
||||
## 操作步骤
|
||||
|
||||
1. 烧录镜像
|
||||
2. 拷贝WiFi文件至boot(已含 [[MaixCam-自定义开机启动画面]])
|
||||
3. 开机设置中文,安装运行库,
|
||||
4. 解压缩文件
|
||||
5. 然后覆盖main.py
|
||||
6. 安装Windows端摄像头调试工具
|
||||
|
||||
- [无屏幕快速开始](https://wiki.sipeed.com/maixpy/doc/zh/README_no_screen.html?highlight=wifi)
|
||||
@ -5,9 +5,15 @@
|
||||
分辨率:552x368
|
||||
格式:.jpeg
|
||||
|
||||
> 建议直接替换 boot 内文件
|
||||
|
||||
## 最小实现代码
|
||||
|
||||
```bash
|
||||
# 上传 new_logo.jpeg 到 /root/new_logo.jpeg
|
||||
/boot/make-logo.sh /root/new_logo.jpeg /boot/logo.jpeg
|
||||
echo "replace start"; \
|
||||
rm /root/logo.jpeg ; rm /boot/logo.jpeg ; \
|
||||
/boot/make_logo.sh /root/new_logo.jpeg /root/logo.jpeg ; \
|
||||
cp /root/logo.jpeg /boot/logo.jpeg ; cp /root/logo.jpeg boot/maixcam_logo.jpeg ; reboot ; \
|
||||
echo "replace done."
|
||||
```
|
||||
184
05-原子化笔记本/Python-多线程读写.md
Normal file
184
05-原子化笔记本/Python-多线程读写.md
Normal file
@ -0,0 +1,184 @@
|
||||
#领域/Python
|
||||
## 一句话描述
|
||||
|
||||
Python 多线程读写使用安全说明。
|
||||
|
||||
## 详细解释
|
||||
|
||||
### ✅ 一、核心前置原则(所有场景通用,重中之重)
|
||||
|
||||
1. 本次需求的业务模型:**线程 A 仅执行【写入 / 修改】所有共享变量,线程 B 仅执行【读取】所有共享变量**,是线程安全设计的最优基础模型(无读写互冲的复杂场景)。
|
||||
2. 锁的核心本质:锁保护的是「**共享变量的原子操作逻辑**」,而非「单个变量」。**所有关联的共享变量,复用同一把 `threading.Lock()` 即可**,无需为每个变量新增锁(新增锁会增加死锁风险 + 复杂度)。
|
||||
3. 线程安全第一准则:**安全永远优先于极致效率**,线程不安全导致的 bug(脏读 / 半更新 / 数据不一致),排查成本远大于轻微的效率损耗。
|
||||
4. 阻塞的真相:读线程的「阻塞」仅发生在**抢锁的瞬间**,锁持有时间是微秒级,对「读线程持续运行」无感知影响。
|
||||
|
||||
### ✅ 二、`threading.Lock` 互斥锁 核心知识点(唯一锁,全场景复用)
|
||||
|
||||
#### 1. 核心用法(推荐写法,杜绝死锁)
|
||||
|
||||
使用 `with 锁对象:` 上下文管理器,自动完成「加锁→执行逻辑→解锁」,无需手动调用 `acquire()`/`release()`,即使代码报错也能正常释放锁。
|
||||
|
||||
```
|
||||
import threading
|
||||
mode_lock = threading.Lock() # 全局唯一锁,保护所有共享变量
|
||||
|
||||
# 所有读写共享变量的操作,均用这一把锁
|
||||
with mode_lock:
|
||||
# 对共享变量的核心操作:读/写/清空/赋值
|
||||
pass
|
||||
```
|
||||
|
||||
#### 2. 锁的核心作用(双保障)
|
||||
|
||||
- 保障数据**完整性**:不会读到「半更新的中间值」(如:写线程只改了 MODE,还没改 ARGS 的状态);
|
||||
- 保障数据**最新性**:强制刷新线程本地缓存,读线程能拿到主内存中写线程刚更新的最新值。
|
||||
|
||||
### ✅ 三、多类型共享变量 线程安全操作规范
|
||||
|
||||
本次涉及三类共享变量,均遵循「**临界区内操作,临界区外处理**」的规则,全部复用同一把锁,按优先级排序如下:
|
||||
|
||||
#### 类型 1:普通基础变量(如 `MODE = "initial"`)
|
||||
|
||||
```
|
||||
# 写线程-赋值(临界区内)
|
||||
with mode_lock:
|
||||
MODE = "running"
|
||||
# 读线程-取值(临界区内)
|
||||
with mode_lock:
|
||||
current_mode = MODE
|
||||
```
|
||||
|
||||
#### 类型 2:可变复杂变量(如 `ARGS = {"timeout":5, "retry":3}` 字典)
|
||||
|
||||
```
|
||||
# 写线程-修改属性(临界区内)
|
||||
with mode_lock:
|
||||
ARGS["timeout"] = 10
|
||||
# 读线程-取值(临界区内拷贝快照,避免外部篡改)
|
||||
with mode_lock:
|
||||
current_args = ARGS.copy()
|
||||
```
|
||||
|
||||
#### 类型 3:列表对象池(核心重点 `MSG_POOL = []` 消息池)
|
||||
|
||||
> 本类型是本次需求的核心新增点,有专属强制规则,必须严格遵守!
|
||||
|
||||
```
|
||||
# 写线程【强制原子操作】:清空 + 写入 必须在同一个临界区内完成
|
||||
with mode_lock:
|
||||
MSG_POOL.clear() # 先清空
|
||||
MSG_POOL.extend(新消息列表) # 后写入
|
||||
```
|
||||
|
||||
> 规则原因:如果「清空」和「写入」分开,会出现读线程读到**空的 MSG_POOL**,是业务绝对不允许的脏数据。
|
||||
|
||||
### ✅ 四、「最小临界区」设计原则 + 效率优化
|
||||
|
||||
#### 1. 核心结论
|
||||
|
||||
临界区**是否影响效率,和「覆盖多少变量」无关,只和「临界区内的操作耗时」有关**。
|
||||
|
||||
临界区内仅做「赋值 / 拷贝 / 清空 / 写入」等**微秒级的轻量操作**,效率影响忽略。
|
||||
|
||||
#### 2. 最小临界区 黄金规则(最优实践,必用)
|
||||
|
||||
> 临界区内:只放「必须原子执行的共享变量操作」,无任何多余代码
|
||||
> 临界区外:所有非核心逻辑(计算、打印、sleep、遍历筛选、数据处理)全部移出
|
||||
|
||||
✅ 正确示范(精简核心代码,最推荐)
|
||||
|
||||
```
|
||||
# 写线程:临界区外准备数据 → 临界区内原子操作 → 临界区外打印
|
||||
new_data = [MsgItem(id=2, content="测试")] # 临界区外准备
|
||||
with mode_lock:
|
||||
MSG_POOL.clear()
|
||||
MSG_POOL.extend(new_data) # 仅保留核心操作
|
||||
print("写入完成") # 临界区外打印
|
||||
|
||||
# 读线程:临界区内拷贝快照 → 临界区外筛选/遍历/读取
|
||||
with mode_lock:
|
||||
pool_snap = MSG_POOL.copy() # 仅拷贝,无其他操作
|
||||
# 临界区外执行【全量读取】或【按条件读取】
|
||||
target = [item for item in pool_snap if item.id == 2]
|
||||
```
|
||||
|
||||
❌ 错误示范(绝对禁止)
|
||||
|
||||
```
|
||||
with mode_lock:
|
||||
MSG_POOL.clear()
|
||||
MSG_POOL.extend(new_data)
|
||||
print("写入完成") # 耗时的打印放临界区,锁持有时间变长
|
||||
time.sleep(1) # 致命!sleep放临界区,读线程会被阻塞1秒
|
||||
```
|
||||
|
||||
### ✅ 五、读线程 灵活读取策略
|
||||
|
||||
读线程的核心需求:**持续运行不阻塞、按需读取(全量 / 条件筛选)**,所有读取逻辑均遵循「**快照读取 + 临界区外处理**」,兼顾安全与效率,两种核心读取方式均无阻塞风险:
|
||||
|
||||
```
|
||||
with mode_lock:
|
||||
pool_snap = MSG_POOL.copy()
|
||||
|
||||
# 临界区外遍历全量数据
|
||||
for msg in pool_snap:
|
||||
print(f"id={msg.id}, content={msg.content}")
|
||||
|
||||
# 临界区外筛选指定内容,支持任意条件扩展
|
||||
target_msg = None
|
||||
for msg in pool_snap:
|
||||
if msg.id == 2:
|
||||
target_msg = msg
|
||||
break
|
||||
```
|
||||
|
||||
> 扩展:如需读取其他条件(id>5 / 内容包含指定字符),仅需修改临界区外的筛选逻辑即可,无需改动临界区。
|
||||
|
||||
### ✅ 六、优雅退出机制
|
||||
|
||||
所有线程均通过**全局布尔变量 `stop_flag`** 控制循环退出,无强制终止线程的风险:
|
||||
|
||||
```
|
||||
stop_flag = False # 全局退出标志
|
||||
|
||||
# 写线程/读线程的循环条件
|
||||
while not stop_flag:
|
||||
# 核心业务逻辑
|
||||
pass
|
||||
|
||||
# 主线程控制退出
|
||||
time.sleep(运行时长)
|
||||
stop_flag = True
|
||||
# 等待线程执行完毕
|
||||
写线程.join()
|
||||
读线程.join()
|
||||
```
|
||||
|
||||
## 延伸补充
|
||||
|
||||
### ✅ 1. 本次场景的「常见避坑点」
|
||||
|
||||
1. 不要为 MSG_POOL/MODE/ARGS 分别加锁 → 极易死锁,无任何必要;
|
||||
2. MSG_POOL 的「清空 + 写入」必须在同一个临界区 → 最核心的坑,会导致读空池;
|
||||
3. 不要在临界区内放 print/sleep/ 复杂计算 → 唯一的效率损耗来源;
|
||||
4. 读复杂类型(字典 / 列表)时,必须用 `.copy()` 拷贝快照 → 避免临界区外写线程修改导致数据不一致。
|
||||
|
||||
### ✅ 2. 知识点浓缩(背诵级,解决「反复查资料」的核心需求)
|
||||
|
||||
1. 单写多读,一把锁足矣;
|
||||
2. 临界区最小化,只留核心操作;
|
||||
3. 清空 + 写入,必须原子化;
|
||||
4. 复杂变量,拷贝快照读;
|
||||
5. 安全优先,效率次之;
|
||||
6. 标志位退出,线程更安全。
|
||||
|
||||
### ✅ 3. 进阶优化方向(按需使用,当前场景暂不需要)
|
||||
|
||||
所有优化均为「锦上添花」,当前场景的代码已经足够高效,只有当**读写频率极高(每秒万次)/MSG_POOL 数据量极大**时,才需要考虑,优先级从低到高:
|
||||
|
||||
1. 大列表优化:读指定 id 时,可在临界区内直接筛选,避免全量拷贝 → `target = next(m for m in MSG_POOL if m.id==2, None)`;
|
||||
2. 轻量锁替换:用 `threading.RLock()`(可重入锁)替代 `Lock()`,底层开销略低,用法完全一致;
|
||||
3. 读写锁升级:若后续出现「多线程读,单线程写」,用 `threading.ReadWriteLock`,读线程之间不互斥,读效率提升 10 倍以上。
|
||||
|
||||
|
||||
|
||||
@ -1,14 +1,5 @@
|
||||
#领域/Python
|
||||
|
||||
20260108-原子化笔记-主题名-文件内容
|
||||
## 模板变更
|
||||
- 20260105(`v1.0.1`):增加一句话描述和分割线
|
||||
- 20251230(`v1.0.0`):模板创建
|
||||
|
||||
注释:**1-3 句话的核心逻辑 + 代码片段**
|
||||
|
||||
---
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[__Python 核心排序方法(sorted () 与 list.sort ())的特性对比、基础用法、自定义排序规则及性能优化技巧______]
|
||||
|
||||
27
05-原子化笔记本/物联实验室-清理红外指令.md
Normal file
27
05-原子化笔记本/物联实验室-清理红外指令.md
Normal file
@ -0,0 +1,27 @@
|
||||
#领域/工具技巧
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[__批量生成红外清理CMD指令______]
|
||||
|
||||
## 核心定义
|
||||
|
||||
修改参数设置 `IP`和`ids` 后运行程序,直接复制所有行,在CMD命令窗口右键粘贴
|
||||
|
||||
## 最小实现代码
|
||||
|
||||
```python
|
||||
# ######## 参数设置 ########
|
||||
IP = "192.168.1.180"
|
||||
|
||||
ids = []
|
||||
ids.extend(range(3, 39))
|
||||
|
||||
# #########################
|
||||
|
||||
for id in ids:
|
||||
code = """curl -X POST http://""" + IP + """/v3 -d "{\\"ir"""
|
||||
code += str(id)
|
||||
code += '\\":0}"'
|
||||
print(code)
|
||||
```
|
||||
@ -2,9 +2,8 @@
|
||||
|
||||
### 1. 标签分类与格式(仅使用以下标签,不新增)
|
||||
|
||||
| | | | |
|
||||
| -------- | ---------------------------- | -------------- | ------------------------ |
|
||||
| 标签类型 | 标签格式示例 | 适用文件类型 | 核心规则 |
|
||||
| -------- | ---------------------------- | -------------- | ------------------------ |
|
||||
| 临时碎片类型标签 | #临时/Bug、#临时/灵感、#临时/备忘、#临时/杂记 | 00-临时碎片下所有文件 | 仅选1个,不叠加;固定4类,不新增 |
|
||||
| 资源类型标签 | #资源/待学、#资源/灵感、#资源/工具、#资源/资料 | 03-资源下所有文件 | 仅选1个,不叠加;固定4类,不新增 |
|
||||
| 领域标签 | #领域/Flask/路由、#领域/数据库/SQLite | 05-原子化笔记、03-资源 | 格式「#领域/主领域/细分场景」;精准到细分场景 |
|
||||
|
||||
14
快速检索.md
14
快速检索.md
@ -1,14 +0,0 @@
|
||||
|
||||
# 核心定义
|
||||
|
||||
```plain
|
||||
编写一个 dataview(Obsidian插件) 查询的示例,查询出指定文件夹下所有“需求”开头的文件
|
||||
```
|
||||
|
||||
```dataview
|
||||
|
||||
LIST
|
||||
FROM "00-临时碎片文件夹"
|
||||
|
||||
```
|
||||
|
||||
@ -1,12 +1,5 @@
|
||||
#临时/Bug
|
||||
|
||||
{{date}}-Bug-主题名-文件内容
|
||||
## 模板变更
|
||||
- 20260105(`1.0.1`):增加分割线和一句话描述
|
||||
- 20251230:新增待修订版本
|
||||
- 20251230:模板创建
|
||||
|
||||
---
|
||||
|
||||
## 一句话描述
|
||||
|
||||
@ -1,13 +1,5 @@
|
||||
#领域/MaixCam
|
||||
|
||||
{{date}}-原子化笔记-主题名-文件内容
|
||||
## 模板变更
|
||||
- 20260105(`v1.0.1`):增加一句话描述和分割线
|
||||
- 20251230(`v1.0.0`):模板创建
|
||||
|
||||
注释:**1-3 句话的核心逻辑 + 代码片段**
|
||||
|
||||
---
|
||||
|
||||
## 一句话描述
|
||||
|
||||
@ -17,6 +9,11 @@
|
||||
|
||||
触摸屏支持分辨率为 552 x 368 分辨率,菜单控件的更新操作和屏幕显示之间不建议插入其他代码,以免菜单显示错位
|
||||
|
||||
## 个人理解
|
||||
|
||||
## 实践计划
|
||||
|
||||
|
||||
## 最小实现代码
|
||||
```python
|
||||
from maix import touchscreen
|
||||
7
模板文件/模板-备忘.md
Normal file
7
模板文件/模板-备忘.md
Normal file
@ -0,0 +1,7 @@
|
||||
#临时/备忘
|
||||
{{date}}-备忘-主题名-文件内容
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[________]
|
||||
|
||||
29
模板文件/模板-觉察-学习记录.md
Normal file
29
模板文件/模板-觉察-学习记录.md
Normal file
@ -0,0 +1,29 @@
|
||||
#觉察/学习 #学习/知识架构
|
||||
|
||||
#领域/觉察
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[__这是一个原子化笔记文件的模板______]
|
||||
|
||||
## 学习目标
|
||||
|
||||
[________]
|
||||
|
||||
## 学习资源
|
||||
|
||||
- 来源:[________]
|
||||
- 链接:[________]
|
||||
|
||||
## 核心知识点
|
||||
|
||||
1. [________]
|
||||
2. [________]
|
||||
|
||||
## 实践案例
|
||||
|
||||
[________]
|
||||
|
||||
## 复用建议
|
||||
|
||||
[________]
|
||||
19
模板文件/模板-觉察-通用模板.md
Normal file
19
模板文件/模板-觉察-通用模板.md
Normal file
@ -0,0 +1,19 @@
|
||||
#领域/觉察
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[__这是一个原子化笔记文件的模板______]
|
||||
|
||||
## 核心定义
|
||||
|
||||
核心内容:[________]
|
||||
|
||||
解决了什么问题:[________]
|
||||
|
||||
## 痛点记录
|
||||
|
||||
1. 问题:[________];解决方案:[________]
|
||||
|
||||
## 复用建议
|
||||
|
||||
[________]
|
||||
36
模板文件/模板-觉察知识-书籍框架.md
Normal file
36
模板文件/模板-觉察知识-书籍框架.md
Normal file
@ -0,0 +1,36 @@
|
||||
#临时/备忘
|
||||
{{date}}-备忘-觉察知识-《书籍》框架
|
||||
|
||||
#觉察/知识架构 #觉察/书籍框架
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[________]
|
||||
|
||||
## 一、 书籍基础信息
|
||||
- 书名:《[________]》
|
||||
- 作者:[________]
|
||||
- 核心定位:[___手机摄影新手实操指南(覆盖前期/后期/场景)_____]
|
||||
- 适配我的需求:[__解决手机拍日常食物、风景不好看的问题______]
|
||||
- 学习周期规划:[___共6章 → 每周学1章 → 预计6周完成_____]
|
||||
|
||||
## ~~二、 核心知识框架~~
|
||||
### ~~一级分支1:前期拍摄~~
|
||||
- ~~二级子节点1:构图技巧~~
|
||||
- ~~二级子节点2:光线控制~~
|
||||
- ~~二级子节点3:手机设置(曝光/对焦)~~
|
||||
### ~~一级分支2:后期修图~~
|
||||
- ~~二级子节点1:基础修图APP(醒图/VSCO)~~
|
||||
- ~~二级子节点2:核心参数调整(亮度/对比度/饱和度)~~
|
||||
### ~~一级分支3:场景实战~~
|
||||
- ~~二级子节点1:食物拍摄~~
|
||||
- ~~二级子节点2:风景拍摄~~
|
||||
- ~~二级子节点3:人像拍摄(待实践)~~
|
||||
|
||||
## ~~三、 框架使用说明~~
|
||||
1. ~~后续原子笔记对齐二级子节点(如“构图技巧”下拆“三分构图-食物拍摄”);~~
|
||||
2. ~~“人像拍摄”暂不拆笔记,标记「待实践」;~~
|
||||
3. ~~每3条笔记补充实践结论;~~
|
||||
4. ~~学完生成《我的手机摄影实战手册》。~~
|
||||
|
||||
## 四、 关联资源
|
||||
30
模板文件/模板-觉察知识-笔记拆解.md
Normal file
30
模板文件/模板-觉察知识-笔记拆解.md
Normal file
@ -0,0 +1,30 @@
|
||||
#临时/备忘
|
||||
{{date}}-备忘-觉察知识-笔记拆解
|
||||
|
||||
#觉察/知识架构 #觉察/书籍框架
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[________]
|
||||
|
||||
>【新知】在摘抄笔记的流程中,可测试无摘抄的效果,即仅仅填写想法
|
||||
## 一、 核心方法(从书里提取,不抄书摘,只写“能用的步骤”)
|
||||
XXX(如“三分构图-食物拍摄:1. 打开手机相机网格线;2. 将餐盘放在画面右下交叉点;3. 背景保持简洁(纯色桌布);4. 横向拍摄”)
|
||||
|
||||
## 二、 个人理解(转化为自己的话,避免照搬)
|
||||
XXX(如“本质是让食物不放在画面正中间,交叉点能突出主体,背景干净才不会抢镜,适合拍早餐、沙拉这类扁平食物”)
|
||||
|
||||
## 三、 实践计划(必须写,否则不算有效沉淀)
|
||||
- 实践时间:XXX(如“明天早餐时”)
|
||||
- 实践内容:XXX(如“拍煎蛋+牛奶,用三分构图法,背景用白色桌布”)
|
||||
- 预期效果:XXX(如“画面更整洁,煎蛋成为视觉焦点”)
|
||||
|
||||
## 四、 实践结果(完成后补充,核心价值所在)
|
||||
- 实际效果:XXX(如“效果很好,煎蛋突出,背景不杂乱”)
|
||||
- 踩坑记录:XXX(如“一开始手机角度太高,食物显小,调整为45°俯拍后正常”)
|
||||
- 优化建议:XXX(如“拍高一点的食物(比如蛋糕),可能不适合三分法,下次试试中心构图”)
|
||||
|
||||
## 五、 关联框架与复用价值
|
||||
- 关联书籍框架:《XXX》-【一级分支】-【二级分支】(如《手机摄影入门300招》-前期拍摄-构图技巧)
|
||||
- 复用场景:XXX(如“以后拍所有扁平食物都能用这个方法,发朋友圈更美观”)
|
||||
- 关联其他原子笔记:[[XXX]](如后续拆“中心构图-蛋糕拍摄”,可关联此笔记对比)
|
||||
@ -1,24 +1,5 @@
|
||||
#临时/备忘
|
||||
|
||||
{{date}}-备忘-主题名-文件内容
|
||||
## 模板变更
|
||||
- 20260107(`v1.0.2`):输出格式说明
|
||||
- 20260105(`v1.0.1`):增加分割线区分提示内容和实际内容
|
||||
- 20260105(`v1.0.0`):模板创建
|
||||
|
||||
注意:请忽略以上内容
|
||||
|
||||
---
|
||||
|
||||
## 输入内容
|
||||
|
||||
```dataview
|
||||
TABLE without ID
|
||||
link(file.path, file.name) as "文件名", filter(file.tags, (t)=>startswith(t,"#需求/")) as "状态", file.mtime AS "最后修改时间"
|
||||
FROM "01-项目/2025-MaixCam竞赛版"
|
||||
WHERE startswith(file.name, "需求") and any(file.tags, (t)=>startswith(t, "#需求/"))
|
||||
SORT file.mtime DESC
|
||||
```
|
||||
|
||||
## 操作需求
|
||||
需要进行如下操作
|
||||
@ -68,6 +49,16 @@ SORT file.mtime DESC
|
||||
|
||||
---
|
||||
|
||||
## 输入内容
|
||||
|
||||
```dataview
|
||||
TABLE without ID
|
||||
link(file.path, file.name) as "文件名", filter(file.tags, (t)=>startswith(t,"#需求/")) as "状态", file.mtime AS "最后修改时间"
|
||||
FROM "01-项目/2025-MaixCam竞赛版"
|
||||
WHERE startswith(file.name, "需求") and any(file.tags, (t)=>startswith(t, "#需求/"))
|
||||
SORT file.mtime DESC
|
||||
```
|
||||
|
||||
## 已归档内容
|
||||
|
||||
- [[DataView-语法知识点]]
|
||||
@ -1,13 +1,5 @@
|
||||
#临时/备忘
|
||||
|
||||
{{date}}-备忘-主题名-文件内容
|
||||
## 模板变更
|
||||
- 20260105(`v1.0.1`):增加分割线区分提示内容和实际内容
|
||||
- 20260105(`v1.0.0`):模板创建
|
||||
|
||||
注意:请忽略以上内容
|
||||
|
||||
---
|
||||
|
||||
## 输入内容
|
||||
|
||||
@ -1,14 +1,5 @@
|
||||
#临时/备忘
|
||||
|
||||
{{date}}-备忘-主题名-文件内容
|
||||
## 模板变更
|
||||
- 20260107(`v1.0.2`):输出格式说明
|
||||
- 20260105(`v1.0.1`):增加分割线区分提示内容和实际内容
|
||||
- 20260105(`v1.0.0`):模板创建
|
||||
|
||||
注意:请忽略以上内容
|
||||
|
||||
---
|
||||
|
||||
## 操作需求
|
||||
需要进行如下操作
|
||||
@ -1,14 +1,5 @@
|
||||
#临时/备忘
|
||||
|
||||
{{date}}-备忘-主题名-文件内容
|
||||
## 模板变更
|
||||
- 20260107(`v1.0.2`):输出格式说明
|
||||
- 20260105(`v1.0.1`):增加分割线区分提示内容和实际内容
|
||||
- 20260105(`v1.0.0`):模板创建
|
||||
|
||||
注意:请忽略以上内容
|
||||
|
||||
---
|
||||
|
||||
## 输入内容
|
||||
|
||||
@ -23,7 +14,7 @@
|
||||
|
||||
## 输出格式
|
||||
|
||||
- [x] markdown
|
||||
- [ ] markdown
|
||||
|
||||
| 目标语言 | 翻译内容 |
|
||||
| ---- | ----------------- |
|
||||
69
模板文件/模板-豆包-问题解答.md
Normal file
69
模板文件/模板-豆包-问题解答.md
Normal file
@ -0,0 +1,69 @@
|
||||
#临时/备忘
|
||||
{{date}}-备忘-主题名-文件内容
|
||||
|
||||
## 操作需求
|
||||
|
||||
需要进行如下操作:
|
||||
我的问题是【输入内容】,请专业耐心的解答我的问题,并将你的答案整理归纳至【输出内容】
|
||||
|
||||
>若你觉得我的【输入内容】描述模糊,你需要先不回答,而是通过提问来协助我更加清晰的描述我的【输入内容】需求,同时总结至提问建议,以优化我的提问技巧
|
||||
|
||||
## 内容要求
|
||||
1. 语句通顺,避免口语化、冗余表述
|
||||
2. 结构完整,包含核心结论、详细解释、延伸补充(若适用)
|
||||
3. 针对复杂概念,需提供通俗化解读,例如费曼学习法,降低理解门槛(若适用)
|
||||
4. 适当添加辅助图标、图表减轻阅读负担
|
||||
5. 提供常见避坑点、浓缩知识点和进阶优化方向,从多维度区了解内容(若适用)
|
||||
|
||||
## 输出格式
|
||||
|
||||
- [x] markdown
|
||||
|
||||
```markdown
|
||||
## 一句话描述
|
||||
|
||||
【使用一句话概括】
|
||||
|
||||
## 详细解释
|
||||
|
||||
【你的解答】
|
||||
|
||||
## 延伸补充
|
||||
|
||||
...
|
||||
### 常见避坑点
|
||||
|
||||
### 知识点浓缩
|
||||
|
||||
【背诵级,解决反复查资料的核心需求】
|
||||
|
||||
### 进阶优化方向
|
||||
|
||||
## 提问建议
|
||||
...
|
||||
|
||||
---
|
||||
```
|
||||
|
||||
## 注意
|
||||
1. 请判断勾选框是否处于被勾选状态,例如markdown勾选框处于未被勾选状态,则无需输出markdown格式
|
||||
|
||||
以上内容为系统提示,为了辅助你更好的回答。
|
||||
|
||||
---
|
||||
|
||||
## 输入内容
|
||||
|
||||
| 项目 | 内容 |
|
||||
| ------ | ------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| 领域 | 摄影 |
|
||||
| 你的角色设定 | 领域实战专家,擅长用通俗有趣的方式给新手拆解知识点,注重 “避坑 + 实操”,拒绝晦涩理论 |
|
||||
| 我的角色设定 | 领域纯新手,完全没有基础,想快速上手做出日常作品,怕复杂术语和操作 |
|
||||
| 语言风格 | 口语化、接地气,像朋友聊天一样,避免专业术语;必要术语需搭配通俗解释 |
|
||||
| 约束 | 1. 所有知识点仅限个人操作,**完全不涉及昂贵等专业设备内容**;<br>2. 内容门槛低、趣味性强,结合生活场景案例;<br>3. 每个知识点必须搭配**1 个可直接模仿的操作示例**;<br>4. 避免堆砌知识点,优先讲 “新手最需要的核心内容” |
|
||||
| 任务目标 | 给我做领域入门扫盲,**重点讲解 3-5 个新手必学的核心概念 + 操作技巧**,帮我建立 “不用复杂设置也能先做出小成功” 的基础认知 |
|
||||
| 解决问题 | 新手面对领域知识不知从何入手,害怕复杂操作,学完能快速上手小成果 |
|
||||
| 服务于 | 打下领域的入门基础,激发持续学习的兴趣,能独立完成日常场景 |
|
||||
| | |
|
||||
|
||||
## 输出内容
|
||||
@ -1,5 +1,4 @@
|
||||
#临时/需求 #需求/碎片
|
||||
|
||||
#需求/碎片 #临时/需求
|
||||
{{date}}-需求-主题名-文件内容
|
||||
|
||||
## 标签类别
|
||||
@ -15,11 +14,6 @@
|
||||
- [ ] 需求/关闭
|
||||
- [ ] 需求/取消
|
||||
|
||||
## 模板变更
|
||||
- 20260106(`v1.0.6)`:标签类别、需求描述、初步评估、建议操作
|
||||
- 20260105(`v1.0.5`):增加一句话描述
|
||||
- 20251231(`v1.0.4`):增加核心信息(需求描述、初步评估、关联资源)
|
||||
|
||||
---
|
||||
|
||||
## 一句话描述
|
||||
@ -57,4 +51,4 @@
|
||||
|
||||
### 关联资源
|
||||
|
||||
- [[01-项目/2025-MaixCam竞赛版/项目需求|项目需求]]
|
||||
- [[项目-需求|项目-需求]]
|
||||
Loading…
x
Reference in New Issue
Block a user