ESP-Drone: 乐鑫 ESP32/ESP32-S2/ESP32-S3 开发的小型无人机解决方案

ESP-Drone: 乐鑫 ESP32/ESP32-S2/ESP32-S3 开发的小型无人机解决方案

目录

概述

1 主要特性

2 ESP-Drone无人机的硬件类型

3 硬件组装示意图

4 项目源代码


概述

ESP-Drone 是基于乐鑫 ESP32/ESP32-S2/ESP32-S3 开发的小型无人机解决方案,可使用手机 APP 或游戏手柄通过 Wi-Fi 网络进行连接和控制。该方案硬件结构简单,代码架构清晰,支持功能扩展,可用于 STEAM 教育等领域。

1 主要特性

ESP-Drone 具备以下特性:

支持自稳定模式 (Stabilize mode):自动控制机身水平,保持平稳飞行。支持定高模式 (Height-hold mode):自动控制油门输出,保持固定高度。支持定点模式 (Position-hold mode):自动控制机身角度,保持固定空间位置。支持 PC 上位机调试:使用 cfclient 上位机进行静态/动态调试。支持 APP 控制:使用手机 APP 通过 Wi-Fi 轻松控制。支持游戏手柄 (gamepad) 控制:通过 cfclient 使用游戏手柄轻松控制。

主要组件

ESP-Drone 2.0 使用模块化的设计思路,由主控板和扩展板组成。

主控制板:搭载 ESP32-S2 模组和支持基础飞行的必要传感器,并提供硬件扩展接口。扩展板:搭载扩展传感器,可对接主控制板的硬件扩展接口,支持高级飞行功能。

序号

模块名

主要元器件

功能

接口

安装位置

1

主控制板 - ESP32-S2

ESP32-S2-WROVER + MPU6050

基础飞行

提供 I2C SPI GPIO 扩展接口

2

扩展板 - 定点模块

PMW3901 + VL53L1X

室内定点飞行

SPI + I2C

底部,面向地面

3

扩展板 - 气压定高模块

MS5611 气压

气压定高

I2C 或 MPU6050 从机

顶部或底部

4

扩展板 - 指南针模块

HMC5883 罗盘

无头模式等高级模式

I2C 或 MPU6050 从机

顶部或底部

扩展配置

扩展板

主要传感器

功能

接口

安装位置

扩展板- 定点模块

PMW3901 + VL53L1X

室 内定点飞行

SPI + I2C

底部 ,面向地面

扩展板-气 压定高模块

MS5611 气压

气压定高

I2C 或 MPU6050从机

顶部或底部

扩展板 -指南针模块

HMC5883 罗盘

无头模式 等高级模式

I2C 或 MPU6050从机

顶部或底部

2 ESP-Drone无人机的硬件类型

开发板名

主要配置

备注

ESP32-S2-Drone V1.2

ESP32-S2-WROVER + MPU6050

一体化

ESPlane-V2-S2

ESP32-S2-WROVER + MPU6050

需安装脚架

ESPlane-FC-V1

ESP32-WROOM-32D + MPU6050

需安装机架

1) ESP32-S2-Drone V1.2

配置清单如下:

基础配置清单

数量

备注

主板

1

ESP32-S2-WROVER + MPU6050

716 电机

4

可配置 720 电机

716 电机橡胶圈

4

46mm 螺旋桨 A

2

可配置 55mm 桨

46mm 螺旋桨 B

2

300mAh 1s 锂电池

1

可配置 350mAh 高倍率

1s 锂电池充电板

1

8-pin 25 mm 排针

2

2) ESPlane-V2-S2

3)ESPlane-FC-V1

配置清单如下:

配置清单

数量

备注

主板

1

ESP32-WROOM-32D + MPU6050

机架

1

46 mm 螺旋桨 A

2

46 mm 螺旋桨 B

2

300 mAh 1s 锂电池

1

1s 锂电池充电板

1

3 硬件组装示意图

4 项目源代码

测试版本代码,目前放在 GitHub 仓库,可使用 git 工具获取:

git clone https://github.com/espressif/esp-drone.git

项目软件主要由飞控内核、硬件驱动和依赖库组成:

  • 飞控内核来自 Crazyflie 开源工程,主要包括硬件抽象层和飞控程序。
  • 硬件驱动按照硬件接口进行了文件结构划分,包括 I2C 设备和 SPI 设备等。
  • 依赖库包括 ESP-IDF 提供的默认组件,以及来自第三方的 DSP 等。

Read more

同名成员到底调用谁?C++ 隐藏规则你真的会吗?

