跳转至

远程通信

概述

当机器人的工作范围超出WiFi/蓝牙覆盖距离时,需要远程通信方案。4G/5G蜂窝网络提供高带宽广域覆盖,LoRa提供超远距离低功耗传输,RC遥控器提供低延迟实时操控。

4G/5G蜂窝通信

4G LTE模块

模块 制造商 速率(下行) 频段 接口 特点
SIM7600CE SIMCom 150Mbps 全网通 UART/USB 国内常用
SIM7600G-H SIMCom 150Mbps 全球频段 UART/USB 全球漫游
EC20 Quectel 150Mbps 全网通 USB/UART 稳定可靠
EC25 Quectel 150Mbps 全网通 USB 模组小型化

连接方式

    SIM卡
      │
 ┌────┴────┐
 │ 4G模块   │
 │(SIM7600) │
 └─┬──┬────┘
   │  │
 UART USB ──→ MCU / Linux SBC
   │
   └── AT指令控制

AT指令基本操作

# 检查模块状态
AT           OK
AT+CPIN?     +CPIN: READY  (SIM卡就绪)
AT+CSQ       +CSQ: 25,0    (信号强度, 25/31)
AT+CREG?     +CREG: 0,1    (已注册本地网络)
AT+CGATT?    +CGATT: 1     (已附着GPRS)

# 建立PPP连接或使用模块内置TCP/IP栈
AT+CIPOPEN=0,"TCP","server.example.com",8080
AT+CIPSEND=0,12
Hello Robot!

# 通过USB提供网络接口(更推荐)
# 模块作为USB网卡,Linux自动识别为eth1/wwan0

在Linux SBC上使用

# Raspberry Pi / Jetson 通过USB使用4G模块
# 模块通常识别为 /dev/ttyUSB0-3 和网卡接口

# 使用NetworkManager管理
sudo nmcli connection add type gsm ifname '*' con-name '4G' apn 'cmiot'
sudo nmcli connection up '4G'

# 检查连接
ip addr show wwan0
ping -I wwan0 8.8.8.8

5G模块

特性 4G LTE 5G NR
下行峰值 150 Mbps 1-10 Gbps
上行峰值 50 Mbps 500 Mbps
延迟 20-50ms 1-10ms
功耗 较高
模块成本
覆盖 广 发展中

5G的低延迟特性(uRLLC模式可达1ms)为云端机器人控制提供了可能。

应用场景

  • 远程监控:通过4G回传机器人视频和状态
  • 云端控制:利用云端算力进行路径规划和决策
  • OTA升级:远程固件更新
  • 数据采集:外场测试数据实时上传
  • 多机协调:通过云端服务器协调多台机器人

LoRa

原理

LoRa(Long Range)使用CSS(啁啾扩频)调制技术,在极低功耗下实现超远距离通信:

\[ \text{啁啾信号}: f(t) = f_0 + \frac{BW}{T_s} \cdot t \]

频率随时间线性变化(上啁啾/下啁啾),扩频增益换取传输距离。

关键参数

参数 说明 典型值
频段 ISM免许可频段 433MHz / 868MHz / 915MHz / 470MHz(中国)
扩频因子 SF 越大距离越远、速率越低 7-12
带宽 BW 信号占用频率范围 125/250/500 kHz
编码率 CR 前向纠错冗余 4/5, 4/6, 4/7, 4/8
发射功率 输出功率 最大20dBm (100mW)

传输速率与距离

SF BW=125kHz速率 灵敏度 大致距离
7 5.47 kbps -123 dBm 2-5 km
9 1.76 kbps -129 dBm 5-8 km
12 0.29 kbps -137 dBm 10-15 km
\[ \text{链路预算} = P_{tx} + G_{ant} - L_{path} > S_{rx} \]

SX1262/SX1268

Semtech SX1262是最新一代LoRa收发芯片:

参数
频率范围 150-960 MHz
发射功率 +22 dBm(SX1262)/ +15 dBm(SX1261)
灵敏度 -148 dBm (SF12, 125kHz)
电流 发射: 118mA,接收: 4.6mA,睡眠: 0.6μA
接口 SPI
封装 4×4mm QFN

LoRa模块

模块 芯片 频段 接口 价格
EBYTE E22-400T30D SX1268 410-493MHz UART ~30元
EBYTE E22-900T30D SX1262 850-930MHz UART ~30元
RAK4630 SX1262+nRF52840 多频段 BLE+LoRa ~60元
Heltec LoRa32 V3 SX1262+ESP32-S3 多频段 WiFi+BLE+LoRa ~50元

Arduino LoRa示例

// 使用RadioLib库操作SX1262
#include <RadioLib.h>

// SX1262 引脚定义
SX1262 radio = new Module(8, 14, 12, 13);  // CS, DIO1, RST, BUSY

void setup() {
    Serial.begin(115200);

    // 初始化LoRa
    int state = radio.begin(
        470.0,    // 频率 MHz
        125.0,    // 带宽 kHz
        9,        // 扩频因子
        7,        // 编码率 4/7
        0x12,     // 同步字
        22,       // 发射功率 dBm
        8,        // 前导码长度
        0,        // TCXO电压
        false     // 使用LDO
    );

    if (state == RADIOLIB_ERR_NONE) {
        Serial.println("LoRa 初始化成功!");
    }
}

