(1)(1.4) ESP32 wifi telemetry

news/2024/7/10 20:32:40 标签: 开源, 无人机, 遥测无线电, Copter, ArduPilot

文章目录

前言

1 用于ESP32的DroneBridge

2 推荐的硬件

3 下载和烧录固件

4 为ESP32配置DroneBridge


前言

ESP32 是现成的 Wi-Fi 模块,具有完整的 TCP/IP 协议栈和微控制器功能。它们提供专用的 UARTSPII2C 接口。它们可与任何 ArduPilot 自动驾驶控制器配合使用。


1 用于ESP32的DroneBridge

适用于 ESP32DroneBridge 提供透明、双向的串行至 WiFi 桥接器。

使用 WiFi 协议无法提供与其他 DroneBridge 实现相同的范围。典型的 WiFi 范围约为 50m 200m,具体取决于天线。高增益定向天线可提供更大的范围。

2 推荐的硬件

几乎所有 ESP32 开发板都能运行 ESP32DroneBridge。建议使用带有外部天线连接器的电路板和模块,因为这些电路板和模块可以提供更远的距离。

Warning

大多数模块仅支持 3.3V 输入,而某些自动驾驶仪串行端口仅提供 5V。你需要检查兼容性,必要时降低电压。一般不建议使用自动驾驶仪3.3V 电源,除非你确定它能为你使用的 ESP32 板提供足够的电流。

接受 3.3V 电源的模块和 DevKits 的一些示例:

  • AZDelivery DevKit C
  • TinyPICO - ESP32 Development Board - V2
  • Adafruit HUZZAH32 – ESP32 Feather Board
  • Adafruit AirLift – ESP32 WiFi Co-Processor Breakout Board (需要 FTDI 适配器来烧录固件)
  • Adafruit HUZZAH32 (需要 FTDI 适配器来烧录固件)
  • ESP32-WROOM-32UE (仅模块 - 需要定制 PCB)
  • ESP32-WROOM-32E (仅模块 - 需要定制 PCB)

Note

带有 IPEX 外置天线端口的 NodeMCUDevKit 板通常也提供默认激活的板载天线。你可能需要重新焊接一个电阻器来激活外部天线端口。

3 下载和烧录固件

GitHub 存储库下载固件(Download the firmware from the GitHub repository),并按照其中的烧录说明进行操作(follow the flashing instructions there)。它们始终是最新的。

Note

请按照 GitHub 存储库中的闪存说明进行操作(Follow the flashing instructions inside the GitHub Repository)。不同版本的 ESP32 DroneBridge 可能会有不同的确切参数。

为方便起见,在此给出一些简短说明:

  • 下载预编译固件二进制文件(Download the pre-compiled firmware binaries);
  • 通过 USB/Serial 桥接器将 DEVKit 与电脑连接(大多数 DEVKit 已提供 USB 端口,用于闪存和调试);
  • 擦除闪存并将 DroneBridge for ESP32 固件烧录到 ESP32 上;
  • 使用 Espressif Flash 下载工具(Espressif Flash Download Tool)(仅限 Windows);
  • 使用 esp-idf/esptool(所有平台)。
  • ESP32 进行电源循环;
  • 连接到"DroneBridge for ESP32WiFi 网络并为你的应用配置固件。

4 为ESP32配置DroneBridge

你可以通过 Web 界面更改默认配置。通过 WiFi 连接到 ESP32,然后在浏览器地址栏中输入 dronebridge.localhttp://dronebridge.local192.168.2.1

默认配置

  • SSID: DroneBridge for ESP32
  • Password: dronebridge
  • Transparent/MAVLink
  • UART baud rate 115200
  • UART TX pin 17
  • UART RX pin 16
  • Gateway IP: 192.168.2.1

自定义设置和网络界面

你可以通过网络界面更改默认配置。

通过 WiFi 连接到 ESP32,并在浏览器地址栏中输入 dronebridge.localhttp://dronebridge.local192.168.2.1

Note

某些设置需要重新启动 ESP32 才能生效。

布线

接线非常简单,对于连接到自动驾驶仪任何串行端口(如 TELEM1TELEM2)的所有设备而言,接线方式基本相同。本指南在此不作详细介绍,但提供了以下接线大纲。

1.ESP32UART 连接到自动驾驶仪UART(例如 TELEM 1TELEM 2 端口)。确保电压水平匹配!大多数 ESP32 DevKits 只能使用 3.3V

  • TX to RX;
  • RX to TX;
  • GND to GND;
  • ESP32 提供稳定的 3.3V5V 电源(取决于 DevKit 的可用输入和自动驾驶仪的功能)。

2.自动驾驶仪端口设置为 MAVLINK 12 协议。

有些 ESP32 DevKits 制造商在其产品上标注了错误的引脚。如果遇到问题,请确保电路板上的引脚标签正确无误。

确保在布线时始终遵循 ESP32 板制造商的说明。尤其是电源。

ArduPilot配置

配置与 ESP32 连接的自动驾驶仪UARTDroneBridge 的默认配置为:

  • Protocol: MAVLink (v1 or v2);
  • Baudrate: 115200 baud。

