用STM32人工智能開發(fā)板打造人臉識(shí)別項(xiàng)目
▲硬件介紹
電源電路:開發(fā)板采用USB 5v供電,從左至右依次是輸入、接地、輸出。此外C2和C3是輸出濾波電容,作用是抑制自激振蕩,如果不接這兩個(gè)電容,通常線性穩(wěn)壓器的輸出會(huì)是個(gè)振蕩波形。
C4是輸入電容,對(duì)于交流電壓整流輸入,它們的第一個(gè)作用是把單向脈動(dòng)電壓轉(zhuǎn)換成直流電壓,在本圖中輸入已經(jīng)是 5V直流電源了,它們的作用就是防止斷電后出現(xiàn)電壓倒置,因此通常輸入電容的容量應(yīng)該大于輸出電容。
如下圖:
USB轉(zhuǎn)串口電路:開發(fā)板采用CH340作串口芯片, CH340 是一個(gè)USB 總線的轉(zhuǎn)接芯片,實(shí)現(xiàn)USB 轉(zhuǎn)串口、USB 轉(zhuǎn)IrDA 紅外或者USB 轉(zhuǎn)打印口。 在串口方式下,CH340 提供常用的MODEM聯(lián)絡(luò)信號(hào),用于為計(jì)算機(jī)擴(kuò)展異步串口,或者將普通的串口設(shè)備直接升級(jí)到USB 總線
Led指示電路:開發(fā)板采用d2作Led指示,高電平點(diǎn)亮。
▲開發(fā)板核心:STM32F407VGT6
- STM32F407VGT6參數(shù):32位Flash MCU,USB,CAN,11個(gè)計(jì)時(shí)器,3個(gè)ADC和13個(gè)通信接口
- 制造商: STMicroelectronics
- 產(chǎn)品種類: ARM微控制器 – MCU
- 核心: ARM Cortex M4
- 數(shù)據(jù)總線寬度: 32 bit
- 最大時(shí)鐘頻率: 168 MHz
- 程序存儲(chǔ)器大小: 1 MB
- 數(shù)據(jù) RAM 大小: 192 kB
- ADC分辨率: 12 bit
- 工作電源電壓: 1.8 V to 3.6 V
- 最大工作溫度: 85 C
- 安裝風(fēng)格: SMD/SMT
- 商標(biāo): STMicroelectronics
- 數(shù)據(jù) Ram 類型: SRAM
- 接口類型: CAN, I2C, I2S, SPI, UART
- 最小工作溫度: – 40 C
- ADC通道數(shù)量: 16
- 輸入/輸出端數(shù)量: 82 I/O
- 計(jì)時(shí)器/計(jì)數(shù)器數(shù)量: 10 Timer
下載接口:swd
SWD,全稱是Serial Wire Debug(串行調(diào)試),它的接線方式較JTAG簡(jiǎn)單,2線式:SWDIO–串行數(shù)據(jù)線、SWDCLK–串行時(shí)鐘線,一般在設(shè)計(jì)PCB時(shí),會(huì)預(yù)留4個(gè)2.54mm的排座,這種接線方式適合引腳少的芯片,充分利用芯片資源
▲以太網(wǎng)通信LAN8720:
LAN8720A 是低功耗的 10/100M 以太網(wǎng) PHY 層芯片, I/O 引腳電壓符合 IEEE802.3-2005 標(biāo)準(zhǔn),支持通過 RMII 接口與以太網(wǎng) MAC 層通信,內(nèi)置 10-BASE-T/100BASE-TX 全雙工傳輸模塊,支持 10Mbps 和 100Mbps。
LAN8720A 可以通過自協(xié)商的方式與目的主機(jī)最佳的連接方式(速度和雙工模式),支持 HPAuto-MDIX 自動(dòng)翻轉(zhuǎn)功能,無需更換網(wǎng)線即可將連接更改為直連或交叉連接。LAN8720A 的主要特點(diǎn)如下:
? 高性能的 10/100M 以太網(wǎng)傳輸模塊
? 支持 RMII 接口以減少引腳數(shù)
? 支持全雙工和半雙工模式
? 兩個(gè)狀態(tài) LED 輸出
? 可以使用 25M 晶振以降低成本
? 支持自協(xié)商模式
? 支持 HP Auto-MDIX 自動(dòng)翻轉(zhuǎn)功能
? 支持 SMI 串行管理接口
? 支持 MAC 接口
LAN8720A 的引腳數(shù)是比較少的,因此,很多引腳具有多個(gè)功能。這里,我們介紹幾個(gè)重要的設(shè)置。
1, PHY 芯片地址設(shè)置
LAN8720A 可以通過 PHYAD0 引腳來配置,該引腳與 RXER 引腳復(fù)用,芯片內(nèi)部自帶下拉電阻,當(dāng)硬復(fù)位結(jié)束后, LAN8720A 會(huì)讀取該引腳電平,作為器件的 SMI 地址,接下拉電阻時(shí)(浮空也可以,因?yàn)樾酒瑑?nèi)部自帶了下拉電阻),設(shè)置 SMI 地址為 0,當(dāng)外接上拉電阻后,可以設(shè)置為 1。
2, nINT/REFCLKO 引腳功能配置
nINT/REFCLKO 引腳可以用作中斷輸出,或者參考時(shí)鐘輸出。通過 LED2( nINTSEL)引腳設(shè)置, LED2 引腳的值在芯片復(fù)位后,被 LAN8720A 讀取,當(dāng)該引腳接上拉電阻(或浮空,內(nèi)置上拉電阻),那么正常工作后, nINT/REFCLKO 引腳將作為中斷輸出引腳(選中 REF_CLKIN 模式)。當(dāng)該引腳接下拉電阻時(shí),正常工作后, nINT/REFCLKO 引腳將作為參考時(shí)鐘輸出(選中 REF_CLK OUT 模式)。
在 REF_CLK IN 模式,外部必須提供 50Mhz 參考時(shí)鐘給 LAN8720A 的 XTAL1( CLKIN)引腳。
在 REF_CLK OUT 模式, LAN8720A 可以外接 25Mhz 石英晶振,通過內(nèi)部倍頻到 50Mhz,然后通過 REFCLKO 引腳,輸出 50Mhz 參考時(shí)鐘給 MAC 控制器。這種方式,可以降低 BOM成本。
3, 1.2V 內(nèi)部穩(wěn)壓器配置
LAN8720A 需要 1.2V 電壓給 VDDCR 供電,不過芯片內(nèi)部集成了 1.2V 穩(wěn)壓器,可以通過LED1(REGOFF)來配置是否使用內(nèi)部穩(wěn)壓器,當(dāng)不使用內(nèi)部穩(wěn)壓器的時(shí)候,必須外部提供 1.2V電壓給 VDDCR 引腳。這里我們使用內(nèi)部穩(wěn)壓器,所以我們?cè)?LED1 接下拉電阻(浮空也行,內(nèi)置了下拉電阻),以控制開啟內(nèi)部 1.2V 穩(wěn)壓器。
▲Marvell 88W8782 SDIO wifi
8782是一款高性能、低功耗、體積小SDIO接口無線模組,符合IEEE802.11N標(biāo)準(zhǔn),并向下兼容IEEE802.11B/G標(biāo)準(zhǔn),支持IEEE 802.11i安全協(xié)議,以及IEEE 802.11e標(biāo)準(zhǔn)服務(wù)質(zhì)量,其極高的兼容性,能夠快速、方便的與無線設(shè)備互相聯(lián)通,支持新的64/128位WEP數(shù)據(jù)加密,支持WPA-PSK/WPA2-PSK,WPA/WPA2安全機(jī)制,無線傳輸速率高達(dá)150M,是普通11B產(chǎn)品的10倍。
2.應(yīng)用領(lǐng)域
- 平板電腦,筆記本電腦,機(jī)頂盒
- 游戲平臺(tái)
- 消費(fèi)電子設(shè)備(電視,DVD播放機(jī),藍(lán)光播放器等)
- 手機(jī)和其他移動(dòng)應(yīng)用
- 影像平臺(tái)(打印機(jī),數(shù)碼相機(jī),數(shù)碼相框)
- 閱讀器
3.主要特性
- 符合802.11n標(biāo)準(zhǔn),高達(dá)150Mbps的無線傳輸速率;
- 高集成單芯片設(shè)計(jì),體積更小,功耗更低;
- 持深度睡眠和待機(jī)模式的低功耗操作;
- 支持客戶端實(shí)施IEEE省電模式;
- 發(fā)射波束形成支持
▲攝像頭OV2640
OV2640攝像頭模塊,采用1/4寸的OV2640百萬高清CMOS傳感器制作,具有高靈敏度、高靈活性、支持JPEG輸出等特點(diǎn),并且可以支持曝光、白平衡、色度、飽和度、對(duì)比度等眾多參數(shù)設(shè)置,支持JPEG/RGB565格式輸出,可以滿足不同場(chǎng)合需求。
▲溫濕度dht11
DHT11是一款有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度傳感器。其精度濕度 -5%RH, 溫度 -2℃,量程濕度20-90%RH, 溫度0~50℃。
▲紅外接口
紅外發(fā)光二極管是一種能發(fā)出紅外線的二極管,通常應(yīng)用于遙控器等場(chǎng)合。常用的紅外發(fā)光二極管其外形和發(fā)光二極管LED相似,發(fā)出紅外光。
管壓降約1.4v,工作電流一般小于20mA。為了適應(yīng)不同的工作電壓,回路中常常串有限流電阻。
▲音頻接口
使用STM32 自帶ADC對(duì)MIC進(jìn)行采樣
▲板載繼電器
繼電器是一種電控制器件,是當(dāng)輸入量(激勵(lì)量)的變化達(dá)到規(guī)定要求時(shí),在電氣輸出電路中使被控量發(fā)生預(yù)定的階躍變化的一種電器。它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路)之間的互動(dòng)關(guān)系。通常應(yīng)用于自動(dòng)化的控制電路中,它實(shí)際上是用小電流去控制大電流運(yùn)作的一種“自動(dòng)開關(guān)”。
▲人臉識(shí)別使用方法
開發(fā)需要具有外網(wǎng)訪問能力,即開發(fā)板需要連接到路由器 WIFI 熱點(diǎn),或者通過網(wǎng)線將開發(fā)板連到路由。接入外部 平臺(tái)的所有代碼都整合在 easy-IoT.rar 中,同樣的我們提供 UCOS2、 UCOS3、FreeRTOS 三個(gè)平臺(tái)的代碼,建議使用 UCOS2 的工程。
編譯代碼前需要將路由器 WIFI 熱點(diǎn)的名字和密碼修改到代碼中, 具體位置為:easyiotappsrchttpdweb_cfg.c 的 default_web_cfg 函數(shù) 中。如下所示:
通常只要填寫路由器熱點(diǎn)名稱和密碼就可以了,開發(fā)板將會(huì)通過 DHCP 自動(dòng)獲得 IP 地址。特殊情況下,如果想 WIFI 網(wǎng)卡或者以太網(wǎng)卡 使用靜態(tài)的 IP 地址,可以將上面對(duì)應(yīng)的 auto_get 值改為 0。
開發(fā)板支持基于百度人工智能 AI 平臺(tái)的圖像以及語音類 AI 應(yīng)用, 同時(shí)也支持接入 OneNet 物聯(lián)網(wǎng)平臺(tái),阿里云物聯(lián)網(wǎng)平臺(tái)。由于開發(fā)版 資源限制(主要是內(nèi)存限制),接入不同平臺(tái)的應(yīng)用不能同時(shí)運(yùn)行, 我們通過一些宏開關(guān)對(duì)將運(yùn)行的某個(gè)應(yīng)用進(jìn)行使能。
這個(gè)配置在源代碼 easyiotconfigapp_cfg.h 中,用戶需要根據(jù)自己想運(yùn) 行的程序把對(duì)應(yīng)的宏設(shè)置為 1。
百度 AI 人工智能平臺(tái)提供語音識(shí)別,語音合成,人臉識(shí)別,物體識(shí)別等 AI 能力,我們只 要以 HTTPS 的方式向平臺(tái)請(qǐng)求服務(wù),就可以得到 AI 分析結(jié)果。在使用人臉識(shí)別功能之 前,也需要在百度平臺(tái)注冊(cè),創(chuàng)建應(yīng)用,并管理人臉庫。
注冊(cè)并登陸百度云平臺(tái),在控制臺(tái)上選擇人臉識(shí)別,進(jìn)入如下界面,可以創(chuàng)建應(yīng)用。
創(chuàng)建的應(yīng)用默認(rèn)只能訪問人臉識(shí)別相關(guān)的 API,這里我們手動(dòng)選上百度語音和圖像識(shí)別相 關(guān)的 API 接口。這樣設(shè)置的好處是我們后面的其他 AI 功能測(cè)試可以復(fù)用這個(gè)應(yīng)用,而不用 再去創(chuàng)建新的應(yīng)用。
創(chuàng)建好應(yīng)用后,百度 AI 平臺(tái)會(huì)給應(yīng)用分配好 API Key 和 Secret Key,如下圖所示,這兩個(gè) 信息非常重要,后面我們將填寫到代碼中。
接下來,需要進(jìn)行人臉庫管理,我們需要將用戶的人臉信息錄入到應(yīng)用中,作為后續(xù)人臉 認(rèn)證的參考。如下圖所示。
在應(yīng)用的人臉庫中新建組,并將組名填寫為 test_group_1(非常重要)。
之后在這個(gè)組中創(chuàng)建用戶,并上傳用戶人臉照片,注意這里的人臉照片清晰,后續(xù)識(shí)別的 準(zhǔn)確度越高。創(chuàng)建用戶名填寫為 test_user_1(非常重要)。
到這里應(yīng)用和人臉庫管理就結(jié)束了。
我們把應(yīng)用的 API Key 和 Secret Key 填寫到代碼 baidu-aibaidu_ai_face.c 對(duì)應(yīng)的宏中,如下 圖所示。
同時(shí),將人臉識(shí)別應(yīng)用對(duì)應(yīng)的宏打開,如下,重新編譯并下載代碼到開發(fā)板。
人臉識(shí)別應(yīng)用主要實(shí)現(xiàn)為一個(gè)人臉識(shí)別控制繼電器開關(guān)的功能,測(cè)試時(shí),將開發(fā)板攝像頭 對(duì)準(zhǔn)人臉(人臉相隔 40~60cm),如果開發(fā)板檢查到當(dāng)前人臉和人臉庫中的匹配,則會(huì)使 繼電器閉合,否則斷開繼電器。用戶可以在繼電器上接入小臺(tái)燈來實(shí)現(xiàn)臺(tái)燈的實(shí)時(shí)人臉控 制。
更多的創(chuàng)客開發(fā)板,開發(fā)套件可以直接購(gòu)買啦,只需要你關(guān)注電子芯吧客微信公眾號(hào),點(diǎn)擊菜單欄“硬件商城”!點(diǎn)擊下方鏈接了解產(chǎn)品詳情~