// 发送端
void sendRobotStatus() {
    // 打包机器人状态(经纬度+电池+状态码)
    struct {
        float lat;
        float lon;
        uint8_t battery;
        uint8_t status;
    } data = {39.9042, 116.4074, 85, 0x01};

    int state = radio.transmit((uint8_t*)&data, sizeof(data));
    if (state == RADIOLIB_ERR_NONE) {
        Serial.printf("发送成功, RSSI=%.1f dBm\n", radio.getRSSI());
    }
}

// 接收端
void receiveData() {
    uint8_t buf[64];
    int state = radio.receive(buf, sizeof(buf));
    if (state == RADIOLIB_ERR_NONE) {
        Serial.printf("收到%d字节, RSSI=%.1f, SNR=%.1f\n",
            radio.getPacketLength(), radio.getRSSI(), radio.getSNR());
    }
}

LoRa应用场景

场景 数据内容 频率 说明
农业巡检无人车 GPS+状态 每10秒 远距离、低频
环境监测站 温湿度+气压 每分钟 太阳能供电
搜救机器人 位置+求助信号 事件触发 应急场景
无人机编队 简单指令 1-10Hz 超视距控制

RC遥控器

2.4GHz RC系统

传统航模遥控器广泛用于机器人遥操作:

品牌 型号 通道数 协议 延迟 距离
FlySky FS-i6X 10 AFHDS 2A ~10ms 1.5km
FrSky X9D+ 16 ACCESS ~8ms 2km
RadioLink AT9S 12 FHSS ~10ms 1.5km
TBS Crossfire 12 LoRa混合 ~5ms 40km+

接收器输出

输出类型 说明 应用
PWM 每通道一根线,1-2ms脉冲 直接驱动舵机
PPM 所有通道复用一根线 MCU解析
SBUS 串口协议(反转UART) 飞控/MCU
CRSF 高速双向串口 TBS Crossfire

SBUS协议

SBUS(Serial Bus)是Futaba开发的协议,已成为RC接收器的标准输出:

参数
波特率 100000 (非标准)
数据位 8位,偶校验,2停止位
电平 反相(需要反相器或软件反相)
帧长度 25字节
通道数 16(11位/通道)+ 2数字通道
帧率 14ms 或 7ms(高速模式)
// ESP32 SBUS 解析
#define SBUS_BAUDRATE 100000
#define SBUS_FRAME_SIZE 25

uint16_t channels[16];

void parseSBUS(uint8_t* buf) {
    if (buf[0] != 0x0F) return;  // 帧头

    channels[0]  = ((buf[1]      | buf[2]<<8)                   & 0x07FF);
    channels[1]  = ((buf[2]>>3   | buf[3]<<5)                   & 0x07FF);
    channels[2]  = ((buf[3]>>6   | buf[4]<<2  | buf[5]<<10)     & 0x07FF);
    channels[3]  = ((buf[5]>>1   | buf[6]<<7)                   & 0x07FF);
    // ... 继续解析其余通道

    // 通道值范围: 172-1811, 中值992
    // 映射到 -100%~+100%
}

void setup() {
    // SBUS是反相UART,ESP32可用uart_set_line_inverse
    Serial2.begin(SBUS_BAUDRATE, SERIAL_8E2, 16, -1, true);  // 反相
}

遥测链路(Telemetry)

概述

遥测链路用于机器人与地面站之间的双向数据传输,常见于无人机和无人车。

常见方案

方案 频段 距离 带宽 应用
数传电台 433/915MHz 5-20km 100kbps MAVLink遥测
WiFi中继 2.4/5GHz 1-5km 图传+遥测
4G 蜂窝 无限 远程监控
图传 5.8GHz 1-10km 20-50Mbps FPV视频

MAVLink(Micro Air Vehicle Link)是无人机/机器人领域的标准遥测协议:

  • 轻量级消息协议
  • 支持256种消息类型
  • CRC校验
  • 兼容多种传输层(UART、UDP、TCP)
  • 被PX4、ArduPilot等飞控系统广泛使用

V2X(Vehicle-to-Everything)

概述

V2X通信用于户外移动机器人(自动驾驶、配送机器人)与周围环境的交互:

类型 说明
V2V 车辆对车辆,避碰协调
V2I 车辆对基础设施,交通信号灯
V2P 车辆对行人,安全预警
V2N 车辆对网络,云端服务

技术标准

标准 技术 延迟 距离
DSRC (IEEE 802.11p) WiFi变体 <10ms 300m
C-V2X (3GPP) 蜂窝技术 <20ms 500m
NR-V2X (5G) 5G直连 <3ms 500m

配送机器人应用

户外配送机器人需要的远程通信能力:

  • 4G/5G上报位置和状态
  • 接收调度指令和路径更新
  • 遇到异常时远程接管(遥操作)
  • OTA固件升级

通信方案综合对比

方案 距离 带宽 延迟 功耗 成本 月费
4G LTE 覆盖区 150M 30ms
5G NR 覆盖区 1G+ 5ms
LoRa 2-15km 50k 100ms+ 极低
RC遥控器 1-2km 100k 10ms
数传电台 5-20km 100k 20ms

小结

  • 4G/5G提供广域高带宽连接,适合远程监控和云端协作
  • 5G的低延迟模式为云端实时控制打开了可能
  • LoRa以极低功耗实现超远距离通信,适合低速率场景
  • RC遥控器提供可靠的低延迟实时操控
  • SBUS是RC接收器到MCU的标准数据协议
  • MAVLink是无人机/机器人遥测的事实标准
  • 实际系统通常组合多种通信方式以覆盖不同需求

评论 #