跳至内容

Holybro Pixhawk RPi CM4 底板

Holybro Pixhawk RPi CM4 底板 是一种单板解决方案,将(可交换)Pixhawk 飞行控制器与 Raspberry Pi CM4 配套计算机("RPi")预集成在一起。基板外形小巧,配有开发所需的所有连接。

配备 Pixhawk 的 RPi CM4

飞行控制器模块通过以下方式与 RPi CM4 进行内部连接 TELEM2但也可以使用提供的外部电缆通过以太网连接。

该底板与以下设备的插件兼容 Holybro Pixhawk 5X, Holybro Pixhawk 6X以及任何其他 Pixhawk 控制器,它们都遵循 Pixhawk 自动驾驶仪总线标准 不同供应商的机械兼容性指南。

信息

董事会遵循 Pixhawk 连接器标准Pixhawk 自动驾驶仪总线标准 (包括跨供应商机械兼容性指南)。

购买

  • Holybro Pixhawk RPi CM4 底板 (www.holybro.com)

    底板可与 RPi CM4 和/或飞行控制器一起购买,也可单独购买:

    • 由 Holybro 提供的 Raspberry Pi CM4 (CM4008032) 规格如下:
      • 内存: 8GB
      • eMMC:32GB
      • 无线无
    • RPi CM4 的建议最低规格为
      • 内存: 4GB(或 8GB)
      • eMMC:16GB
      • 无线:是

连接和端口

信息

圣溪文档 有更详细(可能也更及时)的端口和连接信息。

下图显示了底板上的所有连接器和端口。

示意图

RPi CM4 & FC 串行连接

飞行控制器 TELEM2 端口内部连接到 RPi CM4,如图所示:

RPi CM4FC Telem2 (FMU)
GPIO14TXD
GPIO15RXD
GPIO16CTS
GPIO17RTS

信息

连接还必须是 在 RPi 和 PX4 中均已配置 除非 以太网 来代替)。

安装飞行控制器

插头兼容的飞行控制器,如 Holybro Pixhawk 5XHolybro Pixhawk 6X 只需推入模块插槽即可。

外形尺寸不同的飞行控制器需要额外的接线。

安装 RPi CM4 配套软件

本节介绍如何将 Raspberry Pi CM4 安装/连接到底板。

图片显示单独的底板、底板盖、RPi、飞行控制器和螺钉

安装 Raspberry Pi CM4 配套电脑:

  1. 断开 风扇 接线。

    HB_Pixhawk_CM4_Fan

  2. 卸下底板背面的 4 个螺丝。

    电路板底部,显示固定盖板的四角螺钉

  3. 卸下底板箱,安装 CM4,并用 4 个螺钉将其固定(如图所示):

    HB_Pixhawk_CM4_Screws

  4. 重新装上盖子。

电源模块接线

PM03D 电源模块随电路板提供。

RPi CM4 和飞行控制器必须单独供电:

  • 飞行控制器通过 CLIK-Mate 电缆供电,以 POWER1POWER2
  • RPi CM4 的电源由 USB C (CM4 Slave)连接。您也可以使用自己的电源为 RPi CM4 底板供电。

下图显示了接线的更多细节。

显示从 PM03D 电源模块写入底板的图片

刷新 RPi CM4

本节将介绍如何在 RPi EMCC 上安装您喜欢的 Linux 发行版,例如 Raspberry Pi OS 64bit"。

备注

  • 如果使用 PX4,则需要使用 1.13.1 或更新版本的 PX4 才能识别该基板。
  • 风扇不会显示 RPi CM4 是否通电/运行。
  • 插入 Power1/2 的电源模块不能为 RPi 部分供电。您可以使用从 PM03D 电源模块到 CM4 从 USB-C 端口的附加 USB-C 电缆。
  • Micro-HDMI 端口是一个输出端口。
  • 没有 Wifi 设备的 RPi CM4 板不会自动连接。在这种情况下,您需要将其插入路由器或将兼容的 Wifi 加密狗插入 CM4 主机端口。

闪存 EM多旋翼

