粤嵌开发板电子相册嵌入式课程设计Word文档下载推荐.docx

上传人:b****6 文档编号:18882512 上传时间:2023-01-01 格式:DOCX 页数:25 大小:2.15MB
下载 相关 举报
粤嵌开发板电子相册嵌入式课程设计Word文档下载推荐.docx_第1页
第1页 / 共25页
粤嵌开发板电子相册嵌入式课程设计Word文档下载推荐.docx_第2页
第2页 / 共25页
粤嵌开发板电子相册嵌入式课程设计Word文档下载推荐.docx_第3页
第3页 / 共25页
粤嵌开发板电子相册嵌入式课程设计Word文档下载推荐.docx_第4页
第4页 / 共25页
粤嵌开发板电子相册嵌入式课程设计Word文档下载推荐.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

粤嵌开发板电子相册嵌入式课程设计Word文档下载推荐.docx

《粤嵌开发板电子相册嵌入式课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《粤嵌开发板电子相册嵌入式课程设计Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。

粤嵌开发板电子相册嵌入式课程设计Word文档下载推荐.docx

目前,很多网络技术、服务器、网络设备都是基于Linux操作系统,并且在不少时尚的手机、PDA、媒体播放器等消费类电子产品中已经广泛使用Linux作为操作系统。

在Linux软件国策的指引下,Linux已经得到很大的普及。

很多学生已经自发地通过书籍、互联网等资源学习Linux。

综上所述,提高技术水平就是以市场流行需求为导向进行研发,特别是像嵌入式种工程类的技术。

在条件允许的情况下,我们甚至应该时刻与国际接轨,掌握当前最领先的技术。

任务分析

设计的目标是制作5种电子相册特效,每个人负责制作一种。

在制作前期,首先要查阅资料,了解电子相册的背景和制作原理,对其形成大致的设计方案。

然后,根据资料安装linux和虚拟机软件,搭建开发环境,安装交叉编译。

最后,根据自己设计的方案进行尝试,不断修改错误,直到达到目标。

课题项目管理计划进度表

序号

各阶段完成的内容

完成时间

1

查阅相关文献资料、课题调研

掌握设计软件、制订进度计划

系统方案的比较和选定

编写实现特效的代码

编译,运行目标文件,查看结果,根据结果进行代码的修改

制作答辩PPT

撰写课程设计说明书

答辩

工程设计方案

系统方案设计

目前市场上的主要设计方案:

1单芯片解决方案

以单芯片的解决方案,以ESS/AMLOGIC/MPX等芯片设计为代表,PHILIP/Sony等品牌厂商也以该方式为主。

该方案的优点:

(1)结构简单,成本低,芯片功能强大;

(2)多媒体的编解码速度快。

该方案的缺点:

(1)可扩展的余地不足;

(2)对读卡部分,某些方案使用硬件实现,不能支持新类型的卡;

(3)应客户要求的二次开发比较不方便。

②以DSP+FPGA等硬件为基础,用软件算法实现功能

这种方案,是以DSP来实现多媒体部分的编解码算法,再由FPGA实现显示输出格式的算法转化;

读卡部分,文件系统部分由DSP软件处理,外围设备大的驱动由DSP的软件算法实现。

这种方案的优点:

功能扩展升级性强,软件实现读卡部分,新的类型卡,外围设备可以通过升级方式实现。

这种方案的缺点:

(1)整体成本比较大;

(2)客户二次开发难度大。

DSP和FPGA的算法实现需要专业人员;

(3)显示输出由FPGA实现,该类输出大部分是数字的输出,模拟输出支持比较弱。

③ARM核心方案

以ARM等强大的CPU为核心,以WINCE、LINUX等操作系统为软件核心架构系统。

此方案以ARM如S3C2410、Intelxscale等强大的嵌入式CPU为架构,速度在200M-300MHZ。

嵌入WINCE、LINUX等操作系统,实现多媒体的编解码。

该方案的优点:

(1)系统芯片功能强大,实现的功能多,对于新的多媒体格式支持好,只需要安装更新的软件;

(2)硬件电路简单;

(3)二次开发容易实现。

(1)成本较大,该类强大的CPU一般使用在PDA等嵌入式领域;

(2)比较耗电,使用软件解码功耗与频率相关性很大。

