> 技术文档 > 手把手教你实现PX4飞控与上位机(Jetson,树莓派)的串口通信连接(Ubuntu18/20/22通用)_树莓派串口通信飞控

手把手教你实现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)或传感器。以下是其布线规则的详细说明:
引脚 信号 电压 功能说明 1 VCC +5V 供电输出(最大500mA) 2 TX 3.3V 数据发送(连接外设RX) 3 RX 3.3V 数据接收(连接外设TX) 4 CTS 3.3V 清除发送(流控,默认未启用) 5 RTS 3.3V 请求发送(流控,默认未启用) 6 GND GND 公共地
  • Pixhawk侧:推荐使用 TELEM2 接口,引脚从左到右(正常看到标有“TELEM2”口的方向)编号为1~6,对应上图引脚信号,通过杜邦转端子线可直接连接飞控(可以购买型号为1.25mm转杜邦2.54mm-6P端子线)

二、CH340/CH341USB转串口模块的驱动安装

打开终端用lsusb命令查看USB,插上CH340/CH341之前:
手把手教你实现PX4飞控与上位机(Jetson,树莓派)的串口通信连接(Ubuntu18/20/22通用)_树莓派串口通信飞控
插上CH340/CH341之后:
手把手教你实现PX4飞控与上位机(Jetson,树莓派)的串口通信连接(Ubuntu18/20/22通用)_树莓派串口通信飞控
我们发现此时多了一个Bus 001 Device 003: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter消息(有输出包含你的模块ID即可),这表明CH340设备已被系统识别。

2.2 接下来我们安装驱动:

这里我们点进链接下载相应的压缩包文件,官方网址CH341SER_LINUX.ZIP,下载并解压到主目录下即可(可根据个人习惯自行创建目录,无影响)。点击进入driver目录如图
手把手教你实现PX4飞控与上位机(Jetson,树莓派)的串口通信连接(Ubuntu18/20/22通用)_树莓派串口通信飞控

右键鼠标并选择在终端中打开,我们发现路径已经切到了~/CH341SER_LINUX/driver下,此时我们执行命令make,使用make编译驱动程序,如果成功,将看到生成文件“ch341.ko”:

手把手教你实现PX4飞控与上位机(Jetson,树莓派)的串口通信连接(Ubuntu18/20/22通用)_树莓派串口通信飞控

手把手教你实现PX4飞控与上位机(Jetson,树莓派)的串口通信连接(Ubuntu18/20/22通用)_树莓派串口通信飞控

继续在终端输入sudo make install,使驱动程序永久工作
手把手教你实现PX4飞控与上位机(Jetson,树莓派)的串口通信连接(Ubuntu18/20/22通用)_树莓派串口通信飞控

重新插拔一次USB转TTL模块,用dmesg命令查看:

sudo dmesg | grep ch341

可看到类似下图输出:
手把手教你实现PX4飞控与上位机(Jetson,树莓派)的串口通信连接(Ubuntu18/20/22通用)_树莓派串口通信飞控

/////////////////////////////////////////////////////////////////////////////////////////////////
注:若终端有报错“brltty”字样的,卸载此程序即可,它是一款专门为盲人设计的阅读器,将输出的文本转换为盲文点阵显示器上的触觉反馈。
卸载命令为:

sudo apt autoremove --purge brltty

///////////////////////////////////////////////////////////////////////////////////////////////

再重新插拔一次CH340模块,用dmesg命令查看:

sudo dmesg | grep ch341

手把手教你实现PX4飞控与上位机(Jetson,树莓派)的串口通信连接(Ubuntu18/20/22通用)_树莓派串口通信飞控
注意观察被识别到的你的模块设备名称,如上图,我的被识别为ttyCH341USB0,然后用下面命令在 /dev 目录查看tty设备:

ls -l /dev/ttyCH341USB0(此处替换为你的模块名,如果名称不对,将提示找不到目录)

输出应如下:
手把手教你实现PX4飞控与上位机(Jetson,树莓派)的串口通信连接(Ubuntu18/20/22通用)_树莓派串口通信飞控
这表明已经安装成功并识别到模块。至此本步大功告成!

三、QGC地面站配置

在QGroundControl(QGC)中配置Pixhawk 2.4.8的TELEM2端口需完成飞控参数设置和QGC界面配置两部分。以下是分步指南:

3.1 飞控参数设置(QGC内操作)

//////////////////////////////////////////////////////////////////////////////
注:因为尚未使用串口进行通信,此步我们先用usb-typec数据线连接飞控进行设置参数操作。
此步为图形化操作,大家根据下面教程便可轻松配置成功
/////////////////////////////////////////////////////////////////////////////

  1. 进入参数配置界面
    连接飞控后,在QGC主界面点击 齿轮图标(设置)→ 飞行控制器 → 参数,进入参数编辑页面。
  2. 设置MAVLink端口分配
  • 搜索参数 MAV_1_CONFIG,将其值设置为 TELEM2(表示通过TELEM2端口输出MAVLink数据)。
  • 若该参数未显示,先保存当前参数并重启飞控,再次进入参数页面即可看到。
  1. 配置TELEM2波特率
  • 搜索参数 SER_TEL2_BAUD,根据实际需求设置波特率,常见值为 921600 。
  • 注意:在后续步骤需确保飞控与CH340模块的波特率一致。
  1. 保存并重启飞控
    点击 保存参数(save) 按钮,然后关闭QGC并重新插拔Pixhawk,使配置生效。

3.2 QGC界面连接配置

  1. 进入连接设置页面
    重启QGC后,点击左上角QGC的logo图标,找到最后那个Application settings →找到左侧 通讯连接,点击进入连接管理界面。(图中是我原先配置好的,大家打开为空白,点击底部添加按钮即可)

    手把手教你实现PX4飞控与上位机(Jetson,树莓派)的串口通信连接(Ubuntu18/20/22通用)_树莓派串口通信飞控

  2. 添加TELEM2端口连接

  • 点击 添加 按钮,选择Type为 Serial Port(串口)
  • 在 Serial Port中选择CH340模块对应的端口(如/dev/ttyCH341USB0,一般会自动识别,为你的设备名称)
  • 设置 波特率为921600 与飞控的 SER_TEL2_BAUD 参数一致
  • 输入连接名称(如“ch340”,任意设置,无影响),点击 ”确定 “保存配置

手把手教你实现PX4飞控与上位机(Jetson,树莓派)的串口通信连接(Ubuntu18/20/22通用)_树莓派串口通信飞控

  1. 建立通信连接
    在连接列表中点击选中刚创建的连接,点击 ”连接“ 按钮。QGC将尝试通过TELEM2端口与飞控通信。
    手把手教你实现PX4飞控与上位机(Jetson,树莓派)的串口通信连接(Ubuntu18/20/22通用)_树莓派串口通信飞控
    返回QGC主界面,左上角状态显示已连接,至此大功告成!