同名成员到底调用谁?C++ 隐藏规则你真的会吗?

欢迎来到 s a y − f a l l 的文章 欢迎来到say-fall的文章 欢迎来到say−fall的文章 🌈say-fall:个人主页🚀专栏:《手把手教你学会C++》 | 《C语言从零开始到精通》 | 《数据结构与算法》 | 《小游戏与项目》💪格言:做好你自己,才能吸引更多人,与他们共赢,这才是最好的成长方式。 前言: 对于c++来说,有三大核心特性,是面向对象编程(OOP)的经典三要素:封装、继承、多态。这三个特性是 C++ 区别于纯面向过程语言(如 C)的核心,也是理解 C++ 面向对象思想的关键。之前利用类和对象的思想和STL中的适配器:queue和stack了解过封装,本篇文章就详细介绍一下继承这个特性 文章目录 * 前言: * 正文: * 一、

By Ne0inhk
Java新手入门:从零开始安装JDK并配置环境变量

Java新手入门:从零开始安装JDK并配置环境变量

作者:默语佬 ZEEKLOG技术博主 原创文章,转载请注明出处 前言 作为一名Java程序员,相信很多小伙伴都经历过刚入门时的迷茫:“Java到底怎么学?从哪里开始?”,而安装JDK并配置环境变量就是迈向Java世界的第一步。 今天这篇文章,我就来手把手教大家从零开始安装JDK并配置环境变量。文章会配有详细的截图和步骤说明,即使你是完全的小白,也能轻松搞定! 阅读对象:Java新手、编程入门者、对Java感兴趣的同学 难度等级:⭐(入门级) 预计时间:30分钟 目录 1. JDK是什么?为什么要安装JDK? 2. JDK下载:选择合适的版本 3. JDK安装:一步步图形化安装 4. 环境变量配置:Windows系统配置 5. 验证安装:确认JDK安装成功 6. 常见问题及解决方案 7. 总结与下一步学习建议 JDK是什么?为什么要安装JDK? JDK的概念 JDK是Java Development Kit的缩写,

By Ne0inhk
Java 大视界 -- Java 大数据在智能物流仓储货位优化与库存周转率提升中的应用实战

Java 大视界 -- Java 大数据在智能物流仓储货位优化与库存周转率提升中的应用实战

Java 大视界 -- Java 大数据在智能物流仓储货位优化与库存周转率提升中的应用实战 * 引言: * 正文: * 一、传统智能物流仓储的困境与挑战 * 1.1 货位管理:无序中的效率瓶颈 * 1.2 库存管理:积压与缺货并存的矛盾 * 二、Java 大数据:智能物流仓储的破局之道 * 2.1 全链路数据采集与处理:构建仓储数字孪生体 * 2.2 智能货位优化:算法驱动的空间革命 * 2.3 库存周转率提升:精准预测与智能协同 * 三、实战案例:京东亚洲一号智能仓的数字化转型 * 3.1 货位优化实践 * 3.2 库存管理创新 * 四、技术挑战与未来展望 * 结束语: * 🗳️参与投票和联系我: 引言: 嘿,亲爱的 Java

By Ne0inhk
飞算 JavaAI 转 SpringBoot 项目沉浸式体验:高效开发在线图书借阅平台

飞算 JavaAI 转 SpringBoot 项目沉浸式体验:高效开发在线图书借阅平台

标签#JavaAI 在软件开发领域,高效且高质量的开发工具一直是开发者们追求的目标。飞算 JavaAI 作为一款新兴的 AI 辅助开发工具,以其独特的能力为 Java 开发带来了新的可能。本次,我借助飞算 JavaAI 进行在线图书借阅平台的开发,并将其转换为 SpringBoot 项目,沉浸式体验了飞算 JavaAI 在开发流程中的便捷与高效。 一、飞算 JavaAI 操作流程:从需求到项目的顺畅之旅 飞算 JavaAI 的操作流程非常清晰且人性化,极大地简化了传统开发中从需求分析到项目构建的繁琐步骤。 首先是理解需求阶段。我将在线图书借阅平台的需求进行拆解,包括用户管理、图书资源管理、借阅管理等 8 个关键点。飞算 JavaAI 能够快速识别这些需求要点,为后续的接口设计和表结构设计奠定基础。这一步给整个项目提供了清晰的蓝图,让我对项目的整体轮廓有了明确的认识,避免了后续开发中因需求不明确而产生的反复修改。 接着进入设计接口阶段,基于之前拆解的需求,飞算 JavaAI 自动生成了

By Ne0inhk