ESP-Drone 是基于乐鑫 ESP32/ESP32-S2/ESP32-S3 开发的小型无人机解决方案,可使用手机 APP 或游戏手柄通过 Wi-Fi 网络进行连接和控制。该方案硬件结构简单,代码架构清晰,支持功能扩展,可用于 STEAM 教育等领域。项目部分代码来自 Crazyflie 开源工程,继承 GPL3.0 开源协议。
ESP-Drone 无人机
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 从机 |
顶部或底部 |
详情可查阅:硬件参考。
ESP-IDF 是乐鑫为 ESP32/ESP32-S2/ESP32-S3 提供的物联网开发框架。
ESP-IDF 包含一系列库及头文件,提供了基于 ESP32/ESP32-S2/ESP32-S3 构建软件项目所需的核心组件。
ESP-IDF 还提供了开发和量产过程中最常用的工具及功能,例如:构建、烧录、调试和测量等。
详情可查阅:ESP-IDF 编程指南。
Crazyflie 是来自 Bitcraze 开源工程的四旋翼飞行器,具备以下特性:
支持多种传感器组合,可以轻松实现定高模式、定点模式等高级飞行模式。
基于 FreeRTOS 编写,将复杂的无人机系统,分解成多个具有不同优先级的软件任务。
设计了功能完备的 cfclient 上位机和 CRTP 通信协议,便于实现调试、测量和控制。
多架无人机同时探索周围环境,灵活避开障碍物,同时避开其它无人机。A swarm of drones exploring the environment, avoiding obstacles and each other. (Guus Schoonewille, TU Delft)
详情可查阅 Crazyflie 官网。
请按照下述步骤组装 ESP32-S2-Drone V1.2:
ESP32-S2-Drone V1.2 组装流程
硬件介绍和管脚资源分配可查阅:硬件参考。
ESP-Drone APP 同时支持 Android 系统和 iOS 系统。
扫描下方二维码,下载 Android APP:
下载 iOS APP:
在 App Store 中搜索 ESP-Drone,点击下载并安装。
iOS APP 源代码:ESP-Drone-iOS
Android APP 源代码:ESP-Drone-Android
安装 cfclient 为可选步骤,用于实现高级调试,非必须使用。
cfclient 上位机界面
1. 安装 cfclient
1.1 下载源代码
git clone https://github.com/qljz1993/crazyflie-clients-python.git
1.2 进入下载目录
cd crazyflie-clients-python
1.3 安装 cfclient 客户端
pip3 install -e .
1.4 启动客户端
cfclient
2. 配置遥控器
遥控器配置¶
2.1 配置 4 个控制轴:Roll 、Pitch、Yaw、Thrust。
2.2 配置一个按键为 Assisted control,用于飞行模式切换。
手机扫描 Wi-Fi AP。ESP-Drone 设备用作 AP,其 SSID 及密码如下:
SSID:ESP-DRONE_XXXX(XXXX 根据 MAC 设置)PASSWORD:12345678
点击该 AP,手机与 ESP-Drone 设备建立 Wi-Fi 连接。
在该步骤中,您可以按照具体的应用场景进行个性化配置,或使用默认配置。
```
默认配置:
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
```
打开 APP,点击 Connect 按钮,连接小飞机。连接成功,小飞机绿灯闪烁。
轻推油门,小飞机起飞。
在 APP 上滑动,控制小飞机方向。
Android APP 用户界面
按照下图所示位置,安装 A、B 螺旋桨。
飞行器上电自检时,检查螺旋桨转向是否正确。
螺旋桨方向示图
将小飞机头部朝前放置,尾部天线朝向自己;
将小飞机置于水平面上,待机身稳定时上电;
观察上位机水平面是否置平;
观察通信建立以后,小飞机尾部绿灯是否快速闪烁;
观察小飞机头部红灯是否熄灭,亮起代表电量不足;
轻推左手小油门,检查飞机是否能快速响应;
轻推右手方向,检查方向控制是否正确;
起飞吧!
LED点阵屏通过LED(发光二极管)组成,以灯珠亮灭来显示文字、图片、动画、视频等,是各部分组件都模块化的显示器件,通常由显示模块、控制系统及电源系统组成。
Arduino-ESP32与ESP-IDF的版本对应表。
Arduino-ESP32提供了多种文件系统解决方案,本文将深入解析SPIFFS、LittleFS和SD卡三种主流存储方案,帮助你做出最佳选择。
ESP32-P4-WIFI6-DEV-KIT是一款微雪(Waveshare)设计的基于 ESP32-P4 的多媒体开发板,并集成 ESP32-C6,支持 Wi-Fi 6 和 BLE 5 无线连接。它提供丰富的人机交互接口,包括 MIPI-CSI (集成图像信号处理器 ISP)、MIPI-DSI、SPI、I2S、I2C、LED PWM、MCPWM、RMT、ADC、UART 和 TWAI 等。
ESP-Hosted 解决方案提供了将 ESP 板用作 Wi-Fi 和 Bluetooth/BLE 连接的通信处理器的方法。
ESP-Hosted 提供了一种将ESP芯片和模组用作通信协处理器的解决方案,该解决方案为主机微处理器或微控制器提供无线连接,使主机能够与其他设备通信。简单来说为网卡方案。
Arduino+ESP32上使用TFT_eSPI库快速点亮这个屏幕,驱动芯片ST7789
本文给出了一个ESP32与SPI 接口TFT显示屏接线的详细说明,供大家参考。
本文讲解如何在Micropython环境下使用ESP32的ESPNow功能进行数据传输。
ESP-Dongle 是一款基于 ESP32-S3 芯片开发的多功能 USB Device 解决方案。它不仅外形小巧,功能齐全,更集成了无线 U 盘、SD 卡读取以及 USB 无线网卡等多项功能。
ESP32 系列芯片可以利用 CSI 数据实现动作检测和存在检测。无论是自动调节灯光、风扇,还是节能控制,CSI 技术为智能家居带来了新的可能性。随着 CSI 技术的发展,未来的智能家居将能够更精确地感知和响应我们的行为,实现更高效、更人性化的控制。