?

基于STM32 單片機的智能送藥小車設計

2024-04-16 03:25徐賢高小慧李羽晴孫婧妍
電子制作 2024年6期
關鍵詞:循跡小車病房

徐賢,高小慧,李羽晴,孫婧妍

(三江學院,江蘇南京,210012)

0 引言

隨著科學技術進步和醫療水平的發展,研制智能送藥機器人對提高醫療服務效率、減輕醫護人員負擔、提升藥物配送安全性以及優化醫療資源利用方面有著十分重要的現實意義。同時,通過結合物聯網、人工智能和自動化技術,智能送藥小車展示了未來醫療領域的創新和前景,對構建智慧醫療生態系統起著重要的作用。本設計要求智能小車可在模擬的醫療區域內,根據走廊上的標識信息自動識別、尋徑、避障,將藥品送到指定病房。

1 系統方案

■1.1 系統工作流程

智能送藥小車在單片機控制下可自動實現前進,后退,左轉,右轉等操作,并給出聲或光的信號,完成規定動作后可自行返回藥房。圖1 為系統工作流程圖。

圖1 系統工作流程圖

■1.2 方案選擇

針對循跡設計要求,常用的方案有兩種,一種是通過灰度判斷紅線為循跡,用OpenMV 識別數字到達指定藥房;另一種是通過紅外判斷紅線為循跡,用樹莓派識別數字到達指定藥房??紤]到灰度傳感器探測范圍廣,干擾容易控制,所以設計中采用了第一種方案。使用灰度傳感器利用光敏電阻對不同顏色的檢測面對光的反射程度不同引起阻值變化,同時攝像頭專注于數字識別,巡線由灰度傳感器進行,分工明確,調試簡單。

車體選擇上,設計者們考慮了三種小車。一種是牛眼輪小車,其具有越障能力強、穩定性強、轉向靈活、載重能力強和省力高效等優點,并且可耐得住油、酸、堿等一些有機溶劑,不易腐蝕,具備良好韌性和可以抗疲勞實用性,經久耐用;第二種是三輪小車,雖然機械結構簡單,成本低,但該爬坡和倒退場景不太適用。第三種是采用履帶式小車,這種小車市面上較為常見,稍加改裝即可投入使用??梢哉f三種小車各有優勢,本設計采用的是三輪小車。

電源方面,設計者們放棄了鉛酸電池供電的方案,雖然其有著供電電流大的優點,但是重量大、攜帶麻煩、不便于安裝。本設計采用的是7.2V 鋰電池組供電,雖然犧牲了續航時間和成本,但其體積小、重量輕、電壓穩定、便于安裝攜帶。應用時,7.2V 電源經DRV 模塊轉化可以輸出12V電壓供給直流電機,其他模塊也可用XL4015DC-DC 轉換成5V 后再供電。

根據設計要求,控制端在單片機控制下,顯示模塊,無線通信模塊協同配合,共同完成控制端的工作;運動端以STM32F103RBT6 為核心,在控制模塊、循跡模塊和電源模塊的協同下,讓小車完成行駛、通信、運載藥物等指定動作。

2 軟硬件設計

系統硬件框架如圖2 所示,除電源模塊和主控模塊外,還包括循跡模塊、攝像頭模塊、電機驅動模塊、顯示模塊以及用于檢測小車是否裝載物品的紅外傳感器模塊。

圖2 系統總體框架

■2.1 電源模塊

該模塊主要作用是將電壓降為5V 和7.2V,用于小車各模塊的供電。

XL4015 芯龍公司生產的一個180kHz 固定頻率PWM降壓DC/DC 變換器,能夠驅動5A 負載,具有高效率,低紋波和優秀的線路和負載調節能力。內置過流保護功能。當發生短路保護功能時,操作頻率由180kHz 降至48kHz;同時內置一個內部補償塊以最小化外部組件計數。圖3 為電源模塊電路。

圖3 電源模塊

■2.2 電機驅動模塊

電機驅動的核心部件是DRV8701E、TPH1R403NL,它通過STM32F103RBT6 的指令直接控制步進電機轉速,從而控制小車的行駛狀態。

