蘭州石化職業(yè)技術學院電子電氣工程學院 任 聰 洪梓榕
本文設計了一款基于STM32的智能迎賓機器人控制系統(tǒng)。該系統(tǒng)使用STM32芯片作為主控芯片,通過語音模塊、周邊環(huán)境檢測模塊、人臉識別模塊的配合,實現(xiàn)了自主迎賓、路徑自主規(guī)劃、面部及語言識別、人機對話、智能跟隨等功能。實際測試分析結果表明,系統(tǒng)達到了預期設計的目標,具有低成本、低功耗、高性能的特點。
目前,迎賓機器人的控制系統(tǒng)存在功能單一、調試不便、后期維護困難等問題,本文針對以上問題利用模塊化編程思想,設計了一種基于物聯(lián)網(wǎng)技術的迎賓機器人系統(tǒng),通過將嵌入式系統(tǒng)、傳感器應用與物聯(lián)網(wǎng)技術進行有機結合,為迎賓機器人的控制系統(tǒng)的設計提供了一種新思路。
智能迎賓系統(tǒng)利用多種傳感設備實現(xiàn)周圍游客目的地信息的獲取,利用STM32單片機將采集的信息進行分析,通過WIFI、ZigBee等模塊將信息傳輸至驅動機構,通過機器人將游客到達相應的地點。
圖1 系統(tǒng)總體框架
根據(jù)本系統(tǒng)具有實時性強、外設多、需具備網(wǎng)絡通信功能等特點,選擇了STM32F103ZET6芯片作為核心處理器,其工作電壓范圍為2.0-3.6伏。它集成了豐富的片內資源,包括256K至512K字節(jié)的閃存程序存儲器,高達64K字節(jié)的SRAM,3個12位us級的模數(shù)轉換器,轉換范圍為0至3.6伏,多達112個快速I/O口、11個定時器、13個通信接口等,有效的簡化了外圍電路的設計以及硬件設計的成本。
系統(tǒng)采用的是科大訊飛AIUI評估板,將游客提出的問題與云端指令庫進行對比,隨后將云端指令庫中的信息發(fā)送至開發(fā)板,開發(fā)板進行指令與語音的轉換,實現(xiàn)游客與機器人之間的對話。AIUI評估板如圖2所示。
圖2 AIUI評估板
檢測模塊由人體感應模塊、紅外測距傳感器、超聲波傳感器組成。HC-SR501人體感應模塊的信號是數(shù)字信號,信號輸出端口可以直接連接到STM32單片機。GP2D12紅外測距傳感器的信號是模擬信號,可通過STM32單片機的A/D轉換模塊處理后觸發(fā)機器人相應操作。
HC-SR501人體感應模塊,是基于紅外線技術的自動控制模塊,通過熱釋電效應探測紅外輻射,因人體溫度與環(huán)境溫度有所差別,當人體進入檢測區(qū)時,傳感器有輸出;若人體進入檢測區(qū)不動,則溫度沒有變化,傳感器沒有輸出;所以這種傳感器可以用來檢測人體活動的傳感。人體傳感模塊通過單片機的I/O口與其連接,傳感器模塊默認輸出低電平。當人體進入傳感器的感應區(qū)域時,傳感器的輸出端將會輸出高電平,否則輸出端將輸出低電平。當單片機接收到從低電平到高電平的脈沖變化時,就會觸發(fā)相應的程序,使機器人進行相應的動作。
GP2D12紅外測距傳感器,集成紅外線發(fā)射管與PSD(Position Sensing Device位置敏感檢測裝置),利用光的反射性質,采用三角測量原理,通過紅外發(fā)射管發(fā)出紅外光束,當紅外光束遇到障礙物后會被反射回來,落到PSD上,因此在空間中構成了一個等腰三角形,我們通過借助PSD所獲得的相應數(shù)據(jù)可以測得三角形的底,因為等腰三角形的兩個底角是固定的,所以可通過發(fā)射管發(fā)出的光束與來PSD所接收到的光束的位置來確定此時的三角形的底邊,之后我們通過三角形的底邊以及底角的大小來推算出高,也就是我們所要的距離。由于傳感器模塊輸出信號微弱,所以需設計放大電路,通過放大電路對傳感器輸出信號進行放大,之后將信號發(fā)送至STM32單片機的A/D轉換模塊,進行模擬量與數(shù)數(shù)字量之間的轉換后得到距離,隨后觸發(fā)相應程序使得機器人與游客、障礙物保持安全距離、避免出現(xiàn)故障時誤傷到游客。三角測量原理如圖3所示。
圖3 三角測量原理
OpenMV是一款體積小、功耗低、成本低、能夠輕松完成機器視覺及圖像采集處理的傳感器。并且能夠運用高級語言Python所編寫的視覺識別算法對其相應的操作,使其能夠對復雜的圖像進行處理并輸出我們所需的數(shù)據(jù)。
本系統(tǒng)利用OpenMV,通過LBP特征提取算法,進行人臉檢測及人臉追蹤。將OpenMV提取到的人臉信息進行解析,發(fā)送至主控板,通過主控板控制相應的器件,實現(xiàn)面向游客講解景區(qū)內容。OpenMV攝像頭如圖4所示,人臉識別部分代碼如圖5所示。
圖4 OpenMV攝像頭
圖5 人臉識別部分代碼
基于程序模塊化的設計理念,本系統(tǒng)設計了主程序、各功能子程序以及HMI程序。主程序流程如圖6所示,HMI程序流程如圖7所示。
圖6 主程序流程
圖7 HMI程序流程
各功能子程序主要包括初始化子程序、數(shù)據(jù)采集子程序、WIFI無線通信子程序等。系統(tǒng)上電后,先對整個系統(tǒng)程序進行初始化,首先將單片機的I/O口的工作模式,串口的波特率等參數(shù),以及NVIC和EXTI控制器的工作狀態(tài)進行相應的設置,隨后對系統(tǒng)所用到的各種傳感器(如:紅外測距傳感器、人體感應傳感器、超聲波傳感器等),液晶(LCD)顯示屏以及WIFI通信模塊等外部連接設備進行初始化操作,使其整個系統(tǒng)進入待機狀態(tài)。
本系統(tǒng)所用到的有些傳感器采集的是模擬信號,模擬信號是采用以下方式來處理的,首先是通過STM32單片機上的12位模數(shù)(A/D)轉換器進行轉換;之后將轉換完成后的數(shù)字量依據(jù)本系統(tǒng)所采用自主設定的通信協(xié)議,按照相應的數(shù)據(jù)格式完成與STM32單片機之間的信息傳遞。
信息的處理及數(shù)據(jù)的獲取是在相應的功能子程序里的函數(shù)里進行,之后在主程序里進行調用,這樣不僅可以實現(xiàn)數(shù)據(jù)在一定的周期里不斷被更新還便于后期程序的調試。
為了驗證系統(tǒng)各部分功能是否正常,對系統(tǒng)進行了整體測試。在機器人初始化完成后,若對機器人說出“叮咚叮咚”則是喚醒機器人,之后可以對機器人進行相關問題的詢問以及相關指令的傳達,機器人則會根據(jù)所獲取的信息進行處理并進行相應操作。同時也可通過LCD顯示屏進行機器人的相應操作。
在機器人運行過程中,當感知到障礙物時且紅外測距傳感器的數(shù)值變化范圍大于程序閾值時,機器人會根據(jù)實時情況對障礙物進行規(guī)避,防止發(fā)生一些不必要的失誤。OpenMV測試程序如圖8所示,語音模塊手機端測試程序如圖9所示。
圖8 OpenMV測試程序
圖9 語音模塊手機端測試程序
本系統(tǒng)通過STM32單片機與物聯(lián)網(wǎng)技術、WIFI通信技術的有機結合實現(xiàn)了一種迎賓機器人的控制系統(tǒng)。該系統(tǒng)可以實現(xiàn)路線自主規(guī)劃、面部及語言識別、人機對話、智能追隨等功能。可以使機器人能夠獨立完成知識查詢、路線規(guī)劃、場景介紹、引導游覽等迎賓互動任務。本系統(tǒng)通過對于不同場景的不同情況進行功能測試分析,最終結果表明,本系統(tǒng)實現(xiàn)了成本低、性能高、穩(wěn)定性好的迎賓機器人控制系統(tǒng)。