Dronebridge-基于ESP32的廉价数字遥测

2022-09-06 14:47:02 浏览数 (1)

大家好哇,我回内蒙古了了!感觉有点干,有点怀念深圳的湿空气,对了,空调也喜欢。

因为我系列的文章还在做一些前期的规划,所以现在主要以一些领域的研究成果以及开源的代码的解读为主。

今天写的是基于DroneBridge。是一个基于 wifi 的短距离遥测链路。支持 MAVLink、MSP 和 LTM (iNAV)。

Espressif Systems 流行的 ESP32 模块使用了DroneBridge 的固件。可能是与你的无人机、UAV、UAS、地面车辆或你可能称呼它们的任何东西进行通信的最便宜的方式。

它还允许具有可变数据包大小(需要连续数据流)的完全透明的串行到 wifi 直通链路。

ESP32 的 DroneBridge 是一种仅遥测/低数据速率的解决方案。不支持连接到 ESP32 的摄像头,因为它不支持视频编码。而且这个硬件也不支持。

使用的图示是这样的

上层的飞控系统在飞行中会产生不同的数据,更多的时候会加一些负载, 一些数据我们实时的去使用,比如当前的位置,电量,飞机的机位这些。其实我们大部分也就是对这些内容感兴趣。

这个东西使用的时候就是飞控系统将这些信息通过串口发给ESP32,32将这些信息通过WIFI发送出来,其实就是一个数字电台。

下面是里面写好的网络端口

拥有的特性有:

双向链接:MAVLink、MSP & LTM

可达 150m 范围

重量:<10 克

支持:DroneBridge for Android (app)、mwptools、QGroundControl、impload 等。

易于设置:电源连接 UART 连接飞控

通过易于使用的 Web 界面完全可配置

解析 LTM 和 MSPv2 以获得更可靠的连接和更少的数据包丢失

用于连续流(如 MAVLink 或其他协议)的完全透明遥测下行链路选项

可靠、低延迟、重量轻

上传任务等

自动 UDP 单播消息到端口 14550 到所有连接的设备/站。允许其他客户端注册 UDP。客户端必须向 ESP32 的 UDP 端口发送长度 > 0 的数据包。

无线链路的全景

将 ESP32 的 UART 连接到飞控的 3.3V UART。

将飞行控制器端口设置为所需的协议。

(使用稳定的 3.3-5V 电源为 ESP32 模块供电)默认值:UART2(GPIO 16、17 上的 RX2、TX2)

就像这样

还有一个好看的WEB页面

Wifi SSID: 最多 31 个字符

Wifi password: 最多 63 个字符

UART baud rate:与飞行控制器上配置的相同

GPIO TX PIN Number& GPIO RX PIN Number:要用于 TX 和 RX (UART) 的引脚。

UART serial protocol: 基于 MultiWii 或 MAVLink - 配置解析器

Transparent packet size:仅与设置为透明的“串行协议”一起使用。UDP数据包长度

LTM frames per packet:缓存指定数量的数据包,并在一个数据包中一次发送

Gateway IP address:希望 ESP32 接入点拥有的 IPv4 地址

搭配APP使用,可以有远程遥测的能力奥

Web 界面与 ESP32 上的 REST:API 进行通信。还可以使用该 API 设置无法通过 Web 界面选择的配置(例如波特率)。允许轻松集成 DroneBridge for ESP32。

请求设置

代码语言:javascript复制
http://dronebridge.local/api/settings/request

请求统计

代码语言:javascript复制
http://dronebridge.local/api/system/stats

触发重启

代码语言:javascript复制
http://dronebridge.local/api/system/reboot

触发设置更改:发送有效的 JSON

代码语言:javascript复制
{
  "wifi_ssid": "DroneBridge ESP32",
  "wifi_pass": "dronebridge",
  "ap_channel": 6,
  "tx_pin": 17,
  "rx_pin": 16,
  "telem_proto": 4,
  "baud": 115200,
  "msp_ltm_port": 0,
  "ltm_pp": 2,
  "trans_pack_size": 64,
  "ap_ip": "192.168.2.1"
}

这个main的头文件里面,只有一个nvc系统的加载函数

完整的函数定义是这样的的

所有的函数在这里

在下篇文章里面会使用APM飞控来测试系统,也会进行一个简单的源码概览。

今天刷视频,看见开海赶鱼了,不过是万支渔船,上面都是20多岁光头的壮小伙去的,笑死了,贴近以后就上去吃点喝点。

闲时渔,战时兵,天上实弹,地上“登陆”

大家都知道我的名字缩写是YUNSWJ,恰里面有船是YUN,我就觉得很棒。

代码语言:javascript复制
https://raw.githubusercontent.com/seeul8er/DroneBridge/master/wiki/db_ESP32_setup.png

0 人点赞