2、开发环境搭建:工欲善其事,必先利其器
说实话,做地面站开发这件事,环境搭好了,后面能省下一大半的力气。我见过太多新手一上来就急着写代码,结果装个库报一堆错,心态直接崩了。别急,咱们一步步来。
这一章,我会带你装好所有必备工具。你想想看,一个稳定的开发环境,就像一张干净的工作台。工具摆得整整齐齐,干活才顺手。
本章核心目标:在你的电脑上搭建一套完整、可复用的无人机地面站开发环境。所有操作均基于 Windows 10/11 系统,macOS 或 Linux 用户请自行调整路径。
2.1 Python 3.10+ 安装与虚拟环境配置
Python 版本我建议用 3.10 或 3.11。为什么?因为 pymavlink 和 PyQt5 在这两个版本上最稳定。我之前在 3.12 上踩过坑,有些库还没完全适配,折腾了半天。
2.1.1 下载与安装
- 去 Python 官网下载 3.10.x 或 3.11.x 版本。
- 安装时,务必勾选「Add Python to PATH」。
- 安装完成后,打开命令行(cmd 或 PowerShell),输入:
python --version
如果显示 Python 3.10.x,说明安装成功。嗯,这里要注意:如果系统里装了多个 Python 版本,可以用 py -3.10 来指定版本。
2.1.2 虚拟环境:隔离才是王道
我个人习惯,每个项目都建一个独立的虚拟环境。为什么?因为不同项目依赖的库版本可能冲突。比如你同时做两个地面站项目,一个用 PyQt5 5.15,另一个用 5.12,没有虚拟环境的话,你就等着哭吧。
创建虚拟环境很简单:
# 在项目根目录下执行
python -m venv venv
# 激活虚拟环境(Windows)
venv\Scripts\activate
# 激活后,命令行前面会出现 (venv) 字样
退出虚拟环境用 deactivate。我建议你每次打开终端第一件事就是激活环境,养成习惯。
小技巧:在 VS Code 中,可以直接选择 Python 解释器为 ./venv/Scripts/python.exe,这样终端会自动激活虚拟环境。
2.2 PyQt5 与 PyQt5-tools 安装
PyQt5 是我们做界面的核心库。说白了,它就是 Python 版的 Qt,能让你拖拖拽拽就做出漂亮的桌面应用。
2.2.1 安装 PyQt5
pip install PyQt5
安装完成后,可以写个简单测试:
import sys
from PyQt5.QtWidgets import QApplication, QLabel
app = QApplication(sys.argv)
label = QLabel("Hello, Ground Station!")
label.show()
sys.exit(app.exec_())
如果弹出一个窗口,说明安装成功。我在项目中遇到过一个问题:某些系统上 PyQt5 安装后无法导入,多半是 Python 版本不匹配,换个 3.10 就好了。
2.2.2 安装 PyQt5-tools
这个工具包里包含了 designer.exe,也就是 Qt 设计师。你可以用它可视化地设计界面,然后转成 Python 代码。
pip install PyQt5-tools
安装后,在 venv\Lib\site-packages\pyqt5_tools 下找到 designer.exe,双击打开。我个人习惯把它发送到桌面快捷方式,方便随时调用。
注意:PyQt5-tools 的版本需要和 PyQt5 匹配。如果安装报错,试试指定版本:pip install PyQt5-tools==5.15.4.3.2
2.3 MAVLink 库安装(pymavlink)
MAVLink 是无人机通信的通用协议。我们的地面站要通过它和飞控对话。pymavlink 是 Python 的实现。
pip install pymavlink
安装后,验证一下:
from pymavlink import mavutil
print(mavutil.__version__)
如果输出版本号,就对了。我曾经在 Linux 上装 pymavlink 时遇到编译错误,因为缺少 C 扩展。Windows 上一般不会,但如果报错,先装个 Microsoft C++ Build Tools。
2.4 串口通信库(pyserial)安装
地面站和飞控之间,通常通过串口(USB 转 TTL)连接。pyserial 就是用来干这个的。
pip install pyserial
测试代码:
import serial
ser = serial.Serial('COM3', 115200, timeout=1)
print(ser.name)
ser.close()
注意把 COM3 换成你实际的端口号。怎么查?打开设备管理器,看「端口 (COM 和 LPT)」下面。
避坑指南:我曾经在调试时发现串口打不开,折腾了半天,结果是另一个软件占用了端口。用 mode 命令可以查看端口占用情况。
2.5 代码版本管理(Git)与 IDE 推荐
2.5.1 Git 安装与配置
Git 是必须的。你不想某天改坏了代码回不去吧?
- 去 git-scm.com 下载安装包,一路默认安装。
- 配置用户名和邮箱:
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
我个人习惯用 git init 初始化仓库后,立刻创建 .gitignore 文件,把 venv/、__pycache__/、*.pyc 加进去。这些文件不需要提交。
2.5.2 IDE 推荐:VS Code 还是 PyCharm?
这个问题经常有人问。我的建议是:
| IDE | 优点 | 适合场景 |
|---|---|---|
| VS Code | 轻量、插件丰富、免费 | 日常开发、调试、Git 集成 |
| PyCharm | 智能提示强、重构功能好 | 大型项目、团队协作 |
我两个都用。平时写小功能用 VS Code,做复杂界面设计时切到 PyCharm。你选一个顺手的就行,不用纠结。
VS Code 必装插件:
- Python(微软官方)
- Pylance(代码提示)
- GitLens(Git 历史可视化)
- Qt for Python(PyQt 语法高亮)
2.6 本章知识体系总览
下面这张图,是我为你画的开发环境搭建逻辑图。你可以把它当作一张地图,随时回来对照。
好了,到这里你的开发环境就全部搭好了。所有工具都装齐了,虚拟环境也激活了。接下来,我们就可以真正开始写地面站的代码了。