手把手教你实现PX4飞控与上位机(Jetson,树莓派)的串口通信连接(Ubuntu18/20/22通用)_树莓派串口通信飞控
一、pixhawk2.4.8接线
1.1 核心接线原则(这里以CH340/CH341转串口模块为例)
-
交叉连接:CH340模块的 TXD(发送) 连接Pixhawk的 RX(接收),CH340的 RXD(接收) 连接Pixhawk的 TX(发送)。
-
共地:CH340的 GND 与Pixhawk的 GND 直接连接,确保电位参考一致。
-
VCC悬空:CH340模块的 VCC 引脚无需连接到Pixhawk,因为模块通过USB接口供电。
1.2 pixhawk2.4.8具体接口选择
- 接口说明:Pixhawk 2.4.8的Telem2接口是扩展通信的核心接口,主要用于连接数传电台、机载计算机(如树莓派,Jetson)或传感器。以下是其布线规则的详细说明:
- Pixhawk侧:推荐使用 TELEM2 接口,引脚从左到右(正常看到标有“TELEM2”口的方向)编号为1~6,对应上图引脚信号,通过杜邦转端子线可直接连接飞控(可以购买型号为1.25mm转杜邦2.54mm-6P端子线)
二、CH340/CH341USB转串口模块的驱动安装
打开终端用lsusb
命令查看USB,插上CH340/CH341之前:
插上CH340/CH341之后:
我们发现此时多了一个Bus 001 Device 003: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
消息(有输出包含你的模块ID即可),这表明CH340设备已被系统识别。
2.2 接下来我们安装驱动:
这里我们点进链接下载相应的压缩包文件,官方网址CH341SER_LINUX.ZIP,下载并解压到主目录下即可(可根据个人习惯自行创建目录,无影响)。点击进入driver目录如图
右键鼠标并选择在终端中打开,我们发现路径已经切到了~/CH341SER_LINUX/driver
下,此时我们执行命令make
,使用make编译驱动程序,如果成功,将看到生成文件“ch341.ko”:
继续在终端输入sudo make install
,使驱动程序永久工作
重新插拔一次USB转TTL模块,用dmesg
命令查看:
sudo dmesg | grep ch341
可看到类似下图输出:
/////////////////////////////////////////////////////////////////////////////////////////////////
注:若终端有报错“brltty”字样的,卸载此程序即可,它是一款专门为盲人设计的阅读器,将输出的文本转换为盲文点阵显示器上的触觉反馈。
卸载命令为:
sudo apt autoremove --purge brltty
///////////////////////////////////////////////////////////////////////////////////////////////
再重新插拔一次CH340模块,用dmesg
命令查看:
sudo dmesg | grep ch341
注意观察被识别到的你的模块设备名称,如上图,我的被识别为ttyCH341USB0
,然后用下面命令在 /dev
目录查看tty设备:
ls -l /dev/ttyCH341USB0(此处替换为你的模块名,如果名称不对,将提示找不到目录)
输出应如下:
这表明已经安装成功并识别到模块。至此本步大功告成!
三、QGC地面站配置
在QGroundControl(QGC)中配置Pixhawk 2.4.8的TELEM2端口需完成飞控参数设置和QGC界面配置两部分。以下是分步指南:
3.1 飞控参数设置(QGC内操作)
//////////////////////////////////////////////////////////////////////////////
注:因为尚未使用串口进行通信,此步我们先用usb-typec数据线连接飞控进行设置参数操作。
此步为图形化操作,大家根据下面教程便可轻松配置成功
/////////////////////////////////////////////////////////////////////////////
- 进入参数配置界面
连接飞控后,在QGC主界面点击 齿轮图标(设置)→ 飞行控制器 → 参数,进入参数编辑页面。 - 设置MAVLink端口分配
- 搜索参数 MAV_1_CONFIG,将其值设置为 TELEM2(表示通过TELEM2端口输出MAVLink数据)。
- 若该参数未显示,先保存当前参数并重启飞控,再次进入参数页面即可看到。
- 配置TELEM2波特率
- 搜索参数 SER_TEL2_BAUD,根据实际需求设置波特率,常见值为 921600 。
- 注意:在后续步骤需确保飞控与CH340模块的波特率一致。
- 保存并重启飞控
点击 保存参数(save) 按钮,然后关闭QGC并重新插拔Pixhawk,使配置生效。
3.2 QGC界面连接配置
-
进入连接设置页面
重启QGC后,点击左上角QGC的logo图标,找到最后那个Application settings →找到左侧 通讯连接,点击进入连接管理界面。(图中是我原先配置好的,大家打开为空白,点击底部添加按钮即可) -
添加TELEM2端口连接
- 点击 添加 按钮,选择Type为 Serial Port(串口)
- 在 Serial Port中选择CH340模块对应的端口(如/dev/ttyCH341USB0,一般会自动识别,为你的设备名称)
- 设置 波特率为921600 与飞控的 SER_TEL2_BAUD 参数一致
- 输入连接名称(如“ch340”,任意设置,无影响),点击 ”确定 “保存配置
- 建立通信连接
在连接列表中点击选中刚创建的连接,点击 ”连接“ 按钮。QGC将尝试通过TELEM2端口与飞控通信。
返回QGC主界面,左上角状态显示已连接,至此大功告成!