1.FireBeetle 2 ESP32-S3简介
FireBeetle 2 ESP32-S3是一款基于ESP32-S3-WROOM-1-N16R8模组设计的主控板。ESP32-S3-WROOM-1-N16R8模组拥有16MB Flash和8MB PSRAM,可以存储更多的代码和数据,模组搭载的ESP32-S3芯片拥有强大的神经网络运算能力和信号处理能力,适用于图像识别、语音识别等项目。
FireBeetle 2 ESP32-S3板载摄像头接口,可以方便的连接摄像头,独立的摄像头供电电路,减少了其他信号对摄像头的干扰。开发板附带了一个OV2640摄像头,该摄像头拥有200万像素和68°视场角,最高支持1600*1200分辨率。FireBeetle 2 ESP32-S3板载GDI屏幕接口,解决使用屏幕时的接线烦恼,集成电源管理功能,支持锂电池充电和硬件开关机。
FireBeetle 2 ESP32-S3支持Wi-Fi 和 Bluetooth 5 (LE) 双模通讯,降低了设备配网难度,同时还支持蓝牙 Mesh (Bluetooth Mesh) 协议和乐鑫 Wi-Fi Mesh可以实现更高的通讯稳定性和更大的覆盖面积。FireBeetle 2 ESP32-S3支持Matter协议,可用于开发符合智能家居家居行业统一标准的设备,适用于广泛的物联网场景。
FireBeetle 2 ESP32-S3可以使用Arduino IDE、ESP-IDF、MicroPython进行编程,C语言、python都可以轻松的操纵硬件。
如果出现烧录失败,请连接USB,按住BOOT按键不放,点击RST按键,然后再松开BOOT按键使开发板进入下载模式
2.产品特性
- ESP32-S3模组,支持AI加速
- 16MB Flash和8MB PSRAM,更大的代码存储空间
- 板载摄像头接口和独立的摄像头供电,连接方便抗干扰强
- 集成电源管理,支持锂电池充电和硬件开关机
- 板载GDI接口,轻松连接屏幕
- 支持Wi-Fi 和 Bluetooth 5双模通讯
3.产品参数
基本参数
- 工作电压: 3.3V
- Type-C输入电压: 5V DC
- VCC输入电压:5V DC
- 最大充电电流: 1A
- 工作温度:-20~80℃
- 模块尺寸:25.4x60mm
硬件信息
- 处理器:Xtensa® 双核32位LX7微处理器
- 主频:240 MHz
- SRAM:512KB
- ROM:384KB
- Flash:16MB
- PSRAM: 8MB
- RTC SRAM:16KB
- USB: USB 2.0 OTG全速接口
WIFI
- WIFI协议:IEEE 802.11b/g/n
- WIFI频宽: 2.4 GHz 频带支持 20 MHz 和 40 MHz 频宽
- WIFI模式:Station 模式、SoftAP 模式、SoftAP+Station 模式和混杂模式
- WIFI频率:2.4GHz
- 帧聚合: TX/RX A-MPDU, TX/RX A-MSDU
蓝牙
- 蓝牙协议:Bluetooth 5、Bluetooth mesh
- 蓝牙频率:125 Kbps、500 Kbps、1 Mbps、2 Mbps
接口引脚
- 数字I/O x26
- LED PWM 控制器 8个通道
- SPI x2
- UART x3
- I2C x2
- I2S x2
- 红外收发器:发送通道 x5、接收通道 x5
- 2 × 12 位 SAR ADC, 20个通道
- DMA 控制器,5 个接收通道和 5 个发送通道
4.功能引脚示意图
功能指示
- Type-C:Type-C USB接口
- 21/D13:板载LED引脚
- 47/D14:IO/电源控制引脚,默认长按6S关机,长按2S开机
- ESP32-S3:ESP32-S3-WROOM-1-N16R8或ESP32-S3-WROOM-1U-N16R8模组
- RST:复位按键
- BOOT:BOOT按键
- AXP313A:电源管理芯片
- ETA6003:ETA6003锂电池充电管理芯片
- BAT:锂电池接口
- Charge:充电指示灯
- 熄灭:未接入电源或已充满
- 常亮:充电中
- 闪烁:电池未接入
- GDI:GDI显示屏接口
- CAM:DVP摄像头接口
引脚示意
引脚概述
- GPIO:常规引脚
- Analog:模拟输入引脚
- ADC:模数转换
- TOUCH:触摸引脚
- SPI:SPI接口
- I2C:I2C接口
- UART:UART接口
- USB:USB接口
- JTAG:调试接口
- 3V3:3.3V稳压电源输出
- VCC:电源输入/输出
- 输入:5V DC输入为FireBeetle供电(无法为锂电池充电)
- 输出:5V-USB 供电时输出USB电压,3.7V-锂电池供电时输出锂电池电压
- GND:公共地引脚
GPIO分配表
GDI显示接口
此接口为DFRbot专用GDI显示屏接口,使用18pin-FPC线连接屏幕,连接屏幕更加便捷。
以下是GDI接口使用的引脚列表
FPC PINS | FireBeetle ESP32-S3 PINS | Description |
---|---|---|
VCC | 3V3 | 3.3V |
LCD_BL | 21/D13 | 背光 |
GND | GND | GND |
SCLK | 17/SCK | SPI时钟 |
MOSI | 15/MOSI | 主机输出,从机输入 |
MISO | 16/MISO | 主机输入,从机输出 |
LCD_DC | 3/D2 | 数据/命令 |
LCD_RST | 38/D3 | 复位 |
LCD_CS | 18/D6 | TFT片选 |
SD_CS | 9/D7 | SD卡片选 |
FCS | 7/D6 | 字库片选 |
TCS | 12/D12 | 触摸片选 |
SCL | 2/SCL | I2C时钟 |
SDA | 1/SDA | I2C数据 |
INT | 13/D11 | INT |
BUSY | 14/D10 | 防撕裂引脚 |
X1 | NC | 自定义引脚1 |
X2 | NC | 自定义引脚2 |
使用FPC链接屏幕时根据GDL demo配置所需对应的引脚号即可,通常只需要根据不同主控配置三个引脚
支持GDI的显示屏:
- 1.54" 240x240 IPS广视角TFT显示屏
- 1.8”128x160 IPS TFT LCD 显示屏
- 2.0" 320x240 IPS广视角TFT显示屏
- 2.8" 320x240 IPS TFT电阻触摸显示屏
- 3.5" 480x320 IPS TFT电容触摸显示屏
- 1.51”OLED 透明屏幕
CAM接口
此接口为DVP摄像头接口,兼容OV2640和OV7725摄像头
使用摄像头需要使能AXP313A电源输出,点击下载AXP313A库(内含ESP-IDF、MicroPython驱动)
以下是DVP摄像头接口使用的引脚列表
CAM PINS | FireBeetle ESP32-S3 PINS | Description |
---|---|---|
NC | NC | NC |
AGND | / | 模拟地 |
SDA | 1/SDA | I2C数据 |
AVDD | / | AXP313A可控电源 |
SCL | 2/SCL | I2C时钟 |
RST | / | 已上拉到DOVDD |
VSYNC | 6/A2 | 帧同步信号 |
PWDN | / | 已下拉 |
HREF | 42 | 行同步信号 |
DVDD | / | AXP313A可控电源 |
DOVDD | / | AXP313A可控电源 |
D9 | 48 | DATA 9 |
XMCLK | 45 | 时钟信号 |
D8 | 46 | DATA 8 |
DGND | GND | 数字地 |
D7 | 8/A3 | DATA 7 |
PCLK | 5/A1 | 像素时钟信号 |
D6 | 7/D5 | DATA 6 |
D2 | 39 | DATA 2 |
D5 | 4/A0 | DATA 5 |
D3 | 40 | DATA 3 |
D4 | 41 | DATA 4 |
NC | NC | NC |
NC | NC | NC |
连接方式
摄像头Pin1引脚对应DVP接口的白色圆点连接
5. 首次使用
5.1 Arduino环境配置
当您首次使用Firebeetle 2 ESP32-S3,您需要了解以下步骤
- 添加IDE中的json链接
- 下载主控的核心
- 选择开发板以及串口
- 打开示例程序并烧录
- 了解串口监视器
-
Arduino IDE 编译环境配置
-
配置URL网址到Arduino IDE
-
打开Arduino IDE,点击File->Preferences,如下图所示:
- 在新打开的界面中,点击如下图红色圆圈中的按钮
- 填入需要使用的版本链接,点击“OK”
- 稳定版:https://espressif.github.io/arduino-esp32/package_esp32_index.json
- 开发版:https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json
注意:
- 请根据芯片支持情况选择合适的版本。
- 如果填入过其它链接,在下一行添加新链接即可 。
- 更新板卡
- 打开Tools->Board:->Boards Manager...,如下图所示:
- Boards Manager会自动更新板卡,如下图所示:
- 更新完成后,您可以在上方输入esp32,出现如下情况时选择esp32点击安装即可(建议安装最新版本):
- 等待如下进度条结束:
- 安装完成后,列表会显示已经安装esp32主板,如下图所示:
- 点击Tools->Board:,选择DFRobot FireBeetle 2 ESP32-S3
- 在开始前您还需要配置如下设置(当您选择 Disabled 时,串口为RX(44)、TX(43),如果您需要通过USB在Arduino监视器上打印,您需要选择Enable)
- 点击Port选择对应的串口
5.2 LED闪烁
板载LED灯默认为引脚21
代码
int led = 21;
void setup() {
pinMode(led,OUTPUT);
}
void loop() {
digitalWrite(led,HIGH);
delay(1000);
digitalWrite(led,LOW);
delay(1000);
}
- 将以上程序粘贴到程序框中
- 点击箭头等待程序编译并烧录至开发板
烧录成功
- 如图所示及烧录成功
- 您会看见板载LED灯开始闪烁
6. 基础教程
基础教程内容包括:PWM、中断、串口、舵机、SD卡的教程
7. 进阶教程
进阶教程内容包括:屏幕显示、蓝牙、WIFI、ESP-NOW、项目示例、一键配网、摄像头的教程
8.MicroPython教程
8.1 MicroPython环境搭建
想要在FireBeetle 2 ESP32-S3上运行microPython,首先需要给FireBeetle 2 ESP32-S3烧录固件
- 下载需要使用的Micropython固件
-
MicroPython官方固件
(注:请选择Support for Octal-SPIRAM版本)
-
运行flash_download_tool_3.9.3.exe
-
选择FireBeetle 2 ESP32-S3主控,通过USB线连接电脑。按住BOOT,再按下RST,然后松开两个按键
-
选择下载的固件,擦除flash后烧录固件
8.2 MicroPython编译器
- 点击下载thonny
- 进入软件,对解释器进行设置(Run->Configure interpreter...)
- 将代码复制到代码框中,保存文件到MicroPython设备中,命名为main.py
import time
from machine import Pin
led=Pin(21,Pin.OUT)
while True:
led.value(1)
time.sleep(1)
led.value(0)
time.sleep(1)
- 重启FireBeetle 2 ESP32-S3即可看到L灯闪烁
8.3 MicroPython教程
MicroPython基础教程
MicroPython摄像头固件教程
- 将power.py和test.py保存到MicroPython设备中
- 运行test.py代码,停止进程后,即可看到拍摄的照片
摄像头API
#初始化摄像头
camera.init(0, format=camera.JPEG)
# 拍摄一张图片
buf = camera.capture()
# 其他设置:
# 上翻下翻
camera.flip(0)
#左/右
camera.mirror(1)
# 分辨率
camera.framesize(camera.FRAME_HVGA)
# 选项如下:
# FRAME_96X96 FRAME_QQVGA FRAME_QCIF FRAME_HQVGA FRAME_240X240
# FRAME_QVGA FRAME_CIF FRAME_HVGA FRAME_VGA FRAME_SVGA
# FRAME_XGA FRAME_HD FRAME_SXGA FRAME_UXGA FRAME_FHD
# FRAME_P_HD FRAME_P_3MP FRAME_QXGA FRAME_QHD FRAME_WQXGA
# FRAME_P_FHD FRAME_QSXGA
# 有关详细信息,请查看此链接:https://bit.ly/2YOzizz
# 特效
camera.speffect(camera.EFFECT_NONE)
#选项如下:
# 效果\无(默认)效果\负效果\ BW效果\红色效果\绿色效果\蓝色效果\复古效果
# EFFECT_NONE (default) EFFECT_NEG \EFFECT_BW\ EFFECT_RED\ EFFECT_GREEN\ EFFECT_BLUE\ EFFECT_RETRO
# 白平衡
camera.whitebalance(camera.WB_HOME)
#选项如下:
# WB_NONE (default) WB_SUNNY WB_CLOUDY WB_OFFICE WB_HOME
# 饱和
camera.saturation(0)
#-2,2(默认为0). -2灰度
# -2,2 (default 0). -2 grayscale
# 亮度
camera.brightness(0)
#-2,2(默认为0). 2亮度
# -2,2 (default 0). 2 brightness
# 对比度
camera.contrast(0)
#-2,2(默认为0).2高对比度
#-2,2 (default 0). 2 highcontrast
# 质量
camera.quality(10)
#10-63数字越小质量越高
常见问题
烧录报错
原因
-
如果Loop中延时过短或者不加延时会导致烧录超时
-
错误的调用一些函数会导致计算机不能识别USB
解决办法
- 按住BOOT,再按下RST,然后松开两个按键,再烧录。
串口无打印
解决办法
- 检查USB CDC是否处于Enable状态
- 使用其他的串口调试助手查看打印信息
更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。