吳云龍,程武山,2
(1.上海工程技術(shù)大學(xué) 機(jī)械與汽車工程學(xué)院,上海 201620;2.安徽非禾科技有限公司,安徽 蕪湖 241003)
近年來,人口老齡化呈現(xiàn)逐漸上升趨勢(shì),對(duì)于醫(yī)護(hù)人員來說無疑是從身體到心理都增加了負(fù)擔(dān)。對(duì)于癱瘓和長(zhǎng)期臥床的老年人來說,處理大小便很困難,自身尊嚴(yán)也不能得到很好保證[1-2]。隨著今年新冠疫情的爆發(fā),為避免醫(yī)護(hù)人員與病人直接接觸,六自由度機(jī)器人應(yīng)運(yùn)而生。目前國(guó)內(nèi)的幾家公司沒有研發(fā)多功能高技術(shù)產(chǎn)品,能實(shí)現(xiàn)的功能比較少,也就兩三個(gè)功能。比如國(guó)內(nèi)的創(chuàng)明利主要設(shè)計(jì)的是微保姆智能護(hù)理器,這是一種穿戴式的自動(dòng)坐便護(hù)理裝置,是脫離康復(fù)護(hù)理床的獨(dú)立個(gè)體。該裝置擁有沖水、烘干、排污等功能[3]。與此同時(shí),國(guó)外的一些公司也將計(jì)算機(jī)技術(shù)用于醫(yī)療行業(yè),例如美國(guó)的Metrocare公司、日本的八樂夢(mèng)公司。其公司雖然能夠?qū)崿F(xiàn)支背、屈腿及其他一些輔助功能,但是不能實(shí)現(xiàn)自動(dòng)坐便護(hù)理功能。
針對(duì)此問題,提出了一種基于STM32F429的遠(yuǎn)程遙控六自由度機(jī)器人控制系統(tǒng),實(shí)現(xiàn)支背上行、屈腿下行、蓋板打開、便盆上行、沖洗烘干及便袋自動(dòng)封閉等六自由度機(jī)器人功能。該控制系統(tǒng)主要由這5部分組成:無線遙控器(無線通信NRFL2401)、收線電機(jī)、控制板、氣泵和水泵。收線電機(jī)主要用于便袋封閉,防止異味散發(fā)。
系統(tǒng)總體設(shè)計(jì)方案如圖1所示,該控制系統(tǒng)設(shè)計(jì)方案主要分為四部分:① 無線通信。系統(tǒng)采用無線通信芯片NRFL2401,通過對(duì)遙控器軟硬件的設(shè)計(jì),最終實(shí)現(xiàn)通過SPI與下位機(jī)進(jìn)行通信。② 控制板與收線電機(jī)。控制板核心板采用STM32F429,底板根據(jù)所需要的功能,采用模塊化設(shè)計(jì)思想,自主進(jìn)行原理圖與PCB圖的設(shè)計(jì)與調(diào)試。收線電機(jī)采用安川35步進(jìn)電機(jī),利用驅(qū)動(dòng)器設(shè)計(jì)好細(xì)分?jǐn)?shù)(電機(jī)轉(zhuǎn)一圈所需的脈沖數(shù)),調(diào)整電機(jī)所需脈沖數(shù)以實(shí)現(xiàn)便袋封閉功能并且采用定時(shí)器輸出脈沖寬度調(diào)制 (Pulse Width Modulation,PWM)方波控制收線電機(jī)的速度。③ 水泵和氣泵。水泵、氣泵是用來沖洗、烘干。 ④ 電動(dòng)推桿。本文以電動(dòng)推桿作為驅(qū)動(dòng)裝置,實(shí)現(xiàn)支背、屈腿、坐便器蓋板打開及便盆上行等功能。⑤ 遙控器。通過對(duì)遙控器硬件軟件的設(shè)計(jì)實(shí)現(xiàn)了對(duì)機(jī)器人的控制。
圖1 系統(tǒng)總體設(shè)計(jì)方案Fig.1 Overall design scheme of the system
對(duì)于臥床的病人而言,進(jìn)行大小便需要按照正常人一樣處于坐姿狀態(tài),因此涉及到支背、屈腿機(jī)構(gòu)和坐便器機(jī)構(gòu)。支背機(jī)構(gòu)上行是機(jī)器人的第一個(gè)自由度,圖2為支背機(jī)構(gòu)的平面運(yùn)動(dòng)簡(jiǎn)圖。
圖2 支背機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖Fig.2 Motion diagram of supporting mechanism
由圖2可知,當(dāng)電動(dòng)推桿伸出時(shí),帶動(dòng)支背推桿逆時(shí)針轉(zhuǎn)動(dòng),包膠輪就推動(dòng)背部板上行,實(shí)現(xiàn)了將人體抬高的功能。當(dāng)電動(dòng)推桿收縮時(shí),帶動(dòng)支背推桿順時(shí)針轉(zhuǎn)動(dòng),包腳輪就推動(dòng)背部板下行,實(shí)現(xiàn)了將人體放平的功能。電動(dòng)推桿的運(yùn)行主要是繼電器切24 V,支背機(jī)構(gòu)相關(guān)參數(shù)如表1所示。
表1 支背機(jī)構(gòu)基礎(chǔ)參數(shù)表
由上可知,在運(yùn)行自動(dòng)坐便器時(shí),需要處于坐姿,腿部向下彎曲。屈腿機(jī)構(gòu)下行是機(jī)器人的第二個(gè)自由度。經(jīng)計(jì)算機(jī)構(gòu)的自由度為1,確保機(jī)構(gòu)穩(wěn)定運(yùn)行,屈腿機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖如圖3所示。
圖3 屈腿機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖Fig.3 Motion diagram of curved leg mechanism
如圖3所示,四邊形ABCD為平行四邊形,其中機(jī)架AB、AD和BC為轉(zhuǎn)動(dòng)連桿,CD為傳動(dòng)連桿,運(yùn)動(dòng)中AD與BC始終平行,AB與CD保持水平。通過電動(dòng)推桿的伸出與收縮實(shí)現(xiàn)屈腿機(jī)構(gòu)的穩(wěn)定運(yùn)行,驅(qū)動(dòng)方式與支背一樣。屈腿機(jī)構(gòu)基礎(chǔ)參數(shù)如表2所示。
表2 屈腿機(jī)構(gòu)基礎(chǔ)參數(shù)表
坐便器機(jī)構(gòu)的設(shè)計(jì)主要用來對(duì)大小便進(jìn)行處理,坐便器機(jī)構(gòu)平面運(yùn)動(dòng)簡(jiǎn)圖如圖4所示。
圖4 坐便器機(jī)構(gòu)運(yùn)動(dòng)簡(jiǎn)圖Fig.4 Motion diagram of sitting mechanism
ABCD為平行四邊形機(jī)構(gòu),OF為雙邊傳動(dòng)轉(zhuǎn)軸,傳動(dòng)連桿EF是驅(qū)動(dòng)的連桿,進(jìn)行驅(qū)動(dòng)平行四邊形機(jī)構(gòu)的驅(qū)動(dòng)。OK為電動(dòng)推桿,電動(dòng)推桿水平固定。KF為拉桿,通過電動(dòng)推桿拉動(dòng)雙邊傳動(dòng)轉(zhuǎn)軸OF來驅(qū)動(dòng)平行四邊形機(jī)構(gòu)。GI和JH為便蓋隨動(dòng)連桿,由平行四邊形進(jìn)行驅(qū)動(dòng)進(jìn)行盒蓋的開關(guān)。坐便器機(jī)構(gòu)存在兩個(gè)自由度:坐便器蓋板打開、便盆上行。坐便器機(jī)構(gòu)基礎(chǔ)參數(shù)如表3所示。
表3 坐便器機(jī)構(gòu)基礎(chǔ)參數(shù)表
對(duì)便袋封閉機(jī)構(gòu)的設(shè)計(jì)主要是防止異味散發(fā)。便袋機(jī)構(gòu)存在兩個(gè)自由度:收線推桿上行、收線電機(jī)動(dòng)作扎緊便袋。收線推桿也是采用電動(dòng)推桿,12 V供電,行程50 mm。實(shí)現(xiàn)方式如下:將繩子纏繞在便盆上方,繩子穿過電動(dòng)推桿與電機(jī)帶輪相連,通過電機(jī)的轉(zhuǎn)動(dòng),將繩子拉緊以實(shí)現(xiàn)便袋封閉功能。
控制系統(tǒng)采用的是STM32F429芯片,該芯片是32位的處理器,共有144的GPIO口,這些IO口既可以作為普通的IO口使用,也可以復(fù)用為串口。比如PA9與PA10既可以做普通的IO口使用,也可以復(fù)用為串口1的發(fā)送接收引腳。
該芯片具有豐富的通信功能,比如IIC,SPI,RS-232串口,485串口等[4-5]。最小系統(tǒng)主要包括供電系統(tǒng)、復(fù)位系統(tǒng)、時(shí)鐘系統(tǒng)、BOOT啟動(dòng)模式系統(tǒng)、下載電路以及后備電池。
本文采用NRF24L01無線通信模塊,該通信模塊采用3.3 V供電,同時(shí)采用SPI與下位機(jī)STM32F429進(jìn)行通信,數(shù)據(jù)傳輸速度最大可達(dá)10 MHz,穩(wěn)定可靠[6]。SPI是一種全雙工、同步通信總線,只是用了4根線與控制器進(jìn)行通信,分別是:① MISO,主機(jī)數(shù)據(jù)輸入,從機(jī)數(shù)據(jù)輸出;② MOSI,主機(jī)數(shù)據(jù)輸出,從機(jī)數(shù)據(jù)輸入;③ SCLK,時(shí)鐘信號(hào),由主機(jī)產(chǎn)生;④ CS,從機(jī)片選信號(hào),主要由主機(jī)控制。SPI內(nèi)部結(jié)構(gòu)簡(jiǎn)圖如圖5所示。從硬件上分析,總共只有4根線,主機(jī)與從機(jī)都有一個(gè)串行移位寄存器,SPI通信是一種全雙工的通信,主機(jī)與從機(jī)的數(shù)據(jù)是同時(shí)傳輸?shù)摹J紫龋鳈C(jī)先發(fā)送時(shí)鐘信號(hào),通過片選信號(hào)線確認(rèn)與主機(jī)通信的從機(jī)。主機(jī)將移位寄存器里的內(nèi)容逐一利用MOSI信號(hào)線發(fā)送給從機(jī),與此同時(shí),從機(jī)也將移位寄存器的數(shù)據(jù)逐一利用MISO信號(hào)線發(fā)送給主機(jī)。這樣,主機(jī)與從機(jī)的數(shù)據(jù)就被交換。
圖5 SPI原理圖Fig.5 SPI schematic diagram
對(duì)于SPI通信而言,時(shí)鐘信號(hào)的相位與極性也很重要。SPI_CR寄存器的時(shí)鐘極性(CPOL)與時(shí)鐘相位(CPHA)位,能夠組合4種時(shí)序關(guān)系。CPOL位主要用于控制在沒有數(shù)據(jù)傳輸時(shí)時(shí)鐘的空閑狀態(tài)電平,這一位對(duì)主機(jī)、從機(jī)都是有效的。如果CPOL位被清零,SCK引腳在空閑狀態(tài)保持低電平;如果CPOL位被置1,SCK引腳在空閑狀態(tài)保持高電平。如果CPHA位被置1,SCK時(shí)鐘的第二個(gè)邊沿進(jìn)行數(shù)據(jù)采集,數(shù)據(jù)在第二個(gè)邊沿被鎖存;如果CPHA位被置0,SCK時(shí)鐘的第一個(gè)邊沿進(jìn)行數(shù)據(jù)采集,數(shù)據(jù)在第一個(gè)邊沿被鎖存[7]。
由SPI_CR1寄存器LSBFIRST位可知,輸出數(shù)據(jù)時(shí)可以MSB在前也可以LSB在前,根據(jù)SPI_CR1寄存器DFF位,每個(gè)數(shù)據(jù)幀可以是8位,也可以是16位。應(yīng)用程序主要通過3個(gè)狀態(tài)的判斷來檢測(cè)SPI總線的狀態(tài):① 發(fā)送緩沖器空閑標(biāo)志位(TXE),此標(biāo)志位置1表示發(fā)送緩沖器空閑,寫下一個(gè)待發(fā)送的數(shù)據(jù)進(jìn)入緩存器中后,TXE標(biāo)志位被清除。② 接收緩沖器非空(RXNE),此標(biāo)志位置1表示接收緩沖器中包含有效的接收數(shù)據(jù),讀SPI數(shù)據(jù)寄存器可以清除此標(biāo)志。③ 忙(BUSY)標(biāo)志,有硬件設(shè)置與清除,表示通信的狀態(tài)。
步進(jìn)電機(jī)是一種將電脈沖信號(hào)轉(zhuǎn)換成直線或角位移的執(zhí)行元件。要想使步進(jìn)電機(jī)正常的運(yùn)轉(zhuǎn),離不開脈沖線和方向線共同作用。方向信號(hào)線控制電機(jī)的正轉(zhuǎn)和反轉(zhuǎn)。控制板的通用輸入輸出口(GPIO)口的脈沖信號(hào),通過環(huán)形分配器按一定的順序加到電動(dòng)機(jī)的各項(xiàng)繞組上,再通過功率放大器使電動(dòng)機(jī)能夠輸出足夠的功率[8]。
當(dāng)U相接通電源,V相與W相不接通電源,此時(shí)1齒和3齒與U相對(duì)齊;同理當(dāng)V相接通電源,U相和W相不接通電源,2齒和4齒與V相對(duì)齊;當(dāng)W相接通電源,U相和V相不接通電源,1齒和3齒與W相對(duì)齊。可知當(dāng)步進(jìn)電機(jī)的通電順序?yàn)椤癠→V→W→U→V→…”時(shí),轉(zhuǎn)子便沿順時(shí)針方向一步步地向前轉(zhuǎn)動(dòng);通電狀態(tài)每更換一次,轉(zhuǎn)子便前進(jìn)一步,電機(jī)每轉(zhuǎn)一步對(duì)應(yīng)的角度稱為步距角。步距角的計(jì)算方法如下:
θb=360/ZKm,
(1)
式中,Z為電機(jī)轉(zhuǎn)子齒數(shù),m為電機(jī)定子繞組相數(shù),K為通電系數(shù)(K=1,2)。
步進(jìn)電機(jī)通過連接件直接與負(fù)載相連,由電機(jī)產(chǎn)生輸出轉(zhuǎn)矩TM,用來克服負(fù)載轉(zhuǎn)矩TL,帶動(dòng)負(fù)載以角速度ω(或速度n)進(jìn)行運(yùn)動(dòng)。當(dāng)輸出轉(zhuǎn)矩TM與負(fù)載轉(zhuǎn)矩TL平衡時(shí),轉(zhuǎn)速n或角速度ω不變;加速度dn/dt或角加速度dω/dt等于零,即TM=TL,這種運(yùn)動(dòng)狀態(tài)稱為靜態(tài)(相對(duì)靜止?fàn)顟B(tài))或穩(wěn)態(tài)(穩(wěn)定運(yùn)轉(zhuǎn)狀態(tài))。當(dāng)TM≠TL時(shí),轉(zhuǎn)速或角速度就要發(fā)生變化,產(chǎn)生角加速度,速度變化的大小與傳動(dòng)系統(tǒng)的轉(zhuǎn)動(dòng)慣量J有關(guān)。
(2)
TM-TL=Td,
(3)
式中,TM為電機(jī)的輸出轉(zhuǎn)矩;TL為負(fù)載轉(zhuǎn)矩;J為傳動(dòng)系統(tǒng)的轉(zhuǎn)動(dòng)慣量;ω為傳動(dòng)系統(tǒng)的角速度;n為傳動(dòng)系統(tǒng)的轉(zhuǎn)速;t為時(shí)間;Td為動(dòng)態(tài)轉(zhuǎn)矩。
但是在實(shí)際工程中往往用轉(zhuǎn)速來代替角速度,用飛輪慣量來代替轉(zhuǎn)動(dòng)慣量,因此有:
(4)
考慮傳動(dòng)機(jī)構(gòu)在傳輸功率過程中有損耗,這個(gè)損耗可用效率ηc來表示,即:
(5)
負(fù)載轉(zhuǎn)矩折算到電機(jī)軸上的等效轉(zhuǎn)矩為:
(6)
式中,ηc為電機(jī)傳動(dòng)效率;j為總傳動(dòng)比;ωM為電機(jī)角速度;ωL為轉(zhuǎn)動(dòng)速度;T′L為負(fù)載轉(zhuǎn)矩。
控制板的IO口接到驅(qū)動(dòng)器的方向正、脈沖正上,方向負(fù)、脈沖負(fù)接系統(tǒng)對(duì)應(yīng)的0 V。外部控制系統(tǒng)使用共陽(yáng)的接法,VCC采用的是5 V供電,如果外部系統(tǒng)供電電壓超過5 V,就需要外加限流電阻進(jìn)行限流。在使用驅(qū)動(dòng)器的時(shí)候,還要考慮到細(xì)分?jǐn)?shù)。步進(jìn)電機(jī)的細(xì)分?jǐn)?shù)在本質(zhì)上是一種電子阻尼技術(shù),主要用來減小電機(jī)的低頻振動(dòng),增大電機(jī)的運(yùn)作精度。本文細(xì)分?jǐn)?shù)采用的是6 400,也就是電機(jī)轉(zhuǎn)一圈需要6 400個(gè)脈沖。
本文采用的氣泵是微型真空負(fù)壓吸氣活塞泵,該微型氣泵采用直流24 V供電,其抽氣流量為42 L/min,真空度為-85 Kpa,實(shí)現(xiàn)沖洗之后進(jìn)行烘干。水泵采用直流12 V供電,型號(hào)是ZX45D-12,功率14.4 W,流量600 L/h,主要用來沖洗。支背、屈腿、坐便器都是通過電動(dòng)推桿來驅(qū)動(dòng),采用捷昌的電動(dòng)推桿,支背的電動(dòng)推桿為6 000 N,屈腿、坐便器的電動(dòng)推桿都為3 000 N,以上的控制方式都為STM32單片機(jī)的IO口控制繼電器的通斷,從而實(shí)現(xiàn)3.3 V切24 V[9]。
遙控器的硬件電路主要包括電源電路、晶振電路、復(fù)位、LCD電路、SWD調(diào)試接口及按鍵等。電源電路采用5 V供電,采用AMS1117將5 V轉(zhuǎn)換成3.3 V。采用8 M的晶振,按鍵采用低電平有效電路設(shè)計(jì),串口屏采用迪文科技,5 V供電,通過PA2、PA3與STM32F103進(jìn)行通信,實(shí)現(xiàn)數(shù)據(jù)的交互。
本實(shí)驗(yàn)采用NRF24L01無線通信模塊,其本質(zhì)就是SPI同步通信,由上可知,數(shù)據(jù)的通信需要兩個(gè)無線通信模塊,一個(gè)發(fā)送,一個(gè)接收。
首先對(duì)NRF24L01的IO口進(jìn)行初始化,對(duì)SPI2進(jìn)行初始化,設(shè)置其工作模式,數(shù)據(jù)結(jié)構(gòu)為8位幀結(jié)構(gòu),同步時(shí)鐘在空閑時(shí)為高電平,同步時(shí)鐘的第二個(gè)跳變沿?cái)?shù)據(jù)被采樣,預(yù)分頻值設(shè)置成256,數(shù)據(jù)的傳輸從MSB位開始,通過調(diào)用__HAL_SPI_ENABLE(&SPI5_Handler);使能SPI,并且調(diào)用SPI2_ReadWriteByte(0Xff);啟動(dòng)數(shù)據(jù)的傳輸。SPI的數(shù)據(jù)傳輸速度等于APB1的時(shí)鐘除以分頻系數(shù),APB1的時(shí)鐘一般時(shí)45 MHz。通過調(diào)用NRF24L01_Check(),檢測(cè)無線通信模塊是否存在,如果返回0,說明檢測(cè)到了NRF24L01模塊。通過調(diào)用NRF24L01_Write_Reg()函數(shù)實(shí)現(xiàn)對(duì)寄存器進(jìn)行寫值,u8 NRF24L01_Read_Buf(u8 reg,u8 *pBuf,u8 len);旨在指定位置讀出指定長(zhǎng)度的數(shù)據(jù)。遙控器作為發(fā)送端,下位機(jī)作為接收端,部分程序如下:
void NRF24L01_TX_Mode(void)
{
NRF24L01_CE=0;
NRF24L01_Write_Buf(NRF_WRITE_REG+TX_ADDR,(u8*)TX_ADDRESS,TX_ADR_WIDTH);∥寫TX節(jié)點(diǎn)地址
NRF24L01_Write_Buf(NRF_WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH);∥設(shè)置TX節(jié)點(diǎn)地址,主要為了使能ACK
NRF24L01_Write_Reg(NRF_WRITE_REG+EN_AA,0x01);∥使能通道0的自動(dòng)應(yīng)答
RF24L01_Write_Reg(NRF_WRITE_REG+EN_RXADDR,0x01);∥使能通道0的接收地址
NRF24L01_Write_Reg(NRF_WRITE_REG+SETUP_RETR,0x1a);∥設(shè)置自動(dòng)重發(fā)間隔時(shí)間:500 μs + 86 μs;最大自動(dòng)重發(fā)次數(shù):10次
NRF24L01_Write_Reg(NRF_WRITE_REG+RF_CH,40);∥設(shè)置RF通道為40
NRF24L01_Write_Reg(NRF_WRITE_REG+RF_SETUP,0x0f);∥設(shè)置TX發(fā)射參數(shù),0 dB增益,2 Mbit/s,低噪聲增益開啟
NRF24L01_Write_Reg(NRF_WRITE_REG+CONFIG,0x0e);∥配置基本工作模式的參數(shù);PWR_UP,EN_CRC,16BIT_CRC,接收模式,開啟所有中斷
NRF24L01_CE=1;∥CE為高,10 μs后啟動(dòng)發(fā)送
}
4.2.1 收線電機(jī)算法
步進(jìn)電機(jī)程序設(shè)計(jì)采用定時(shí)器中斷。采用TIM3進(jìn)行定時(shí),采用向上計(jì)數(shù),計(jì)數(shù)器從0記數(shù)到自動(dòng)重裝在值A(chǔ)RR,定時(shí)器產(chǎn)生溢出,然后定時(shí)器繼續(xù)重0開始計(jì)數(shù)。定時(shí)器的時(shí)鐘采用APB1時(shí)鐘,時(shí)鐘分頻因子設(shè)置為1[10-11]。采用值分頻寄存器設(shè)置自動(dòng)重裝值,預(yù)分配寄存器設(shè)置其計(jì)數(shù)器的計(jì)數(shù)頻率,TIM3_CR1控制寄存器設(shè)置其計(jì)數(shù)模式,中斷使能寄存器TIM3_DIER設(shè)置其是否開啟中斷。
4.2.2 步進(jìn)電機(jī)程序設(shè)計(jì)
對(duì)便袋進(jìn)行封閉需要步進(jìn)電機(jī)的驅(qū)動(dòng),硬件設(shè)計(jì)中對(duì)步進(jìn)電機(jī)的原理、選型進(jìn)行介紹,之后需要對(duì)軟件進(jìn)行設(shè)計(jì)。電機(jī)的驅(qū)動(dòng)器供電需要對(duì)繼電器切12 V,串口接收的指令是放在數(shù)組里面,首先需要清空數(shù)組里面的內(nèi)容以便接收指令,判斷方向標(biāo)志位是不是為1,繼電器得電,調(diào)用motor子函數(shù),同樣打開定時(shí)器進(jìn)行計(jì)時(shí),等待定時(shí)時(shí)間到電機(jī)結(jié)束[12]。其中涉及到一個(gè)T3Runtime,為定時(shí)器發(fā)生中斷的計(jì)數(shù)次數(shù),比如定時(shí)器設(shè)定的時(shí)間為10 μs,則T3Runtime會(huì)每隔10 μs加1,T3Runtime/speed==m1就是設(shè)置PWM的高低電平持續(xù)的時(shí)間為m1×speed×10 μs。步進(jìn)電機(jī)的程序設(shè)計(jì)的流程如圖6所示。
圖6 收線電機(jī)控制流程圖Fig.6 Control flow chart of receiving motor
4.2.3 收線電機(jī)調(diào)速
PWM是通過利用數(shù)字輸出技術(shù)來對(duì)模擬電路控制的一項(xiàng)技術(shù),PWM原理如圖7所示。
由圖7可知,假設(shè)定時(shí)器的計(jì)數(shù)方式設(shè)置為向上計(jì)數(shù)模式,當(dāng)計(jì)數(shù)器的值小于比較值時(shí),控制器的IO口輸出為0;當(dāng)計(jì)數(shù)器的值大于或等于比較值時(shí),控制器的IO口輸出為1[13-15]。當(dāng)計(jì)數(shù)器的值達(dá)到定時(shí)器自動(dòng)重裝載值時(shí),計(jì)數(shù)器清零,又將從零開始計(jì)數(shù),不斷地重復(fù)此過程,只要不斷地改變比較值,就可以實(shí)現(xiàn)定時(shí)器輸出不同的占空比,改變自動(dòng)重裝載值就不斷改變計(jì)數(shù)器的頻率,這就是PWM輸出的原理。STM32F429除了定時(shí)器6和定時(shí)器7以外,都可以輸出PWM方波。定時(shí)器輸出PWM方波主要涉及到幾個(gè)重要寄存器:比較模式寄存器、比較使能寄存器以及比較寄存器。比較模式寄存器有兩個(gè):一個(gè)設(shè)置通道1和2,另一個(gè)設(shè)置通道3和4。TIM_CCMR2寄存器是16位寄存器,模式設(shè)置位OC4M由3位組成,需要設(shè)置成110或者111,這兩種模式輸出電平的極性相反[13]。
圖7 PWM原理圖Fig.7 PWM schematic diagram
PWM可以生成一個(gè)脈沖信號(hào),這個(gè)脈沖信號(hào)的頻率由TIMX_ARR寄存器值決定,其占空比則由TIMX_CCRx寄存器值決定。通過向TIMx_CCMRx寄存器中的OCxM位寫入110(模式1)或者111(模式2),可以獨(dú)立選擇各個(gè)通道。必須將模式寄存器中的OCxPE位置1使能相應(yīng)的預(yù)裝載寄存器,最后通過將控制寄存器中的ARPE位置1使能ARR寄存器。PWM的高電平輸出的時(shí)間越長(zhǎng),電機(jī)的速度就越快,因此可以調(diào)節(jié)高電平持續(xù)的時(shí)間來控制電機(jī)的轉(zhuǎn)速。
本文用了4個(gè)電動(dòng)推桿:支背、屈腿、坐便器以及收線小推桿。這個(gè)4個(gè)推桿的硬件設(shè)計(jì)與算法均一樣。下面以支背為例,闡述其硬件電路和軟件算法。硬件電路:控制板的IO口連接到繼電器的輸入,輸出接到電動(dòng)推桿上,當(dāng)控制板輸出高電平時(shí),繼電器常開觸點(diǎn)閉合,輸出24 V,推桿運(yùn)行。推桿運(yùn)行何時(shí)停止需要靠定時(shí)器來實(shí)現(xiàn)。軟件算法如下:當(dāng)下位機(jī)通過串口收到指令后,對(duì)應(yīng)的標(biāo)志位置1,清除串口緩存,調(diào)用motor子函數(shù),初始化定時(shí)器,進(jìn)入到while(1)大循環(huán),等待定時(shí)時(shí)間到退出while循環(huán),推桿運(yùn)行結(jié)束。流程如圖8所示。
圖8 推桿運(yùn)行流程圖Fig.8 Push rod operation flow chart
本文采用3.5寸串口屏,分辨率為480 px×320 px,通過組態(tài)軟件DGUS Tool對(duì)UI界面進(jìn)行設(shè)計(jì),該串口屏在使用時(shí)需要一些通信規(guī)則:對(duì)于變量數(shù)據(jù)的顯示,指令格式為“5A A5 05 82 00 00 00 26”。 5A A5為數(shù)據(jù)幀頭,82為數(shù)據(jù)地址,00 00為屏幕寄存器地址,00 26為顯示的數(shù)據(jù)值。屏幕上“自動(dòng)坐便器”鍵值設(shè)置為0X000C。遙控器界面如圖9所示。
圖9 遙控器UI界面Fig.9 UI interface of remote control
控制板采用AD16設(shè)計(jì),板廠加工,對(duì)IO口、串口以及無線通信等進(jìn)行調(diào)試,滿足要求。在電路板調(diào)好之后,將控制程序下載到控制板里面,通過RS232串口調(diào)試助手給下位機(jī)發(fā)送指令,對(duì)串口調(diào)試助手界面參數(shù)進(jìn)行設(shè)置,包括串口的選擇、停止位、數(shù)據(jù)位及奇偶校驗(yàn)位等。若沒有達(dá)到所計(jì)劃的功能要求,則通過調(diào)節(jié)脈沖數(shù)增大或減小電動(dòng)推桿的長(zhǎng)度與程序里正負(fù)邏輯調(diào)整以實(shí)現(xiàn)所要求的功能。系統(tǒng)的實(shí)現(xiàn)需要4個(gè)電動(dòng)推桿和1個(gè)收線電機(jī)共同作用,調(diào)試參數(shù)如表4所示。
表4 電動(dòng)推桿與電機(jī)調(diào)試參數(shù)
從表4可以看出,當(dāng)電機(jī)的轉(zhuǎn)速與推桿速度一定時(shí),脈沖數(shù)越大,推桿的位移就越長(zhǎng),定時(shí)器及收線長(zhǎng)度就越大。
本文通過對(duì)機(jī)器人的支背機(jī)構(gòu)、屈腿機(jī)構(gòu)和坐便器機(jī)構(gòu)進(jìn)行設(shè)計(jì),經(jīng)過功能調(diào)試滿足所需的功能;然后對(duì)六自由度機(jī)器人控制系統(tǒng)的軟硬件進(jìn)行設(shè)計(jì),實(shí)現(xiàn)了支背、屈腿、蓋板打開、便盆上行、沖洗烘干和便袋自動(dòng)封閉功能。點(diǎn)擊遙控器上的“自動(dòng)坐便器” 控件,通過無線通信可以穩(wěn)定地操作機(jī)器人。相較于傳統(tǒng)的康復(fù)護(hù)理機(jī)器人,護(hù)工壓力大大減少,該系統(tǒng)使用簡(jiǎn)單、成本低,可以廣泛地應(yīng)用于醫(yī)療領(lǐng)域。