ESP-EYE 智能摄像头开发板

简介

该产品是一款面向人脸识别和语音识别市场的开发板,搭载ESP32芯片、200W像素摄像头、数字麦克风、8MB PSRAM和4MB Flash,可满足各种AI应用开发需求。此外,该开发板还支持Wi­Fi图像传输、Micro USB调试和供电,可以实现语音唤醒、人脸检测与识别等功能,可协助用户开发高度集成的AI解决方案。

产品参数

  • 微控制器:ESP32系列
  • 供电、调试方式:Micro USB
  • 尺寸:41.00 x 21.00 x 6.50mm
  • 工作电压:3.3V
  • 工作电流:0.5A
  • I/O口输出总电流:1200mA
  • 工作温度:-40~125℃
  • 存储温度:-50~150℃

产品示意图

ESP-EYE开发板示意图

名称 功能描述
USB Port 调试、供电接口
Camera 摄像头,实现检测识别等功能
Side Tactile Button 功能按键
Top Tactile Button 正面轻触按键,用于ESP32的RST(复位)、BOOT(下载),不建议设置他用
LED 红灯和白灯各一个,可用于指示唤醒、联网、人脸检测、人脸录入、人脸识别等不同过程中的状态
MIC 麦克风
SPI Port 预留数据传输接口

主要硬件组成说明

ESP-EYE开发板windows10开发入门

硬件准备

  • ESP­EYE V2.1开发板 ×1
  • Micro USB电缆×1
  • PC(Windows10)×1

软件准备

设置工具链

快速设置的方法是从dl.espressif.com下载集成在一起的工具链和MSYS2压缩文件: 集成工具链获取 将zip压缩文件解压到C:或其它路径,这里假设是C:,它会使用预先准备的环境创建一个msys32目录。

检出

运行C:\msys32\mingw32.exe打开一个MSYS2的终端窗口。该窗口的环境是一个bash shell。

mkdir -p ~/esp

运行以上指令创建一个esp目录作为开发ESP32应用的默认地址。

cd ~/esp

再输入就进入到新创建的目录。如果没有错误信息出现则表明此步骤已完成。

安装驱动

准备Micro USB线,连接PC和ESP­EYE开发板 打开windows10设备管理器,找到有感叹号的CP2102N USB to UART Bridge Controller的设备,说明他还没有安装驱动 官网地址:驱动获取 打开上述链接,按照自己系统下载驱动,并解压和安装。
比如:win10 64位系统的下载后打开图中的“CP210xVCPInstaller_x64.exe”,即可安装成功。

软件获取

打开MSYS2的终端窗口,将软件代码克隆到本地,我是使用windows的git clone,然后把目录copy到c:\msys32\home\user\esp目录下

git clone --recursive https://github.com/espressif/esp-who.git

执行以上命令会默认生成一个esp-who的文件夹。

设置路径

在windows全局环境变量中,将IDF_PATH设置为esp-who/esp-idf

软件烧写

下面,我们以Windows 10环境为例,介绍向ESP­EYE烧写程序的过程:

  • 首先将ESP-­EYE接入PC,接入即上电;
  • 通过设备管理器端口查看开发板是否成功接入PC。成功接入后将看到它的串口号信息:默认为COM3
  • 打开MSYS2的终端窗口,进入一个example工程文件中,例如"cd esp-who/examples/single_chip/recognition_solution";
  • 执行"make defconfig"进行默认配置;
  • 执行"make menuconfig",在Serial flasher config中设置Default serial port设备名称(与第二步查看的设备名称一致,默认 为COM3),保存退出;
  • 执行一下命令更新依赖"pacman ­S mingw­w64­i686­python2­cryptography";
  • 执行一下命令 更新依赖"python2.7 ­m pip install ­­user ­r $IDF_PATH/requirements.txt";
  • 执行make flash,进行软件烧写。

ESP-EYE开发板树莓派开发入门

硬件准备

  • ESP32 开发板
  • USB 数据线
  • 树莓派

软件准备

  • 设置 工具链,用于编译 ESP32 代码;
  • 编译工具 —— CMake 和 Ninja 编译工具,用于编译 ESP32 应用程序;
  • 获取 ESP-IDF 软件开发框架。该框架已经基本包含 ESP32 使用的 API(软件库和源代码)和运行 工具链 的脚本;
  • 安装 C 语言编程(工程)的 文本编辑器,例如 Eclipse。

设置工具链

工具链指一套用于编译代码和应用程序的程序。 为了加快开发进度,您可以直接使用乐鑫提供的预制工具链。请根据您的操作系统,点击下方对应的链接,并按照链接中的指导进行安装。

安装前提
编译ESP-IDF 需要以下软件包:

CentOS 7:

sudo yum install git wget ncurses-devel flex bison gperf python pyserial python-pyelftools cmake ninja-build ccache

Ubuntu 和 Debian:

sudo apt-get install git wget libncurses-dev flex bison gperf python python-click python-pip python-setuptools python-serial python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache

