劉鑫 項瑜茜
摘要:本文設計了一種基于STM32 單片機的多功能掃地機器人,介紹了智能掃地機器人機械結構設計和控制系統設計,使用超聲波、環境監測模塊實現避障和環境檢測,邊刷和吸塵電機進行清潔,使用STM32 單片機作為控制芯片,有自主導航和手機APP兩種控制模式,掃地機器人在行走過程中采用混合路徑規劃技術,完成運動軌跡的規劃,同時可以接收手機APP模塊的指令,根據指令作出相應的反應。
關鍵詞:STM32單片機;掃地機器人;APP 控制;WIFI連接
1 引言
智能掃地機器人的出現讓人們從繁重的家庭清潔任務中解脫出來,從而可以將精力轉移到 更重要的領域中如何在保證清掃質量的前提下更有效率地完成指定的清掃任務,是掃地機器人面臨的重要問題。。改進掃地機器人的機械結構及優化其控制技術,對市場化的掃地機器人具有重大的研究意義[1]。目前智能掃地機器人的路徑全覆蓋規劃方法主要包括隨機覆蓋法、單元域分割法、模板匹配法等。單一的使用這些方法,存在著低覆蓋率及高重復率的缺點。為了避免單一路徑規劃帶來的缺陷,本設計提供了自主導航和手機APP遙控兩種控制模式:自主導航采用混合路徑規劃技術,完成運動軌跡的規劃[2],精準定位家居環境,實現全面有序清掃;APP遙控運用WIFI進行連接控制,使用更加方便。掃地拖地功能模塊獨立設計,方便更換,清潔效果良好。
2 掃地機器人的系統設計
掃地機器人的主要構件有:行走裝置、清掃裝置、垃圾收集裝置、傳感檢測裝置、電源裝置、WiFi裝置等,采用混合路徑規劃技術[3],完成運動軌跡的規劃,通過手機APP選擇不同的模式進行工作,圖1為掃地機器人系統總體框圖。供電模塊電源采用5200mAh的4S-14.8規格的航模電池,供機器人所有模塊用電,電源模塊連接電機驅動、單片機模塊以及LCD1602顯示模塊。主體模塊由傳感器、STM32控制器以及動力裝置組成。掃地模塊由清掃垃圾的毛刷、吸塵集塵結構、電機電路組成,拖地模塊,配備可拆卸拖布,加裝一個蠕動泵來控制出水量,對地面進行清潔。
2.1 掃地清潔模塊
為了避免其在轉彎的過程中卡住,該掃地機器人外形采用市面上常見的圓形結構。在掃地機器人的底盤的靠前的方位,設計一個由直流減速電機驅動的單向旋轉掃帚,工作時電機時刻旋轉。掃帚是一個圓柱體形狀的毛刷機構,盡可能的靠近地面,選定合適的電機旋轉速度帶動掃帚。同時采取分離式吸塵技術[4],引入抽風機建立低壓環境,一方面,模仿簸箕加掃帚的清掃組合對付較大垃圾,輔助收集較小的垃圾;另一方面,使用下風道和濾紙組合,增強單位面積的吸塵能力,完成清掃灰塵及顆粒狀垃圾的工作,并將垃圾清掃到垃圾收集裝置中存儲。
2.2 拖地清潔模塊
拖地模塊通過加裝一個蠕動泵控制出水量,保證均勻出水,拖布被均勻潤濕的同時可以控制使用水的量,從而減少拖地的次數。拖地模塊由亞克力制作底板、3D打印制作支撐、外部防護、水箱、水泵構成。在抹布和底板中間附著帶有出水小孔的軟管來潤濕抹布,控制水箱閥門選擇干拖或濕拖,完成不同的任務需求,拖布可根據地板材質更換,易于拆卸清洗。
2.2 垃圾收集模塊
垃圾收集裝置安裝于掃地機器人底部,其前端有一塊緊貼在地面上的薄的刀片狀塑料,緊挨清掃裝置的后方,便于及時將垃圾掃入收集裝置中,避免垃圾從下方漏過,有效的保證行進路線上垃圾的清掃效率。垃圾收納盒配有傳感器,當垃圾盒雜物過多將發出報警。
2.3 動力移動模塊
單片機微處理器使用 PWM 控制方式,通過 L298N 電機驅動模塊實現電機驅動,來控制電機轉速和轉向。使用兩個帶光電編碼器的直流減速電機放置于掃地車的后方,提供足夠大的驅動力讓掃地車前進、后退和轉彎。并采用防滑輪胎避免小車打滑。通過光電編碼器記錄并計算小車行進路程,清楚地知道其位置狀態信息。前面使用兩個固定方向的小輪,盡可能的使小車能夠趨于直線行駛。通過一個電機停轉一個電機轉動的方式實現差速轉彎,利用光電編碼器即可實現任意角度轉向。
3 掃地機器人功能實現
3.1 傳感器感知功能
系統共設置4個傳感器構建掃地機器人的基本“視覺”系統,兩個超聲波傳感器、兩個光電傳感器,所有傳感器均與車輪面平行放置:
超聲波模塊:采用HC-RS04具有精度強體積小的優點,用于檢測障礙物距離和角度。運用非徑向排列的避障方法,此模塊分辨率高達0.3cm,功耗低。模塊可提供2cm-400cm的非接觸式距離感測功能,測距精度可達高到3mm。基本工作原理為:
(1)采用IO口TRIG觸發測距,給最少10us的高電平信號。
(2)模塊自動發送8個40KHZ的方波,自動檢測是否有信號返回。
(3)有信號返回,通過 IO 口 ECHO 輸出一個高電平,高電平持續的時間就是超聲波從發射到返回的時間。測試距離=(高電平時間* 聲速(340M/S))/2。
光電傳感器:
掃地機器人感知功能算法實現如圖2所示,在傳感器中配置觸碰開關、超聲波傳感器、光電傳感器。當觸碰開關被觸發后,執行外部中斷系統,代表遇到障礙物;否則,左右兩個超聲波同時測量數據,2個光電傳感器依次占用模擬I?C通道,分時完成數據的測量和儲存,定時器控制每5ms刷新一次數據采集。
3.2 環境監測功能
為了讓機器人更加智能,在清潔的基礎上添加了溫濕度和環境質量監測模塊,此模塊選擇DHT11數字溫濕度和MQ135環境檢測傳感器。DHT11 可以對溫度和濕度進行測量,而 MQ135 可以對室內的CO、笨、硫、甲醛等有害氣體進行檢測,且傳感器的穩定性強、信號傳輸距離長、能耗低。通過單片機獲取DHT11和 MQ135 測得的環境數據,將其顯示在LCD1602液晶屏上。
3.3 路徑規劃算法實現
路徑規劃算法[5]主要是對感知系統收到的障礙信息進行判斷和處理,系統采用混合路徑規劃算法,如圖2所示。優先執行中斷觸發算法,分別執行左轉或者右轉指令。若存在大面積的障礙物便開始執行單元域分割算法,掃地機器人依據“弓”字形路徑進行清潔;對于小尺寸障礙物,采用循障礙物邊界進行清潔,降低單位面積內的功耗問題;若檢測不到相應尺寸大小的障礙物,便執行的隨機覆蓋算法依據三角形軌跡進行清潔[6]。基于該算法,掃地機器人效率更高,更加節能。
4 軟件設計
4.1 APP的設計
通過 JAVA 語言設計一款輕便的 WIFI小車 APP,APP與ESP8266-WIFI模塊之間使用TCP/IP協議進行數據通信,從而控制小車前進、后退、左轉、右轉和調速等。
4.2 WIFI模塊
WIFI 模塊使用的是 ESP8266,它是一款超低功耗的 UARTWIFI 傳輸模塊,體積小,穩定性好,專為移動設備和物聯網應用設計,可將用戶的物理設備連接到 WIFI 無線網絡上,從而使設備和 APP 之間進行通信,方便的使用手機控制掃地機器人的行動。
4.2 PWM 控制算法
電機控制算法如圖3,原理:通過控制單片機輸出的2路PWM波(A路:左邊B路:右邊)的占空比來實現對小車的加速減速停車等動作。
當小車前方沒有障礙物時,PWM波占空比最大,小車沿直線全速前進。
當小車左前方有障礙物時,B路PWM波占空比減小,相應的右輪減速,使小車向右轉。
當小車右前方有障礙物時,A路PWM波占空比減小,相應的左輪減速,使小車向左轉。
當小車正前方有障礙物時,優先向左轉,A路PWM 波占空比減小,小車向左轉。
5 結論
本論文完成的多功能掃地機器人基于STM32單片機,采用多種傳感器不間斷地檢測周圍環境中的障礙物信息,根據混合路徑規劃算法控制機器人的運動軌跡各個模塊獨立設計,是集清潔、自動導航、APP 控制、環境監測等功能于一體的智能清潔機器人。目前智能掃地機器人已經取得了很大的發展,掃地機器人已經走入了我們的生活,它的功能也會越來越強大,我們的研究也要不斷深入,比如傳感器還有很大的進步空間。在對掃地機器人研究的過程中自己還有許多不足的地方,以后要多加強這一方面的學習。
參考文獻
[1]孫曉雪,趙玉山.掃地機器人的發展現狀和趨勢研究[J].科技資訊2017(28):238-239.
(作者單位:1.江蘇大學機械工程學院儀器科學與工程系;2.江蘇大學機械工程學院儀器科學與工程系)