DRV8701E 為德州儀器生產的有刷直流電機全橋柵極驅動器,支持5.9V 到45V 電壓輸入,支持100%脈寬調制占空比,采用四個外部N 溝道金屬氧化物半導體場效應晶體管(MOSFET)的單路柵極驅動器,主要用于驅動12V 至24V 雙向直流有刷電機。

TPH1R403NL 為東芝公司生產的N 溝道MOSFET,最大電壓值為30V,最大電流值150A,25℃下功率可達64W。

■2.3 循跡模塊

2.3.1 巡線模塊硬件設計

在本次設計中,采用八路的灰度循跡模塊來實現機器人的自主導航功能。該模塊能夠通過感知地面顏色的變化來精確定位機器人的位置和方向,并根據預設的路徑規劃算法來控制機器人的移動方向和速度。由于該模塊的工作原理是基于光的反射,因此具有響應速度快的優點。

圖4 為灰度循跡模塊電路圖。其中包含兩個部分。第一部分由TCRT5000L 組成的灰度傳感器電路,它是一個發送管與接收管集成在一起的一體式灰度傳感器。第二部分是由LM393 精密運放芯片組成的比較器電路,能對灰度傳感器采集到的灰度值進行比較,比較電壓可以由R1 進行調節。接著,OUT引腳為模塊的輸出引腳,接到單片機的IO 引腳上,使其可以判斷出機器人的位置和方向。

圖4 灰度循跡模塊電路圖

2.3.2 巡線控制算法

圖5 為巡線控制算法流程圖。主要采用比例控制算法,比例控制算法是通過將控制信號與誤差信號的比例相乘來產生輸出信號。這個比例系數通常稱為“比例增益”,它決定了輸出信號的大小和誤差信號的大小之間的關系。比例增益越大,輸出信號就越大,這意味著控制器將更快地響應誤差信號。但是,如果比例增益過大,控制器的輸出信號可能會變得不穩定,導致震蕩或振蕩。

圖5 巡線控制算法流程圖

式(1)為比例控制器的數學表達式:

其中,u(t) 是控制器的輸出信號,Kp是比例增益,e(t) 是誤差信號。將輸出的信號輸出到電機上實現轉向,最后跟隨引導線行駛。

■2.4 視覺部分

視覺部分采用K210 芯片搭載MaixBit 進行目標檢測并返回坐標??敝荎210 芯片采用了RISC-V 架構,可根據業務場景需求擴展基礎指令,具備較強的可編程能力;同時,該芯片具備機器聽覺與機器視覺兩種能力,可以靈活適配人臉識別、目標檢測、語音喚醒及識別等場景;此外,勘智K210 可在0.3W 的條件下提供1TOP 的算力支持,充分適配在多數業務場景中低功耗約束下的算力需求。

本設計中,數字識別的方案嘗試了以下三種:

(1)用OpenMV 對不同數字圖像做模板匹配,這種方案最為簡單,用OpenMV 自帶的例程就可以實現,缺點在于檢測精度低,幀數低,經常誤判。

(2) 使 用Mnist 數 據 集,Lenet-5 網 絡 模 型, 在Jetson Nano 4G 版本上進行訓練,得到參數模型,缺點是成本較高,經常斷貨,且環境容易崩潰,體積較大,不方便部署在小車上。

(3)用k210 跑YOLOv3 網絡進行檢測,這種方案檢測精度高,檢測速度快,且成本也比前面兩種低。因此,最終本設計中采用了這一方案。

具體實現時,整體的軟件框架包括數據集采集和標注、模型訓練、模型轉換和部署以及實時預測和通信等步驟。

(1)數據集的采集和標注:將攝像頭固定在小車上,采集包含不同角度和距離的數字圖片,然后使用標注工具(Labelme)對采集到的圖片進行標注,標注出數字的位置和邊界框。

