# 火炬之光自动化脚本

## 功能特点

- ✅ **多配置组管理** - 支持多组配置，可同时管理多套采集卡和串口设置
- 🖥️ **可视化配置** - 提供图形化界面管理所有配置
- 👁️ **采集卡预览** - 多窗口网格预览，点击可放大查看
- ⚙️ **灵活配置** - 所有参数（串口、采集卡、移动速度等）均可配置
- 🤖 **智能自动化** - 基于YOLO目标检测的游戏自动化

## 快速开始

### 1. 安装依赖

```bash
pip install opencv-python ultralytics ddddocr ch9329Comm serial PIL numpy
```

### 2. 启动程序

```bash
python launcher.py
```

启动器提供三个选项：
- **⚙️ 配置管理** - 配置串口、采集卡等参数
- **👁️ 采集卡预览** - 实时预览采集卡画面
- **🚀 启动自动化** - 启动游戏自动化脚本

### 3. 配置设置

首次使用请先点击"配置管理"：

1. **添加配置组** - 点击"添加组"创建新配置
2. **设置参数**：
   - 串口：选择设备串口号（如 COM6）
   - 波特率：设置串口波特率（默认9600）
   - 采集卡索引：选择采集卡设备号
   - 采集宽度/高度：设置采集分辨率
   - 移动速度：设置角色移动速度（v值）
3. **设为活动** - 选择要使用的配置组并设为活动
4. **保存配置** - 点击"保存配置"

### 4. 预览采集卡

点击"采集卡预览"可以：
- 网格方式查看所有活动的采集卡
- 点击任意窗口可放大查看
- 实时显示采集卡画面

### 5. 启动自动化

配置完成后，点击"启动自动化"开始游戏自动化。

## 配置说明

### 配置组结构

```json
{
  "groups": [
    {
      "name": "配置组1",
      "serial_port": "COM6",
      "serial_baudrate": 9600,
      "camera_index": 0,
      "camera_width": 1920,
      "camera_height": 1080,
      "move_velocity": 470,
      "active": false
    }
  ],
  "display": {
    "preview_window_width": 640,
    "preview_window_height": 360,
    "preview_columns": 2,
    "preview_rows": 2,
    "show_preview": true
  }
}
```

### 关键参数说明

- **serial_port**: 串口号，如 COM1, COM6
- **serial_baudrate**: 波特率，通常为 9600
- **camera_index**: 采集卡索引，0/1/2...
- **camera_width/height**: 采集分辨率
- **move_velocity**: 角色移动速度（v值），数值越大移动越快

## 文件结构

```
huojv/
├── launcher.py          # 启动器
├── main.py              # 主程序（自动游戏）
├── config.py            # 配置管理器
├── gui_config.py        # 配置GUI界面
├── preview.py           # 预览窗口
├── utils/
│   ├── get_image.py     # 采集卡管理
│   ├── mouse.py         # 鼠标控制
│   ├── shizi.py         # OCR识别
│   └── ...
├── best.pt              # YOLO模型（战斗）
├── best0.pt             # YOLO模型（城镇）
└── config.json          # 配置文件（自动生成）
```

## 使用流程

1. 运行 `python launcher.py`
2. 点击"配置管理"设置参数
3. 点击"采集卡预览"测试采集
4. 点击"启动自动化"开始游戏
5. 享受自动化！

## 注意事项

- 确保采集卡和串口设备已正确连接
- 串口号和采集卡索引需要根据实际情况设置
- 移动速度(v值)需要根据游戏角色属性调整
- 配置文件保存在 `config.json`

## 问题排查

### 无法打开串口
- 检查串口号是否正确
- 确认串口设备已连接
- 检查其他程序是否占用串口

### 无法打开采集卡
- 检查采集卡索引是否正确（0, 1, 2...）
- 确认采集卡驱动已安装
- 尝试不同的采集卡索引

### 识别不准确
- 调整移动速度(v值)
- 检查采集卡画面是否清晰
- 确认游戏窗口位置正确

