基于STM32與DFS算法的電腦鼠的研究與設計
摘要:隨著(zhù)人工智能與工業(yè)自動(dòng)化的發(fā)展,機器人在各個(gè)領(lǐng)域的運用愈發(fā)廣泛,自動(dòng)化機器人逐漸代替人力已經(jīng)成為社會(huì )的發(fā)展趨勢。電腦鼠作為移動(dòng)機器人的典型代表,涉及到運動(dòng)控制、傳感器、路徑規劃、機械設計等多個(gè)技術(shù)領(lǐng)域。本設計對當前市面上流行的電腦鼠機器人進(jìn)行改進(jìn)和優(yōu)化,通過(guò)改進(jìn)電腦鼠的整體結構,提高運行的穩定性,通過(guò)設計電腦鼠的運動(dòng)驅動(dòng)方案、測距方案,并深入研究電腦鼠的運動(dòng)算法,并采用DFS 算法重新設計電腦鼠的路徑規劃算法,實(shí)現電腦鼠的最優(yōu)路徑規劃。并能夠通過(guò)上位機實(shí)時(shí)顯示電腦鼠的電池電壓、運行模式、實(shí)時(shí)位置、方向等信息,并可對電腦鼠的參數進(jìn)行實(shí)時(shí)修改,以應對不同環(huán)境下參數配置的需要,在一定程度上推進(jìn)了電腦鼠的在現實(shí)中的應用。
本文引用地址:http://dyxdggzs.com/article/202206/435261.htm關(guān)鍵詞:DFS;電腦鼠;PID;紅外傳感器;人工智能;上位機;藍牙
1 研究背景及意義
近年來(lái),自動(dòng)化機器人在智慧工業(yè)、智慧工地、智能家居等多個(gè)領(lǐng)域均得到了廣泛的應用,而針對機器人的自動(dòng)規劃路徑的研究,也變得更有必要。本設計以 STM32F103RCT6 單片機為主控制器,紅外傳感器為主要傳感器,結合深度優(yōu)先搜索算法 (depth-first-search, DFS) 算法,對電腦鼠機器人在其當前所處環(huán)境(迷宮)中,探索最優(yōu)運行路徑展開(kāi)研究。
本設計的研究主要從以下幾個(gè)方面進(jìn)行。
(1)路徑規劃:一個(gè)好的算法可以使電腦鼠在迷宮中走最少的路線(xiàn)而找出迷宮的終點(diǎn),所以,研究迷宮算法的過(guò)程中,需要對電腦鼠的路徑進(jìn)行規劃,而在現實(shí)生活中,比如工業(yè)機器人在不同的工作站運送物料,就需要對路徑進(jìn)行規劃,減少運動(dòng)的軌跡,可以有效地延長(cháng)機器人的使用壽命。
(2)智能避障:電腦鼠采用的紅外傳感器,通過(guò)發(fā)射紅外由墻壁反射再有紅外接收管接收,再由主控制器進(jìn)行 ADC 采集,計算出墻壁的距離。
(3)運動(dòng)控制:電腦鼠在迷宮中運行時(shí),需要時(shí)刻保持電腦鼠位置處于賽道的中間位置,這就需要對電機的轉速進(jìn)行更加精確的控制。而在電腦鼠進(jìn)行轉彎的過(guò)程中對轉速的要求則更加嚴格。
(4)運動(dòng)軌跡可視化:電腦鼠在運行過(guò)程中,通過(guò)藍牙調試板與 PC 上位機進(jìn)行通信,電腦鼠實(shí)時(shí)上報當前的狀態(tài),包括電池電壓、運動(dòng)軌跡、當前位置等信息。通過(guò)對運行軌跡的分析,可以?xún)?yōu)化出更好的算法,并且可以通過(guò)上位機對電腦鼠內部參數進(jìn)行修改。
2 系統電路設計
2.1 紅外發(fā)射電路
SFH4550 工作時(shí)的電流為 100 mA,所以串聯(lián) 50 Ω 電阻進(jìn)行限流,通過(guò) NMOS 進(jìn)行驅動(dòng),該型號的 MOS 最大電流可達到 5 A,柵源極閾值電壓為 2.7 V,因此可以通過(guò)微控制器直接進(jìn)行控制。該電路具有結構簡(jiǎn)單、高效、利于控制等優(yōu)點(diǎn),紅外發(fā)射電路原理圖如圖 1。
2.2 紅外接收電路
TPS601A 在工作時(shí),接收到對應波長(cháng)的紅外光束,形成到導通回路形成電流,通過(guò)電阻進(jìn)行分壓,并通過(guò)微控制器進(jìn)行 AD 轉換將電壓的模擬量轉換為數字量,根據電壓的高低,來(lái)獲取當前電腦鼠與墻壁的距離。紅外接收電路原理圖如圖 2。
2.3 電機驅動(dòng)電路
電機驅動(dòng)電路采用的是 TB6612,該電機驅動(dòng)芯片外圍電路設計簡(jiǎn)單,僅需要兩個(gè)電容即可。內部具有大電流的 MOSFET-H 橋結構,并且是雙通道驅動(dòng),一個(gè)芯片可以驅動(dòng)兩個(gè)電機,支持正轉、反轉、制動(dòng)、停止 4 種控制模式,同時(shí)內部具有低壓保護電路與過(guò)熱停機保護電路。電機驅動(dòng)電路原理圖如圖 3。
2.4 電池電壓采集電路
電腦鼠在運行過(guò)程中,為防止電池電壓過(guò)低造成電池的過(guò)放電損壞電池,經(jīng)過(guò)查詢(xún)資料得知 8.4 V 的鋰電池組當電壓小于 7.4 V 時(shí)就屬于虧電,所以采用了低電壓待機的方案,當電壓小于 7.4 V 時(shí)啟動(dòng)電腦鼠進(jìn)入待機狀態(tài)。分壓電阻將電池電壓調整到微控制器可以采集的范圍。原理圖如圖 4:
3 微控制器程序設計
3.1 運動(dòng)控制程序設計
在電腦鼠運行過(guò)程中,電腦鼠不斷讀取紅外傳感器的數據,通過(guò)比例算法實(shí)時(shí)調整左右電機的轉速,實(shí)現電腦鼠的位置始終保持在賽道的中間位置。
(2)直角轉彎:連續轉彎的控制比較復雜,需要對電腦鼠的左右輪行駛的距離和速度進(jìn)行精確的控制,連續轉彎時(shí)的運行軌跡如下圖 5,經(jīng)過(guò)簡(jiǎn)單計算可以得出內外圈的長(cháng)度比為 1:3.5,因此就需要內圈與外圈的轉速比需要達到 1:3.5 才能在相同時(shí)的時(shí)間下經(jīng)過(guò) 90 度轉彎。
(3)原地掉頭:只需要控制電腦鼠左右輪向互斥方向轉動(dòng) 180 度即可。
3.2 系統程序設計
本程序的系統流程圖如圖 6,電腦鼠在上電的時(shí)候先對紅外傳感器,電機驅動(dòng)等外設模塊進(jìn)行初始化,判斷電池電壓是否正常,如果電池電壓過(guò)低進(jìn)入待機狀態(tài)不啟動(dòng)電腦鼠,如果電池電壓正常即進(jìn)入模式判斷,探索模式、固定路線(xiàn)、調試模式三種模式。
(1)探索模式:電腦鼠在探索模式下,不斷獲取紅外傳感器信息,在沒(méi)有發(fā)現路口的情況下保持直行的狀態(tài),當發(fā)現路口時(shí)首先會(huì )獲取當前電腦鼠在迷宮中的坐標信息,在進(jìn)行與目標點(diǎn)的絕對位置計算,當前進(jìn)一格后到終點(diǎn)的絕對位置小于轉彎后前進(jìn)一格到終點(diǎn)的絕對位置,那么程序判斷直行到達終點(diǎn)的代價(jià)會(huì )小于轉彎到終點(diǎn)的代價(jià),執行繼續前進(jìn)的指令。反之當前進(jìn)一格后到終點(diǎn)的絕對位置大于轉彎后前進(jìn)一格到終點(diǎn)的絕對位置,那么程序判斷直行到達終點(diǎn)的代價(jià)會(huì )大于轉彎到終點(diǎn)的代價(jià),執行轉彎指令。直到到達終點(diǎn),停止運動(dòng),進(jìn)行 DFS 迷宮最短路徑解算,如圖 7。
(2)固定路線(xiàn)模式:在電腦鼠的比賽中是允許電腦鼠進(jìn)行多次測試的,當在探索下當電腦鼠到達了終點(diǎn),并且經(jīng)過(guò)了 DFS 算法解算出最短路徑,此時(shí)的最短路徑信息會(huì )被保存在微控制器內部的 Flash,做到掉電不丟失,中途更換電池也不會(huì )影響電腦鼠中儲存的最短路徑信息,程序流程如圖 8。
(3)調試模式:該模式主要用于電腦鼠的調試階段的程序參數的修改,在調試模式下電腦鼠是處在一個(gè)待機的狀態(tài)下的,不斷接收上位機發(fā)送的信息,解析出需要修改的信息,進(jìn)行指定數據的修改,在修改完成之后,返回一條修改好的數據返回給上位機軟件,告訴上位機軟件修改后的數據,通過(guò)該模式可以大大提高電腦鼠的調試效率,免去了修改代碼、重新下載程序等的重復的步驟。調試模式程序流程圖如下圖 9。
(4)DFS 是一種用于遍歷或搜索樹(shù)或圖的算法,沿著(zhù)樹(shù)的深度遍歷樹(shù)的節點(diǎn),盡可能深的搜索樹(shù)的分支。而在電腦鼠到達終點(diǎn)時(shí),電腦鼠在探索過(guò)程中的迷宮信息都將保留下來(lái),將電腦鼠走過(guò)的軌跡創(chuàng )建為一個(gè)新的迷宮,將迷宮的數據導入到 DFS 算法中, DFS 的本質(zhì)就是窮舉法,DFS 開(kāi)始遍歷迷宮的各分支找出一個(gè)最短的分支。并將分支的位置信息保存在 Flash 中,用于電腦鼠返回的導航數據以及再次沖刺時(shí)的數據導航。DFS 算法程序流程圖如下圖 10。
3.3 上位機程序設計
上位機的系統流程圖如圖 11,上位機在與電腦鼠進(jìn)行連接時(shí)需要選擇電腦鼠與電腦藍牙的端口以及波特率信息,當電腦鼠與電腦建立起連接后,電腦鼠會(huì )不斷上傳電壓、運行模式等狀態(tài)信息。在連接成功后并且電腦鼠處于調試模式時(shí),上位機可以使用修改參數的功能,對電腦鼠的數據進(jìn)行修改。如果電腦鼠處于探索模式下,程序主窗口會(huì )實(shí)時(shí)顯示電腦鼠在迷宮的位置信息。
(1)主界面:主頁(yè)面的主要作用就是顯示運行信息、通知信息、電腦鼠的實(shí)時(shí)位置,以及電腦鼠的串口連接設置、功能按鈕,如圖 12。
圖12 主界面設計
(2)修改參數:修改參數是為在調試電腦鼠的時(shí)候方便修改電腦鼠內部的數據,如圖 13。
4 結語(yǔ)
電腦鼠是移動(dòng)機器人領(lǐng)域的重要分支,傳統的電腦鼠運行速度、穩定性都比較差,并且大多數采用數字紅外傳感器技術(shù)來(lái)判斷電腦鼠周?chē)沫h(huán)境,迷宮的解算算法也比較落后。本設計針對傳統電腦鼠的明顯的弊端,深入研究電腦鼠的紅外布局、運動(dòng)控制、紅外測距、硬件設計等,并最終完成了電腦鼠的設計。主要研究成果如下:
(1)改進(jìn)了紅外傳感器的布局,并采用了高聚集的紅外發(fā)射管和紅外接收管,使電腦鼠采集的數據更加靈敏、準確、快速;
(2)改進(jìn)了傳統電腦鼠的控制方案,采用編碼電機實(shí)現了電腦鼠的速度、位置雙閉環(huán)控制器,對行駛中的電腦鼠速度、位置進(jìn)行精準的控制,設計出電腦鼠的連續轉彎機制,該轉彎方式可以顯著(zhù)提高電腦鼠的在轉彎時(shí)所用的時(shí)間;
(3)改進(jìn)了傳統電腦鼠的調參過(guò)程,傳統電腦鼠的調參需要修改代碼重新下載程序,非常麻煩。特別是當到達一個(gè)新的比賽環(huán)境,這樣的方式就顯得不是很高效,而采用了上位機的方式來(lái)調節參數就不會(huì )有這種麻煩,修改參數只有將需要修改的數值填上,即可實(shí)現一鍵對電腦鼠的數據進(jìn)行修改;
(4)改進(jìn)了電腦鼠的迷宮解算算法,實(shí)現了 DFS 算法與電腦鼠的結合,大大提高了電腦鼠解算迷宮的準確性。
參考文獻:
[1] 劉奇.吸盤(pán)電腦鼠的設計與控制算法研究[D].天津:天津工業(yè)大學(xué),2019.
[2] 李明.迷宮電腦鼠控制系統設計與算法研究[D].贛州:江西理工大學(xué),2008.
[3] 王遠敏.深度優(yōu)先搜索算法的應用研究[J].網(wǎng)絡(luò )安全技術(shù)與應用,2022(03):40-42.
[4] 曹景銘.基于強化學(xué)習的電腦鼠優(yōu)化方法研究[D].北京:北京交通大學(xué),2021.DOI:10.26944/d.cnki.gbfju.2021.000850.
[5] 王偉強.基于電腦鼠的底層驅動(dòng)庫的設計與實(shí)現[J].科技創(chuàng )新與應用,2016(16):83.
[6] 路亮.高端電腦鼠設計與控制研究[D].天津:天津工業(yè)大學(xué),2018.
(注:本文轉自《電子產(chǎn)品世界》雜志2022年6月期)
評論