文章目錄
前言
1 用于ESP32的DroneBridge
2 推薦的硬件
3 下載和燒錄固件
4 為ESP32配置DroneBridge
前言
ESP32 是現成的 Wi-Fi 模塊,具有完整的 TCP/IP 協議棧和微控制器功能。它們提供專用的 UART、SPI 和 I2C 接口。它們可與任何 ArduPilot 自動駕駛控制器配合使用。
1 用于ESP32的DroneBridge
適用于 ESP32 的 DroneBridge 提供透明、雙向的串行至 WiFi 橋接器。
使用 WiFi 協議無法提供與其他 DroneBridge 實現相同的范圍。典型的 WiFi 范圍約為 50m?至 200m,具體取決于天線。高增益定向天線可提供更大的范圍。
2 推薦的硬件
幾乎所有 ESP32 開發板都能運行 ESP32 的 DroneBridge。建議使用帶有外部天線連接器的電路板和模塊,因為這些電路板和模塊可以提供更遠的距離。
!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 外置天線端口的 NodeMCU 型 DevKit 板通常也提供默認激活的板載天線。你可能需要重新焊接一個電阻器來激活外部天線端口。
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 ESP32"?WiFi 網絡并為你的應用配置固件。
4 為ESP32配置DroneBridge
你可以通過 Web 界面更改默認配置。通過 WiFi 連接到 ESP32,然后在瀏覽器地址欄中輸入 dronebridge.local、http://dronebridge.local 或 192.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.local、http://dronebridge.local 或 192.168.2.1。
!Note
某些設置需要重新啟動 ESP32 才能生效。
布線
接線非常簡單,對于連接到自動駕駛儀任何串行端口(如 TELEM1 或 TELEM2)的所有設備而言,接線方式基本相同。本指南在此不作詳細介紹,但提供了以下接線大綱。
1. 將 ESP32 的 UART 連接到自動駕駛儀的 UART(例如 TELEM 1 或 TELEM 2 端口)。確保電壓水平匹配!大多數 ESP32 DevKits 只能使用 3.3V!
- TX to RX;
- RX to TX;
- GND to GND;
- 為 ESP32 提供穩定的 3.3V 或 5V 電源(取決于 DevKit 的可用輸入和自動駕駛儀的功能)。
2. 將自動駕駛儀端口設置為 MAVLINK 1 或 2 協議。
有些 ESP32 DevKits 制造商在其產品上標注了錯誤的引腳。如果遇到問題,請確保電路板上的引腳標簽正確無誤。
確保在布線時始終遵循 ESP32 板制造商的說明。尤其是電源。
ArduPilot配置
配置與 ESP32 連接的自動駕駛儀的 UART。DroneBridge 的默認配置為:
- 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 端口。QGroundControl 或 Mission Planner 將自動檢測連接,無需采取進一步行動。
故障排除
在刷新新版本/固件之前,請務必擦除 ESP32 的閃存。
檢查 ESP 板上的引腳是否標注正確。
在瀏覽器地址欄中輸入 IP 地址 http://192.168.2.1。不支持 https!使用手機時,可能需要斷開蜂窩網絡連接才能訪問網絡界面。
如果你的網絡與 ESP32 DB 的 IP 范圍相同,則需要將 Webinterface 中的網關 IP 地址更改為 192.168.5.1。
API
ESP32 的 DroneBridge 提供 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