# 2DpanTilt_qoder **Repository Path**: gaokun3540/2DpanTilt_qoder ## Basic Information - **Project Name**: 2DpanTilt_qoder - **Description**: 二维云台总线舵机上位机 (Yeahbot YH协议 v2.0) - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-01 - **Last Updated**: 2026-08-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 2D PanTilt 云台上位机(Yeahbot 总线舵机) > 一个替代"原厂带毒上位机"的二维云台控制软件。 > 直连 Yeahbot 串口总线舵机,协议来源于公开资料,无病毒、可自定义、MIT 开源。 --- ## 为什么有这个项目:原厂上位机报毒,我们不关杀软,直接替代 本云台随货附带的**原厂上位机 Yeahbot V2.0.3** 被 **McAfee(迈克菲)** 检测为病毒。大概率是因为**无数字签名**触发了误报,但说实话——我们**没必要非要用这个来路不明的上位机**: - 无数字签名,来源不可控,杀软拦截就是信号 - 连接过程中还出现过**通信异常**(复位后恢复) - 与其赌它"只是误报",不如换一个自己信得过的 面对这种情况,我们**没有选择"关闭杀毒软件"这种危险做法**(等于裸奔),而是走了更优的路线: 1. **找协议**:Yeahbot 总线舵机是公开产品,协议资料在网络公开渠道即可获取(ASCII 帧格式) 2. **自己写上位机**:按自己的使用习惯重新实现,只保留需要的功能 3. **开源共享**:让同样买了这款云台的人,不必忍受带毒软件 结果:日常 95% 的功能全覆盖,代码完全可控,**从此告别带毒上位机**。 --- ## 商家资料说明(致谢) 本项目基于随云台附带的官方学习资料二次开发,资料内容总结如下: | 模块 | 内容 | |---|---| | 使用手册 | 云台安装、接线、总线舵机协议说明(PDF / DOCX) | | 视频教程 | 组装、驱动安装、固件下载、接线、测试校正、手柄控制 | | 源码程序 | STM32 控制板程序(出厂固件 v3.5,含完整源码)、Arduino 控制板程序、OpenMV 视觉程序 | | 相关工具 | CH340 串口驱动、固件烧录工具(FlyMcu) | | 结构图纸 | 云台机械结构设计图纸 | | 扩展资料 | 使用注意事项、串口调试示例 | - **舵机**:Yeahbot 串口总线舵机(30kg.cm,DC 5~8.4V),ASCII 协议 - **控制板**:STM32F103C8T6(协议透传网关;PC 亦可直连舵机总线,控制板非必需) - **协议来源**:Yeahbot 总线舵机为公开产品,协议资料来自网络公开渠道,非商家官方发布文档,仅作学习参考 > 感谢店家提供随货学习资料,本项目的硬件接线、舵机知识参考自官方资料;通信协议获取自网络公开资料。 --- ## 功能特性 - **双轴控制**:方位 Yaw (ID0) + 俯仰 Pitch (ID1) - 目标角度、运行速度、使能/释放、执行/停止、方位俯仰联动 - **实际位置实时回读**:单线程轮询 `PRAD`,指令间隔 ≥100ms(总线半双工铁律) - **0~Range 绝对角模型**:0°=物理一端,中位 135°(Yaw) / 90°(Pitch) = 正前方/水平 - **两端点标定**:PMin / PMax 实测校准,角度换算贴合舵机实际线性度 - **双轨滑块**:控制滑块(目标)+ 实际位置滑块(回读),目标/实际差距一目了然 - **2D 云台姿态动画**:方位箭头 + 俯仰支架实时跟随 - **总线配置**:读写 ID、设开机位置、读温度电压、恢复出厂 - **调试工具**:手动发送任意帧、日志 HEX 显示、日志保存、轮询心跳 ## 通信协议(YH v2.0) ``` 波特率 115200 8N1 ASCII,帧格式 #ID(3)P参数! 位置控制 #000P1500T1000! # ID3 P值4 T时间ms 读位置 #000PRAD! → #000P1521! 读版本 #000PVER! → #000PSERVO.C(4.3)! 写 ID #000PID001! 把 ID0 改为 ID1 读 ID #000PID! → #000P0! #OK! 使能 #000PULR! 释放扭力 #000PULK! 释放后可手掰 设开机位置 #000PCSD! 断电上电自动回位 读温度电压 #000PRTV! → #000PDA1563P1220T34V5.1! ⚠️ 总线半双工:指令间隔必须 ≥100ms ⚠️ 舵机响应 P<1000 时不补零(如 #000P505!),解析需兼容 3 位 ``` ## 快速开始 ### 环境要求 - Windows 10/11,.NET 8 SDK(或 Visual Studio 2022+) ### 运行 ```powershell cd 2DpanTilt_qoder dotnet run ``` 或直接用 Visual Studio 打开 `.slnx` 按 F5。 ### 硬件接线(PC 直连舵机总线,控制板可选) ``` USB-TTL TX → 舵机总线 RX USB-TTL RX → 舵机总线 TX USB-TTL GND → 舵机 GND(必须共地) 电源 5~8.4V → 舵机总线 VCC(USB 供电不足,必须外接) ``` USB-TTL 模块请切换至 **3.3V TTL 电平** 档位。 ### 使用流程 1. 打开软件 → 选串口 → 打开串口(自动开始轮询实际位置) 2. TAB「舵机实时控制」:滑块调姿 / 输入目标角度+速度执行 3. TAB「高级控制」:总线配置(改 ID、设开机位置)、手动发送调试 ### 角度标定(可选,提升精度) 1. 滑块转到物理 0° 端 → 点【0°端←滑块】记录 PMin 2. 滑块转到物理 Range° 端(270°/180°)→ 点【Range°端←滑块】记录 PMax 3. 默认 500/2500 即可工作,标定后换算更准 --- ## 项目结构 ``` 2DpanTilt_qoder/ ├── MainWindow.xaml # 主界面(双轴控制 + 舵机控制 + 2D 动画) ├── MainWindow.xaml.cs # 主逻辑(轮询/解析/控制) ├── ServoProtocol.cs # Yeahbot 协议封装(20+ 命令 + 解析) ├── Services/ │ ├── SerialPortService.cs # 串口服务(单线程轮询,指令节流) │ └── AppConfig.cs # 配置持久化(config.json) └── LICENSE # MIT ``` ## 许可证 [MIT License](LICENSE) --- *本项目与 Yeahbot 官方无任何关联。协议来源于网络公开资料,仅供学习交流使用。*