跳转到正文

C30D 底板小车:接线、上电与 UDP 检查

本页介绍 WiFi 模块与 C30D 雷达串口的正式接线、上电顺序、局域网检查和地面站 UDP 数据验证。

1. WiFi 模块与 C30D 雷达串口接线

1.1 断开 WiFi 模块串口连接

完成 AT 配置后:

  1. 关闭串口助手;
  2. 拔掉电脑与 WiFi 模块之间的连接;
  3. 确认 C30D 小车电源仍处于关闭状态。

1.2 正式接线表

C30D 雷达串口C30D 功能WiFi 模块说明
PC12UART5 TXRXC30D 发、模块收
PD2UART5 RXTX模块发、C30D 收
GNDGND必须共地
5V电源VCC/5V因为模块支持 5 V 输入,所以这里应连接到 5V 而不是 3.3V(3V3排针)

正确的接线方式如下图所示。注意导线的颜色以及对应的排针位置是否正确。

C30D 小车与 WiFi 模块接线实物图

最关键的信号方向为:

text
C30D PC12 / TX  -------->  WiFi RX
C30D PD2  / RX  <--------  WiFi TX
   C30D GND     ---------  WiFi GND

1.3 上电前检查

  • C30D PC12/TX 接到 WiFi RX;
  • C30D PD2/RX 接到 WiFi TX;
  • 两端 GND 已连接;
  • 已确认 WiFi 模块允许使用所接供电电压;
  • USB-TTL 已完全拆除;
  • 接头没有偏一针或反插;
  • WiFi 模块已经配置为 921600 8N1
  • 当前 C30D 固件 UART5 确实为 921600 8N1

2. 上电和局域网检查

2.1 推荐上电顺序

  1. 启动无线路由器或热点;
  2. 让地面站电脑连接目标 WiFi;
  3. 检查地面站 IPv4 地址是否仍与模块配置一致;
  4. 在地面站启动 UDP 抓包或 wheelswarm_bridge
  5. 给 C30D 小车上电;
  6. 等待 WiFi 模块自动联网并进入透传。

如果地面站使用 DHCP,重连 WiFi 后地址可能变化。只要地面站 IP 发生变化,WiFi 模块中的 AT+SOCKETAUTOTT 目标地址也必须更新。正式部署建议在路由器中给地面站和每辆小车设置 DHCP 静态租约。

2.2 查询 WiFi 模块 IP

在路由器管理页面的 DHCP 客户端列表中查找 WiFi 模块,记录它获得的地址。例如:

text
WiFi 模块 IP:192.168.1.45
地面站 IP:192.168.1.43

这里的 192.168.1.45 是小车 UDP 包的源 IP,后续应写入 vehicles.yaml192.168.1.43 是 UDP 目标 IP,两者不能互换。

2.3 检查网段和路由

地面站执行:

bash
ip -br address
ip route get 192.168.1.45

如果模块允许响应 ICMP,也可以尝试:

bash
ping -c 4 192.168.1.45

部分 WiFi 模块不响应 ping,因此 ping 失败不能单独证明模块离线,仍应使用 UDP 抓包确认。

3. 地面站 UDP 接收检查

3.1 检查 UDP 8888 端口

启动桥接前执行:

bash
ss -lunp | grep ':8888'

没有输出表示当前没有进程监听 8888;启动桥接后应看到监听地址。UDP 8888 同一时间只保留一个 bridge_node,不要同时启动手动桥接和地面站管理的桥接。

3.2 抓取 UDP 数据

执行:

bash
sudo tcpdump -ni any -vv udp port 8888

正常输出类似:

text
192.168.1.45.54321 > 192.168.1.43.8888: UDP, length 24

地面站抓取到小车 UDP 数据

这行信息表示:

  • 192.168.1.45:WiFi 模块/小车源 IP;
  • 54321:模块使用的源端口,实际值可能不同;
  • 192.168.1.43:地面站目标 IP;
  • 8888:桥接监听端口;
  • length 24:收到一帧典型小车状态数据。

需要观察原始十六进制数据时执行:

bash
sudo tcpdump -ni any -XX -c 10 udp port 8888

3.3 没有 UDP 包时的检查顺序

  1. 地面站 IP 是否发生变化;
  2. WiFi 模块是否得到 IP;
  3. AT+SOCKETAUTOTT 中目标 IP 和端口是否正确;
  4. 模块是否已进入透传;
  5. C30D 与模块的 TX/RX 是否交叉;
  6. C30D 和模块是否都使用 921600 8N1
  7. 小车固件是否持续从 UART5 发送状态帧;
  8. 路由器是否开启了 AP 隔离或客户端隔离;
  9. 地面站防火墙是否拦截 UDP 8888。

如果 Ubuntu 启用了 UFW,可检查:

bash
sudo ufw status

需要放行时:

bash
sudo ufw allow 8888/udp

确认地面站能够收到小车发送的 UDP 数据后,继续进行 ROS2 桥接与通信验证