固定翼飞行机器人 · 下载说明(纯文本版) ================================================ 生成时间:2026-10-26 项目:2027 福鼎市学生信息素养提升实践活动 第八届中小学生创客大赛 科创实践类 · 智能机器人(固定翼)· 初中组 一、地面站软件 ------------------------------------------------ 文件:ground_station.py 版本:1.0.0 大小:约 158 KB 要求:Python 3.8 以上(Windows / macOS / Linux 均可) 怎么运行 1. 装 Python 3.8+,安装时勾选 "Add Python to PATH" 2. 把 ground_station.py 放到任意目录 3. 命令行执行:python ground_station.py 4. 首次运行会自动: - 检测并安装依赖(flask / flask-socketio / python-socketio) - 解出网页与静态库到 gcs_app/ - 创建 gcs_data/(缓存、黑匣子记录、连接记忆) - 启动服务并自动打开浏览器 5. 浏览器地址:http://localhost:5000 若端口被占用会自动顺延(跳过 5001) 没有真实飞机时测试界面 python gcs_app/plane_sim.py 界面有 5 页 图传 / 航点 / 状态 / 日志 / 设置 二、飞控固件 ------------------------------------------------ 硬件:ESP32-S3-WROOM-1U,16 MB Flash 版本:2.0.0 三个文件及其烧录地址 bootloader.bin 约 21 KB @ 0x0 partition-table.bin 约 3 KB @ 0x8000 uav_fc.bin 约 933 KB @ 0x10000 情况 A:只更新固件(推荐) 只刷 uav_fc.bin 到 0x10000 分区表和引导程序不常变,不用动 情况 B:完整烧录(第一次烧板、或改了分区表) 三个文件都要,用下面命令一次刷完 完整烧录命令 esptool.py --chip esp32s3 -p COM3 -b 460800 ^ --before default_reset --after hard_reset ^ write_flash --flash_mode dio --flash_freq 80m --flash_size 16MB ^ 0x0 bootloader.bin ^ 0x8000 partition-table.bin ^ 0x10000 uav_fc.bin 说明: - COM3 换成实际串口 - Windows 命令行续行符是 ^,PowerShell 和 macOS/Linux 用 \ 三、刷固件前必做 ------------------------------------------------ 1. 把飞控参数导出成 JSON 存好 (地面站 → 设置 → 导出参数) PID 参数、校准值都在 NVS 里,万一丢了可以恢复 2. 确认电脑上只有一块 ESP32 连着 3. 确认飞机已断电上锁、桨叶已拆 四、校验文件完整性 ------------------------------------------------ Windows(PowerShell) Get-FileHash .\uav_fc.bin -Algorithm SHA256 macOS / Linux shasum -a 256 uav_fc.bin 对照网页上的 SHA256 值,或本目录 version.json 里的 sha256 字段 五、目录结构 ------------------------------------------------ downloads/ index.html 下载页 version.json 版本与校验清单 README.txt 本文件 gcs/ ground_station.py 地面站 fw/ uav_fc.bin 应用固件 bootloader.bin 引导程序 partition-table.bin 分区表 六、常见问题 ------------------------------------------------ 问:双击 ground_station.py 没反应? 答:说明 Python 没装好或没加进 PATH。 打开命令行敲 python --version,能看到版本号才行。 问:提示缺 flask? 答:脚本会自动装。装不上通常是网络问题, 手动装: pip install flask flask-socketio python-socketio -i https://pypi.tuna.tsinghua.edu.cn/simple 问:浏览器打开是空白? 答:换 Chrome / Edge,别用太老的 IE。 或者手动访问 http://localhost:5000 问:烧录报错 "Failed to connect"? 答:① 按住 BOOT 再上电进下载模式 ② 换一根数据线(有些线只能充电) ③ 确认串口号对得上(设备管理器里看) 问:刷完飞不起来? 答:大概率是参数丢了。从之前导出的 JSON 恢复, 或者重新做一遍传感器校准。 ================================================ 全部设计文件与固件源码开放 项目网址:https://fduav.pages.dev