用STM32人工智能开发板打造人脸识别项目

用STM32人工智能开发板打造人脸识别项目

▲硬件介绍

电源电路:开发板采用USB 5v供电,从左至右依次是输入、接地、输出。此外C2和C3是输出滤波电容,作用是抑制自激振荡,如果不接这两个电容,通常线性稳压器的输出会是个振荡波形。

  

C4是输入电容,对于交流电压整流输入,它们的第一个作用是把单向脉动电压转换成直流电压,在本图中输入已经是 5V直流电源了,它们的作用就是防止断电后出现电压倒置,因此通常输入电容的容量应该大于输出电容。

如下图:

用STM32人工智能开发板打造人脸识别项目

USB转串口电路:开发板采用CH340作串口芯片, CH340 是一个USB 总线的转接芯片,实现USB 转串口、USB 转IrDA 红外或者USB 转打印口。 在串口方式下,CH340 提供常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB 总线

用STM32人工智能开发板打造人脸识别项目

Led指示电路:开发板采用d2作Led指示,高电平点亮。

用STM32人工智能开发板打造人脸识别项目

▲开发板核心:STM32F407VGT6

  • STM32F407VGT6参数:32位Flash MCU,USB,CAN,11个计时器,3个ADC和13个通信接口
  • 制造商: STMicroelectronics
  • 产品种类: ARM微控制器 – MCU
  • 核心: ARM Cortex M4
  • 数据总线宽度: 32 bit
  • 最大时钟频率: 168 MHz
  • 程序存储器大小: 1 MB
  • 数据 RAM 大小: 192 kB
  • ADC分辨率: 12 bit
  • 工作电源电压: 1.8 V to 3.6 V
  • 最大工作温度: 85 C
  • 安装风格: SMD/SMT
  • 商标: STMicroelectronics
  • 数据 Ram 类型: SRAM
  • 接口类型: CAN, I2C, I2S, SPI, UART
  • 最小工作温度: – 40 C
  • ADC通道数量: 16
  • 输入/输出端数量: 82 I/O
  • 计时器/计数器数量: 10 Timer

用STM32人工智能开发板打造人脸识别项目

下载接口:swd

SWD,全称是Serial Wire Debug(串行调试),它的接线方式较JTAG简单,2线式:SWDIO–串行数据线、SWDCLK–串行时钟线,一般在设计PCB时,会预留4个2.54mm的排座,这种接线方式适合引脚少的芯片,充分利用芯片资源

用STM32人工智能开发板打造人脸识别项目

▲以太网通信LAN8720:

LAN8720A 是低功耗的 10/100M 以太网 PHY 层芯片, I/O 引脚电压符合 IEEE802.3-2005 标准,支持通过 RMII 接口与以太网 MAC 层通信,内置 10-BASE-T/100BASE-TX 全双工传输模块,支持 10Mbps 和 100Mbps。

LAN8720A 可以通过自协商的方式与目的主机最佳的连接方式(速度和双工模式),支持 HPAuto-MDIX 自动翻转功能,无需更换网线即可将连接更改为直连或交叉连接。LAN8720A 的主要特点如下:

 高性能的 10/100M 以太网传输模块

 支持 RMII 接口以减少引脚数

 支持全双工和半双工模式

 两个状态 LED 输出

 可以使用 25M 晶振以降低成本

 支持自协商模式

 支持 HP Auto-MDIX 自动翻转功能

 支持 SMI 串行管理接口

 支持 MAC 接口

LAN8720A 的引脚数是比较少的,因此,很多引脚具有多个功能。这里,我们介绍几个重要的设置。

1, PHY 芯片地址设置

LAN8720A 可以通过 PHYAD0 引脚来配置,该引脚与 RXER 引脚复用,芯片内部自带下拉电阻,当硬复位结束后, LAN8720A 会读取该引脚电平,作为器件的 SMI 地址,接下拉电阻时(浮空也可以,因为芯片内部自带了下拉电阻),设置 SMI 地址为 0,当外接上拉电阻后,可以设置为 1。

