ESP-Drone 无人机

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

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

ESP-Drone 无人机

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 简介

ESP-IDF 是乐鑫为 ESP32/ESP32-S2/ESP32-S3 提供的物联网开发框架。

  • ESP-IDF 包含一系列库及头文件,提供了基于 ESP32/ESP32-S2/ESP32-S3 构建软件项目所需的核心组件。

  • ESP-IDF 还提供了开发和量产过程中最常用的工具及功能,例如:构建、烧录、调试和测量等。

详情可查阅:ESP-IDF 编程指南

Crazyflie 简介

Crazyflie 是来自 Bitcraze 开源工程的四旋翼飞行器,具备以下特性:

  • 支持多种传感器组合,可以轻松实现定高模式、定点模式等高级飞行模式。

  • 基于 FreeRTOS 编写,将复杂的无人机系统,分解成多个具有不同优先级的软件任务。

  • 设计了功能完备的 cfclient 上位机和 CRTP 通信协议,便于实现调试、测量和控制。

ESP-Drone 无人机

多架无人机同时探索周围环境,灵活避开障碍物,同时避开其它无人机。A swarm of drones exploring the environment, avoiding obstacles and each other. (Guus Schoonewille, TU Delft)

详情可查阅 Crazyflie 官网

准备工作

硬件组装

请按照下述步骤组装 ESP32-S2-Drone V1.2:

ESP-Drone 无人机

ESP32-S2-Drone V1.2 组装流程

硬件介绍和管脚资源分配可查阅:硬件参考

安装 ESP-Drone APP

ESP-Drone APP 同时支持 Android 系统和 iOS 系统。

扫描下方二维码,下载 Android APP:

ESP-Drone 无人机

下载 iOS APP:

在 App Store 中搜索 ESP-Drone,点击下载并安装。

iOS APP 源代码:ESP-Drone-iOS

Android APP 源代码:ESP-Drone-Android

安装 cfclient

安装 cfclient 为可选步骤,用于实现高级调试,非必须使用。

ESP-Drone 无人机

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. 配置遥控器

ESP-Drone 无人机

遥控器配置

2.1 配置 4 个控制轴:Roll 、Pitch、Yaw、Thrust。

2.2 配置一个按键为 Assisted control,用于飞行模式切换。

手机 APP 使用指南

Wi-Fi 连接

  • 手机扫描 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 上滑动,控制小飞机方向。

ESP-Drone 无人机

Android APP 用户界面

螺旋桨方向

  • 按照下图所示位置,安装 A、B 螺旋桨。

  • 飞行器上电自检时,检查螺旋桨转向是否正确。

ESP-Drone 无人机

螺旋桨方向示图

起飞前检查

  • 将小飞机头部朝前放置,尾部天线朝向自己;

  • 将小飞机置于水平面上,待机身稳定时上电;

  • 观察上位机水平面是否置平;

  • 观察通信建立以后,小飞机尾部绿灯是否快速闪烁;

  • 观察小飞机头部红灯是否熄灭,亮起代表电量不足;

  • 轻推左手小油门,检查飞机是否能快速响应;

  • 轻推右手方向,检查方向控制是否正确;

  • 起飞吧!

- 本文内容来自网络,如有侵权,请联系本站处理。

2024-09   阅读(75)   评论(0)
 标签: 创客 ESP32 无人机

涨知识
传感器

传感器是一种检测装置,能感受到被测量的信息,并按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。

评论:
相关文章
ESP32 的中断机制和处理

本文介绍ESP32中的中断机制,以及如何通过GPIO中断实现按钮控制。重点讲解了如何设置中断服务例程、处理中断抖动问题,并提供了消除中断抖动的示例代码。


在ESP32上实现WEB交互界面

本文主要介绍在未联网(AP热点)情况下实现WEB交互界面的CSS和javascript库。


Arduino ESP32获取芯片、RAM信息

本文介绍如何使用Arduino-ESP32库中的API函数获取ESP32的芯片、RAM信息等,并提供了一个示例程序代码。


ESP32 FreeRTOS 双核使用

ESP32系列(包括ESP32-S3)搭载Xtensa双核处理器,默认情况下Arduino框架仅使用单核运行用户代码,通过多核编程,可以充分利用硬件资源来提升系统响应和性能。


ESP32 GPIO 矩阵和引脚多路复用

ESP32 芯片有34个物理GPIO管脚。每个GPIO管脚都可用作一个通用IO,或连接一个内部的外设信号。IO_MUX ¹、RTC IO MUX 和GPIO交换矩阵用于将信号从外设传输至GPIO管脚。


ESP32Encoder:高效的ESP32旋转编码器库

ESP32Encoder库是一个利用ESP32脉冲计数器硬件外设实现高效旋转编码器读取的软件库。


适合学习物联网的几款盒子

本文对比了几款适合物联网开发的盒子硬件参数,供大家参考。


乐动掌控

乐动掌控采用掌控板作为主控,塑胶一体式外壳,侧面和底面开具多个乐高扩展孔位,兼容乐高积木,可完成多种创意应用。


ESP32 MicroPython存储数据到闪存

在MicroPython的ESP32库中,NVS类用于管理非易失性存储,支持 32 位有符号整数和 二进制blob。


Arduino-ESP32 Preferences库使用详解

Arduino-ESP32项目提供的Preferences库是一个专为ESP32设计的非易失性存储解决方案,它替代了传统的Arduino EEPROM库,提供了更强大、更可靠的数据存储功能。

搜索
小鹏STEM教研服务

专属教研服务系统,助您构建STEM课程体系,打造一站式教学环境。