12

K_b0KBsM · 6月24日 · 广东

创客项目秀 | 基于XIAO ESP32S3 sense 的小型相机

在这个科技飞速发展的时代,DIY(Do It Yourself)文化正成为连接创新与日常生活的桥梁,今天小编给大家带来了来自麻省理工学院的Arnov Sharma 的基于XIAO ESP32S3 sense的小型相机项目,该相机拥有一个圆形的触摸屏幕可以显示画面,手持拍摄并将拍摄的照片存储在SD 卡上。

 title=

项目简介

在这个项目中,我们将探索如何使用ESP32-CAM(也称为ESPCAM-XIAO)来创建一个功能强大的DIY摄像头。ESPCAM-XIAO是一个带有集成摄像头模块的ESP32开发板,它具有WiFi功能,非常适合用于创建智能家居项目。
 title=

材料清单

  • ESP32S3 sense开发板
  • XIAO 的圆形屏幕模块
  • SD卡
  • 3.7V,50mAh锂电池
  • 3D打印零件

XIAO 的圆形屏幕模块

 title=

对于这个项目,我们使用的是 XIAO 的 Seeed Studio 圆形显示器。

Seeed Studio Round Display for XIAO是一款带有电容式触摸屏的扩展板,与所有XIAO开发板兼容。它的一侧具有完全覆盖的触摸屏,设计为半径为 39 毫米的辐射盘。

该板采用 1.28 英寸圆形触摸屏,分辨率为 240 x 240 像素,颜色为 65K,呈现清晰多彩的图像展览。可用于设计可编程手表、可穿戴指示器等。

XIAO 扩展板另一侧的高集成度和丰富的外设令人印象深刻,板载 RTC、TF 卡插槽、电池充电芯片和 JST 1.25 电池接口,所有这些都在紧凑的 39 x 39mm 尺寸内。也就是说,您可以拥有可靠的计时功能,一种将内存扩展到 32GB FAT 的方法,这是一种通过锂电池充电的方法。

Seeed Studio XIAO的引脚全部引出,无需焊接,提供便捷的开发体验。XIAO 扩展板具有迷你尺寸,是可穿戴和小批量项目的理想选择。它是一款多功能且功能强大的扩展板,可用于各种项目,从显示传感器数据到创建交互式界面。

至于设置这个圆形显示器,我们必须使用TFT\_eSPI库。

我们需要编辑用户设置并修改 文件并取消注释以下行。

User\_Setup\_Select.h  

# include <User\_Setups/Setup66\_Seeed\_XIAO\_RoundDisplay.h>

查看此显示的 wiki 以获取更多简要详细信息。

https://wiki.seeedstudio.com/get\_start\_round\_display/

XIAO ESP32 S3 sense

 title=

Seeed Studio XIAO 系列是一款微型开发板,具有拇指大小的尺寸和类似的硬件设计。

我们使用的是 XIAO ESP32 S3 Sense 开发板,它集成了摄像头传感器、数字麦克风和 SD 卡支持。该开发板结合了嵌入式 ML 计算能力和摄影功能,可以成为开始使用智能语音和视觉 AI 的绝佳工具。

在这里,XIAO 使用了ESP32S3 32 位双核 Xtensa 处理器芯片,运行频率高达 240 MHz。

此外,还有一个可拆卸的 OV2640 摄像头传感器,分辨率为 1600x1200,它与 OV5640 摄像头传感器兼容,并包括一个额外的数字麦克风。

板载锂电池充电管理设置支持四种功耗模式,包括功耗低至 14 μA 的深度睡眠模式。

这里有一个关于XIAO董事会的简短维基文档,以及许多你可以从这里查看的产品,以获得深入的细节。

https://wiki.seeedstudio.com/xiao\_esp32s3\_getting\_started/

硬件准备

 title=
