新闻详情

新闻详情

首页 / 资讯中心 / 详情

ESP-Drone 快速入门实战指南:硬件组装、Wi-Fi 连接控制与 cfclient 飞控调试全流程

发布时间:2026/9/18 10:52:42来源:尧图网络
ESP-Drone 快速入门实战指南:硬件组装、Wi-Fi 连接控制与 cfclient 飞控调试全流程
ESP-Drone 快速入门实战指南硬件组装、Wi-Fi 连接控制与 cfclient 飞控调试全流程【免费下载链接】esp-droneMini Drone/Quadcopter Firmware for ESP32 and ESP32-S Series SoCs.项目地址: https://gitcode.com/GitHub_Trending/es/esp-drone本指南基于 ESP-Drone基于乐鑫 ESP32/ESP32-S2/ESP32-S3 的迷你无人机开源飞控方案官方 Getting Started 文档撰写完整覆盖从认识硬件体系、搭建开发与调试环境到使用手机 APP 与 PC 端 cfclient 完成连接、飞行控制、在线调参与数据监控的完整链路。读完本文你将掌握 ESP-Drone 的模块化硬件组成、Wi-Fi 直连控制机制、飞控参数语义以及一套可以直接照着做的起飞前检查流程。ESP-Drone 是什么ESP-Drone 是乐鑫Espressif推出的基于 ESP32/ESP32-S2/ESP32-S3 芯片的飞行开发板方案。它最大的特点是以 Wi-Fi 为核心通信能力手机 APP 或游戏手柄可以通过 Wi-Fi 网络直接连接并控制无人机无需额外的遥控器射频模块。整个方案硬件结构简单、代码架构清晰、支持功能扩展非常适合 STEAM 教育、无人机入门教学和二次开发场景。需要特别说明的是ESP-Drone 的部分代码移植自开源项目 Crazyflie并继承其 GPL3.0 开源协议详见 README.md 中 Third Party Copyrighted Code 一节的说明其中注明core/crazyflie移植自 Crazyflie 2021.01 版本对应 commit b448553。核心特性自稳定模式Stabilize mode自动控制机身水平保持平稳飞行。定高模式Height-hold mode自动控制油门输出使无人机保持在固定高度飞行。定点模式Position-hold mode自动控制机身角度使无人机保持在固定空间位置。PC 上位机调试使用 cfclient 进行静态/动态调试。APP 控制通过手机 APP 经 Wi-Fi 轻松控制。游戏手柄控制通过 cfclient 使用游戏手柄控制。其中定高模式与定点模式需要依赖扩展板上的对应传感器才能实现具体传感器组合见下文组件表。模块化组件体系ESP-Drone 2.0 采用模块化设计思路由主控板与若干扩展板组成主控制板集成 ESP32-S2 模组和支持基础飞行的必要传感器并提供硬件扩展接口扩展板则搭载各类扩展传感器对接主控制板的扩展接口用于实现高级飞行功能。序号模块主要元器件功能接口安装位置1主控制板 -ESP32-S2ESP32-S2-WROVER MPU6050基础飞行I2C、SPI、GPIO 扩展接口—2扩展板 -定点模块PMW3901 VL53L1X室内定点飞行SPI I2C底部面向地面3扩展板 -气压定高模块MS5611 气压计气压定高I2C 或 MPU6050 从机顶部或底部4扩展板 -指南针模块HMC5883 罗盘无头模式等高级模式I2C 或 MPU6050 从机顶部或底部从源码结构看定点模块的驱动分别由 components/drivers/spi_devices/pmw3901/flowdeck_v1v2.cPMW3901 光流传感器通过 SPI 读取运动数据和 components/drivers/i2c_devices/vl53l1/zranger2.cVL53L1X 飞行时间测距传感器通过 I2C 获取离地高度实现气压模块与指南针模块的驱动则位于 components/core/crazyflie/hal/src/sensors_mpu6050_hm5883L_ms5611.c。其中flowdeck_v1v2.c会创建一个flowdeckTask任务循环调用pmw3901ReadMotion()读取光流运动量正是定点模式的数据来源。更多硬件细节原理图、PCB、管脚分配可参阅 硬件参考文档。支撑技术栈ESP-IDF 与 CrazyflieESP-IDF是乐鑫为 ESP32/ESP32-S2/ESP32-S3 提供的物联网开发框架它既包含构建软件项目所需的库与头文件等核心组件也提供构建、烧录、调试、测量等开发与量产阶段常用的工具。ESP-Drone 固件基于 ESP-IDF 构建当前仓库要求使用 ESP-IDF release/v5.0 分支作为开发环境见 README.md。Crazyflie是 Bitcraze 的开源四旋翼项目它为 ESP-Drone 提供了大量可直接复用的飞控软件资产支持多种传感器组合可以轻松实现定高、定点等高级飞行模式基于 FreeRTOS 编写将复杂的无人机系统分解为多个不同优先级的软件任务设计了功能完备的 cfclient 上位机和 CRTP 通信协议便于调试、测量和控制。在 components/core/crazyflie/modules/src/system.c 中可以看到这套任务化架构的落地systemLaunch()负责创建 stabilizer、commander、console、wifilink、estimator_kalman 等一系列 FreeRTOS 任务而 sdkconfig.defaults 中的CONFIG_FREERTOS_HZ1000等配置则体现了为飞控实时性所做的系统级调优系统时钟节拍 1000 Hz即 1 ms 一个 tick。准备工作1. 硬件组装请按照下图流程组装 ESP32-S2-Drone V1.2详见 硬件参考文档 中的硬件概览与管脚资源分配将四个 716 电机可选 720 电机与减震橡胶圈安装到机架安装 46mm A/B 螺旋桨可选 55mm 螺旋桨接好 300mAh 1s LiPo 电池可选 350mAh与充电板。注意如果使用 720 电机需要通过menuconfig - ESPDrone Config - motors config将电机类型设置为brushed 720 motor对应 main/Kconfig.projbuild 中的MOTOR_BRUSHED_720配置项。2. 下载安装 ESP-Drone APPESP-Drone APP 同时支持 Android 与 iOSAndroid扫描官方文档提供的二维码下载安装iOS在 App Store 中搜索 ESP-Drone 下载安装。APP 的源代码分别托管在 ESP-Drone-Android 与 ESP-Drone-iOS 两个仓库中如需二次开发可以参考。3. 安装 cfclient可选用于高级调试cfclient 是 PC 端调试上位机仅在进行高级调试时需要安装。# 1. 下载源代码 git clone https://github.com/qljz1993/crazyflie-clients-python.git # 2. 进入下载目录 cd crazyflie-clients-python # 3. 安装 cfclient 客户端 pip3 install -e . # 4. 启动客户端 cfclient安装完成后需要配置遥控器游戏手柄配置 4 个控制轴Roll翻滚、Pitch俯仰、Yaw偏航、Thrust油门配置一个按键为Assisted control用于飞行模式切换。手机 APP 使用指南建立 Wi-Fi 连接ESP-Drone 设备本身充当一个 Wi-Fi AP热点。在手机 Wi-Fi 列表中找到并连接即可SSID: ESP-DRONE_XXXX XXXX 根据 MAC 地址生成 PASSWORD: 12345678连接成功后手机与无人机之间便建立了 Wi-Fi 链路APP 通过 UDP 协议与飞控通信。这一机制在源码中有清晰的实现在 components/drivers/general/wifi/wifi_esp32.c 的wifiInit()中固件读取 ESP32 的 AP MAC 地址将 SSID 拼接为CONFIG_WIFI_BASE_SSID_ MAC 后 6 字节的十六进制形式对应文档中的ESP-DRONE_XXXX并采用WIFI_AUTH_WPA_WPA2_PSK加密认证。同时固件会在 AP 上绑定静态 IP192.168.43.42并开启 2390 端口的 UDP 收发任务udp_server_rx_task/udp_server_tx_taskAPP 正是通过该 UDP 通道收发 CRTP 控制数据。SSID、密码、信道等参数均可在编译期通过 menuconfig 修改对应 main/Kconfig.projbuild 中 wireless config 菜单下的配置项配置项默认值说明WIFI_BASE_SSIDESP-DRONEWi-Fi 基础 SSID1-16 字符最终 SSID 为BASE_SSID_ MACWIFI_PASSWORD12345678Wi-Fi 密码8-64 字符WIFI_CHANNEL6Wi-Fi/ESP-Now 信道1-13WIFI_MAX_STA_CONN3最大同时连接的 Station 数量1-6个性化设置连接后可根据应用场景在 APP 中自定义飞行设置或直接使用以下默认配置默认配置 Flight control settings 1. Mode: Mode2 2. Deadzone: 0.2 3. Roll trim: 0.0 4. Pitch trim: 0.0 5. Advanced flight control: true 6. Advanced flight control preferences 1. max roll/pitch angle: 15 2. max yaw angle: 90 3. max thrust: 90 4. min thrust: 25 5. X-Mode: true Controller settings 1. use full travel for thrust: false 2. virtual joystick size: 100 App settings 1. Screen rotation lock: true 2. full screen mode: true 3. show console: true其中各参数含义如下Mode / Deadzone摇杆模式Mode2 为美国手左摇杆控制油门/偏航右摇杆控制俯仰/翻滚与摇杆死区0.2用于过滤摇杆微小漂移Roll/Pitch trim翻滚/俯仰角度修正量0.0 表示不修正Advanced flight control是否启用高级飞行控制解锁最大角度与最大油门限制max roll/pitch angle15 度/ max yaw angle90 度高级模式下允许的最大俯仰/翻滚角度与最大偏航角速度max thrust90%/ min thrust25%油门输出上限与下限X-Mode电机呈 X 形布局而非 形与机架安装方式对应。这些角度/油门上限最终会约束飞控的姿态控制环输出。从源码结构看姿态控制由 components/core/crazyflie/modules/src/stabilizer.c 驱动其内部使用 controller_pid.c 的 PID 控制律将期望角度与传感器实测角度之差换算为电机油门指令再经 power_distribution_stock.c 分配到 M1-M4 四个电机。控制飞行打开 APP点击Connect按钮连接飞机。连接成功后无人机上的 LED绿灯闪烁轻推Thrust油门摇杆无人机起飞在 APP 上滑动摇杆控制无人机方向。PC cfclient 使用指南cfclient 是 Crazyflie 源工程的上位机完整实现了 CRTP 协议中定义的功能可显著加快调试速度。ESP-Drone 项目对该上位机进行了裁剪和调整以满足自身功能需求。cfclient 使用 JSON 文件存储配置信息。飞行设置基本飞行控制Basic Flight Control飞行模式分为基本模式Normal mode适合初学者与高级模式Advanced mode解锁最大角度与最大油门。自动模式Assisted mode定海拔模式Altitude-hold mode保持飞行海拔需要气压计支持定点模式Position-hold mode保持当前位置需要光流传感器和 TOF 传感器支持定高模式Height-hold mode保持相对地面高度触发时需高于地面 40 cm需要 TOF 支持悬停模式Hover mode保持高于地面 40 cm并悬停在起飞点需要光流和 TOF 支持。角度修正TrimRoll Trim翻滚角修正绕机身前后方向水平轴旋转的修正用于补偿传感器的水平安装偏差Pitch Trim俯仰角修正绕机身左右方向水平轴旋转的修正同样用于补偿传感器的水平安装偏差。注意在自动模式下油门摇杆会变为高度控制摇杆此时油门控制器相当于高度控制器。高级飞行控制Advanced Flight ControlMax angle最大倾角设置允许的最大俯仰和翻滚角度roll/pitchMax yaw rate最大自旋速度设置允许的偏航速度yawMax thrust最大油门设置油门上限Min thrust最小油门设置油门下限Slew limit压摆极限防止油门骤降。当油门低于该值时下降速度将被限定Slew rate压摆率油门低于压摆极限之后允许的最大下降速率。配置输入设备Configure Input Device按照 cfclient 的提示将遥控器游戏手柄的各个摇杆绑定到对应的控制通道Roll / Pitch / Yaw / Thrust 及辅助按键即可。飞行数据Flight Data在 cfclient 的 Flight Control 标签页可以查看无人机实时状态右下角显示详细数据Target目标角度Actual测量角度Thrust当前油门值M1/M2/M3/M4四个电机的实际输出。在线调参Tune Online Parameters在 cfclient 中可以在线调整 PID 参数实现实时的飞控参数调试。注意事项修改的参数实时生效避免了频繁烧录固件的麻烦可以在代码中通过宏定义配置哪些参数允许被上位机实时修改在线修改仅用于调试参数在掉电后不会保存。这套机制在固件侧由参数注册系统支撑飞控中的可调参数通过 components/core/crazyflie/modules/src/param.c 注册并通过 CRTP 协议components/core/crazyflie/modules/src/crtp.c与上位机交互同理遥测数据通过 components/core/crazyflie/modules/src/log.c 的日志系统按配置周期上报供上位机实时绘制波形。飞行数据监控Monitor Flight Data在Tab Log configuration和Tab Log Blocks标签页配置需要监控的参数如姿态角、角速度等在Tab Plotter标签页配置实时波形绘制可监控陀螺仪、加速度计等传感器数据例如加速度计三个轴的实时曲线。螺旋桨方向按照下图所示位置安装A、B 两种螺旋桨A/B 桨叶旋转方向相反用于抵消反扭矩在飞行器上电自检时检查四个螺旋桨转向是否正确。螺旋桨的转向与电机布局X-Mode / -Mode相关main/Kconfig.projbuild 中的电机引脚配置MOTOR01_PIN~MOTOR04_PIN与 components/drivers/general/motors/motors_def_cf2.c 中的电机定义共同决定了每个电机对应的 PWM 输出引脚与转向分配。起飞前检查清单Preflight Check每次飞行前请逐项完成以下检查将无人机头部朝前放置尾部天线部分朝向自己将无人机置于水平面上待机身稳定时再上电在 cfclient 上观察机身是否置平通信建立后观察机尾 LED 是否绿灯快速闪烁观察机头 LED 是否红灯熄灭红灯亮起代表电量不足轻推 APP 左侧的油门摇杆左手控制检查飞机能否快速响应拨动 APP 右侧的摇杆右手控制检查方向控制是否正确全部通过后起飞吧继续深入硬件原理图、PCB 与管脚分配参见 docs/en/rst/hardware.rst其中包含 ESP32-S2-Drone V1.2、ESPlane-V2-S2、ESPlane-FC-V1 三款开发板的支持说明与menuconfig目标硬件选择方法固件启动流程参见 main/main.capp_main依次完成 NVS Flash 初始化为 Wi-Fi 做准备、platformInit()平台初始化与systemLaunch()系统任务启动构建配置参见 sdkconfig.defaults 与各芯片变体配置sdkconfig.defaults.esp32s2/sdkconfig.defaults.esp32s3项目特性总览与支持策略参见 README.md。【免费下载链接】esp-droneMini Drone/Quadcopter Firmware for ESP32 and ESP32-S Series SoCs.项目地址: https://gitcode.com/GitHub_Trending/es/esp-drone创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