本设计选用的是第三种方案:

以CortexA8为核心,以Linux操作系统为软件核心架构。

基于CortexA8的微处理器具有低功耗、低成本、高性能等特点。

GEC210开发板简介:

GEC210是一款高性能的CortexA8核心板,它由广州粤嵌股份设计、生产和发行销售。

它采用三星S5PV210作为主处理器,运行主频可高1GHz。

S5PV210内部集成了PowerVRSGX540高性能图形引擎,支持3D图形流畅运行,并可流畅播放1080P大尺寸视频。

GEC210主要采用了间距的双排针,引出CPU大部分常用功能引脚,,另外还根据S5PV210芯片的特性,分别引出了标准的miniHDMI接口,如图所示。

GEC210板载512MDDR2内存,可流畅运行Android,Linux和WinCE6等高级操作系统。

它非常适合开发高端物联网终端,广告多媒体终端,智能家居,高端监控系统,游戏机控制板等设备。

图2-1GEC210开发板(a)图2-2GEC210开发板(b)

硬件电路设计

粤嵌GEC210开发板为硬件平台,Ubuntu为开发环境,通过串口进行文件的传输,在工程师给定的项目基础函数上,通过修改和运用“voidlcd_draw_bmp(char*name,intx0,inty0,intw,inth)”函数实现图片位置,大小的改变,再加上延时函数的运用,实现五种图片特效。

图2-3硬件总框图

软件程序设计

总设计方案:

3.方案实施

软件程序调试过程

①安装虚拟机和linux软件。

②搭建环境和安装交叉编译。

1)找到ubuntu系统工作目录

图3-1

2)在windos系统下找到该工作目录并创建一个文件夹,将复制过去。

图3-2

3)启用共享文件夹

图3-3

4)主机路径为windos系统下的目录,名称自动生成

图3-4

图3-5

5)可以在文件系统中/mnt/hgfs/share目录下看到这些。

图3-6

6)为了可以将复制到/opt目录下,/opt默认所有者为root,所以要更改/opt的所有者为我登陆的账户。

图3-7

7)将文件复制到/opt目录下。

图3-8

8)执行如下解压命令。

2聚焦逐现特效部分调试

原本打算做图片翻转的特效,在网上查到图片翻转特效的算法并经过修改如下:

结果与结论

设计结果

设计结果实现了以下4点:

1)在LCD上显示图片,文字;

2)关于GEC210芯片的使用,Ubuntu环境下的操作;

3)可随时更换图片,具有串行通信功能;

4)聚焦逐现图片特效。

效果分布展示如下:

图4-1开始界面

图4-2逐步缩小界面

图4-3放大反转界面

结论

设计优缺点:

1)实现了多种不同的图片播放特效。

2)二次开发容易实现。

3)图片的自动播放。

4)未实现手动播放和音乐功能。

设计的核心及工程实用价值:

随着数码相机的大量普及和人们对多媒体播放的需求,不同用户的计算机中存满各种照片,连桌上相框中照片的更换频率也提高了。

对数码相片进行便捷的显示、分享、编辑、删除、打印等操作逐渐成为市场的需求。

电子相框,数码伴侣等概念型产品逐渐出现在数码市场,电子相册也由概念型产品进入市场已有六、七年。

目前,电子相册产品主要应用于礼品市场,其真正的目标用户却是非常广的,并且它的最终消费人群应该是以家庭为主的普通消费者,其应用的领域将更广阔。

改进意见:

1)实现通过触屏实现图片特效间的切换。

2)音乐播放功能的增加。

3)多张图片合成一张图片播放功能的实现。

展望:

电子相框结合液晶显示技术、电视技术、数字存储技术,日益成为面向时尚个性的数码相机、数码摄像的最佳伴侣。

随着核心器件NandFlash和LCD屏的降价,必将进一步刺激电子相框的市场需求。

多功能电子相册方便携带、重量轻、样式丰富,在今后必定有更大发展空间。

5.收获与致谢

在本次设计开始前,我们最先开始的是查资料,通过查找资料了解图片显示和各种特效的实现原理,然后再自己尝试设计特效,一开始我们想的特效都很复杂,想要一步实现,尝试了很多方法,都没能成功。

