当前位置:首页 > 单片机 > 单片机
[导读]尽管数码相框已经出现几年了,但它对很多人来说还是个新概念。数码相框通过液晶的屏幕来显示数字相片,可以通过读卡器接口从SD 卡获取数字相片信息,并可设置循环显示方式,比普通相框更灵活多变,也给日益增多的数码

尽管数码相框已经出现几年了,但它对很多人来说还是个新概念。数码相框通过液晶的屏幕来显示数字相片,可以通过读卡器接口从SD 卡获取数字相片信息,并可设置循环显示方式,比普通相框更灵活多变,也给日益增多的数码相片提供了一个新的展示空间。本文介绍一款基于mini2440 型ARM9 开发系统做的嵌入式简易数码相框。其硬件包括键盘,IO 口,显示器软件包括LINUX 操作系统都是mini2440 的资源,这里不再详述。

一、主要功能

开机后,显示开机图片。点击触摸屏上的图标,可以进入设置界面或点播界面。在设置界面可完成背景音乐的音量调节和设置播放幻灯片时的切换时间。点击播放界面,进入播放USB 中的图片。

二、开发环境及硬件电路

1. 主机环境

虚拟机下Fedora9, 开通smaba 服务。

Windows 下使用Source Insight 编辑查看代码,linux 环境下编译。

2. 开发板环境

Linux 系统采用2.6.26 内核。内核包含关键的底层驱动,如液晶,声卡,网卡等。设计者应有一定的linux 操作系统的基础知识。

3. 硬件

选用的mini2440 是一款低价实用的ARM9开发板,是一款性价比很高的学习板。它采用Samsung S3C2440 为微处理器,采用专业稳定的CPU 内核电源芯片和复位芯片来保证系统运行的稳定性。开发板提供对声卡,网卡,USB等的支持,很方便数码相框的制作。

其主要技术参数如下:

(1)CPU 处理器: Samsung S3C2440A,主频400MHz,最高533Mhz ;

(2)SDRAM 内存:在板64M SDRAM ;32bit 数据总线;SDRAM 时钟频率高达100MHz ;

(3)FLASH 存储:在板 64M Nand Flash ;

(4)主要接口和资源:

- 1 个100M 以太网RJ-45 接口( 采用DM9000 网络芯片) ;

- 3 个串行口;- 1 个USB Host ;

- 1 个USB Slave B 型接口;

- 1 个SD 卡存储接口;

- 1 路立体声音频输出接口,一路麦克风接口;

(5)LCD 显示:选用320×240 的32 位彩色液晶,带触摸屏;板上集成4 线电阻式触摸屏接口,可以直接连接四线电阻触摸屏;支持黑白、4 级灰度、16 级灰度、256 色、4096 色STN液晶屏,尺寸从3.5 英寸到12.1 英寸,屏幕分辨率可以达到1024×768 像素;

(6)带音频输出,用来播放音乐。

三、开发及制作过程

1. 移植QT( 版本为qt-embeddedfree-3.3.7)

QT 是一个跨平台的 C++ 图形用户界面库,是专为小型设备提供图形用户界面的应用框架和窗口系统。它提供丰富的窗口小部件(Widgets),支持窗口部件的定制,可以为用户提供漂亮的图形界面。QT 是开源的图形界面软件,也是最流行的图形界面之一。具体移植步骤如下:

(1) 在ftp://ftp.trolltech.com/qt/source/ 下载QT 源代码qt-embedded-free-3.3.7.tar.gz和qt-x11- free- 3.3.7.tar.gz .

(2) 编译qt-x11-free-3.3.7

① tar zxvf qt-x11-free-3.3.7

② cd qt-x11-free-3.3.7

③ ./configure

④ /usr/bin/gmake

(3) 交叉编译:编译qt-embedded-free-3.3.7

① tar zxvf qt-embedded-free-3.3.7

② c p q t - x 1 1 - f r e e - 3 . 3 . 7 / b i n / u i c q t -embedded-free-3.3.7/bin

③ c p q t - x 1 1 - f r e e - 3 . 3 . 7 / b i n / m o c q t -embedded-free-3.3.7/bin