将 RPi 映像闪存到 EM多旋翼 上。

  1. 切换拨码开关至 RPI.

  2. 将电脑连接至 USB-C CM4 从属设备 端口,用于为 RPi 供电和闪存。

  3. 获取 usboot,构建并运行它。

    苏都 适切 安装 libusb-1.0-0-dev
    Git 复制 --深度=1 https://github.com/raspberrypi/usbboot、
    CD usboot
    生产
    苏都 ./rpiboot
  4. 现在,您可以使用 rpi-imager.确保添加 WiFi 和 SSH 设置(隐藏在齿轮/高级符号后面)。

    苏都 适切 安装 rpi-imager
    rpi-imager
  5. 完成后,拔下 USB-C CM4 从属设备(这将卸载卷,并关闭 CM4 的电源)。

  6. 切换拨码开关回到 EMMC.

  7. 通过为 USB-C CM4 从端口供电,开启 CM4。

  8. 要检查它是否启动/工作,您可以选择以下两种方法:

    • 检查是否有 HDMI 输出
    • 通过 SSH 连接(如果已在 rpi-imager 中设置,且有 WiFi)。

信息

如果您使用 以太网 连接 FC 和 RPi,不需要这种设置。

Pixhawk FC 模块是 内部连接至 RPi CM4 使用 TELEM2 (/dev/ttyS4).FC 和 RPi CM4 都必须配置为通过该端口进行通信。

FC 串行端口设置

FC 应设置为连接到 TELEM2 默认情况下,该端口是正确的。如果不是,可以使用如图所示的参数配置端口。

要在 FC 上启用此 MAVLink 实例:

  1. 通过底板上标有 USB Type C 的端口连接运行 QGroundControl 的计算机 FC

    显示 FC USB-C 连接器的底板图像

  2. 设置参数:

    • MAV_1_CONFIG = 102
    • MAV_1_MODE = 2
    • SER_TEL2_BAUD = 921600
  3. 重新启动 FC。

RPi 串行端口设置

