張恩政,李錫睿,李子文
(浙江理工大學 機械與自動控制學院,杭州 310018)
智能家居作為家庭信息化的實現方式之一,并成為社會信息化發展的重要組成部分,物聯網因其巨大應用前景,將是智能家居產業發展過程中一個比較現實的突破口,對智能家居產業的發展具有重大意義[1]。隨著物聯網技術的發展和深入,更高品質的智能生活越來越受到重視,為了滿足智能家居中對座椅的交互式轉動控制需求,設計成本低,易于構建,通用性好的座椅轉動控制系統具有實際的研究價值和意義。
傳統座椅的功能主要用于工作和休息,而座椅的另一個非常受歡迎的功能就是娛樂,在游戲廳,電影院交互式的運動座椅可給用戶提供浸入式的娛樂享受,然而這些設備一般價格昂貴,體積龐大,將家中傳統座椅升級改造成能夠滿足兼顧休息和娛樂的智能家居,并且人的參與和互動將融入智能家居系統,適應目前萬物互聯的物聯網發展需求。而要實現這種具有交互式能力的座椅,設計實現對座椅有效運動控制的控制系統是關鍵,控制系統的主要功能包括人機交互控制,上位機軟件控制和硬件控制電路等。
手柄作為實現人機交互的重要工具,各種不同外觀,不同功能的手柄在實際的生產生活中得到了廣泛的應用[2-3],游戲手柄應用已經從電腦上游戲控制的應用,擴展到其他系統如手機的應用,同時游戲手柄也可以借助一些橋梁工具擴展到其他的應用,如電腦鼠標或鍵盤的模擬等[4-7]。在目前熱門的工業機器人運動控制中也得到應用[8],設計人性化、簡單易用的上位機互聯控制軟件是控制系統設計的重要環節,目前VB.net,C#,Python,C++等語言是用于應用軟件設計開發的常用語言[9-12],綜合考慮這些編程語言的特點,使用VB.net語言進行可視化程序設計和軟件設計是相對開發效率較快且簡單的方式,同時使用Visual Studio平臺上的控件可方便的設計出人性化實用的應用軟件界面。可用于座椅運動控制的微處理器芯片很多,簡單的控制系統一般可基于ARM技術[13-14]、基于STM系列微控制器[15-16]、基于單片機技術[17-21]或基于Arduino開發板[22-23]進行控制系統設計,考慮到座椅控制系統功能較簡單以及成本因素,使用51系列單片機進行系統設計是性價比比較高的的方案。
為此,本文以AT89S52微處理控制芯片,設計并實現了一套基于AT89S52和VB.net座椅運動控制系統。通過鼠標和游戲手柄來實現對座椅的運動控制,并且可實現對電腦游戲或遠程遙控車的同步運動控制,滿足兼具休息和娛樂功能的座椅運動控制應用需求。
基于AT89S52微處理器設計的座椅運動控制系統方案如圖1所示,系統核心組成主要包括座椅運動控制軟件和AT89S52座椅控制器。座椅運動控制軟件內部集成的手柄按鍵動作獲取模塊,可以實時獲取使用的控制手柄的按鍵動作,可實現對常用的通用手柄、賽車手柄和飛行手柄的按鍵動作數據獲取,在此基礎上實現的手柄模式控制,可通過操控手柄的按鍵或搖桿來控制座椅的運動。手柄模式下可以使用鼠標點擊控制軟件上的功能按鈕進行座椅的控制。AT89S52座椅控制器獲取到座椅運動控制軟件發送來的控制命令后,將命令數據轉換為電機運動控制數據,經電機驅動器控制座椅電機的運動,可實現座椅的速度和轉動控制。復位傳感器用于檢測座椅的位置,在座椅運動控制軟件發出的復位命令作用下,可以控制座椅轉動到初始的位置。電源模塊的主要功能是為系統中各電路模塊提供合適的工作電壓。

圖1 座椅運動控制系統方案框圖
基于AT89S52座椅運動控制系統的硬件組成主要包括控制手柄、AT89S52座椅控制器、電機驅動器及電機、復位傳感器和供電電源。其中,座椅控制器是整個控制系統核心部分,是系統硬件設計的關鍵。
考慮到研究設計的座椅控制系統控制功能相對簡單,主要實現對座椅的速度和轉動控制,對微處理器具有的資源要求不高,同時考慮到系統成本及通用性,系統設計選用常用的AT89S52單片機進行控制器電路設計,硬件電路設計結構組成如圖2所示。

