黃涌凌,譚嘉銘,陳錦楠,陳曉欣,葉宇航
(廣州華立學院,廣東 廣州 511325)
據第七次中華人民共和國人口普查數據顯示,65 周歲及以上的人口已達1.9億人,占比達13.5%[1]。目前,社會上使用廣泛的傳統輪椅依賴人力護工,可以預見未來對智能輪椅的需求量會逐漸增加。目前,市場上的共享輪椅僅實現了對傳統人力輪椅的共享,并未實現更多對輪椅的智能控制。
本文提出了基于STM32室內共享智能輪椅控制系統,設計了針對室內場景的智能共享輪椅,根據用戶實時的使用場景,通過超聲波避障模塊、報警電路、監控模塊、攝像頭模塊及通信模塊等實現智能輪椅的共享使用以及自主巡航功能。共享輪椅消費低,可減少人力成本支出。用戶可通過手機端掃描二維碼使用該輪椅,且其家屬能通過手機端實時監測使用畫面以及用戶的實時健康數據。共享輪椅的親民價格將會更加受歡迎,從而也可以實現輪椅管理的智能化與現代化。
本設計主要由主控芯片、報警電路、避障模塊、循跡模塊、無線通信模塊、電機驅動模塊等部分組成。使用者通過微信小程序實現人機交互,確定位置信息,綁定使用輪椅。在循跡模塊和避障模塊的協同作用下,控制電機驅動,實現輪椅自主循跡導航。在該系統中,家屬通過微信小程序可以觀測數據,還可以遠程監控實時使用畫面。當蜂鳴器電路被觸發時,能夠借助EC20的無線通信通知到醫護或家屬的手機端小程序并進行報警提示。如若在使用輪椅過程中,遇到突發事件,按下輪椅扶手處的報警按鈕,驅動蜂鳴器報警。采用STM32F103主控芯片的共享智能輪椅控制系統的總體設計如圖1所示。
本設計運用單片機的A/D轉換、數據存儲、PWM、通信等模塊,綜合設計需求,采用STM32F103作為主控芯片。該芯片還集成了蜂鳴器模塊、豐富的I/O接口和USART雙向串口。STM32主控芯片接收EC20模塊的信息,結合循跡模塊和避障模塊的信息進行處理,做出運動判斷,控制電機驅動,輪椅前行。主控板最小系統電路如圖2所示。

圖2 主控板最小系統電路
2.2.1 監控模塊
在用戶使用輪椅過程中,需要時刻關注病患的實時情況。本系統設計通過采用OV2640攝像頭采集數據,使用I2C庫函數讀取OV2640的寄存器寫入配置值。同時使用I2C庫函數讀取OV2640攝像頭的圖像數據,并將其存儲到STM32微控制器的內存或外部存儲器中供EC20無線通信模塊調用,以發送實時圖片至使用者的醫護或家人的小程序上。
2.2.2 視覺循跡模塊
在輪椅使用環境中,用不同顏色的線條在地上標識路線,規劃輪椅循跡路徑,相異顏色對應各種路線。Openmv K210單目攝像頭用Python語言實現各種機器視覺算法。Openmv內含sensor、image、KUP等模塊,本設計使用image模塊繪制矩形框對圖像進行分割,當出現在框內的顏色符合設置的LAB閾值,即檢測到循跡路線。通過UART串口將循跡數據傳送至主控驅動輪椅前行。
本設計選取的是多路超聲波傳感器對周圍環境進行檢測,得出主體與障礙物的距離以及角度,測得的障礙物信息定位智能輪椅的位置,為后面智能輪椅避障決策提供參考[2]。
本設計采用的是HC-SR04型壓電式超聲波傳感器。將VCC和GND接好,指示燈亮,將Trig引腳連接到STM32的GPIO輸出引腳用于發送觸發信號,將Trig引腳置高電平,保持一段時間后再拉低即可發送一個觸發信號。在STM32中配置GPIO引腳為輸入模式,開始計時,并等待Echo引腳上的信號變為高電平,記錄電平變化時間,計算出超聲波信號的往返時間。在高電平時間乘聲速(340 m/s)的情況下,將監測的間隔除以2,即可得出測試距離結果。
電機驅動控制系統是電動輪椅的主要部件,電路設計如圖3所示。本設計選用的是42 mm的步進電機,步距為1.8°,選用具有大電流MOSFET-H橋結構[3]。本設計運用TB6612電機驅動芯片,帶有雙通道電流輸出能直接驅動步進電機,同時支持PWM調速和正反轉控制,只需要改變PWM脈沖寬度和改變控制信號即可實現功能。TB6612內置過熱保護和過載保護電路,能夠保護電機驅動器和電機不受損壞。