④ cd qt-embedded-free-3.3.7

⑤ . / c o n f i g u r e - s h a r e d - t h r e a d-embedded arm -qvfb -freetype -depths4 , 8 , 1 6 , 2 4 , 3 2 - q t - g i f - q t - l i b p n g - q t -libmng -qt-libjpeg -qtopia-sqlite -no-qvfb/usr/bin/gmake

(4) 运行qt-embedded-free-3.3.7/example/hello/hello :

#cd qt-embedded-free-3.3.7/example/hello./hello –qws

如果屏幕显示hello,就说明移植成功。

2.移植音频播放器

播放器采用Madplay.Madplay 是开源播放器,使用方法简单。

管理Madplay 的主程序,包括播放、暂停播放、恢复播放、停止播放。

system("madplay north.mp3 &");

// 利用system 函数调用madplay 播放器播放*.mp3 音乐

system("madplay north.mp3 -r &"); //循环播放:参数-r

system("killall -9 madplay");

// 利用system 函数调用killall 命令将madplay 终止掉

system("killall -STOP madplay &");

// 利用system 函数调用killall 命令将madplay 暂停

system("killall -CONT madplay &");

// 利用system 函数调用killall 命令恢复madplay 的播放

具体步骤为:

(1) Madplay 的官方网站是http://www.

underbit.com/products/mad/.通过该网站的介绍可以得知, 它还需要libmad 和libid3tag两个库, 从该网站找到下载连接 http://sourceforge.net /project/ showfiles .php?

group_id=12349,就得到了移植 Madplay 所需要的三个文件:madplay-0.15.2b.tar.gz、libmad-0.15.1b.tar.gz 和libid3tag-0.15.1b.

tar.gz.

(2) 把这三个文件放到madplay 文件夹中,具体操作如下:

#cd /

#mkdir madplay

#cd madplay

#mkdir src-arm target-arm

解压后#cd madplay

#for f in $(ls *.tar.gz); do tar xvzf $f –C/src-arm ; done.

(3) 安装 libid3tag

#cd /src-x86/libid3tag-0.15.1b

# . / c o n f i g u r e - - p r e f i x = / m a d p l a y /target-x86

#make

#make install

(4)安装 libmad

#cd / libmad-0.15.1b

#./configure --prefix= /target-arm

#make

#make install

(5) 编译安装madplay

#cd /madplay/madplay-0.15.2b

# . / c o n f i g u r e - - p r e f i x = / m a d p l a y /t a r g e t - x 8 6 - - C P P F L A G S = - I m a d p l a y /t a r g e t - a r m / i n c l u d e – L D F L A G S = - L /madplay/target-arm/lib

生成了编译所需要的 Makefile 文件,输入以下命令开始编译安装:

#make

#make install

(6) 执行完毕后,可执行文件被安装在指定目录/madplay/target-arm/bin/ madplay中。拷贝一首MP3 文件到madplay 所在的目录,执行:#./madplay test.mp3,就可以听到MP3 的声音了。

3.编写程序

(1) 写操作流程。

在主程序中建一个mainwindow 类,用来显示开机界面并接收开机界面上的点击事件。

① 主程序中建一个setting 类, 初始化为隐藏,用来配置设置背景音乐、音量,播放幻灯片格式。当显示开机界面时点击到配置图标,该类的对象显示,显示出配置界面。点击setting 界面的隐藏图标时隐藏该界面;配置界面设置幻灯片切换的切换时间、音乐和音量② 主程序中建一个play 类, 初始化为隐藏。

显示开机界面后,如果点击到播放按钮,开始播放图片。播放过程中,点击点播界面界面,显示开机界面。

③ 设置完毕,点击"播放"图标,开始播放。

(2)制定程序架构。

QT 简单易用,功能强大,用它来实现该作品的功能,在写程序上省去了很多事。它提供对大多数目前流行图片格式的支持,如BMP、PNG、JPEG 等,并且可以对图片进行加工。我们可以通过QT 编程,实现图片的翻转、扭曲、缩放、重叠,以及播放幻灯片的各种切换效果。用触摸屏实现输入操作,进行界面切换。

(3)编辑调试程序。