圖2 基于AT89S52的控制器結構框圖
如圖2所示的控制器結構框圖中,ISP下載電路配合相應下載器可實現編譯程序的在線下載,便于程序的調試和后期系統升級維護。RS232串行通信是非常成熟和應用最多的通信方式,但由于RS232接口尺寸較大,目前生產的計算機都不再配備RS232接口電路,故通信電路采用RS232轉USB實現設計,利用USB直接與計算機進行通信,同時USB接口的5 V電源可為控制電路板供電。結合圖2所示的控制器電路方案框圖,設計的座椅控制器電路板主要原理圖如圖3所示。為了便于控制電路板在系統中集成,使用的AT89S52芯片選用TQFP貼片式封裝,USB轉串口電路使用FT232RL芯片進行設計。控制電路板單片機的5 V供電由連接到電腦的USB線提供。

圖3 基于AT89S52的控制器電路原理圖
設計的座椅運動控制系統中軟件設計主要包括運行在上位機的座椅運動控制軟件和運行在AT89S52座椅控制器中的程序。座椅運動控制軟件主要功能是將手柄按鍵動作或軟件上按鍵動作轉換為控制命令并發送給座椅控制器。座椅控制器中程序主要功能是接收上位機控制軟件發送的命令,與座椅電機驅動器通訊,進而控制電機的運動。
設計的上位機座椅運動控制軟件流程圖如圖4所示。使用座椅運動控制軟件控制座椅運動前,首先需要將控制手柄連接好,同時設置好與座椅控制器匹配的串口號和波特率。為了滿足設計的座椅運動控制系統對系統調試、測試和交互應用的需求,控制軟件設計有“手柄模式”和“鼠標模式”雙工作模式,可以根據需要選擇工作模式。在“手柄模式”下,軟件中集成的手柄按鍵讀取功能模塊可以實時地獲取使用的手柄上的按鍵或搖桿數據,并將數據轉換為座椅運動控制命令,經串口通訊發送至座椅運動控制器。在“鼠標模式”下,通過控制鼠標點擊軟件上的功能按鈕,向座椅運動控制器發送運動控制命令。

圖4 座椅運動控制軟件流程圖
座椅運動控制軟件中“手柄模式”是研制的座椅運動控制系統進行人機交互的重要內容,其中軟件中集成的手柄動作獲取功能模塊程序是關鍵,利用該模塊程序可以實現對通用手柄、賽車手柄和飛行手柄3大類手柄的按鍵動作獲取。基于VB.net設計的手柄動作獲取功能程序是利用Windows多媒體應用程序接口winmm.dll來實現的,基于圖4所示座椅運動控制軟件流程圖,使用VB.net設計實現的軟件如圖5所示。如表1中所示的是該軟件對VINYSON U909通用電腦游戲手柄的主要按鍵動作獲取數據。手柄實物如圖5(b)所示,手柄上共有10個主要按鍵,兩個人性化設計的多項控制搖桿和一個組合的四向鍵。其中兩個搖桿和對應按鍵的選擇和使用可通過手柄上Mode鍵進行切換。

圖5 通用手柄座椅運動控制軟件

表1 通用手柄主要按鍵解析數據
在圖5所示的座椅運動控制軟件中,圖5(a)為“鼠標模式”下的界面,通過點擊各功能按鍵,可實現對座椅的轉動方向、轉動速度等的控制,利用控制系統中位置傳感器可以使用復位按鈕完成對座椅位置復位。圖5(b)為“手柄模式”下界面,當操作手柄的按鍵或搖桿時,文本框中會顯示座椅動作狀態。
基于AT89S52設計實現的座椅運動控制器程序流程圖如圖6所示。首先對串口中斷和復位中斷進行設置,然后設置與上位機一致的串口波特率。在串口中斷中實時監測和接收上位機座椅控制軟件發送來的控制命令,首先判斷接收到的命令是否是復位命令:如果是復位命令,則啟動連接到控制器的復位傳感器并控制座椅進行持續的逆時針轉動,當座椅上的金屬片被復位傳感器檢測到時會產生復位信號,并觸發復位中斷,此時控制座椅停止轉動,完成座椅位置的復位;當收到的控制命令不是復位命令時,程序會對命令進行解析并判斷命令的類型,進而對應不同命令控制座椅進行轉動方向、轉動速度等的控制。

