沐鸣娱乐


        用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),如果开发板检查到当前人脸和人脸库中的匹配,则会使 继电器闭合 ,否则断开继电器 。用户可以在继电器上接入小台灯来实现台灯的实时人脸控 制。

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

        相关新闻

        联系我们
        联系我们
        分享本页
        返回顶部

          XML地图