程序用C++ 编写,在windows 主机系统下用source insight 软件编辑,通过文件共享,在虚拟机linux 环境下编译。具体步骤如下:

① 在windows 主机和linux 虚拟机的共享目录下, 打开source insight 软件,建一个工程,并把QT 源代码导入source insight 该工程,然后在这个工程里新建数码相框文件,这样,类成员会自动补齐。

② 编辑完毕,保存。

③ 进入虚拟机的数码相框工程路径, 执行以下面命令, 进行编译。

/bin/qmake –project

/bin/qmake

make

④ 挂载开发板,调试(用NFS)。进入开发板终端,执行相关命令,观看程序执行效果。

重复以上步骤,直至程序调试满意,然后把调好的程序烧入板子的flash 芯片中脱机运行。

四、结语

数码相框要求简洁实用、界面美观,力求给人以精神上的享受。本制作围绕这一目标,突出界面的美化,如幻灯片的切换、音量调整的界面等。该数码相框功能简单,大体框架已具备,在此基础上还可以进行很多修改和升级,比如连接网络、播放视屏、显示日历、闹钟等。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

引言 随着科技的不断发展,数字图像处理技术也得到了广泛的应用。其中,数码相框是一种可以显示数字照片的数字设备。与传统的相框不同,数码相框可以显示各种类型的照片,包括静态的、动态的、立体的等,同时还可以通过网络进行传...

关键字: 数码相框 图像处理

北京2022年12月15日 /美通社/ -- 近日,全球领先的数字支付公司Visa宣布,开启2023年亚太区“Visa加速器计划”(Visa Accelerator Program)的初创企业招募。Visa加速...

关键字: 加速器 VI BSP PLAY

(全球TMT2022年10月18日讯)昕诺飞发布一系列全新飞利浦Hue智能照明产品及合作信息。新推出的产品系列包括Hue Play电脑渐变灯带、睿迹彩光渐变落地灯。飞利浦Hue Play电脑渐变灯带专为适配电脑显示器而...

关键字: 飞利浦 智能照明 昕诺飞 PLAY

飞利浦Hue Play电脑渐变灯带,打造身临其境的桌面游戏体验 睿迹彩光渐变落地灯,多彩渐变光效营造更丰富的家庭照明氛围 与海盗船CORSAIR达成合作,通过iCUE软件可一键设置灯光场景,为用户带来优质的...

关键字: 飞利浦 PLAY 灯光 AIR

(全球TMT2022年7月25日讯)乐器制造商Yamaha Music GmbH,与互动活页乐谱与Tomplay应用的发明者Tombooks宣布建立合作关系。Yamaha客户将获得Tomplay应用三个月的免费高级访问...

关键字: YAMAHA PLAY MUSIC PRACTICE

(全球TMT2022年5月17日讯)2022年5月,深圳技德应用技术有限公司研发的手写笔记APP "Jnotes" 已在Google Play正式上线。Jnotes是一款功能强大、简洁易用的手写笔记应用。自研笔迹算法高...

关键字: APP PLAY NOTES GOOGLE

深圳2022年5月16日 /美通社/ -- 2022年5月,深圳技德应用技术有限公司研发的手写笔记APP "Jnotes" 已在Google Play正式上线,代表云记向全球互联网市场迈出了...

关键字: APP PLAY NOTES GOOGLE

深圳2022年5月11日 /美通社/ -- 2022年5月11日,印力商用置业有限公司(以下简称"印力")与中信资本控股有限公司(以下简称"中信资本")签署协议,收购中信建投-长沙...

关键字: HOUSE 激光 大众 PLAY

(全球TMT2022年4月29日讯)2022年4月23—27日,美国广播电视展览会(NAB 2022)在拉斯维加斯会展中心举办。TVU在本次展会上以丰富的云端SaaS结合TVU卓越的IP视频传输技术,展示创新的远程制作...

关键字: TV PS LINK PLAY

有一份来自佩奇的关心待查收,线下公益故事音乐会关爱继续 上海2021年12月9日 /美通社/ -- 近日,孩之宝全球娱乐工作室eOne旗下动画...

关键字: 游戏开发 PI PLAY
关闭
关闭