0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子设计 来源:山西电子技术 作者:王莉莉 2020-03-05 08:05 次阅读

当胶卷退出我们普通人的生活之后,拍摄-冲洗胶卷-扩印照片的经典流程也渐渐从我们身边消失。取而代之的是,大量的数码相机用户群和种类繁多的各种存储介质。数码相框则是目前回放这些照片的最好途径,作为浏览数字照片的核心产品,数码相框正迎合了消费者的需求。

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、 结束语

随着嵌入式系统的飞速发展,其应用已经渗透到人们生活的每一个领域。大到军事领域,小到小朋友的玩具,它正在以不同的形式悄悄地改变着人们的生产、生活方式。已经成为当今计算机领域的一个热点,因此开发和探讨嵌入式系统有着十分重要的意义。

责任编辑:gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5082

    文章

    19123

    浏览量

    305112
  • 三星电子
    +关注

    关注

    34

    文章

    15863

    浏览量

    181012
  • Linux
    +关注

    关注

    87

    文章

    11304

    浏览量

    209467
收藏 人收藏

    评论

    相关推荐

    亚嵌校园讲座系列—嵌入式技术与数码相框知识专题

    武汉理工大学华夏学院信息工程学院的邀请,于2010年4月14日18:30-20:00在武汉理工大学华夏学院5号教学楼211多媒体教室, 举办嵌入式Linux技术普及讲座,主讲内容是:嵌入式技术与
    发表于 04-12 10:10

    【Aworks申请】数码相框

    申请理由:想学习飞思卡尔芯片,利用ARM9平台学到32位MCU的编程技巧,同时实践课堂上学习的Linux系统编程QT编程,将其运用在
    发表于 07-14 14:50

    嵌入式数码相框怎么实现

    本文介绍了汇聚处理器Blackfin的基本功能,给出了以Blackfin为嵌入式系统硬件平台,并采用uClinux操作系统和其中集成的大量硬件驱动程序来设计具有互联网WiFi无线连接、电子邮件发送、RSS新闻阅读、即时照片分享、全触摸操作等功能的
    发表于 08-19 06:50

    嵌入式网络编程+嵌入式Linux系统

    D2.25嵌入式网络编程+嵌入式Linux系统一、Linux操作系统安装与使用(命令)二、Linux
    发表于 12-22 07:10

    基于Qt嵌入式Linux通讯簿程序设计

      摘 要: 随着嵌入式系统的发展,在Linux 下使用Qt 开发嵌入式应用程序是嵌入式图形用户界面( GUI) 系统应用研究的重点。通过一
    发表于 11-23 11:31 3605次阅读

    嵌入式linux GUI-Qt解析

    随着linux系统及基于linux系统的嵌入式产品的蓬勃发展,QtQt/Embedded、Qtopia的字样越来频繁的出现在我们面前。在华
    发表于 11-01 16:53 1次下载

    嵌入式linux应用开发之QT

    随着linux系统及基于linux系统的嵌入式产品的蓬勃发展,QtQt/Embedded、Qtopia的字样越来频繁的出现在我们面前。
    发表于 11-06 14:05 4次下载

    嵌入式LINUXQt开发入门教程

    嵌入式LINUXQt开发入门教程(最好的嵌入式开发板)-该文档为嵌入式LINUX
    发表于 08-04 11:01 30次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>LINUX</b>的<b class='flag-5'>Qt</b>开发入门教程

    嵌入式linux安装qt

    嵌入式linux部署qt几个疑问在windows系统里编好的QT程序,经过交叉编译后能直接运行在板子上吗?还是板子需要弄个QT环境啥的?就是
    发表于 10-20 18:06 6次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b>安装<b class='flag-5'>qt</b>

    嵌入式LinuxQt

    嵌入式LinuxQt嵌入式LinuxQt配置特定设备嵌入
    发表于 11-01 17:06 3次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>的<b class='flag-5'>Qt</b>

    嵌入式LinuxQT版本,嵌入式Linux版本Qt5.4快速部署

    关键词:摘要:Qt是一个领先的跨平台应用和UI 开发框架(Framework),使用标准C++,适用于桌面,嵌入式和移动平台。本文着重就利用Boot to Qt软件包来实现
    发表于 11-01 17:20 0次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>的<b class='flag-5'>QT</b>版本,<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>版本<b class='flag-5'>Qt</b>5.4快速部署

    嵌入式linux安装qt,嵌入式Linux版本Qt5.4快速部署

    摘要:Qt是一个领先的跨平台应用和UI 开发框架(Framework),使用标准C++,适用于桌面,嵌入式和移动平台。本文着重就利用Boot to Qt 软件包来实现
    发表于 11-02 10:51 0次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b>安装<b class='flag-5'>qt</b>,<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>版本<b class='flag-5'>Qt</b>5.4快速部署

    嵌入式Linux路线

    嵌入式linux开发环境搭建、嵌入式linux开发模型、linux内核移植和文件系统、嵌入式
    发表于 11-02 11:51 18次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>路线

    嵌入式网络编程+嵌入式Linux系统

    嵌入式网络编程+嵌入式Linux系统一、 Linux操作系统安装与使用(命令)二、 Linux
    发表于 11-02 14:51 23次下载
    <b class='flag-5'>嵌入式</b>网络<b class='flag-5'>编程</b>+<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>系统

    基于嵌入式Linux的数字相框设计

    电子发烧友网站提供《基于嵌入式Linux的数字相框设计.pdf》资料免费下载
    发表于 10-23 09:45 0次下载
    基于<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>的数字<b class='flag-5'>相框</b>设计