黃雨琦 孫瀟萌


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