(2)模型訓練:使用采集和標注好的數據集,采用深度學習框架TensorFlow 訓練數字識別模型。選擇YOLOv3模型架構作為基礎網絡,在其基礎上進行微調或遷移學習。訓練過程中定義合適的損失函數、優化器和訓練參數,并進行適當的數據增強操作。

(3)模型轉換和部署:訓練完成后,使用Sipeed 官網提供的Kmodel 工具將其轉化為目標設備可用的格式,而后將轉換后的模型文件存放在SD 卡的根目錄下。

(4)實時預測和通信:在小車上運行程序,通過串口與單片機進行通信。程序從攝像頭獲取圖像,使用模型對圖像中的數字進行實時預測。預測結果可以通過串口將識別的數字和位置信息傳送給單片機,用于控制小車的行動。

視覺識別程序流程如圖6 所示。

圖6 視覺識別流程圖

3 綜合調試

■3.1 調試環境與任務

圖7 為模擬場地示意圖——引用2021 年全國大學生電子設計競賽試題(F 題),采用白色啞光噴繪布制作,分為遠端病房、中端病房和近端病房。標識病房的黑色數字可在紙張上打印,數值為1~8,每個數字邊框長寬為8cm×6cm,將數字標號紙張可由無痕不干膠等粘貼在走廊上。

圖7 場地示意圖

任務一:兩小車相互配合將藥品運送到同一指定的中部病房。小車1 識別病房號裝載藥品后開始送藥,到達指定區域后等待卸藥,然后,小車2識別病房號裝載藥品后啟動送藥,到達自選暫停點后停車,點亮指示燈,等待小車1 卸藥;小車1 卸藥后返回,同時控制小車2 熄滅指示燈并繼續運送。

任務二:兩小車相互配合到不同的遠端病房送取藥,小車1 送、小車2 取。小車1 識別病房號裝藥后開始送,小車2 于藥房處識別病房號等待小車1 的取藥開始指令;小車1 到達病房后卸藥并返回,同時向小車2 發送取藥指令;小車2 收到指令后啟動,到達病房后停止并點亮指示燈。

■3.2 硬件測試

硬件上主要運用數字萬用表、示波器等儀器測量智能送藥小車中各主要元器件的狀態,以及系統各個部分的供電電壓是否能夠達到理論計算中所需的預期電壓等詳細參數。同時,還需對小車的機械結構進行測試,如測試電機的轉動情況等。

■3.3 軟件測試

使用Keil5 進行單片機程序的編寫和調試,然后將程序通過STlinK 下載到目標單片機中進行多次運行測試。

為了方便分析和調試,使用串口實時打印運行時各種參數信息,配合串口助手在PC 端實時地顯示。

4 綜合測試

單個小車運送藥品到指定的近中遠端病房并返回到藥房測試結果如表1 所示。

表1 小車運送藥品到指定的近中遠端病房并返回到藥房測試結果

兩輛小車協同運送藥品到同一指定的中部病房測試結果,即任務一測試結果如表2 所示。

表2 任務一測試結果

兩輛小車協同運送藥品到同一指定的中部病房測試結果,即任務二測試結果如表3 所示。

表3 任務二測試結果

5 總結

綜上,系統采用直流減速電機和STM32F103RBT6 芯片控制小車運動,用鋰電池提供7.2V 電壓,用灰度傳感器保證小車能在規定的區域內正常行駛,通過單片機控制小車的前進、后退、左轉、右轉等功能,并用無線通信實現遠程控制端和運動端之間的交流。兩車之間通信使用無線轉USB/串口模塊,它可以發射和接收無線信息,從而實現兩者之間的交流。經軟硬件聯調測試,本設計研制的智能送藥小車能精確且高效地完成既定的各項任務。

猜你喜歡
循跡小車病房
基于DFT算法的電力巡檢無人機循跡檢測系統設計
更正
大車拉小車
自制小車來比賽
整建制接管改造COVID-19重癥監護病房的實踐與探討
劉老師想開小車
基于單片機的智能循跡小車的設計
兩輪自平衡小車的設計與實現
智能差分循跡小車設計
基于MC9S12XS128處理器的智能循跡小車分析研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合