基于S5PV210數碼相框的設計與實(shí)現
當膠卷退出我們普通人的生活之后,拍攝-沖洗膠卷-擴印照片的經(jīng)典流程也漸漸從我們身邊消失。取而代之的是,大量的數碼相機用戶(hù)群和種類(lèi)繁多的各種存儲介質(zhì)。數碼相框則是目前回放這些照片的最好途徑,作為瀏覽數字照片的核心產(chǎn)品,數碼相框正迎合了消費者的需求。
本文引用地址:http://dyxdggzs.com/article/201610/306929.htm1 系統需求分析
許多人不明白數碼相框的魅力到底在哪里。時(shí)下拍攝的數碼相片開(kāi)始呈現出了幾何級數的增長(cháng),要想再把這些相片都沖印出來(lái)回味、欣賞,浪費大量金錢(qián)不說(shuō),傳統的相框、相冊也無(wú)法再承擔起保存的重任。數碼相框將徹底解放那些積壓下來(lái)的數碼相片,讓你人生中值得記憶的每一個(gè)瞬間從此不再被埋沒(méi)在硬盤(pán)里面。數碼相框可以用來(lái)美化家居,構造精致生活享受。分享快樂(lè )、展示成功;帶給父母,緩解思念;或者帶入辦公室,消解工作壓力。
而和傳統的相框相比,數碼相框也具備了很多的優(yōu)勢。數碼相框采用了普通相框的外形,而且更為精致,用液晶顯示屏來(lái)顯示照片,配上電源、存儲介質(zhì)等,使多張相片能夠在顯示屏上循環(huán)播放,有的數碼相框還增加了MP3和MP4等多媒體娛樂(lè )功能,比普通相框的單一功能更有優(yōu)勢。
作為消費類(lèi)電子產(chǎn)品,數碼相框必須考慮以下幾個(gè)方面的功能:
1)用戶(hù)界面及接口友好,操作簡(jiǎn)便。作為一個(gè)消費類(lèi)電子產(chǎn)品,它的客戶(hù)是多樣化的,其中大部分都是非專(zhuān)業(yè)化的,甚至是老人或者是小孩,操作是否人性化、簡(jiǎn)潔化,成為能否讓用戶(hù)迅速接受產(chǎn)品的重要因素。
2)系統兼容性強,數碼相框應該能夠識別和處理當前數碼相機拍攝圖像格式,能夠訪(fǎng)問(wèn)主流的半導體存儲外設。
3)存儲可靠,作為存儲設備,必須通過(guò)嚴格的功能測試,以保證用戶(hù)在使用過(guò)程中不丟失信息。
鑒于此,數碼相框產(chǎn)品的主要功能應包括以下方面:
1)支持主流半導體存儲卡,能從中讀取圖像文件。
2)在LCD屏中全屏循環(huán)顯示多幅圖像文件,支持各種主流格式。
3)顯示時(shí)間和日期
4)可通過(guò)按鈕或觸摸屏進(jìn)行操作。
2 系統總體設計
基于Linux下使用Qt編寫(xiě)的數碼相框架構設計方案通過(guò)使用純C++語(yǔ)言開(kāi)發(fā)來(lái)支持嵌入式Linux系統,采用Qt/Eembedded作為GUI來(lái)提供強大的用戶(hù)界面,設計位于Linux用戶(hù)空間的目的是為了系統移植性。
本項目的系統架構由以下幾個(gè)層次組成:
1)底層硬件。本設計采用凌陽(yáng)的A8實(shí)驗箱為三星S5PV210。
2)驅動(dòng)程序
3)操作系統。一臺裝有Ubuntu系統或裝有Ubuntu虛擬機的PC機。
4)Qt應用程序
本項目所設計的數碼相框主要采用Qt為主的程序設計方案,配合A8實(shí)驗箱就做成了一款數碼相框。數碼相框在初始化時(shí)會(huì )掃描指定目錄下的所有支持的圖片文件,用戶(hù)可以通過(guò)按鈕實(shí)現前翻或者后翻,并且可以進(jìn)行放大和縮小的操作。
3 實(shí)現數碼相框項目流程
首先搭建系統,其中包括PC平臺Linux虛擬機環(huán)境建立、ARM平臺Linux系統搭建。使用Qt編程實(shí)現。常見(jiàn)的Qt應用程序的開(kāi)發(fā)有兩種方式:
第一種使用文本編輯器編寫(xiě)C++代碼,然后在命令行下生成工程并編譯;
第二種使用QtCreator編寫(xiě)C++代碼,并為Qt Creator安裝Qt Embedded SDK,然后利用Qt Creator編譯程序。由于Qt Creator具有良好的可視化操作界面,同時(shí)它包含了一個(gè)功能非常強大的C++代碼編輯器,所以第二種方法是我們的首選。
1)在Qt中,點(diǎn)擊菜單欄File/New File or Project,新建文件類(lèi)型為Qt C++Project/Qt Gui Application。在接下來(lái)的Qt Gui Applic ation對話(huà)框中輸入工程名稱(chēng)QtImage和保存路徑。
所創(chuàng )建的數碼相冊項目工程如圖1所示。

