开源项目

项目与代码下载

工程源码、开发板固件、小工具——都放在这里,点击即可下载。

v0.1.0 2026-08-16 103 次下载

DSH 插件安全审计

DSH 插件安全审计 —— 自动扫描已安装插件的风险隐患,在 GUI 设置页展示分级结果与证据。

  • DSH
查看详细介绍

dsh-plugin-security-audit

DSH 插件安全审计 —— 自动扫描已安装插件的风险隐患,在 GUI 设置页展示分级结果与证据。

安装后,它会自动检查 DSH 里每个第三方插件的代码是否存在凭据窃取、数据外发、任意代码执行、远程控制面、明文密钥落盘、代码混淆、恶意安装脚本等风险模式,按「严重 / 高危 / 中危 / 低危 / 未发现明显风险」分级,并给出 证据(文件:行号 + 代码片段)与处置建议


✨ 功能

  • 首次安装全量检查:装上后自动对全部已安装插件做一次全面静态安全扫描(本机实测 138 个插件)。
  • 增量自动补扫:之后每安装或升级一个新插件,打开审计卡片时自动只扫描新插件并显示结果,不动旧数据。
  • 设置页卡片:设置 → 插件 → 可配置,出现「插件安全审计」卡片;内置「刷新」「重新扫描全部」按钮。
  • 风险分级 + 证据链:每条发现都带严重度、类别、触发代码位置与修复建议,可展开查看。
  • 官方插件降噪:官方 @deepseek-ai/* 插件默认可信,能力项聚合展示,不淹没第三方插件的信号。
  • 不执行被扫描的代码:纯静态分析,只读文件文本,绝不运行被检查插件的任何代码。
  • 结果不出本机:扫描结果仅写入 ~/.dsh/plugin-security-audit.json,无任何网络上报。

📖 使用方法

  1. 打开 DSH Web GUI,进入 设置 → 插件 → 可配置
  2. 展开「插件安全审计」卡片;
  3. 查看总览(严重/高危/中危计数)与每个插件的风险分级;
  4. 点开某个插件行,查看每条发现的证据(文件:行号 + 代码片段)与处置建议
  5. 安装新插件后重新打开卡片,新插件会自动完成扫描;也可以点「重新扫描全部」强制全量重扫。

🔍 检查项(九大类)

| 类别 | 检查内容 | 默认级别 | | --- | --- | --- | | 凭据窃取 | 读取 ~/.dsh/.credentials.yaml、环境变量中的 API Key/令牌、浏览器存储、内联密钥字面量、硬编码 Bearer | 严重/高危 | | 数据外发 | fetch/http/net/WebSocket/axios/sendBeacon 等外发调用;非白名单外部主机;读文件+网络发送组合 | 中危 | | 任意代码执行 | eval / Function / vm / 动态 require/import;child_process 子进程;shell 命令拼接 | 高危 | | 远程控制面 | 启动 HTTP/网络服务、监听 0.0.0.0、WebSocket 服务端、内网穿透工具(cloudflared/ngrok/frp…)、配对/远程控制机制 | 严重/高危 | | 密钥落盘 | 把密码/密钥/令牌写入文件、注释承认明文存储 | 严重/高危 | | 文件系统越权 | 绝对路径、.. 路径穿越、读写 DSH 内部数据目录、删除文件、访问用户主目录 | 中危 | | 持久化 | 安装时自动执行脚本(preinstall/install/postinstall)、定时/监视触发机制 | 高危 | | 代码混淆 | 大量 eval、base64 解码、字符编码技巧、超长单行块 | 中危 | | 供应链 | git/file/tarball 非锁定依赖、缺少源码仓库声明 | 中危 |

严重度按「模式对恶意的指示强度」校准:能力类(env 读取、eval、子进程、网络)标为中/高危并提示「确认用途」;强指示类(硬编码密钥、读 DSH 凭据库、密钥落盘、隧道、配对)直接标严重/高危。注释行、同源 API 调用、正则 .exec() 等常见误报源已在引擎中排除。

📦 安装

方式一:从 GitHub 安装(推荐,发布后可用)

dsh plugin --profile web add github:<你的用户名>/dsh-plugin-security-audit

也可在 GUI 的市场(dshmarket)「发现」页按仓库名搜索安装。

方式二:手动复制 + 补丁热加载

# 1. 把本仓库整个目录复制进 profile 的 node_modules:
cp -r dsh-plugin-security-audit ~/.dsh/profiles/web/node_modules/

# 2. 在 ~/.dsh/profiles/web/cordis.patch.yml 末尾追加:
# - insert:
#     - id: plugin-security-audit
#       name: 'dsh-plugin-security-audit'

补丁文件被 DSH 热监视,保存后立即生效(宿主代码更新需重启一次 GUI)。

卸载

  • 删除 ~/.dsh/profiles/web/cordis.patch.yml 中对应 insert 条目;
  • 删除 ~/.dsh/profiles/web/node_modules/dsh-plugin-security-audit/ 目录;
  • 可选:删除扫描结果文件 ~/.dsh/plugin-security-audit.json

🔒 安全模型与隐私

  • 只读静态分析:扫描器遍历每个插件包内的 .js/.cjs/.mjs/.ts 源码与 package.json,用模式匹配做静态检查,从不 import、require 或执行被扫描插件,因此被审计的恶意插件无法在审计过程中发作。
  • 回环护栏:审计 API(/api/plugin-security/*)只允许本机回环地址与同源浏览器访问,防止局域网/公网探取审计报告。
  • 数据留本地:结果仅存 ~/.dsh/plugin-security-audit.json,插件不含任何网络上报逻辑。
  • 官方插件降噪@deepseek-ai/* 被视为平台自身,能力项聚合为摘要,异常项仍会单独列出。

⚠️ 局限性与免责声明

  • 静态分析 ≠ 行为证明:它检查本机安装的文件文本,无法证明运行时行为,也无法发现只在特定运行条件下出现的恶意逻辑。
  • 「未发现明显风险」≠「可信」:精心构造的恶意代码可以绕过一切静态规则。请结合来源可信度、版本更新频率与社区口碑综合判断。
  • 不核验上游一致性:无法验证本地安装的包与发布源码是否逐字节一致(npm 包可能是从别的提交构建的)。
  • 误报与漏报:本引擎已针对常见误报(注释、正则 .exec()、同源 fetch、相对导入)做排除,但仍可能存在误报或漏报;每条发现都附证据,请以人工复核为准。
  • 本插件仅提供检测与提示,不自动卸载或隔离任何插件——是否处置由你决定。

📁 目录结构

dsh-plugin-security-audit/
├── lib/
│   ├── index.js      # 宿主半:注册 /api/plugin-security/results、/api/plugin-security/scan(回环护栏)
│   ├── scanner.js    # 审计引擎:插件枚举、九大类静态检查、风险分级、状态存储与增量 diff(纯 Node 零依赖)
│   └── client.js     # 浏览器半:设置页审计结果卡片(手写 __ModuleLoader__ bundle,无构建链)
├── cordis.patch.yml  # bundle patch:向 profile 插入插件条目
├── package.json      # npm 包声明(dsh.bundle.patch / dsh.client)
└── README.md

🧪 开发与测试

引擎是纯 Node 模块,可脱离 DSH 直接测试:

# 语法检查
node --check lib/scanner.js && node --check lib/client.js

# 直接对任意目录跑扫描(临时 DSH_HOME 避免污染真实状态)
$env:DSH_HOME = "$PWD/.test-home"   # PowerShell
node -e "import('./lib/scanner.js').then(m => console.log(JSON.stringify(m.buildReport({force:true}).overall)))"

新增检查项:在 lib/scanner.jscheck* 函数区按 { re, severity, title, advice } 模式追加即可,严重度与风险分级会自动聚合。

📄 License

MIT © Fridgespy

plugin-security-audit.zip · 80.4 KB 下载源码
v1.0.0 2026-08-11 104 次下载

2026电赛H题

一套"循线小车 + 摆杆滚球平衡"一体化系统:小车沿黑色环形赛道自动循线行驶,行驶过程中车载摆杆控制装置使钢球稳定在指定位置,误差绝对值 ≤ 1 cm,并通过无线图传实时回传钢球运动画面。

  • STM32
  • PID
查看详细介绍

车载平衡滚球运动控制系统

2026 年全国大学生电子设计竞赛赛区赛(TI 杯)H 题参赛作品

一套"循线小车 + 摆杆滚球平衡"一体化系统:小车沿黑色环形赛道自动循线行驶,行驶过程中车载摆杆控制装置使钢球稳定在指定位置,误差绝对值 ≤ 1 cm,并通过无线图传实时回传钢球运动画面。

赛题要求全部达成:六项功能任务(基础巡线定点停车、定点折返、直道动态平衡、全赛道动态平衡、任意位置动态平衡、无线图传)经实车测试全部达标,各项指标均满足甚至优于赛题要求,详见测试结果


项目亮点

  • 双主控物理隔离架构:底盘主控与平衡主控分工明确,高速巡线与姿态闭环互不干扰,杜绝控制周期抖动
  • 视觉闭环测球位:基于 K230 端侧 AI 平台运行目标检测模型(YOLO 架构),以超过 30 FPS 实时提取钢球坐标,替代易受环境光干扰的红外测距方案
  • "齿轮-齿条"垂直顶升机构:串行总线舵机通过齿轮齿条将旋转精确映射为摆杆端部直线升降,消除连杆机构非线性,角度增量与高度增量严格线性
  • 改良型 PIDA 控制算法:针对球-杆系统二阶积分迟滞特性引入加速度项,实现"硬刹车"式快速稳定
  • 非线性静态补偿 + 硬件级前馈:10 段式形变补偿数组抵消摆杆弯曲误差;底盘加减速前通过 GPIO 前馈信号让摆杆预倾斜,"吞噬"惯性冲击
  • 浏览器直看图传:USB 摄像头画面经硬件 ASIC 编码后推流,移动端连接模块 Wi-Fi 热点,浏览器访问指定 IP:8080 即可实时监看与回放

系统架构

                     ┌────────────────────────────────────────────┐
                     │             K230(视觉端)                  │
                     │  目标检测(YOLO)→ 球心坐标 → 防抖滤波        │
                     └───────────────────┬────────────────────────┘
                                         │ UART(坐标流)
                                         ▼
┌────────────────────────┐      ┌────────────────────────────────┐
│  底盘主控(STM32F407)   │ GPIO │  平衡主控(STM32F407)           │
│  · 8 路光电循线         │前馈  │  · 坐标解包与 PIDA 计算           │
│  · 编码器闭环(TIM4/5)  │────►│  · 36 ms 固定周期控制中断         │
│  · TB6612 电机驱动      │      │  · 串行总线舵机闭环控制           │
│  · OLED 状态显示        │      └──────────────┬─────────────────┘
│  · 启停/计时控制        │                     │ 串行总线
└────────────────────────┘                     ▼
                                        ┌────────────────┐
                                        │  总线舵机       │
                                        │  → 齿轮 → 齿条  │
                                        │  → 摆杆(25cm) │
                                        └────────────────┘

  图传链路:USB 摄像头 → 硬件编码模块(Wi-Fi 热点)→ 浏览器实时监看

目录结构

├── 舵机控制/                         平衡主控工程(STM32F407,UartServoLite 串行舵机)
│   └── 舵机/UartServoLite_f407/
├── 巡线控制/                         底盘主控工程(STM32F407VET6 通用巡线例程)
│   └── 巡线/p4/p4/ppp3/STM32F407VET6_通用巡线例程_C30D/
│       ├── control.c / control.h     巡线控制与电机控制逻辑
│       └── show.c / show.h           OLED 显示
├── 结构设计/                         机械结构设计
│   ├── 齿轮.SLDPRT                  套在舵机输出轴上转动的主动齿轮
│   ├── 齿条.SLDPRT                  与齿轮啮合、垂直升降的齿条
│   ├── 轨道.SLDPRT                  约束齿条直线运动的导轨
│   └── STL/                         三件套 STL 格式(可直接切片 3D 打印)
├── K230.py                          K230 视觉端代码(YOLO 球检测 + 坐标串口输出)
├── H题_车载平衡滚球运动控制系统.pdf   赛题原题
└── 设计报告.pdf                     完整设计报告(方案、理论、电路、软件、测试)

核心设计说明

1. 机械执行机构:齿轮-齿条垂直顶升

摆杆左端铰接固定(离车板高度 ≥ 5 cm),右端由"齿轮-齿条"机构托举。舵机旋转经齿轮啮合转化为齿条的垂直直线运动,齿条侧面支撑件直接顶起 25 cm PPR 摆杆。相比舵机直连摇臂,该方案:

  • 消除连杆机构不同夹角下的非线性力矩变化;
  • 保证"舵机角度增量 ↔ 摆杆端部高度增量"的线性映射,便于控制算法直接输出角度指令;
  • 配合串行总线舵机的高分辨率、低死区特性,实现高精度闭环。

三个结构件均提供 SolidWorks 源文件与可直接打印的 STL:

| 零件 | 作用 | |------|------| | 齿轮 | 套在舵机输出轴上,将旋转运动传递给齿条 | | 齿条 | 与齿轮啮合,将旋转转换为垂直升降 | | 轨道 | 为齿条提供直线运动约束,保证啮合稳定 |

2. 控制算法:PIDA + 形变补偿 + 前馈

钢球-摆杆系统为经典的"球-杆(Ball and Beam)"模型,属于开环不稳定、欠驱动二阶系统,摆杆倾角直接决定的是小球的加速度而非位置或速度。针对该二阶积分器特性:

  • PIDA 控制器:在传统 PID 基础上增加加速度项(误差的二阶差分),当小球高速冲向目标并开始减速时提前给出反向舵机指令,实现类似"硬刹车"的快速收敛,避免传统 PID 在大阶跃下的严重超调;
  • 10 段式形变补偿数组:针对 PPR 摆杆长时间使用后的"中凹/波浪"形变,按视觉坐标分区叠加常数偏置角,抵消局部重力滚落趋势;
  • 硬件级前馈联动:底盘加减速/过弯前通过 GPIO(PC1)通知平衡主控,平衡主控立即在目标计算中引入反向补偿,使摆杆在车体位移发生前预倾斜,抑制惯性冲击。

3. 视觉检测:K230 端侧 AI

  • 在云端平台训练 YOLO 目标检测模型,部署至 K230 本地推理;
  • 实时检测钢球位置,提取检测框中心坐标,经防抖滤波后以串口字符串发送给平衡主控;
  • 全程免接触、非红外,不受环境光干扰,帧率 > 30 FPS。

4. 无线图传

专用多媒体硬件推流模块通过 USB 读取摄像头画面,经内部 ASIC 硬件编码后以 HTTP 封装推流。接收端(PAD / 笔记本电脑)连接模块释放的 Wi-Fi 热点,浏览器访问指定 IP 与 8080 端口即可实时监看并录制回放,无需安装专用 App。

5. 电源系统

  • 主电源:18650 锂电串联 10.8 V,经 TB6612 H 桥驱动电机;
  • 舵机副电源:7.4 V 独立锂电池,与主电源隔离,保证总线舵机 3 A 级瞬态电流;
  • 数字电源:LDO 级联降压至 3.3 V,专供双主控、OLED 与传感器阵列,保证 ADC 采样精度。

测试结果

依据赛题要求搭建白色广告布环形赛道(黑线宽 1.8 ± 0.2 cm,AB/CD 直线段 1.5 m,BC/DA 半圆弧半径 0.5 m),多轮独立测试取平均与最大极值:

结论:六项任务全部满足赛题指标,系统整体达标。

| 测试项目 | 指标要求 | 实测平均耗时 | 实测最大误差 | 结论 | |----------|----------|--------------|--------------|------| | 基础巡线与定点停车 | ≤ 20 s / ≤ 2 cm | 17.7 s | 0.1 cm | 达标 | | 定点动态折返运动 | ≤ 5 s / ≤ 1 cm | 2.6 s | 0.6 cm | 达标 | | 单侧直道行驶 | ≤ 8 s / ≤ 1 cm | 7.8 s | 0.7 cm | 达标 | | 全赛道行驶(球居中) | ≤ 30 s / ≤ 1 cm | 27.9 s | 0.8 cm | 达标 | | 全赛道行驶(任意位置) | ≤ 30 s / ≤ 1 cm | 27.9 s | 0.9 cm | 达标 | | 无线图传监测 | 覆盖全杆、实时回传 | 帧率 ≥ 25 FPS | 无丢包残影 | 达标 |

过弯工况下离心力通过车体传递至摆杆产生的微小侧向扰动,通过调大过弯时 K_d / K_a 权重、并将前馈信号扩展为包含左右轮差速的综合前馈,已控制在 1 cm 指标以内。


使用说明

  1. 固件烧录
  • 巡线控制/ 工程烧录至底盘主控(STM32F407VET6);
  • 舵机控制/ 工程烧录至平衡主控(STM32F407,UartServoLite 串行舵机库);
  • K230.py 部署至 K230 视觉模组。
  1. 机械装配
  • 使用 结构设计/STL/ 下的 STL 文件直接切片打印三个结构件,再按设计报告装配至舵机与摆杆。
  1. 联调与测试
  • 按赛题场地要求铺设赛道,按键启动后系统自动计时、循线行驶并完成摆杆平衡任务;
  • 详细原理、电路与调试流程见 设计报告.pdf

相关文档

致谢与声明

  • 舵机侧代码舵机控制/):基于 JOHO 串行总线舵机官方例程(UartServoLite)修改而来,舵机为 JOHO 串行总线舵机;
  • 小车侧代码巡线控制/):基于轮趣科技(WHEELTEC)STM32F407VET6 通用巡线例程修改而来,小车底盘及驱动部分基于轮趣(WHEELTEC)套件;
  • 机械结构(齿轮-齿条顶升机构)、平衡控制算法(PIDA + 形变补偿 + 硬件前馈)、视觉方案(K230 目标检测)与整体系统集成为本队自主设计实现。

说明

本仓库为 2026 年全国大学生电子设计竞赛 H 题参赛作品源码与结构设计,供学习交流使用;如需引用或二次开发,请注明出处。

2026-H--master.zip · 2.8 MB 下载源码
v1.0.0 2026-08-07 105 次下载

示例项目 FridgeSpy Core

演示项目上传与下载功能的示例工程。

  • ESP32
  • C
  • IoT
查看详细介绍

说明

这是一个示例项目,用于演示源码上传与下载功能。

  • 支持 zip/tar/tgz
  • 可随时下载体验
sample-project.zip · 405 B 下载源码