Arch:

sudo pacman -S --needed gcc git make ncurses flex bison gperf python2-pyserial python2-click python2-cryptography python2-future python2-pyparsing python2-pyelftools cmake ninja ccach

注意:使用 ESP-IDF 需要 CMake 3.5 或以上版本。较早版本的 Linux 可能需要升级才能向后移植仓库,或安装 “cmake3” 软件包,而不是安装 “cmake”。

工具链的设置
Linux 版的 ESP32 工具链可以从 Espressif 的网站下载:
64 位 Linux:下载链接
32 位 Linux:下载链接

1.下载完成后,将它解压到 ~/esp 目录:
for 64-bit Linux:

mkdir -p ~/esp
cd ~/esp
tar -xzf ~/Downloads/xtensa-esp32-elf-gcc8_2_0-esp32-2019r1-linux-amd64.tar.gz

for 64-bit Linux:

mkdir -p ~/esp
cd ~/esp
tar -xzf ~/Downloads/xtensa-esp32-elf-gcc8_2_0-esp32-2019r1-linux-i686.tar.gz

2.工具链将会被解压到 ~/esp/xtensa-esp32-elf/ 目录。
要使用工具链,你还需要在 ~/.profile 文件中更新环境变量 PATH。要使 xtensa-esp32-elf 在所有的终端会话中都有效,需要将下面这一行代码添加到你的 ~/.profile 文件中:

export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"

或者,你也可以给上面的命令创建一个别名。这样做的好处是,你仅在需要时才获取工具链,将下面这行代码添加到 ~/.profile 文件中即可:

alias get_esp32='export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"'

然后,当你需要使用工具链时,在命令行输入 get_esp32,然后工具链会自动添加到你的 PATH 中。
注意:如果将 /bin/bash 设置为登录 shell,且同时存在 .bash_profile 和 .profile,则更新 .bash_profile。
3.退出并重新登录以使 .profile 更改生效。运行以下命令来检查 PATH 设置是否正确:

printenv PATH

检查字符串的开头是否包含类似的工具链路径:

$ printenv PATH

如:/home/user-name/esp/xtensa-esp32-elf/bin:/home/user-name/bin:/home/user-name/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
除了 ``/home/user-name``,应该有具体的安装的主路径。
权限问题 /dev/ttyUSB0
使用某些 Linux 版本向 ESP32 烧写固件时,可能会出现 Failed to open port /dev/ttyUSB0 错误消息。此时,可以将当前用户增加至 :ref:` Linux Dialout 组 `
注意:在本文档中,Linux 和 MacOS 操作系统中 ESP-IDF 的默认安装路径为 ~/esp;Windows 操作系统的默认路径为 %userprofile%\esp。您也可以将 ESP-IDF 安装在任何其他路径下,但请注意在使用命令行时进行相应替换。注意,ESP-IDF 不支持带有空格的路径。

获取 ESP-WHO

除了工具链,您还需要供 ESP32 使用的 API(软件库和源代码),具体请见 ESP-WHO 仓库。 请将 ESP-WHO 下载到您的本地。 获取本地副本:打开终端,切换到你要存放 ESP-WHO 的工作目录,使用 git clone 命令克隆远程仓库。
打开终端,后运行以下命令:

cd ~/esp
git clone --recursive https://github.com/espressif/esp-who.git

ESP-WHO 将下载至 ~/esp/esp-who。

设置环境变量

请在您的树莓派上设置以下环境变量,否则无法编译工程。 IDF_PATH 应设置为 ESP-IDF 根目录的路径。
PATH 应包括同一 IDF_PATH 目录下的 tools 目录路径。
您需要在每次重启会话后手动设置。

安装 Python 软件

ESP-IDF 所需的 Python 软件包位于 IDF_PATH/requirements.txt 中。您可以运行以下命令进行安装:

cd ~/esp
python -m pip install --user -r $IDF_PATH/requirements.txt

注意:请注意查询您所使用的 Python 解释器的版本(运行命令 python --version),并根据查询结果将上方命令中的 python 替换为 python2, python2.7,例如: python2.7 -m pip install --user -r $IDF_PATH/requirements.txt

开始创建工程

现在,您可以开始准备开发 ESP32 应用程序了。您可以从 ESP-WHO 中 examples 目录下的 /single_chip/recognition_solution工程开始。

将/single_chip/recognition_solution复制至您本地的 ~/esp 目录下:

cd ~/esp
cp -r $IDF_PATH/examples/single_chip/recognition_solution

ESP-WHO 的 examples 目录下有一系列示例工程,都可以按照上面的方法进行创建。您可以按照上述方法复制并运行其中的任何示例,也可以直接编译示例,无需进行复制。
注意:ESP-IDF 编译系统不支持带有空格的路径。

连接设备

现在,请将您的 ESP32 开发板连接到树莓派,并查看开发板使用的串口。
通常,串口在不同操作系统下显示的名称有所不同:
Linux 操作系统:以 /dev/tty 开始
注意:请记住串口名,您会在下面的步骤中用到。