SpringBoot零侵入性能监控系统设计与实现 2026/9/18 11:31:53

SpringBoot零侵入性能监控系统设计与实现

1. 项目概述在当今企业级应用开发中,SpringBoot已经成为Java生态中最受欢迎的框架之一。然而随着业务规模扩大,性能问题往往成为最棘手的挑战。传统的性能监控方案通常需要修改应用代码或配置,这在生产环境中往往不可行。我们团队开发的这套系…

阅读更多 →
从DID到CATE:双重差分因果推断实战与避坑 2026/9/18 11:31:53

从DID到CATE:双重差分因果推断实战与避坑

做增长分析、策略评估或者运营复盘的同学,大概率都被同一个问题卡过:一个活动上线了,数据涨了,但这个涨到底是活动带来的,还是本来就会涨?我以前做用户留存分析时,最怕的就是老板问"这个数…

阅读更多 →
YOLO选型实战指南:v5到v10的工程落地决策逻辑 2026/9/18 11:31:53

YOLO选型实战指南:v5到v10的工程落地决策逻辑

1. 这不是版本迭代,是目标检测范式的十年演进现场 YOLO v5→v11?先说清楚:目前官方并不存在“YOLO v11”这个正式版本。截至2024年中,Ultralytics官方维护的最新稳定版是YOLOv8,而YOLOv9(2024年3月发布&am…

阅读更多 →
别找临时中转:用 TaoToken 做 Continue 的兼容通道 2026/9/18 11:31:53

别找临时中转:用 TaoToken 做 Continue 的兼容通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
抖音无水印视频批量下载:douyin-downloader快速上手完整指南 2026/9/18 11:31:53

抖音无水印视频批量下载:douyin-downloader快速上手完整指南

抖音无水印视频批量下载:douyin-downloader快速上手完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback…

阅读更多 →
VMware虚拟机安装Ubuntu 24.04完整教程 2026/9/18 11:28:51

VMware虚拟机安装Ubuntu 24.04完整教程

给虚拟机装系统这件事,说实话门槛不高,但坑是真不少。尤其是 Ubuntu 24.04 发布后,很多朋友在 VMware Workstation 里装的时候遇到了各种奇奇怪怪的问题。有的卡在安装界面进不去,有的装完没法全屏,有的开机直接黑屏&a…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