圖3 電機驅動電路
在用戶使用輪椅過程中,為了避免一些緊急情況的發生。本設計運用主控STM32F103C8T6系統引腳PB8連接電壓式有源蜂鳴器電路,將蜂鳴器開關按鍵安置于智能輪椅扶手側位。突發緊急情況時,用戶按下按鍵,蜂鳴器報警響應,及時發現和救助輪椅上的用戶,提升使用者的安全系數。接好VCC和GND,當按鈕開關未接通時,STM32的GPIO引腳為高電平,三極管截止,蜂鳴器失聲。反之,當按鈕開關接通時,STM32的GPIO引腳為低電平,三極管截止,蜂鳴器發聲達到報警效果。
本系統的無線通信模塊為EC20通信模塊,具備4 G上網、傳輸數據速度快等特點。使用UART庫函數在STM32上發送AT指令到EC20模塊。AT指令用于發送信號、連接互聯網等。通過STM32的串口通信,用戶可實現遠程信息接收與發送。
本系統設計的智能共享輪椅,通過手機端微信小程序掃碼即可使用,輪椅根據地上標好的路線進行循跡航行,在微信端可看見輪椅的行走路線和大致定位。掃碼成功后,用戶根據需要,可選擇智能循跡導航,或者像傳統輪椅一樣手動使用。具體如圖4所示。

圖4 系統總體流程
為了使用戶更方便地了解輪椅功能,本文制作了簡單的微信小程序用于模擬真機,主要采用wxml、wxss和JavaScript等技術。用戶不需要下載App就可快捷地使用小程序功能。此外,小程序還提供了一系列的插件和組件,開發速度較快。
首先在騰訊開發平臺獲取騰訊地圖的webserviceAPI服務,再通過下載微信小程序JavaScriptSDK來獲取地圖的權限,接著在小程序的JS文件中配置生命周期,在WXML文件中設定特定的綁定事件,通過getlocation()函數來申請調用地圖配置。當用戶點擊獲取坐標時,手機通過定位取得騰訊地圖的權限,success回調函數返回數據,最終顯示用戶的坐標,最后通過openlocation()函數來打開騰訊地圖,顯示實時位置[5]。
小程序自動展開醫院導覽圖,用戶可知曉當前樓層位置,并設定想要去往的目的地,確認好后,小程序傳送數據至STM32,并進行軌跡傳輸,輪椅自動前往。以微信小程序為進入入口,再結合GPS、共享藍牙等技術,實現了醫院地圖顯示與查詢位置信息、用戶定位與地點導航、最快路線規劃等功能。具體如圖5所示。

圖5 小程序定位功能導覽
當使用者開始激活共享智能輪椅的使用時,主控板發送AT命令序列來初始化EC20模塊,通過UART接口與EC20進行通信,并發送適當的AT命令來配置和激活移動網絡連接。通過小程序使用MQTT作為通信協議,EC20模塊提供了一組AT命令來支持MQTT協議以實現模塊與終端小程序的連接和信息發布/訂閱操作。
自動循跡算法主要使用OpenMV的像素顏色統計實現循跡。在室內應用場景中,在地面用不同顏色的線條標識不同的線路。OpenMV設置色彩閾值元組,用戶通過手機小程序選好顏色路線,藍牙將相應數據傳送至主控,改變目標色彩閾值,調用色塊識別函數img.find_blobs()對不同顏色的線路進行識別,然后將 blob 色塊對象中坐標blob.cx()通過UART串口發送給主控,通過標記信息判斷小車相對于目標線的偏移程度,并融合 PID 算法精準調整小車位姿,即可完成自動循跡[4]。
有效控制輪椅電機速度的一種方法是利用負反饋產生的偏差信號,通過控制器對被控對象進行實時修正,使系統的輸出量與定量保持一致,實現速度閉環控制。本設計采用增量式PID算法作為閉環控制,將其放入定時器終端,在中斷中用左右2個光電編碼器分別測出實時速度,使速度控制更加精確[5]。
綜上所述,本文實現了一款室內共享輪椅的設計。在醫院范圍內實現路徑自動規劃行駛,減少人員陪護,填補了市場中的空缺。本設計以STM32作為主控器,用無線通信模塊EC20連接用戶終端與輪椅終端,用微信小程序進行操控,再綜合運用避障模塊、GPS、視覺循跡模塊等實現共享輪椅的應用開發,具有一定的實用性和創新性。本設計對目標人群定位清晰,使用范圍定義清晰,具有廣泛的應用前景。