# pelco_sdk **Repository Path**: sam-uxu/pelco_sdk ## Basic Information - **Project Name**: pelco_sdk - **Description**: 用于控制开环云台YT1200,485通讯 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-27 - **Last Updated**: 2026-03-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: 485, pelco-d, Python ## README # Pelco SDK 一个用于串口控制 YT1200 云台(Pelco-D 协议)的 Python 轻量级 SDK。 ## ✅ 功能概览 - 通过 `serial` 连接 Pelco 云台设备 - 命令运动:上、下、左、右、左上、右上、左下、右下、旋转左、旋转右 - 定时运动(`move_with_duration()`)并自动发送停止命令 - 位置状态追踪(`pan`、`tilt`、`rotate`) - 运动历史记录(每个方向累计秒数) - 一键复位到原点(`reset_to_zero()`) - 状态输出(`print_status()`) - 串口关闭(`close()`) ## 🧩 目录结构 - `pelco_control.py`:核心控制类 `PelcoController` - `example.py`:典型使用示例 - `requirement.txt`:项目依赖 ## 📦 依赖 - Python 3.10+ 虚拟环境 - pip install -r requirement.txt ## 🛠️ `PelcoController` API ### `PelcoController(port, baudrate=9600, timeout=1)` 创建并打开串口连接。 - `port`: 串口号(例如 `COM3` 或 `/dev/ttyUSB0`) - `baudrate`: 波特率(默认 9600) - `timeout`: 读写超时时间(秒,默认 1) ### `move_with_duration(direction, duration)` 发送运动指令并持续运动指定时长,结束后自动停止。 - `direction` 支持: - `up`, `down`, `left`, `right` - `up_left`, `up_right`, `down_left`, `down_right` - `rotate_left`, `rotate_right` - `duration`: 运动时长(秒,正数),若 `<=0` 直接返回 运动后: - 发送 Pelco 命令(起始命令 + 停止命令) - 更新 `move_history`(累计运动秒数) - 更新 `position`(基于配置速度更新 `pan` / `tilt` / `rotate`) ### `reset_to_zero()` 按当前状态反向运动回零点(连续 `pan`, `tilt`, `rotate` 复位),最后重置 `position` 为 `{pan:0, tilt:0, rotate:0}`。 ### `print_status()` 打印当前:运动历史和值、当前位置偏移值。 ## 🧪 调试与测试建议 - 在运行 `example.py` 前,确认 `port` 参数指向可用串口。 - 若出现权限问题,Windows 上可用管理员运行;Linux 上可用 `sudo`。