基于嵌入式Linux和Qt编程实现数码相框的设计

当胶卷退出我们普通人的生活之后,拍摄-冲洗胶卷-扩印照片的经典流程也渐渐从我们身边消失。取而代之的是,大量的数码相机用户群和种类繁多的各种存储介质。数码相框则是目前回放这些照片的最好途径,作为浏览数字照片的核心产品,数码相框正迎合了消费者的需求。
1、 系统需求分析
许多人不明白数码相框的魅力到底在哪里。时下拍摄的数码相片开始呈现出了几何级数的增长,要想再把这些相片都冲印出来回味、欣赏,浪费大量金钱不说,传统的相框、相册也无法再承担起保存的重任。数码相框将彻底解放那些积压下来的数码相片,让你人生中值得记忆的每一个瞬间从此不再被埋没在硬盘里面。数码相框可以用来美化家居,构造精致生活享受。分享快乐、展示成功;带给父母,缓解思念;或者带入办公室,消解工作压力。
而和传统的相框相比,数码相框也具备了很多的优势。数码相框采用了普通相框的外形,而且更为精致,用液晶显示屏来显示照片,配上电源、存储介质等,使多张相片能够在显示屏上循环播放,有的数码相框还增加了mp3和mp4等多媒体娱乐功能,比普通相框的单一功能更有优势。
作为消费类电子产品,数码相框必须考虑以下几个方面的功能:
1)用户界面及接口友好,操作简便。作为一个消费类电子产品,它的客户是多样化的,其中大部分都是非专业化的,甚至是老人或者是小孩,操作是否人性化、简洁化,成为能否让用户迅速接受产品的重要因素。
2)系统兼容性强,数码相框应该能够识别和处理当前数码相机拍摄图像格式,能够访问主流的半导体存储外设。
3)存储可靠,作为存储设备,必须通过严格的功能测试,以保证用户在使用过程中不丢失信息。
鉴于此,数码相框产品的主要功能应包括以下方面:
1)支持主流半导体存储卡,能从中读取图像文件。
2)在lcd屏中全屏循环显示多幅图像文件,支持各种主流格式。
3)显示时间和日期
4)可通过按钮或触摸屏进行操作。
2 、系统总体设计
基于linux下使用qt编写的数码相框架构设计方案通过使用纯c++语言开发来支持嵌入式linux系统,采用qt/eembedded作为gui来提供强大的用户界面,设计位于linux用户空间的目的是为了系统移植性。
本项目的系统架构由以下几个层次组成:
1)底层硬件。本设计采用凌阳的a8实验箱为三星s5pv210。
2)驱动程序
3)操作系统。一台装有ubuntu系统或装有ubuntu虚拟机的pc机。
4)qt应用程序
本项目所设计的数码相框主要采用qt为主的程序设计方案,配合a8实验箱就做成了一款数码相框。数码相框在初始化时会扫描指定目录下的所有支持的图片文件,用户可以通过按钮实现前翻或者后翻,并且可以进行放大和缩小的操作。
3、 实现数码相框项目流程
首先搭建系统,其中包括pc平台linux虚拟机环境建立、arm平台linux系统搭建。使用qt编程实现。常见的qt应用程序的开发有两种方式:
第一种使用文本编辑器编写c++代码,然后在命令行下生成工程并编译;
第二种使用qtcreator编写c++代码,并为qt creator安装qt embedded sdk,然后利用qt creator编译程序。由于qt creator具有良好的可视化操作界面,同时它包含了一个功能非常强大的c++代码编辑器,所以第二种方法是我们的首选。
1)在qt中,点击菜单栏file/new file or project,新建文件类型为qt c++project/qt gui application。在接下来的qt gui applic ation对话框中输入工程名称qtimage和保存路径。
所创建的数码相册项目工程如图1所示。
以下是数码相框的主程序,主要实现的功能是在界面上显示widget控件。
ui显示界面如图2所示。
通过点击左上角的缩小控制按钮,图片显示如图3所示。
通过点击左上角的翻页控制按钮,显示下一个图片如图4所示。
2)实验箱平台显示
通常的嵌入式系统的软件开发采用交叉编译调试的方式。交叉编译调试环境建立在宿主机上,对应的开发板成为目标板,本项目使用为凌阳的a8实验箱为三星s5pv210,其为arm a8架构的处理器。gnu编译器提供这样的功能,在编译器编译时可以选择开发所需的宿主机和目标机从而建立开发环境。所以在进行嵌入式开发前第一步的工作就是要安装一台装有指定操作系统的pc机作宿主开发机。嵌入式开发通常要求宿主机配置有网络,支持nfs(为交叉开发时mount所用)。然后要在宿主机上建立交叉编译调试的开发环境。
接下来编译用于实验箱运行的qt应用程序,首先将实验箱的串口和网线连接到pc机。
执行qt creator的build/clean all,清理之前生产的编译文件,防止编译嵌入式版本的程序出错。单击左下角所示的图标,会弹出编译选择框。点击“build”右侧的下拉列表,在弹出的四种编译类型中,选择“qt for a8 release”。点击“build ail”按钮,即可开始编译实验箱运行的版本,直到编译选择按钮上方的进度条变成绿色,即表示编译完成。并在工程的保存目录下,可以找到一个名为“qtimage-build-desktop”的文件夹,如图5所示。编译生成的可执行程序即在此文件夹中。
将qtimage-build-desktop文件夹中的qtimage文件复制到windows下,并按照前述中下载程序的方法,将qtimage下载到实验箱;在超级终端中,利用chmod 777 qtimage为qtimage添加可执行权限,并运行它。操作如图6所示。
在实验箱上使用触摸屏即可对应用程序进行操作。
4、 结束语
随着嵌入式系统的飞速发展,其应用已经渗透到人们生活的每一个领域。大到军事领域,小到小朋友的玩具,它正在以不同的形式悄悄地改变着人们的生产、生活方式。已经成为当今计算机领域的一个热点,因此开发和探讨嵌入式系统有着十分重要的意义。


英飞凌XENSIV连接传感器套件:“英”领物联,“智”享未来
新日本无线开发了最适合检测脉搏用的光电传感器NJL5303R
P35系列压电偏转镜的特点以及技术参数的介绍
如何在Vitis中把设置信息传递到底层的Vivado
毫米波和独立组网将成为5G发展新趋势的关键
基于嵌入式Linux和Qt编程实现数码相框的设计
美国空军融合多种光电技术增强监视雷达能力
24C01读写的c51源程序代码分享
如何避免PCB设计限制D类放大器性能?
DC电源模块超宽电压输入和输出的问题
超声波流速传感器的分类与原理
物联网技术能收集有关多种不同现有药物和分子的数据?
FPGA将在众多AI芯片中脱颖而出
世界上第一个可供散户投资者和交易员使用的人工智能交易软件
ios中国市场份额狂降!苹果在中国遭遇史上最大麻烦,等待iphone8的降临?
智能时代:消费类电子产品的设计之道
压力变送器检定前的准备工作
苏州移动全程进行4K超清直播,通过移动的和直播全程观看工程启动仪式
苹果春季新品iPad mini 6亮点汇总
爱立信敢放出狠话底气何在