一款基于STM32的智能滅火機(jī)器人設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
本設(shè)計(jì)的研究初衷來源于滅火機(jī)器人比賽,比賽場地將采用國際標(biāo)準(zhǔn)比賽場地,比賽場地平面圖如圖1所示。比賽場地的墻壁高為33cm,厚為2 cm,由木頭做成。墻壁刷成白色。比賽場地的地板是被漆成黑色的光滑木制板。場地中所有的走廊和門口都是46 cm的開口,一個(gè)白色的2.5 cm寬的白色帶子或白漆印跡表示房間人口,在距離火焰30 cm的圓上有一條2.5 cm寬的白線。根據(jù)要求,該機(jī)器人要在模擬的四室一廳房間內(nèi)完成發(fā)現(xiàn)并確認(rèn)火源、滅火和回家(回到出發(fā)點(diǎn)H)等功能。
本文以STM32F103嵌入式芯片為核心,完成滅火機(jī)器人的軟、硬件設(shè)計(jì)。當(dāng)機(jī)器人啟動(dòng)后,前部和左右的紅外測距傳感器為機(jī)器人的避障功能和沿墻走方式 提供參考信號。機(jī)器人的運(yùn)動(dòng)速度以及運(yùn)動(dòng)方向由處理器輸出的PWM信號來控制?;鹧?zhèn)鞲衅鳈z測房間內(nèi)火源,發(fā)現(xiàn)火源后機(jī)器人朝向火源方向行走,底部的灰度 傳感器檢測地面白線判斷機(jī)器人是否靠近火源,控制機(jī)器人暫停,啟動(dòng)風(fēng)扇滅火,滅火后回家。
1 系統(tǒng)硬件設(shè)計(jì)
根據(jù)設(shè)計(jì)要求,本系統(tǒng)主要由STM32F103、傳感器模塊、直流電機(jī)驅(qū)動(dòng)模塊、風(fēng)扇模塊、電源模塊等構(gòu)成。系統(tǒng)框圖如圖2所示。
1.1 機(jī)器人整體布局
機(jī)器人左右兩輪分別用兩個(gè)轉(zhuǎn)速和力矩完全相同的直流電機(jī)進(jìn)行驅(qū)動(dòng),機(jī)器人前部裝一個(gè)萬向輪,這樣,可以輕松地使機(jī)器人改變運(yùn)行方向和運(yùn)動(dòng)速度。機(jī)器人前面裝有風(fēng)扇、火焰?zhèn)鞲衅骱图t外傳感器,頭部底側(cè)裝有灰度傳感器,左右兩側(cè)各有3個(gè)紅外測距傳感器,兩側(cè)的傳感器可以分別測量不同范圍內(nèi)的障礙物距離。
1.2 微控制器模塊
系統(tǒng)傳感器模塊要不斷采集環(huán)境信息,要求控制芯片有較高的實(shí)時(shí)處理能力和較高的處理速度,因此,系統(tǒng)選用嵌入式芯片STM32F103該芯片使用ARM先進(jìn)架構(gòu)的Cortex—M3內(nèi)核,CPU頻率可達(dá)72 MHz,具有兩個(gè)16位ADC用于高速采集數(shù)據(jù)采集,15個(gè)I/O端口用于連接外部設(shè)備。I/O端口作為輸入口讀取檢測端口和傳感器組的數(shù)據(jù),作為輸出端口用于驅(qū)動(dòng)電機(jī)和風(fēng)扇。4個(gè)PWM定時(shí)器用于驅(qū)動(dòng)大功率直流電機(jī)。芯片具有速度快、功耗低、可靠性高、實(shí)時(shí)性強(qiáng)等優(yōu)點(diǎn)。
1.3 傳感器模塊
傳感器模塊主要由紅外測距傳感器、火焰?zhèn)鞲衅骱突叶葌鞲衅魅惤M成。
紅外測距傳感器主要檢測障礙物(墻壁),防止機(jī)器人撞墻。本設(shè)計(jì)采用光電式紅外傳感器E18-D80NK,它是集紅外發(fā)射模塊和紅外接收模塊于一體的數(shù)字傳感器,有效檢測范圍為3~80 cm可調(diào),指向角≤15°。根據(jù)比賽場地特點(diǎn),本設(shè)計(jì)采用7個(gè)此類傳感器,這樣的傳感器布局可以采集所需的各種信號,準(zhǔn)確測障,靈活調(diào)整運(yùn)行方向,保證機(jī)器人運(yùn)動(dòng)過程中不碰壁。傳感器的分布如圖3所示。
火焰?zhèn)鞲衅饔脕頇z測火源,尋找火源位置。采用5路火焰?zhèn)鞲衅鹘M成火焰?zhèn)鞲衅鹘M,傳感器組的設(shè)計(jì)如圖4所示,這種結(jié)構(gòu)可以探測180°范圍內(nèi)火焰信號源。機(jī)器人在房間門口就可檢測房間內(nèi)是否有火源,若無火源則直接退出該房間循跡下一個(gè)房間,大量節(jié)省了時(shí)間。
地面灰度傳感器安裝于機(jī)器人前部的底座上,用于檢測地面反射光線的強(qiáng)度。本設(shè)計(jì)選用QTI灰度傳感器,該器件可作為紅外接收器和發(fā)射器,內(nèi)嵌日光過濾器,可防止日光的干擾。其數(shù)字信號輸出主要用來檢測比賽場地中火源周圍的白線,控制機(jī)器人在有火源的白色圓弧處暫停。
1.4 電機(jī)驅(qū)動(dòng)模塊
為了控制機(jī)器人的運(yùn)動(dòng)速度和方向,設(shè)計(jì)了一種H橋驅(qū)動(dòng)電路。該電路以IRF4905和IRF3205 MOS管為開關(guān)元件,以IRF1210為柵極驅(qū)動(dòng)芯片。主控芯片產(chǎn)生的PWM信號控制驅(qū)動(dòng)芯片,進(jìn)而控制機(jī)器人左右輪的轉(zhuǎn)速和萬向輪的轉(zhuǎn)向。驅(qū)動(dòng)電路的電路圖如圖5所示。滅火風(fēng)扇的電機(jī)采用大功率MOs驅(qū)動(dòng)器,由伺服電機(jī)輸出端的信號驅(qū)動(dòng)。
1.5 其他模塊
為保證系統(tǒng)正常工作和順利滅火,系統(tǒng)還包括電源模塊、時(shí)鐘模塊和風(fēng)扇模塊。以電源模塊為例,電源模塊通過專用的電源轉(zhuǎn)換芯片7805產(chǎn)生傳感器所需的5 V電源,通過LM1117產(chǎn)生主控制器所需的3.3 V電源。電源模塊如圖6所示。
2 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件采用C語言編程,主要包括主程序、運(yùn)動(dòng)控制程序、滅火程序和回家程序等部分,主要用到的算法有沿墻走算法和趨光走算法。在程序設(shè)計(jì)中,通過傳感器采集信息,按照沿墻走算法控制機(jī)器人的行動(dòng),當(dāng)發(fā)現(xiàn)火源后按照趨光走算法迅速、準(zhǔn)確地靠近火源、滅火并回家。程序運(yùn)行中應(yīng)避免機(jī)器人碰撞障礙物(墻壁)。主程序控制流程圖如圖7所示。
機(jī)器人運(yùn)動(dòng)控制程序采用沿墻走算法,由ADC采樣程序、電機(jī)開啟、電機(jī)停止、電機(jī)速度和方向控制程序、延時(shí)程序等部分構(gòu)成。通過紅外測距傳感器采集的信息,全方位地判斷障礙物的情況,控制機(jī)器人的下一步運(yùn)動(dòng)方式,主要有直走、后退、左微調(diào)、右微調(diào)、左轉(zhuǎn)彎、右轉(zhuǎn)彎等。
機(jī)器人滅火程序主要完成火源的尋找、確認(rèn)以及滅火任務(wù)并回家。在機(jī)器人檢測到房間內(nèi)有火源時(shí),采用趨光走算法,根據(jù)火焰?zhèn)鞲衅鹘M的狀態(tài),調(diào)整機(jī)器人運(yùn)動(dòng)角度,使其直面火源方向前進(jìn)。當(dāng)檢測到房間內(nèi)火源周圍白線時(shí),停止運(yùn)動(dòng),開啟風(fēng)扇滅火;當(dāng)檢測不到火源時(shí),滅火成功。最后,啟動(dòng)回家模式,該模式采用沿墻走避障算法。
該軟件系統(tǒng)具有很大的靈活性,因?yàn)楦鞒绦蚴欠帜K設(shè)計(jì)的,當(dāng)比賽規(guī)則改變時(shí),只需通過主程序調(diào)用不同的模塊即可完成新的任務(wù)。
3 結(jié)果與分析
對本系統(tǒng)進(jìn)行性能測試,測試中首先對電機(jī)進(jìn)行測試,電機(jī)在正常工作電壓下,調(diào)整軟件系統(tǒng)的PWM控制值,可以實(shí)現(xiàn)電機(jī)的調(diào)速、直行前進(jìn)、后退、左微轉(zhuǎn)、右微轉(zhuǎn)、左轉(zhuǎn)90°和右轉(zhuǎn)90°等功能。然后對機(jī)器人在比賽場地進(jìn)行滅火實(shí)驗(yàn),共進(jìn)行30次實(shí)驗(yàn),隨機(jī)地把點(diǎn)燃的蠟燭放在各個(gè)房間的指定位置。機(jī)器人都能順利地找到火源,滅火回家且所用時(shí)間均在1 min之內(nèi),試驗(yàn)中沒有出現(xiàn)碰壁現(xiàn)象。此數(shù)據(jù)表明機(jī)器人能平穩(wěn)地按照靠墻走原則完成任務(wù)。整個(gè)系統(tǒng)具有很快的響應(yīng)速度、較高的穩(wěn)定性和較強(qiáng)的抗干擾能力。