XIAO EPS32S3 Sense设计有三个上拉电阻(R4~R6)连接到SD卡插槽,圆形显示屏也有上拉电阻;
这里的问题是,当同时使用SD卡时,无法读取SD卡。为了解决这个问题,我们需要切断 XIAO ESP32S3 Sense 扩展板上的 J3。

 title=

断开 J3 连接后,XIAO ESP32S3 Sense 上的 SD 卡插槽将无法正常工作,因此您需要将 microSD 卡插入圆形显示屏上的 SD 卡插槽中。

上传代码

在对XIAO的相机板进行修改后,我们接下来将下面的代码上传到XIAO板上

#include <EEPROM.h>
#include <Arduino.h>
#include <TFT_eSPI.h>
#include <SPI.h>
#include "esp_camera.h"
#include "FS.h"
#include "SD.h"
#include "SPI.h"

#define CAMERA_MODEL_XIAO_ESP32S3 // Has PSRAM
#define TOUCH_INT D7

#include "camera_pins.h"

// Width and height of round display
const int camera_width = 240;
const int camera_height = 240;

// File Counter
int imageCount = 1;
bool camera_sign = false;          // Check camera status
bool sd_sign = false;              // Check sd status

TFT_eSPI tft = TFT_eSPI();

// SD card write file
void writeFile(fs::FS &fs, const char * path, uint8_t * data, size_t len){
    Serial.printf("Writing file: %s\n", path);

    File file = fs.open(path, FILE_WRITE);
    if(!file){
        Serial.println("Failed to open file for writing");
        return;
    }
    if(file.write(data, len) == len){
        Serial.println("File written");
    } else {
        Serial.println("Write failed");
    }
    file.close();
}

 title=
此代码用于 ESP32 微控制器的相机模块捕获图像,将其显示在 TFT 显示器上,并将其保存到 SD 卡中。提供的函数 ,处理将捕获的图像数据写入 SD 卡上的文件的过程,确保文件操作得到正确管理,并通过串行监视器提供反馈。

要使此代码正常工作,您首先需要下载提供的“camera\_pins.h”和“camera\_index.h”文件,并将它们放入与主草图相同的文件夹中。此外,请确保安装 TFT\_eSPI.h 并将其配置为与 XIAO ROUND DISPLAY 一起使用。

项目电源

该项目的电源是超小型 3.7V 50mAh LiPo Cell,可为 XIAO Round 显示屏和 XIAO ESP32 Sense 供电。
 title=

我们能够通过采用微小的锂聚合物电池来创建更紧凑的设计。
但是,由于我们使用的 LiPo 电池的容量为 50 mAh,因此我们获得的备份仅够工作 10-15 分钟,但这可以通过添加 100 mAh 或 200 mAh 电池来增加。
为了与 XIAO 一起使用,我们添加了一个小型 JST 连接器,其中包含 PCM 上提供的 LiPo 电池的正负极子。
JST 连接器允许我们将 LiPo 电池直接连接到圆形屏幕的电池端口。
然后我们把XIAO板放回去,电子组装就完成了。

外观设计

对于外壳,我们在Fusion 360中创建了一个连接到XIAO的圆形显示器模型,然后在其周围构建了一个外壳。
 title=

这个想法是创建一个圆柱形的外壳,该外壳分为两部分:一部分用于将屏幕固定到位,另一部分用作盖子。
我们在两个部件周围都增加了抓地力,使部件易于握持。
在封面上,我们出于美学目的对相机图标进行了建模,使设计看起来很有吸引力。
完成模型后,我们将每个零件导出为网格文件,并使用透明PLA3D打印背面,使用白色Marbel PLA打印前盖。

结论

这是这个小构建的结果:一个由 ESP32 微控制器驱动的工作傻瓜相机。要打开相机,请打开圆形显示屏上的 SMD 滑动开关。通过点击屏幕,我们可以将图像保存到SD卡。总的来说,这个项目是成功的。

推荐阅读
关注数
9153
内容数
48
深度服务产业的国际化双创平台
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息