2, nINT/REFCLKO 引脚功能配置

nINT/REFCLKO 引脚可以用作中断输出,或者参考时钟输出。通过 LED2( nINTSEL)引脚设置, LED2 引脚的值在芯片复位后,被 LAN8720A 读取,当该引脚接上拉电阻(或浮空,内置上拉电阻),那么正常工作后, nINT/REFCLKO 引脚将作为中断输出引脚(选中 REF_CLKIN 模式)。当该引脚接下拉电阻时,正常工作后, nINT/REFCLKO 引脚将作为参考时钟输出(选中 REF_CLK OUT 模式)。

在 REF_CLK IN 模式,外部必须提供 50Mhz 参考时钟给 LAN8720A 的 XTAL1( CLKIN)引脚。

在 REF_CLK OUT 模式, LAN8720A 可以外接 25Mhz 石英晶振,通过内部倍频到 50Mhz,然后通过 REFCLKO 引脚,输出 50Mhz 参考时钟给 MAC 控制器。这种方式,可以降低 BOM成本。

3, 1.2V 内部稳压器配置

LAN8720A 需要 1.2V 电压给 VDDCR 供电,不过芯片内部集成了 1.2V 稳压器,可以通过LED1(REGOFF)来配置是否使用内部稳压器,当不使用内部稳压器的时候,必须外部提供 1.2V电压给 VDDCR 引脚。这里我们使用内部稳压器,所以我们在 LED1 接下拉电阻(浮空也行,内置了下拉电阻),以控制开启内部 1.2V 稳压器。

用STM32人工智能开发板打造人脸识别项目

▲Marvell 88W8782 SDIO wifi

8782是一款高性能、低功耗、体积小SDIO接口无线模组,符合IEEE802.11N标准,并向下兼容IEEE802.11B/G标准,支持IEEE 802.11i安全协议,以及IEEE 802.11e标准服务质量,其极高的兼容性,能够快速、方便的与无线设备互相联通,支持新的64/128位WEP数据加密,支持WPA-PSK/WPA2-PSK,WPA/WPA2安全机制,无线传输速率高达150M,是普通11B产品的10倍。

2.应用领域

  • 平板电脑,笔记本电脑,机顶盒

  • 游戏平台

  • 消费电子设备(电视,DVD播放机,蓝光播放器等)

  • 手机和其他移动应用

  • 影像平台(打印机,数码相机,数码相框)

  • 阅读器

3.主要特性

  • 符合802.11n标准,高达150Mbps的无线传输速率;

  • 高集成单芯片设计,体积更小,功耗更低;

  • 持深度睡眠和待机模式的低功耗操作;

  • 支持客户端实施IEEE省电模式;

  • 发射波束形成支持

用STM32人工智能开发板打造人脸识别项目

▲摄像头OV2640

OV2640摄像头模块,采用1/4寸的OV2640百万高清CMOS传感器制作,具有高灵敏度、高灵活性、支持JPEG输出等特点,并且可以支持曝光、白平衡、色度、饱和度、对比度等众多参数设置,支持JPEG/RGB565格式输出,可以满足不同场合需求。

用STM32人工智能开发板打造人脸识别项目

▲温湿度dht11

DHT11是一款有已校准数字信号输出的温湿度传感器。其精度湿度 -5%RH, 温度 -2℃,量程湿度20-90%RH, 温度0~50℃。

用STM32人工智能开发板打造人脸识别项目

▲红外接口

红外发光二极管是一种能发出红外线的二极管,通常应用于遥控器等场合。常用的红外发光二极管其外形和发光二极管LED相似,发出红外光。

管压降约1.4v,工作电流一般小于20mA。为了适应不同的工作电压,回路中常常串有限流电阻。

用STM32人工智能开发板打造人脸识别项目

▲音频接口

