黃雨琦 孫瀟萌
摘要:當(dāng)今時(shí)代,科學(xué)技術(shù)發(fā)展迅速,雖然各種先進(jìn)的自然人機(jī)交互產(chǎn)品陸續(xù)問(wèn)世,但是人機(jī)交互技術(shù)仍處于研究發(fā)展階段。由于觸摸屏有著較強(qiáng)的人機(jī)交互功能,stm32f4開(kāi)發(fā)板具有強(qiáng)大的外設(shè)功能。本課題依托江蘇省三維打印裝備與制造重點(diǎn)實(shí)驗(yàn)室,研究開(kāi)發(fā)人機(jī)交互界面設(shè)計(jì)方案。本文主要介紹內(nèi)容是設(shè)計(jì)并實(shí)現(xiàn)三維打印機(jī)的人機(jī)交互功能,同時(shí)設(shè)計(jì)出電機(jī)通用控制系統(tǒng)的人機(jī)交互界面文件。根據(jù)課題要求通過(guò)查閱資料與老師交流,明確設(shè)計(jì)流程。通過(guò)前期對(duì)開(kāi)發(fā)板觸摸屏,顯示屏,sD卡的學(xué)習(xí),采用Keil uVision5進(jìn)行程序設(shè)計(jì),經(jīng)多次調(diào)試、修改,驗(yàn)證程序的可行性后再將硬件聯(lián)結(jié)成系統(tǒng),最后完善設(shè)計(jì)。設(shè)計(jì)的人機(jī)交互符合三維打印時(shí)的具體情況,界面友好、清晰,通過(guò)觸摸屏可控制三維打印時(shí)電機(jī)的運(yùn)轉(zhuǎn),達(dá)到了人機(jī)交互設(shè)計(jì)的要求。所設(shè)計(jì)的三維打印機(jī)的人機(jī)交互界面系統(tǒng)和電機(jī)通用控制人機(jī)交互系統(tǒng)實(shí)現(xiàn)了預(yù)期目標(biāo),驗(yàn)證了所提方案的正確性和可行性。
關(guān)鍵詞:人機(jī)交互 界面設(shè)計(jì) stm32f4開(kāi)發(fā)板
一、緒論
(一)課題研究背景及現(xiàn)狀
如今社會(huì)處在一個(gè)快速發(fā)展的階段,隨著一系列新技術(shù)的成熟和應(yīng)用,人們的生活方式發(fā)生了快速而多樣化的變化。近年來(lái)對(duì)人們影響最深遠(yuǎn)的核心技術(shù)群可以概括為新能源技術(shù)、新互聯(lián)網(wǎng)技術(shù)以及新制造技術(shù)。而新的制造體系恰恰是連接人類(lèi)社會(huì)基礎(chǔ)形態(tài)與高度數(shù)字化的虛擬社會(huì)之前的橋梁。當(dāng)前3D打印機(jī)中使用的控制器主要有ARM控制器和Arduino平臺(tái)。其中Arduino是目前世界上在3D打印中應(yīng)用最為廣泛的開(kāi)源平臺(tái),由于Ardulno簡(jiǎn)單的開(kāi)發(fā)方式,提供了一個(gè)很好的平臺(tái)結(jié)構(gòu),現(xiàn)在很多的MCU(ManagementControlunit)都可以應(yīng)用在Arduino平臺(tái)結(jié)構(gòu)中,隨著開(kāi)源平臺(tái)Arduino更好的發(fā)展,Arduino平臺(tái)可以不受MCU限制,任何的MCU都可以應(yīng)用到該平臺(tái)中。除了這種開(kāi)源簡(jiǎn)捷的平臺(tái)外,開(kāi)發(fā)者可以根據(jù)自己的需求選擇處理器實(shí)現(xiàn)控制系統(tǒng)的開(kāi)發(fā),當(dāng)前應(yīng)用最為廣泛的是ARM Cortex-M系列控制器,ARM系列的控制器具有豐富的外設(shè)和較高的工作頻率,擁有兼容性好、高度集成、易于開(kāi)發(fā)等優(yōu)勢(shì),適用于一些要求較高實(shí)時(shí)性和計(jì)算速度的嵌入式應(yīng)用場(chǎng)景,結(jié)合該控制器的特點(diǎn),比較適合應(yīng)用于3D打印。
(二)課題研究意義
根據(jù)2017年4月3D打印行業(yè)最權(quán)威咨詢(xún)公司——沃勒斯合伙公司發(fā)布的第22份年度產(chǎn)業(yè)報(bào)告顯示:“截止到2016年12月31日,全球3D打印行業(yè)(包括產(chǎn)品和服務(wù)在內(nèi))的行業(yè)總產(chǎn)值首次突破60億美元大關(guān),達(dá)到60 63億美元,預(yù)計(jì)到2020年底將達(dá)到125億美元?!?D打印顛覆了制造業(yè)體系具有良好的潛在市場(chǎng)需求,但是目前3D打印的普及仍有非常長(zhǎng)的路要走,如果參照打印機(jī)的發(fā)展路徑,雖然現(xiàn)在打印機(jī)的價(jià)格已經(jīng)非常便宜,但并不是每個(gè)家庭都擁有一臺(tái)打印機(jī),這其中最大的原因是人們對(duì)打印文檔的需求并不強(qiáng)烈。所以3D打印發(fā)展的最佳路徑應(yīng)該是個(gè)人電腦,現(xiàn)在越來(lái)越多的家庭購(gòu)買(mǎi)了電腦,不僅僅是其價(jià)格的降低還得益于使用成本的降低,由于電腦實(shí)現(xiàn)了自然的人機(jī)交互,而不是僅僅應(yīng)用于各種程序的編寫(xiě),使得電腦成為人們工作學(xué)習(xí)獲取信息地關(guān)鍵工具所在。3D打印也是如此,目前3D打印的使用成本仍非常高,如果用戶(hù)需要打印東西,必須首先了解3D打印的建模和相關(guān)開(kāi)發(fā)軟件的使用,還要把數(shù)據(jù)轉(zhuǎn)換成3D打印機(jī)可以識(shí)別的形式,并且現(xiàn)在很多打印機(jī)使用并沒(méi)有擺脫上位機(jī)的控制,這大大地增加了用戶(hù)的使用難度。不難看出良好人機(jī)交互設(shè)計(jì)更有利于用戶(hù)走進(jìn)這一新型設(shè)備,實(shí)現(xiàn)其系統(tǒng)價(jià)值,因此3D打印的人機(jī)交互設(shè)計(jì)成為3D打印發(fā)展中的重要一筆也是急切需要解決的問(wèn)題。
(三)課題研究?jī)?nèi)容
隨著信息技術(shù)的快速發(fā)展,人機(jī)交互系統(tǒng)逐漸成為國(guó)內(nèi)外信息領(lǐng)域的研究熱點(diǎn)。在現(xiàn)實(shí)生活中,觸摸屏因?yàn)槭褂玫姆奖阈?、材質(zhì)的堅(jiān)固性得到廣泛的運(yùn)用,并逐漸成為公共場(chǎng)合重要的人機(jī)交流輸入設(shè)備,可見(jiàn)觸摸屏有非常廣闊的發(fā)展前景。STM32F4開(kāi)發(fā)板采用Cortex M4內(nèi)核,運(yùn)行頻率可達(dá)168Mhz,憑借強(qiáng)大的處理功能得到廣泛應(yīng)用。
本課題主要致力于研究基于嵌入式系統(tǒng)的一種人機(jī)交互系統(tǒng)的設(shè)計(jì)。通過(guò)對(duì)STM32F4開(kāi)發(fā)板的開(kāi)發(fā)提供友好的用戶(hù)界面,實(shí)現(xiàn)對(duì)3D打印系統(tǒng)的控制運(yùn)提高成型系統(tǒng)使用的便捷性、增加用戶(hù)界面的友好性。
課題研究主要分兩部分,硬件的連接和軟件的設(shè)計(jì)。硬件由三部分組成,以STM32F407ZGT6芯片為核心的處理器、開(kāi)發(fā)板自帶的觸摸屏和將開(kāi)發(fā)板與3D打印系統(tǒng)相連接的電機(jī)控制器,軟件設(shè)計(jì)上,首先熟悉開(kāi)發(fā)環(huán)境,然后對(duì)軟件進(jìn)行設(shè)計(jì)對(duì)LCD模塊、觸摸屏模塊、電機(jī)控制模塊進(jìn)行編程,最后實(shí)現(xiàn)人機(jī)交互的功能。
二、硬件系統(tǒng)
本章節(jié)主要介紹在設(shè)計(jì)系統(tǒng)過(guò)程中包括STM32F4開(kāi)發(fā)板與2.8寸TFT LCD模塊基本內(nèi)容。
(一)系統(tǒng)組成
整個(gè)硬件系統(tǒng)由以人機(jī)交互為主的TFLCD顯示模塊,控制整個(gè)交互界面的STM32F4開(kāi)發(fā)板,和將3D打印系統(tǒng)與交互界面相連接的步進(jìn)電機(jī)驅(qū)動(dòng)器三部分組成。使用者通過(guò)TFLCD模塊自帶的觸摸屏發(fā)出指令,觸摸屏將相關(guān)參數(shù)發(fā)送給STM32F4開(kāi)發(fā)板,開(kāi)發(fā)板再向步進(jìn)電機(jī)驅(qū)動(dòng)器發(fā)出信號(hào),控制步進(jìn)電機(jī)運(yùn)動(dòng),進(jìn)而控制整個(gè)3D打印系統(tǒng)。
(二)sTM32F4開(kāi)發(fā)板簡(jiǎn)介
STM32F4開(kāi)發(fā)板基于Cortex-M4內(nèi)核,主頻達(dá)到168MHz,具有LCD接口,支持電阻電容觸摸屏。主芯片采用STM32F407ZGT6.該芯片集成FPu和DSP指令,并具有192KB SRAM、1024KBFLASH,滿(mǎn)足大容量數(shù)據(jù)存儲(chǔ)需求,12個(gè)16位定時(shí)器、2+32位定時(shí)器、2+DMA控制器(共16個(gè)通道)、3+SPI、2個(gè)全雙工12S、3個(gè)IIC、6個(gè)串口、2+USB(支持HOST/SLAVE)、2個(gè)CAN、3+12位ADC、2+12位DACI+SDIO接口、I+FSMC接口以及112個(gè)通用lo口等,支持外設(shè)的擴(kuò)展。最多可提供6路串口,有分?jǐn)?shù)波特率發(fā)生器、支持同步單線(xiàn)通信和半雙工單線(xiàn)通訊、支持LIN、支持調(diào)制解調(diào)器操作、智能卡協(xié)議和IrDA SIR ENDEC規(guī)范、具有DMA等。豐富的開(kāi)發(fā)板資源滿(mǎn)足了人機(jī)交互界面的設(shè)計(jì)需求。
(三)顯示屏與開(kāi)發(fā)板的連接
本次交互界面主屏幕采用TFT-LCD,即薄膜晶體管液晶顯示器。TFT-LCD在液晶顯示屏的每一個(gè)像素上都設(shè)置有一個(gè)薄膜晶體管(TFT),可有效地克服非選通時(shí)的串?dāng)_,使顯示液晶屏的靜態(tài)特性與掃描線(xiàn)數(shù)無(wú)關(guān),因此大大提高了圖像質(zhì)量。該模塊支持65K色顯示,顯示分辨率為320X240.接口為16位的80并口,自帶電容式觸摸屏。TFLCD模塊采用2*17的2.54公排針與外部相連,采用16位的方式與外部連接,相比8位方式顯示速度會(huì)更快,且TFTLCD模塊的RST信號(hào)線(xiàn)是直接接到STM32F4的復(fù)位腳上,并不由軟件控制,可以直接由硬件復(fù)位,這樣可以省下來(lái)一個(gè)IO口。另外我們還需要一個(gè)背光控制線(xiàn)來(lái)控制TFTLCD的背光。所以,我們總共需要IO口數(shù)目為21個(gè)。
STM32F4開(kāi)發(fā)板的主芯片STM32F407ZGT6.通過(guò)FSMC接口來(lái)控制LCD模塊的顯示。STM32F4的FSMC接口支持包括SRAM、NAND FLASH、NOR FLASH和PSRAM等存儲(chǔ)器。由于外部SRAM的控制一般有:地址線(xiàn)(A0~A18)、數(shù)據(jù)線(xiàn)(如D0~D15)、寫(xiě)信號(hào)(WE)、讀信號(hào)(OE)、片選信號(hào)(cs),如果SRAM支持字節(jié)控制,那么還有UB/LB信號(hào)。而TFTLCD的信號(hào)我們?cè)?8.1包括:RS、D0~D15、WR、RD、CS、RST和BL等,其中真正在操作LCD的時(shí)候需要用到的就只有RS、D0~D15、WR、RD和CS。其操作時(shí)序和SRAM的控制完全類(lèi)似,所以我們可以將FSMC_NE4做片選,將TFLCD當(dāng)作SRAM控制。
(四)開(kāi)發(fā)板與電機(jī)驅(qū)動(dòng)器之間的連接
本次設(shè)計(jì)采用的電機(jī)驅(qū)動(dòng)器為雷塞DM5045電機(jī)驅(qū)動(dòng)器,采用24-50V供電,適用于驅(qū)動(dòng)電壓24-50V,電流小于4.5A外徑42~86mm的兩相混合式步進(jìn)電機(jī)。電機(jī)驅(qū)動(dòng)器可由手動(dòng)撥碼開(kāi)關(guān)設(shè)定輸出電流,滿(mǎn)足步進(jìn)電機(jī)額定要求,電流大小以有效值和最大值標(biāo)稱(chēng),撥碼開(kāi)關(guān)組合,適用于驅(qū)動(dòng)電流小于4.5A的兩相混合式步進(jìn)電機(jī)。驅(qū)動(dòng)器細(xì)分設(shè)定是為了調(diào)整電機(jī)步距角度,主要調(diào)整驅(qū)動(dòng)器面板上撥碼開(kāi)關(guān)的狀態(tài)來(lái)設(shè)定16種細(xì)分模式。開(kāi)發(fā)板可以通過(guò)I/O口由杜邦線(xiàn)將輸出信號(hào)與電機(jī)驅(qū)動(dòng)器相連接。
三、軟件設(shè)計(jì)
本次設(shè)計(jì)旨在通過(guò)上位機(jī)用戶(hù)程序編譯軟件,對(duì)開(kāi)發(fā)板進(jìn)行開(kāi)發(fā),利用開(kāi)發(fā)板顯示人機(jī)交互界面,并接受用戶(hù)發(fā)出的信號(hào)同時(shí)對(duì)電機(jī)控制器發(fā)出信號(hào),提高成型系統(tǒng)使用的便捷性、增加用戶(hù)界面的友好性。本章對(duì)上位機(jī)的軟件編程實(shí)現(xiàn)和程序的編寫(xiě)進(jìn)行介紹。
(一)上位機(jī)的軟件編程實(shí)現(xiàn)
本次設(shè)計(jì)以STM32F4固件庫(kù)源程序?yàn)榛A(chǔ),采用Keil uVision5軟件編程平臺(tái)的c語(yǔ)言,以STM32F4采用ST-Link仿真器與USB接口將電腦與開(kāi)發(fā)板相連,進(jìn)行程序工程的創(chuàng)建和燒錄,實(shí)現(xiàn)對(duì)開(kāi)發(fā)板的開(kāi)發(fā)。
(二)主程序設(shè)計(jì)
主程序中首先對(duì)SD卡初始化后利用FAT系統(tǒng)模塊對(duì)文件打開(kāi)SD卡目錄,對(duì)圖片顯示初始化后,申請(qǐng)內(nèi)存,利用LCD模塊對(duì)儲(chǔ)存在SD卡中的開(kāi)機(jī)界面進(jìn)行顯示,最后能讓用戶(hù)能夠通過(guò)觸摸屏對(duì)電機(jī)進(jìn)行控制。本小節(jié)分LcD顯示模塊,觸摸屏模塊,電機(jī)控制模塊三個(gè)模塊對(duì)主程序設(shè)計(jì)進(jìn)行介紹。
1.LcD顯示模塊
對(duì)于交互界面而言,最重要的是要使用戶(hù)明確視覺(jué)因素,為了凸顯南京師范大學(xué),開(kāi)機(jī)畫(huà)面圖片選取了我校標(biāo)志性建筑——敬文圖書(shū)館,并在圖片上方上“3D打印”這樣使用者一開(kāi)機(jī)就會(huì)清楚,這是南京師范大學(xué)關(guān)于3D打印機(jī)控制的觸摸顯示屏。
JPG格式圖片,是最常用的圖像文件格式,同BMP格式不同,JPEG是一種有損壓縮格式,能夠?qū)D像壓縮在很小的儲(chǔ)存空間,圖像中重復(fù)或不重要的資料會(huì)被丟失,因此容易造成圖像數(shù)據(jù)的損傷。因此我們選用JPG格式圖片作為開(kāi)機(jī)界面。
我們將符合LCD大小的開(kāi)機(jī)界面圖片放在SD卡的PICTURE中,對(duì)SD卡初始化,并使用FATFS來(lái)管理SD卡,打開(kāi)SD卡目錄下的PICTURE文件,讀取圖片信息申請(qǐng)內(nèi)存空間并用開(kāi)發(fā)板提供的解碼庫(kù)TjpgDec實(shí)現(xiàn)對(duì)JPG格式圖片的解碼。
對(duì)圖片解碼后即可通過(guò)LCD模塊進(jìn)行顯示,LCD模塊的使用首先要進(jìn)行復(fù)位,因?yàn)門(mén)FTLCD模塊的RST信號(hào)線(xiàn)是直接接到STM32F4的復(fù)位腳上,所以L(fǎng)CD的復(fù)位可以直接通過(guò)開(kāi)發(fā)板硬件復(fù)位,然后通過(guò)設(shè)置坐標(biāo),寫(xiě)GRAM指令來(lái)實(shí)現(xiàn)對(duì)每一個(gè)點(diǎn)的處理,并以此為基礎(chǔ)設(shè)計(jì)數(shù)字,字符,圖片的顯示。TFLCD基本使用流程圖如圖3-3所示。
2.觸摸屏模塊
本次設(shè)計(jì)采用的觸摸屏為T(mén)FLCD模塊自帶的投射式電容觸摸屏(交互電容類(lèi)型),利用人體感應(yīng)進(jìn)行觸點(diǎn)檢測(cè)控制,不需要直接接觸或只需要輕微接觸,通過(guò)檢測(cè)感應(yīng)電流來(lái)定位觸摸坐標(biāo),最多可支持五點(diǎn)觸摸。該觸摸屏在玻璃表面的橫向和縱向的ITO電極的交叉處形成交互電容。交互電容的掃描方式就是掃描每個(gè)交叉處的電容變化,來(lái)判定觸摸點(diǎn)的位置。當(dāng)觸摸的時(shí)候就會(huì)影響到相鄰電極的耦合,從而改變交叉處的電容量。且電容觸摸屏無(wú)需校準(zhǔn),采用電容觸摸屏驅(qū)動(dòng)芯片OTT2001A芯片來(lái)檢測(cè)電容觸摸并通過(guò)IIC接口輸出數(shù)據(jù),OTT2001A只需要經(jīng)過(guò)簡(jiǎn)單的初始化就可以正常使用了。初始化流程如圖3-4所示。
本次設(shè)計(jì)采用查詢(xún)方式來(lái)判斷觸摸屏是否被按下,函數(shù)里使用了一個(gè)靜態(tài)變量來(lái)提高效率,當(dāng)無(wú)觸摸的時(shí)候,盡量減少對(duì)CPU的占用,當(dāng)有觸摸的時(shí)候,又保證能迅速檢測(cè)到,并根據(jù)橫屏豎屏計(jì)算觸摸屏的信息。
OTT2001A的輸出坐標(biāo),默認(rèn)是以:x坐標(biāo)最大值是2700.Y坐標(biāo)最大是的分辨率輸出的,也就是輸出范圍為:x:0~2700.Y:0~1500;MCU在取到坐標(biāo)后,必須根據(jù)LCD分辨率做一個(gè)換算,才能得到真實(shí)的LCD坐標(biāo)
觸摸屏程序的主要目的在于使得用戶(hù)能夠通過(guò)對(duì)屏幕觸摸實(shí)現(xiàn)對(duì)電機(jī)控制函數(shù)得調(diào)用電機(jī)控制函數(shù)。得到觸摸點(diǎn)得坐標(biāo)后可以通過(guò)觸摸點(diǎn)的不同范圍,調(diào)用不同的電機(jī)運(yùn)動(dòng)函數(shù)
3.電機(jī)控制模塊
快速成型系統(tǒng)采用的電機(jī)為步進(jìn)電機(jī),步進(jìn)電機(jī)是一種開(kāi)環(huán)控制電機(jī),在自動(dòng)控制系統(tǒng)中扮演著非常重要的角色,是其主要執(zhí)行元件。開(kāi)發(fā)板可以通過(guò)定時(shí)器產(chǎn)生脈沖信號(hào)和方向信號(hào)與電機(jī)控制器相連來(lái)控制步進(jìn)電機(jī)的運(yùn)動(dòng)。
開(kāi)發(fā)板利用定時(shí)器中斷模式來(lái)產(chǎn)生脈沖信號(hào),以x軸電機(jī)為例,采用TIM2定時(shí)器,首先要開(kāi)啟定時(shí)器時(shí)鐘,通過(guò)查閱數(shù)據(jù)手冊(cè)可得PA5可做TIM2-CHl通道。
首先對(duì)引腳進(jìn)行初始化,采用推挽復(fù)用模式,通過(guò)設(shè)置ARR和PSC兩個(gè)寄存器來(lái)設(shè)置脈沖周期,然后使能OHl通道并設(shè)置定時(shí)器為PWM輸出模式,最后使能定時(shí)器,可修改TIM14-CCRl來(lái)改變輸出脈沖的占空比,對(duì)程序燒錄完成后即可從PA5引腳中用示波器看到脈沖信號(hào)。通過(guò)置位函數(shù)和清零函數(shù)來(lái)設(shè)置方向引腳的高低電平從而改變電機(jī)運(yùn)動(dòng)的方向。
四、總結(jié)與提升
本文基于stm32f4開(kāi)發(fā)板進(jìn)行三維打印人機(jī)交互研究,首先概述了該研究課題的研究背景和研究現(xiàn)狀,然后全文圍繞開(kāi)發(fā)板的硬件連接和軟件設(shè)計(jì)進(jìn)行介紹,擺脫了上位機(jī)的控制,使得用戶(hù)通過(guò)開(kāi)發(fā)板觸摸屏即可實(shí)現(xiàn)對(duì)快速成型系統(tǒng)進(jìn)行操作,方便,簡(jiǎn)單,極大地降低了用戶(hù)使用成本。
在前期的理論研究指導(dǎo)下,論文在人機(jī)交互實(shí)踐設(shè)計(jì)上取得了一定的實(shí)踐成果,但受到我們知識(shí)面廣度和深度的局限,本研究課題同時(shí)存在許多不足之處,有待進(jìn)一步的補(bǔ)充和完善,主要有以下幾個(gè)方面:只是實(shí)現(xiàn)了對(duì)電機(jī)方向的控制,并沒(méi)有實(shí)現(xiàn)對(duì)電機(jī)運(yùn)行距離的精確控制。程序設(shè)計(jì)在交互方式的設(shè)計(jì)上略顯生硬,沒(méi)有實(shí)現(xiàn)更為自然的交互方式,界面的操作的人性化程度還不夠。設(shè)計(jì)符合用戶(hù)體驗(yàn)的應(yīng)用,就要對(duì)界面的人機(jī)工程學(xué)進(jìn)行仔細(xì)的研究。根據(jù)人機(jī)工程學(xué)的研究就可以使得我們的界面設(shè)計(jì)更加理性科學(xué),從而提高界面的可用性和用戶(hù)的滿(mǎn)意度,而這方面的調(diào)研顯然還不夠,需要日后不斷完善。
3D打印發(fā)展不到五十年,人機(jī)交互也在不斷發(fā)展,使用戶(hù)更自然地融入,接受,使用科技創(chuàng)新帶來(lái)的成果,是人機(jī)交互的根本宗旨。總之,人機(jī)交互是個(gè)永遠(yuǎn)前進(jìn)發(fā)展的課題,技術(shù)瓶頸逐一撐破,科學(xué)發(fā)展不斷深化,更為進(jìn)步的交互形式正在破繭而出。