2、开发环境搭建:工欲善其事,必先利其器

说实话,做地面站开发这件事,环境搭好了,后面能省下一大半的力气。我见过太多新手一上来就急着写代码,结果装个库报一堆错,心态直接崩了。别急,咱们一步步来。

这一章,我会带你装好所有必备工具。你想想看,一个稳定的开发环境,就像一张干净的工作台。工具摆得整整齐齐,干活才顺手。

本章核心目标:在你的电脑上搭建一套完整、可复用的无人机地面站开发环境。所有操作均基于 Windows 10/11 系统,macOS 或 Linux 用户请自行调整路径。

2.1 Python 3.10+ 安装与虚拟环境配置

Python 版本我建议用 3.10 或 3.11。为什么?因为 pymavlink 和 PyQt5 在这两个版本上最稳定。我之前在 3.12 上踩过坑,有些库还没完全适配,折腾了半天。

2.1.1 下载与安装

  1. 去 Python 官网下载 3.10.x 或 3.11.x 版本。
  2. 安装时,务必勾选「Add Python to PATH」。
  3. 安装完成后,打开命令行(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 是必须的。你不想某天改坏了代码回不去吧?

  1. 去 git-scm.com 下载安装包,一路默认安装。
  2. 配置用户名和邮箱:
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 本章知识体系总览

下面这张图,是我为你画的开发环境搭建逻辑图。你可以把它当作一张地图,随时回来对照。

开发环境搭建知识体系 地面站开发环境 Python 3.10+ 虚拟环境 venv PyQt5 + tools Qt Designer UI 转 Python pymavlink MAVLink 协议 pyserial 串口通信 Git 版本管理 .gitignore 分支管理 VS Code / PyCharm 插件配置 环境搭建完成 → 可以开始写地面站代码了!

好了,到这里你的开发环境就全部搭好了。所有工具都装齐了,虚拟环境也激活了。接下来,我们就可以真正开始写地面站的代码了。


可可精品资料库