圖6 座椅控制器程序流程圖
為了驗證研制的座椅運動控制系統對座椅進行運動控制的可行性和有效性,基于研制的座椅運動控制軟件和座椅運動控制器構建了運動控制測試實驗裝置,并分別進行了游戲場景下座椅同步控制實驗和VR影像下的遙控車與座椅同步控制實驗。
本實驗的目的是驗證研制的上位機控制軟件對座椅運動控制的可行性。構建的游戲場景下座椅同步控制測試裝置如圖7所示。構建的系統使用手柄是VINYSON U909雙震動電腦游戲手柄。使用F-86BYG1885的86步進電機,并配上減速比為1:5的RV040蝸輪蝸桿減速箱實現座椅轉動輸出,并且在減速齒輪箱上放置了一個模擬座椅,來觀察座椅的運動狀態。座椅運動控制器使用金屬外殼進行了封裝,一端通過USB線連接至電腦,另外兩根線分別連接至F-MD860H電機驅動器和LJ12A3-4-Z/BX接近開關復位傳感器,控制器的電源由電腦USB端口來提供,電機及驅動器的電源使用的是24 V輸出的明緯MS-500W供電電源。

圖7 游戲場景下座椅同步控制實驗裝置
實驗中首先需要將各硬件模塊按照圖1所示座椅控制系統方案進行有效互聯,關鍵步驟是座椅控制軟件可以正常讀取游戲手柄數據并可與座椅控制器正常通信。在如圖5所示控制軟件界面中,在“鼠標模式”下,通過鼠標點擊控制界面上的功能按鈕來控制模擬座椅的轉動方向和轉動速度,點擊復位按鈕,并將復位傳感器靠近金屬,測試座椅復位可行性。在“手柄模式”下,打開賽車游戲,操作手柄上的按鍵和遙桿同步控制游戲中的賽車轉向和座椅的轉動。
通過實驗測試表明:在“鼠標模式”下,通過點擊各功能按鈕可以有效控制電機的運動狀態,包括順時針轉動、逆時針轉動、停止、加速和減速等;在“手柄模式”下,使用游戲手柄可以同時控制電腦上運行的游戲和座椅電機的轉動,并且座椅電機轉動的速度可以通過加、減速按鍵進行調整,以使得座椅運動速度與游戲中的汽車的轉動幅度相匹配。
為進一步驗證研制的智能家居座椅控制系統在轉椅轉動控制中的有效性,同時擴展其在具體休娛座椅中功能應用,本實驗在原來上位機控制軟件中增加了對遙控車的遙控功能,游戲手柄除了可以控制座椅的轉動,還可同時控制實際環境中遙控車的運動,并結合VR眼鏡采集到的遙控車上實時傳輸的影像,實現浸入感更強的娛樂控制功能。構建的VR影像下的遙控車與座椅同步控制實驗裝置如圖8所示。

圖8 VR影像下的遙控車與座椅同步控制實驗裝置
如圖8所示實驗裝置中,遙控車的發送端控制器采用STC系列單片機模塊,使用NFR24L01無線模塊與遠程遙控車進行通訊,遙控車上邊載有可以實時采集車前影像的雙目攝像頭,攝像頭采集的數據通過WiFi傳輸模塊,傳輸至手機上APP軟件。由于雙目攝像頭采集到的數據在手機可形成雙畫面,在VR眼鏡輔助下可實時看到遠程遙控車前的3D畫面。通過實驗測試表明:在“手柄模式”下,上位機控制軟件中增加的遙控車功能可以對遙控車的運動狀態進行有效的控制,包括前后運動、左右轉動、停止和加減速等;通過手柄可有效的控制模擬座椅的轉動,并同時控制遙控車也相應的轉動運動;遙控車上采集的雙目攝像頭數據可以實時的傳輸至手機端,并通過VR眼鏡看到3D畫面,具有很強的浸入感。
設計并實現了一套具有交互能力的智能家居座椅運動控制系統。使用AT89S52嵌入式芯片設計了座椅運動控制器,使用VB.net設計了具有“鼠標模式”和“手柄模式”的座椅運動控制軟件。構建了座椅運動控制系統測試和應用實驗裝置,實驗結果表明,該控制系統運行穩定可靠,在游戲場景下,能夠實現對座椅和電腦上運行中游戲的同步控制,結合VR影像和對遠程遙控車的控制,可實現浸入感較強的座椅同步控制應用。研究設計的運動控制系統具有較高性價比,具有較好可移植性和交互能力,滿足企業對座椅轉動交互運動控制需求,在智能家居及其他控制應用中具有實際參考和應用價值。