最后,我们改变了思路,用图片逐层显示来实现动态过程,这个特效虽然简单,但它是复杂特效的一个基础,让我明白了复杂的设计要从简单开始,不能想着一口吃个大胖子。

到答辩前一天我们各自设计的特效才有了一点自己想要的效果,当时还很想实现触屏和音乐播放功能,但前期尝试时一直调试不成功所以就没有来得及实现,这是本次设计中的一个遗憾。

通过本次设计也更加熟悉了linux的操作流程,熟悉了做实验中的搭建环境和交叉编译,开始时很多步骤都记不太清楚了,所以又复习了一遍以前的实验。

在这里我体会到了平时的学习都是为了以后的复杂工程做铺垫,让我们能更好的解决一些设计工程,理论是基础,只有基础打好了,上层建筑才会更加稳和顺利。

同时完成了图片在LED屏上的显示和聚焦逐现特效。

在显示图片的操作上,开始屏幕总是会花,显示的图片不理想,后来仔细看了工程师给的显示图片代码和清屏代码,通过和同学商量最终完成了图片的显示。

在特效的实现过程中,一开始很想做一个立体的炫酷的特效,也通过查找资料理解了其原理和算法实现流程,但在调试时总是不成功,在这里用了很长时间。

最后,改变了设计思路,觉得应该从简单的开始做,再一步步增加功能,通过和同学的商量与摸索,终于实现了简单的特效。

虽然从设计到实现的过程有很多困难,但是体会到了和同学一起完成同一个任务的快了,也收获了很多课本上没有的知识,体会到了实践的乐趣。

在此,感谢我的队友给予的帮助,老师和粤嵌工程师给的平台和机会,尤其是粤嵌工程师给我的学习指导。

6.参考文献

[1]童凯.基于Linux以及Qt的网络电子相框设计与实现[D].电子科技大学,2014.

[2]林锋.基于ARM7TDMI芯片的嵌入式LINUX交叉调试器的设计和实现[D].四川大学,2002.

[3]王浩,陈邦琼.嵌入式Qt开发项目教程[M].中国水利水电出版社,2014.

[4]梁融凌,余昌嵩.基于嵌入式Linux电子书的设计与实现[J].牡丹江师范学院学报(自然科学版),2014(4):

12-14.

[5]YanH,LiuL,XueT.SPLIT-SCREENPROCESSINGMETHODANDDEVICE,ANDCOMPUTERSTORAGEMEDIUM:

WO/2015/123937[P].2015.

[6]燕丽红,林志雄,杨星.基于Windows7操作系统和Qt技术的电子相册设计DesignofelectronicphotoalbumbasedonWindows7operatingsystemandQT[J].现代电子技术,2013.

[7]范定焓.基于ARM9平台的便携式媒体播放器的设计与开发[D].复旦大学,2009.

[8]朱涛.一种基于互联网络的电子相册:

CN,CN9U[P].2011.

[9]范定焓.基于ARM9平台的便携式媒体播放器的设计与开发[D].复旦大学,2009.

[10]ZhuM.CATERINGINFORMATIONSYSTEMBASEDONDIGITALMENUSUPPORTINGCARDSWIPING:

WO20A1[P].2013.

[11]杨燕,陈祝.一种基于Cortex内核的家用电子相册设计[C]2014.

7.附件

1)答辩问题回答记录(必需)

问:

有没有实现手动播放功能

答:

没有,目前我们完成的只有自动播放和图片替换功能。

2)元器件清单

粤嵌GEC210开发板、安装有虚拟机和LINUX的电脑。

3)设计代码

/*

NAME

openandpossiblycreateafileordevice

SYNOPSIS

#include<

sys/>

>

intopen(constchar*pathname,intflags);

intopen(constchar*pathname,intflags,mode_tmode);

filedescriptor:

文件描述符

*/

#include<

//foropen

linux/>

#include<

//forclose

int*plcd=NULL;

charwo[]={

0x04,0x40,0x0E,0x50,0x78,0x48,0x08,0x48,0x08,0x40,0xFF,0xFE,0x08,0x40,0x08,0x44,

0x0A,0x44,0x0C,0x48,0x18,0x30,0x68,0x22,0x08,0x52,0x08,0x8A,0x2B,0x06,0x10,0x02

};