使用STM32 自带ADC对MIC进行采样

用STM32人工智能开发板打造人脸识别项目

▲板载继电器

继电器是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。

用STM32人工智能开发板打造人脸识别项目

▲人脸识别使用方法

开发需要具有外网访问能力,即开发板需要连接到路由器 WIFI 热点,或者通过网线将开发板连到路由。接入外部 平台的所有代码都整合在 easy-IoT.rar 中,同样的我们提供 UCOS2、 UCOS3、FreeRTOS 三个平台的代码,建议使用 UCOS2 的工程。

编译代码前需要将路由器 WIFI 热点的名字和密码修改到代码中, 具体位置为:easyiotappsrchttpdweb_cfg.c 的 default_web_cfg 函数 中。如下所示:

用STM32人工智能开发板打造人脸识别项目

通常只要填写路由器热点名称和密码就可以了,开发板将会通过 DHCP 自动获得 IP 地址。特殊情况下,如果想 WIFI 网卡或者以太网卡 使用静态的 IP 地址,可以将上面对应的 auto_get 值改为 0。

开发板支持基于百度人工智能 AI 平台的图像以及语音类 AI 应用, 同时也支持接入 OneNet 物联网平台,阿里云物联网平台。由于开发版 资源限制(主要是内存限制),接入不同平台的应用不能同时运行, 我们通过一些宏开关对将运行的某个应用进行使能。

这个配置在源代码 easyiotconfigapp_cfg.h 中,用户需要根据自己想运 行的程序把对应的宏设置为 1。

用STM32人工智能开发板打造人脸识别项目

百度 AI 人工智能平台提供语音识别,语音合成,人脸识别,物体识别等 AI 能力,我们只 要以 HTTPS 的方式向平台请求服务,就可以得到 AI 分析结果。在使用人脸识别功能之 前,也需要在百度平台注册,创建应用,并管理人脸库。

注册并登陆百度云平台,在控制台上选择人脸识别,进入如下界面,可以创建应用。

用STM32人工智能开发板打造人脸识别项目

创建的应用默认只能访问人脸识别相关的 API,这里我们手动选上百度语音和图像识别相 关的 API 接口。这样设置的好处是我们后面的其他 AI 功能测试可以复用这个应用,而不用 再去创建新的应用。

用STM32人工智能开发板打造人脸识别项目

创建好应用后,百度 AI 平台会给应用分配好 API Key 和 Secret Key,如下图所示,这两个 信息非常重要,后面我们将填写到代码中。

用STM32人工智能开发板打造人脸识别项目

接下来,需要进行人脸库管理,我们需要将用户的人脸信息录入到应用中,作为后续人脸 认证的参考。如下图所示。

用STM32人工智能开发板打造人脸识别项目

在应用的人脸库中新建组,并将组名填写为 test_group_1(非常重要)。

之后在这个组中创建用户,并上传用户人脸照片,注意这里的人脸照片清晰,后续识别的 准确度越高。创建用户名填写为 test_user_1(非常重要)。

到这里应用和人脸库管理就结束了。

我们把应用的 API Key 和 Secret Key 填写到代码 baidu-aibaidu_ai_face.c 对应的宏中,如下 图所示。

用STM32人工智能开发板打造人脸识别项目

同时,将人脸识别应用对应的宏打开,如下,重新编译并下载代码到开发板。

人脸识别应用主要实现为一个人脸识别控制继电器开关的功能,测试时,将开发板摄像头 对准人脸(人脸相隔 40~60cm),如果开发板检查到当前人脸和人脸库中的匹配,则会使 继电器闭合,否则断开继电器。用户可以在继电器上接入小台灯来实现台灯的实时人脸控 制。

更多的创客开发板,开发套件可以直接购买啦,只需要你关注电子芯吧客微信公众号,点击菜单栏“硬件商城”!点击下方链接了解产品详情~

相关新闻

联系我们
联系我们
在线咨询
分享本页
返回顶部