# ODriver_GUI **Repository Path**: imzack/odriver_gui ## Basic Information - **Project Name**: ODriver_GUI - **Description**: No description available - **Primary Language**: TypeScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-03 - **Last Updated**: 2025-10-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ODrive Control Desktop Application 基于 Electron + React + TypeScript 的 ODrive v0.5.1 控制桌面应用。 ## 项目结构 ``` odriver_gui/ ├── src/ │ ├── main/ # Electron 主进程 │ │ ├── main.ts # 主入口 │ │ ├── ipc-handlers.ts # IPC 处理器 │ │ └── odrive/ # ODrive 驱动层 │ │ ├── protocol.ts # ASCII 协议实现 │ │ ├── driver.ts # ODrive 驱动 │ │ ├── mock-driver.ts # 模拟驱动 │ │ └── device-manager.ts # 设备管理器 │ ├── preload/ # Electron 预加载脚本 │ │ └── preload.ts │ ├── renderer/ # React 前端 │ │ ├── index.html │ │ ├── main.tsx │ │ ├── App.tsx │ │ └── components/ # UI 组件 │ └── shared/ # 共享类型定义 │ └── types.ts ├── docs/ # 文档 └── dist/ # 构建输出 ``` ## 功能特性 - ✅ 设备自动扫描与连接 - ✅ 电机参数配置 - ✅ 多种控制模式(位置、速度、力矩) - ✅ 实时遥测数据监控 - ✅ 电机与编码器校准 - ✅ 紧急停止机制 - ⏳ 流程控制与自动化(开发中) - ⏳ 数据记录与导出(开发中) ## 开发环境设置 ### 前置要求 - Node.js 18+ - npm 或 yarn ### 安装依赖 ```bash # 清理旧依赖(如果之前使用过 Vite) rm -rf node_modules package-lock.json # 安装依赖 npm install ``` ### 开发模式运行 本项目使用 **Webpack** 构建,不需要开发服务器,直接加载本地文件。 **步骤 1:启动文件监听(自动编译)** ```bash npm run dev ``` **步骤 2:在新终端启动 Electron** 使用模拟驱动(推荐,无需硬件): ```bash # macOS/Linux USE_MOCK_DRIVER=true npm start # Windows (PowerShell) $env:USE_MOCK_DRIVER="true"; npm start # Windows (CMD) set USE_MOCK_DRIVER=true && npm start ``` 或使用真实设备: ```bash npm start ``` **开发流程**: 1. 修改代码后,Webpack 自动重新编译(在 `npm run dev` 终端可看到) 2. 在 Electron 窗口按 `Cmd/Ctrl+R` 刷新即可看到更改 3. DevTools 会自动打开,方便调试 ### 构建 ```bash # 构建所有文件 npm run build # 打包应用 npm run package # 特定平台打包 npm run package:mac npm run package:win npm run package:linux ``` ## 技术栈 - **桌面框架**: Electron 28 - **前端**: React 18 + TypeScript - **样式**: TailwindCSS - **构建工具**: Webpack 5 - **串口通信**: serialport - **图表**: Chart.js (待集成) - **流程设计**: React Flow (待集成) ## 使用说明 ### 1. 连接设备 1. 通过 USB 连接 ODrive 设备 2. 启动应用,在"设备连接"页面扫描设备 3. 选择设备并点击"连接" ### 2. 配置电机 1. 进入"电机配置"页面 2. 选择要配置的轴(轴0 或 轴1) 3. 设置电机参数(极对数、Kv、电阻、电感) 4. 设置编码器参数(模式、CPR) 5. 执行校准(电机校准、编码器校准) 6. 保存配置 ### 3. 控制电机 1. 进入"电机控制"页面 2. 选择控制模式(位置、速度、力矩) 3. 设置目标值 4. 启用电机 5. 使用紧急停止按钮可随时停止 ### 4. 监控状态 1. 进入"实时监控"页面 2. 查看电压、电流、温度等实时数据 3. 查看各轴的位置、速度、状态 ## 模拟驱动 开发时可使用模拟驱动,无需实际硬件: ```bash USE_MOCK_DRIVER=true npm run dev ``` 模拟驱动会: - 模拟设备连接 - 模拟基本的电机动力学 - 模拟遥测数据 - 模拟校准过程 ## 安全注意事项 ⚠️ 使用前请确保: - 电机可自由旋转,周围无障碍物 - 了解紧急停止按钮的位置 - 首次使用时设置合理的限制参数 - 在安全环境中进行测试 ## 待实现功能 - [ ] 流程控制与可视化编程(React Flow) - [ ] 流程运行器(Worker 进程) - [ ] 实时数据图表(Chart.js 集成) - [ ] 数据记录与导出(CSV/JSON) - [ ] 安全限制模板系统 - [ ] 多语言支持 - [ ] 自动更新机制 ## 许可证 MIT ## 支持的固件版本 ODrive v0.5.1