第一讲:课程导论与硬件准备
各位同学好,我是你们的讲师。做嵌入式这些年,从最早的8位单片机一路做到现在的多旋翼无人机飞控系统,踩过的坑确实不少。今天咱们开始《PX4与树莓派串口通信实战》的第一讲,先把地基打牢。
1.1 这门课到底要学什么?
说白了,这门课就是教你如何让树莓派和Pixhawk飞控“说话”。你想想看,Pixhawk负责飞行的稳定控制,树莓派负责复杂的计算任务——比如视觉识别、路径规划。两者配合好了,你的无人机才能真正“聪明”起来。
我个人习惯把这类项目分成三个层次:
- 底层通信:串口怎么连、数据怎么收发
- 协议解析:MAVLink协议怎么拆包、怎么组包
- 应用开发:用Python写地面站、用C++写控制逻辑
这门课会带你走完这三个层次。30章的内容,从硬件接线一直讲到完整的无人机控制系统。嗯,这里要注意:每一章我都会留一个动手练习,光看是学不会的。
1.2 你需要准备哪些硬件?
我在项目中遇到过不少因为硬件选型不对导致通信失败的情况。所以这里我直接给出经过验证的清单:
| 硬件名称 | 推荐型号 | 数量 | 备注 |
|---|---|---|---|
| 飞控板 | Pixhawk 4 或 Holybro Pix32 | 1块 | PX4固件已刷好 |
| 主控板 | 树莓派4B (2GB以上) | 1块 | 建议带散热片 |
| USB转TTL模块 | CP2102 或 CH340G | 1个 | 3.3V电平版本 |
| 杜邦线 | 公对母、母对母各10根 | 若干 | 颜色区分开更好 |
| MicroSD卡 | 16GB以上 Class10 | 1张 | 树莓派系统用 |
| 电源 | 5V/3A USB-C电源 | 1个 | 树莓派专用 |
1.3 串口通信的基本原理
串口通信,说白了就是两根线来回传数据。一根发(TX),一根收(RX)。你想想看,就像两个人打电话,一个人说,一个人听。
但这里有个关键点:通信双方必须约定好“语速”和“格式”。这就是我们常说的串口参数:
- 波特率:每秒传多少位。常用的是9600、57600、115200。PX4默认用57600。
- 数据位:一次传多少位数据。通常是8位。
- 停止位:每个数据包结束的标志。一般是1位。
- 校验位:可选,用于检错。我们通常不用。
为什么会这样设计?我刚开始学的时候也觉得麻烦。后来在调试一个无人机时,发现树莓派和飞控的波特率没对上,数据全是乱码。从那以后,我每次接线第一件事就是检查波特率是否一致。
波特率:57600
数据位:8
停止位:1
校验位:无
流控制:无
1.4 物理连接:树莓派 ↔ PX4飞控
好,现在咱们动手接线。这是整个课程的基础,接错了后面全白搭。
Pixhawk飞控上有多个串口,我们通常用TELEM2端口。这个端口默认就是57600波特率,专门给数传或者 companion computer(也就是树莓派)用的。
接线规则很简单:TX接RX,RX接TX,GND接GND。你想想看,一个人说话,另一个人要听,对吧?所以发(TX)要接到收(RX)上。
具体步骤如下:
- 树莓派的GPIO14(TXD)→ USB转TTL模块的RXD
- 树莓派的GPIO15(RXD)→ USB转TTL模块的TXD
- 树莓派的GND → USB转TTL模块的GND
- USB转TTL模块插入树莓派USB口
- USB转TTL模块的另一端(杜邦线)→ Pixhawk TELEM2端口的TX、RX、GND
1.5 知识体系总览
下面这张图是我自己画的,把本章的核心知识点串了起来。你保存好,后面每学一章都可以回来对照看看自己处在哪个位置。
1.6 动手前的最后检查
接线完成后,别急着上电。我建议你做三步检查:
- 目视检查:所有杜邦线是否插紧?有没有松动?
- 万用表测量:GND之间是否导通?TX/RX有没有短路?
- 上电测试:先给树莓派上电,确认系统启动正常。再给Pixhawk上电,看看LED灯是否正常闪烁。
好了,硬件准备就到这里。下一章咱们开始写代码,让树莓派和Pixhawk真正“聊起来”。记住,硬件连接是基础中的基础,这一步做扎实了,后面才能走得顺。
公众号:蓝海资料掘金营,微信deep3321