RPi 方面

  1. 连接 RPi(使用 WiFi、路由器或 Wifi 密码锁)。

  2. 运行以下命令启用 RPi 串行端口 RPi-config

    • 转到 3 个接口选项那么 I6 串行端口.然后选择
      • 可通过串行访问登录 shell → 否
      • 串行端口硬件已启用
  3. 完成并重新启动。(这将增加 enable_uart=1/boot/config.txt并删除 console=serial0,115200/boot/cmdline.txt

  4. 现在,MAVLink 流量应该可以在 /dev/serial0 波特率为 921600。

试用 MAVSDK-Python

  1. 确保 CM4 已连接到互联网,例如使用 Wifi 或以太网。

  2. 安装 MAVSDK Python:

    python3 -m 核心 安装 mavsdk
  3. MAVSDK-Python 示例.

  4. 更改 system_address="udp://:14540";system_address="serial://dev/serial0:921600";

  5. 试试这个例子。串行端口的权限应该已经可以通过 拨出 组。

以太网连接(可选)

飞行控制器模块 内部连接至 RPi CM4TELEM2 (连载)。

您还可以使用随附的电缆在它们之间建立本地以太网连接。与 USB 或其他串行连接相比,以太网连接提供了快速、可靠和灵活的通信选择。

信息

更多一般信息,请参见 PX4 以太网设置.

连接电缆

要在 CM4 和飞行计算机之间建立本地以太网连接,需要使用提供的 8 针转 4 针连接器连接两个以太网端口。

HB_Pixhawk_CM4_Ethernet_Cable

电缆的引脚分配为

CM4 Eth 8 引脚FC ETH 4 引脚
AB
BA
CD
DC
-不适用
-不适用
-不适用
-不适用

CM4 上的 IP 设置

由于该配置中没有 DHCP 服务器,因此必须手动设置 IP 地址:

首先,通过 SSH 连接 CM4 的 WiFi(或使用 Wifi 加密狗)。插入以太网电缆后,将 eth0 网络接口似乎从 DOWN 切换到了 UP。

您可以使用

ip 地址 展览 eth0

您也可以尝试手动启用它:

苏都 ip 链接 设置 设计 eth0 向上

然后,它似乎会自动设置一个链接本地地址,在本例中是这样的:

ip 地址 展览 eth0

2: eth0: <;广播、组播、上行、下行P>; mtu 1500 qdisc mq UP 默认 qlen 1000
    链接/以太 xx:xx:xx:xx:xx:xx:xx 溴化锂 ff:ff:ff:ff:ff:ff:ff
    局域网 169.254.21.183/16 溴化锂 169.254.255.255 范围 全球 无前缀路由 eth0
       valid_lft 永远 首选_lft 永远
    inet6 fe80::yyyy:yyyy:yyyy:yyyy/64 范围 链接
       valid_lft 永远 首选_lft 永远

这意味着 CM4' 的以太网 IP 地址为 169.254.21.183。

FC 上的 IP 设置

现在连接到 NuttX 外壳(使用控制台或 MAVLink 外壳),并检查链接状态:

ifconfig

eth0    链接 封装:以太网 HWaddr xx:xx:xx:xx:xx:xx:xx 下降
        局域网 addr:0.0.0.0 DRaddr:192.168.0.254 掩码:255.255.255.0

在本例中,一开始是 DOWN。

要将其设置为 UP:

如果 eth0

如果 eth0...OK

现在再次检查配置:

ifconfig

eth0    链接 封装:以太网 HWaddr xx:xx:xx:xx:xx:xx:xx UP
        局域网 addr:0.0.0.0 DRaddr:192.168.0.254 掩码:255.255.255.0

不过,它还没有 IP。请设置一个与 RPi CM4 类似的 IP:

ifconfig eth0 169.254.21.184

那就检查一下:

ifconfig

eth0    链接 封装:以太网 HWaddr xx:xx:xx:xx:xx:xx:xx UP
        局域网 地址:169.254.21.184 DRaddr:169.254.21.1 掩码:255.255.255.0

现在设备之间应该可以互相 ping 了。

请注意,该配置是短暂的,重启后就会丢失,因此我们需要找到静态配置它的方法。

Ping 测试

首先是 CM4:

 169.254.21.184

 169.254.21.184 (169.254.21.184) 56(84) 字节的数据。
64 字节数 169.254.21.184: icmp_seq=1 ttl=64 时间=0.188 毫秒
64 字节数 169.254.21.184: icmp_seq=2 ttl=64 时间=0.131 毫秒
64 字节数 169.254.21.184: icmp_seq=3 ttl=64 时间=0.190 毫秒
64 字节数 169.254.21.184: icmp_seq=4 ttl=64 时间=0.112 毫秒
^C
--- 169.254.21.184 统计 ---
4 数据包 转发、 4 收到、 0% 数据包 损失、 时间 3077ms
rtt 最低/最高/最大/设备 = 0.112/0.155/0.190/0.034 毫秒

然后从 NuttShell 中的飞行控制器:

 169.254.21.183

 169.254.21.183 56 字节数 数据
56 字节数 169.254.21.183: icmp_seq=0 时间=0 毫秒
56 字节数 169.254.21.183: icmp_seq=1 时间=0 毫秒
56 字节数 169.254.21.183: icmp_seq=2 时间=0 毫秒
56 字节数 169.254.21.183: icmp_seq=3 时间=0 毫秒
56 字节数 169.254.21.183: icmp_seq=4 时间=0 毫秒
56 字节数 169.254.21.183: icmp_seq=5 时间=0 毫秒
56 字节数 169.254.21.183: icmp_seq=6 时间=0 毫秒
56 字节数 169.254.21.183: icmp_seq=7 时间=0 毫秒
56 字节数 169.254.21.183: icmp_seq=8 时间=0 毫秒
56 字节数 169.254.21.183: icmp_seq=9 时间=0 毫秒
10 数据包 转发、 10 收到、 0% 数据包 损失、 时间 10010 毫秒

为此,我们需要将 MAVLink 实例设置为向 CM4'IP 地址发送流量:

我们可以进行初步测试:

多点连接 启动 -o 14540 -t 169.254.21.183

这将通过 UDP 向 14540 端口(MAVSDK/MAVROS 端口)发送 MAVLink 流量到该 IP,这意味着 MAVSDK 可以监听任何到达该默认端口的 UDP。

要运行 MAVSDK 示例,请通过 pip 安装 mavsdk,然后从 MAVSDK-Python/examples.

例如

python3 -m 核心 安装 mavsdk

wget https://raw.githubusercontent.com/mavlink/MAVSDK-Python/main/examples/tune.py
chmod +x tune.py
./tune.py

另请参见