voidlcd_draw_point(intx0,inty0,intcolor)

{

*(plcd+y0*800+x0)=color;

}

//在顶点为x0,y0的位置开始显示一个颜色矩形,矩形的宽//度为w,高度为h,颜色为color

voidlcd_draw_rect(intx0,inty0,intw,inth,intcolor)

intx,y;

for(y=y0;

y<

y0+h;

y++)

{

for(x=x0;

x<

x0+w;

x++)

lcd_draw_point(x,y,color);

}

//把lcd清成color颜色

voidlcd_clean_screen(intcolor)

for(y=0;

480;

for(x=0;

800;

voiddelayms(intxms){

inti,j;

for(i=0;

i<

xms;

i++)

for(j=110;

j>

0;

j--);

//显示一张24位的bmp图片,图片的宽度必须为4的倍数

voidlcd_draw_bmp(char*name,intx0,inty0,intw,inth)

intfd;

fd=open(name,O_RDWR);

if(-1==fd)

printf("

open%serror!

\n"

name);

return;

//1、跳过前54个byte

lseek(fd,54,SEEK_SET);

charch[w*h*3];

read(fd,ch,sizeof(ch));

close(fd);

//lcd的像素点占4byte,24位bmp3byte

intcolor;

charr,g,b;

//位运算

intx,y,i=0;

h;

w;

{

b=ch[i];

g=ch[i+1];

r=ch[i+2];

i+=3;

color=(r<

<

16)|(g<

8)|b;

lcd_draw_point(x+x0,h-y+y0,color);

delayms

(1);

}

//显示一张24位的bmp图片,图片的宽度必须为4的倍数,左右颠倒

voidlcd_draw_bmpop(char*name,intx0,inty0,intw,inth)

intx,y,k,i=0;

for(x=w;

x>

0;

x--)

lcd_draw_point(x+x0,h-y+y0,color);

voidmonitor_touch()

fd=open("

/dev/event0"

O_RDWR);

structinput_eventev;

while

(1)

read(fd,&

ev,sizeof(ev));

//如何判断该事件是一个触摸事件

if(==EV_ABS)&

&

==ABS_X))

x=;

elseif(==EV_ABS)&

==ABS_Y))

y=;

//手指弹起

==ABS_PRESSURE)&

==0))

printf("

x:

%d,y:

%d\n"

x,y);

//显示一个字

voidlcd_draw_word(unsignedchar*ch,intcolor,intlen,intw,intx,inty)

inti,j;

inthigh;

//32*64

//一个字的显示:

画点(一个一个像素点)

//八个点用一个unsignedchar

//已知:

数组长度:

len=>

像素点的个数:

len*8

字的宽度=>

高度:

len*8/w

high=len*8/w;

//64

intflag;

flag=w/8;

//4

for(i=0;

len;

for(j=7;

=0;

j--)

if((ch[i]>

j)&

1==1)

{

if(i%flag==0)

lcd_draw_point(7-j+x,i/flag+y,color);

else

lcd_draw_point(8*(i%flag)+7-j+x,i/flag+y,color);

}

intmain(intargc,char*argv[])

//O_RDWR:

可读可写

/dev/fb0"

//if(fd==-1)

//if(fd=-1)

opendev/fb0error!

);

return0;

//内存映射,吧一个文件或者设备映射到一个进程的///地址空间中(内存),在进程中操作这块映射的内///存就相当于操作被映射的文件

//plcd存储了映射的地址空间的首地址

plcd=mmap(NULL,800*480*4,

PROT_READ|PROT_WRITE,

MAP_SHARED,

fd,

0);

//如何把lcd上的第n个像素点显示成红色

//*(plcd+n)=0x00ff0000;

//如何把坐标为(x,y)的像素点,显示成红色

//*(plcd+y*800+x)=0x00ff0000;

//如何把整个屏幕全部显示白色

//循环

lcd_clean_screen(0xFFFFFFFF);

//如何显示一个矩形

//lcd_draw_rect(50,50,100,100,0x00ff0000);

//显示BMP图片

lcd_draw_bmp("

"

1,1,796,477);

delayms(3000000);

100,60,600,360);

200,120,400,240);

300,140,200,200);

lcd_draw_bmpop("

//初始化串口

//intc

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1