如果连接到串行接口 2,则应在自动驾驶仪上设置这些参数(如果使用其他串行接口,请将参数名称中的"2"替换为串行接口的编号):

  • SERIAL2_PROTOCOL = 2 (MAVLink2) or 1 (MAVLink1);
  • SERIAL2_BAUD = 115 (115200 baud)。

如果出现连接问题,可将 BRD_SER2_RTSCTS = 0 设置为禁用流量控制,但通常没有必要这样做。

连接到地面站

提供以下连接选项:

  • 通过 14550 端口向所有连接设备发送 UDP 单播;
  • 5760 端口的 TCP

DroneBridge for ESP32 将自动通过 UDP 将所有数据转发至所有连接的 WiFi 设备的 14550 端口。QGroundControlMission Planner 将自动检测连接,无需采取进一步行动。

故障排除

在刷新新版本/固件之前,请务必擦除 ESP32 的闪存。

检查 ESP 板上的引脚是否标注正确。

在浏览器地址栏中输入 IP 地址 http://192.168.2.1。不支持 https!使用手机时,可能需要断开蜂窝网络连接才能访问网络界面。

如果你的网络与 ESP32 DBIP 范围相同,则需要将 Webinterface 中的网关 IP 地址更改为 192.168.5.1

API

ESP32DroneBridge 提供 REST:API,允许你读写配置选项。你不必局限于 Web 界面提供的选项(如波特率)。你可以使用 API 设置自定义波特率或将系统集成到自己的设置中。

申请设置

http://dronebridge.local/api/settings/request

申请统计资料

http://dronebridge.local/api/system/stats

触发重启

http://dronebridge.local/api/system/reboot

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

{

  "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"

}

to

http://dronebridge.local/api/settings/change


http://www.niftyadmin.cn/n/5246738.html

相关文章

【Docker】从零开始:18.使用Dockerfile构造自己的KingbaseES数据库镜像

【Docker】从零开始:17.使用Dockerfile构造自己的数据库镜像 新建一个自定义目录并创建Dockerfile文件上传需要的文件到自定义目录下注意docker-circle-init.sh文件内容password 内容 开始打包注意打包完成后执行 尝试用工具连接数据库 kingbase.tar.gz 包过大我就上…

UEFI下Windows10和Ubuntu22.04双系统安装图解

目录 简介制作U盘启动盘并从U盘启动电脑安装系统安装Windows系统安装Ubuntu 附录双系统时间不一致 简介 传统 Legacy BIOS主板下的操作系统安装可参考本人博客 U盘系统盘制作与系统安装(详细图解) ,本文介绍UEFI主板下的双系统安装&#xff…

学习k8s的安装(二)

一、服务器基础配置 1、修改服务器名称 # 修改主机名 hostnamectl set-hostname master170# 重启服务器 reboot2、添加ip映射域名 # 输入配置信息 cat >> /etc/hosts <<EOF 121.5.167.170 master170 EOF# 重启网络服务 systemctl restart NetworkManager.servic…

【Flink系列四】Window及Watermark

3.1、window 在 Flink 中 Window 可以将无限流切分成有限流&#xff0c;是处理有限流的核心组件&#xff0c;现在 Flink 中 Window 可以是时间驱动的&#xff08;Time Window&#xff09;&#xff0c;也可以是数据驱动的&#xff08;Count Window&#xff09;。 Flink中的窗口…

西南科技大学C++程序设计实验十(函数模板与类模板)

一、实验目的 1. 掌握函数模板与类模板; 2. 掌握数组类、链表类等线性群体数据类型定义与使用; 二、实验任务 1. 分析完善以下程序,理解模板类的使用: (1)补充类模板声明语句。 (2)创建不同类型的类对象,使用时明确其数据类型? _template<typename T>__…

Python中的并发编程(2)线程的实现

Python中线程的实现 1. 线程 在Python中&#xff0c;threading 库提供了线程的接口。我们通过threading 中提供的接口创建、启动、同步线程。 例1. 使用线程旋转指针 想象一个场景&#xff1a;程序执行了一个耗时较长的操作&#xff0c;如复制一个大文件&#xff0c;我们希…

STM32——PWM介绍

STM32F103C8T6 PWM资源&#xff1a; 高级定时器&#xff08;TIM1&#xff09;&#xff1a;7路 通用定时器&#xff08;TIM2~TIM4&#xff09;&#xff1a;各4路 PWM输出模式&#xff1a; PWM模式1&#xff1a;在向上计数时&#xff0c;一旦 CNT < CCRx 时输出为有效电平&…

游戏架构之面向对象模型和组件模型

1.概述&#xff1a; 在所有游戏性架构相关的内容中&#xff0c;运行时对象模型可能是最复杂的系统&#xff0c;并且不同的游戏引擎呈现出的差异极大。例如Unity3D提供的组件模型&#xff0c;虚幻引擎提供的面向对象继承模型&#xff0c;其他一些游戏则使用一种不同于两者的基于…