配置

请进入5.6:开始创建工程 中提到的single_chip/recognition_solution目录,并运行工程配置工具menuconfig。

cd ~/esp/single_chip/recognition_solution
idf.py menuconfig

如果您的默认 Python 版本为 3.0 以上,可能需要运行 python2 idf.py。
Python 2.7 安装程序将尝试配置 Windows,将 .py 文件与 Python 2 关联起来。如果其他程序(比如 Visual Studio Python 工具)曾关联了其他版本 Python,则 idf.py 可能无法正常运行(文件将在 Visual Studio 中打开)。这种情况下,您可以选择每次都运行一遍 C:\Python27\python idf.py,或更改 Windows 的 .py 关联文件设置。
注意:如果出现 idf.py not found(无法找到 idf.py) 错误,请确保 PATH 环境变量设置无误,具体请参考5.4:设置环境变量。如果 tools 目录下没有 idf.py 文件,请确保 CMake 预览的分支正确无误,具体请参考5.3:获取 ESP-WHO。
如果之前的步骤都正确,则会显示下面的菜单:

配置.jpg

编译工程

请使用以下命令,编译烧录工程::

idf.py build

运行以上命令可以编译应用程序和所有 ESP-WHO 组件,接着生成 bootloader、分区表和应用程序二进制文件。

编译.jpg

如果一切正常,编译完成后将生成 .bin 文件。

烧录到设备

请使用以下命令,将刚刚生成的二进制文件烧录至您的 ESP32 开发板:

idf.py -p PORT [-b BAUD] flash

请将 PORT 替换为 ESP32 开发板的串口名称,具体可见 第六步:连接设备。
您还可以将 BAUD 替换为您希望的烧录波特率。默认波特率为 460800。
注意:勾选 flash 选项将自动编译并烧录工程,因此无需再运行 idf.py build。

烧写.jpg

如果一切顺利,烧录完成后,开发板将会复位,应用程序 “recognition_solution”开始运行。

使用方法

开发板工作流程

语音唤醒

开发板上电后,会进入“等待唤醒”状态(红灯常亮、白灯常灭),需要用户通过语音进行唤醒。支持“Hi 乐鑫”唤醒,当用户说出“Hi 乐鑫”的唤醒词后,开发板唤醒并进入“等待联网”状态(红灯闪烁,白灯常灭)。此时,用户可进行联网操作。

连接网络

用户可通过 PC、手机等设备,连接 ESP-EYE 创建的 Wi-Fi 热点。该热点的默认信息如下: 用户名:esp-eye-xxxx(xxxx 为设备 MAC 地址) 密码:无需密码 用户也可通过如下方式,自行设置用户名和密码: 打开终端; 执行"make menuconfig",并按照下图进行设置:

注:用户重新设置 Wi-Fi 热点的用户名和密码后,需要重新进行软件烧录

人脸检测

联网成功后,ESP­EYE会进行“人脸检测”。用户可以打开浏览器,输入地址192.168.4.1/face_stream,在网页上即可看到实时图像信息。此时,开发板红灯熄灭、白灯常亮。

人脸识别

当开发板检测到人脸时,如已存在录入的 Face ID,则开发板将进行“人脸识别”:

  • “人脸识别”匹配成功 -- 开发板红灯闪烁 1 次,网页显示 HELLO ID XXX
  • “人脸识别”匹配失败 -- 开发板无反应,网页显示 "WHO?"

否则,开发板仅进行“人脸检测”。此时,若用户希望使用人脸识别功能,则请首先录入至少一个 Face ID。

人脸录入与删除

在联网成功的前提下,可通过摄像头采集人脸,录入 Face ID。

录入Face ID
  • 用户单击侧面轻触按键,可进入“录入 Face ID”(红灯常亮),网页显示: START ENROLLING;
  • 用户面对摄像头,开始采集人像。每次成功一次采集,开发板将红灯闪烁,网页显示对应的采集次数,比如 THE 1st SAMPLE 等。默认情况下,用户每录入一个 Face ID 需要采集 3 次人像(可配置)。在人像采集过程中,如果红灯长时间未闪烁,建议用户调整姿态和角度,然后再试;
  • 人像采集完成后,开发板红灯常灭,表明已完成录入该 Face ID。此时,网页显示:ENROLLED FACE ID xxx;
  • Face ID 录入成功后,系统将返回“人脸检测”。

目前,ESP-EYE 开发板默认可录入 10 个 Face ID(可配置,具体与用户的 flash 内存分配有关,但建议不要超过 30 个 Face ID)。

删除Face ID
  • 用户双击侧面轻触按键,进入“删除 FACE ID”;
  • 双击后,开发板白灯闪烁,系统将自动删除系统中存在的最早一条 FACE ID,终端显示:XXX ID(S) LEFT。

其它情况

当出现“网络断开”或“联网超时”等情况时,开发板会回到“等待唤醒”状态。

更多

中英文使用教程:树莓派及Windows环境使用教程