以下是數碼相框的主程序,主要實(shí)現的功能是在界面上顯示widget控件。

Ui顯示界面如圖2所示。

通過(guò)點(diǎn)擊左上角的縮小控制按鈕,圖片顯示如圖3所示。

通過(guò)點(diǎn)擊左上角的翻頁(yè)控制按鈕,顯示下一個(gè)圖片如圖4所示。

2)實(shí)驗箱平臺顯示
通常的嵌入式系統的軟件開(kāi)發(fā)采用交叉編譯調試的方式。交叉編譯調試環(huán)境建立在宿主機上,對應的開(kāi)發(fā)板成為目標板,本項目使用為凌陽(yáng)的A8實(shí)驗箱為三星S5PV210,其為ARM A8架構的處理器。GNU編譯器提供這樣的功能,在編譯器編譯時(shí)可以選擇開(kāi)發(fā)所需的宿主機和目標機從而建立開(kāi)發(fā)環(huán)境。所以在進(jìn)行嵌入式開(kāi)發(fā)前第一步的工作就是要安裝一臺裝有指定操作系統的PC機作宿主開(kāi)發(fā)機。嵌入式開(kāi)發(fā)通常要求宿主機配置有網(wǎng)絡(luò ),支持NFS(為交叉開(kāi)發(fā)時(shí)mount所用)。然后要在宿主機上建立交叉編譯調試的開(kāi)發(fā)環(huán)境。
接下來(lái)編譯用于實(shí)驗箱運行的Qt應用程序,首先將實(shí)驗箱的串口和網(wǎng)線(xiàn)連接到PC機。
執行Qt Creator的Build/Clean All,清理之前生產(chǎn)的編譯文件,防止編譯嵌入式版本的程序出錯。單擊左下角所示的圖標,會(huì )彈出編譯選擇框。點(diǎn)擊“Build”右側的下拉列表,在彈出的四種編譯類(lèi)型中,選擇“Qt for A8 Release”。點(diǎn)擊“Build AIl”按鈕,即可開(kāi)始編譯實(shí)驗箱運行的版本,直到編譯選擇按鈕上方的進(jìn)度條變成綠色,即表示編譯完成。并在工程的保存目錄下,可以找到一個(gè)名為“QtImage-build-desktop”的文件夾,如圖5所示。編譯生成的可執行程序即在此文件夾中。

將QtImage-build-desktop文件夾中的QtImage文件復制到Windows下,并按照前述中下載程序的方法,將QtImage下載到實(shí)驗箱;在超級終端中,利用chmod 777 QtImage為QtImage添加可執行權限,并運行它。操作如圖6所示。

在實(shí)驗箱上使用觸摸屏即可對應用程序進(jìn)行操作。
4 結束語(yǔ)
隨著(zhù)嵌入式系統的飛速發(fā)展,其應用已經(jīng)滲透到人們生活的每一個(gè)領(lǐng)域。大到軍事領(lǐng)域,小到小朋友的玩具,它正在以不同的形式悄悄地改變著(zhù)人們的生產(chǎn)、生活方式。已經(jīng)成為當今計算機領(lǐng)域的一個(gè)熱點(diǎn),因此開(kāi)發(fā)和探討嵌入式系統有著(zhù)十分重要的意義。
評論