嵌入式智能家居之多媒体播放器Word下载.docx

上传人:b****1 文档编号:888811 上传时间:2023-04-29 格式:DOCX 页数:10 大小:890.92KB
下载 相关 举报
嵌入式智能家居之多媒体播放器Word下载.docx_第1页
第1页 / 共10页
嵌入式智能家居之多媒体播放器Word下载.docx_第2页
第2页 / 共10页
嵌入式智能家居之多媒体播放器Word下载.docx_第3页
第3页 / 共10页
嵌入式智能家居之多媒体播放器Word下载.docx_第4页
第4页 / 共10页
嵌入式智能家居之多媒体播放器Word下载.docx_第5页
第5页 / 共10页
嵌入式智能家居之多媒体播放器Word下载.docx_第6页
第6页 / 共10页
嵌入式智能家居之多媒体播放器Word下载.docx_第7页
第7页 / 共10页
嵌入式智能家居之多媒体播放器Word下载.docx_第8页
第8页 / 共10页
嵌入式智能家居之多媒体播放器Word下载.docx_第9页
第9页 / 共10页
嵌入式智能家居之多媒体播放器Word下载.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

嵌入式智能家居之多媒体播放器Word下载.docx

《嵌入式智能家居之多媒体播放器Word下载.docx》由会员分享,可在线阅读,更多相关《嵌入式智能家居之多媒体播放器Word下载.docx(10页珍藏版)》请在冰点文库上搜索。

嵌入式智能家居之多媒体播放器Word下载.docx

年月日

四、系部意见:

系部盖章:

设计项目成绩评定表

设计报告书目录

1、设计目的

1、了解嵌入式系统、物联网

2、掌握linux下编程的基础知识

3、Linux操作系统环境的搭建及常用命令

4、实现Cortex-A8开发板(搭载linux系统)下的多媒体播放器

二、设计思路

1、播放器背景、按钮图片的显示,歌曲列表的显示

2、创建线程获取触摸屏输入

3、创建线程获取键盘输入

4、创建线程打印歌曲信息、歌词信息

三、设计过程

3.1、系统总体方案

1、编辑

在linux系统软件编写程序,写出所有模块的程序

2、编译

在编译软件中进行程序的编译与检错修改

3、运行

联通A8开发板在xshell软件中运行,查看现象。

3.2、虚拟机、开发板环境的搭建

常用命令的介绍:

语法:

◆#ls

参数:

-l:

列表显示

-a:

显示隐藏文件

-h:

配合-l以MB为单位显示文件大小

-R:

递归显示所有目录文件

◆#cd:

切换目录

cd/root可进入指定目录

cd.可进入上一层目录

cd-可进入上一个进入的目录

cd~可进入用户的home目录

◆#cp/etc/inittab/home

参数:

-R:

拷贝文件夹

-f:

若同名则不提示,直接覆盖

-v:

显示拷贝进度

◆rm:

删除文件

#rm-ffilel

◆clear:

清屏

#clear

◆mkdir:

创建目录

#mkdirdir1

-p在指定路径建立文件夹,需要时创建上层目录

◆find文件查找指令

语法:

find路径名–name文件名

◆Pwd:

显示当前目录路径

#pwd

◆ps(进程查看命令)

命令格式:

$ps

◆cal(显示日历)

$cal[选项][月份][年]

选项:

-y|显示整年日历

$cal42007

reboot(重启电脑)

dhclient

重新获取IP地址

环境搭建的过程:

1、设置虚拟机IP,同时保证虚拟机网络通畅

2、设置开发板IP,同时保证开发板网络通畅

3、挂载虚拟机下指定的文件夹到开发板的指定目录

开发流程图如图所示:

3.3、程序设计具体步骤

第1步.

功能:

初始化图形库和触摸屏、实现背景窗口的初始化。

要求:

创建一个C文件,在此文件中写一个系统初始化、窗口初始化函数。

提示:

用到的接口函数

1:

getFBP("

/dev/fb0"

);

//将LCD内核态的FramerBuffer映射到用户态,并获取其参数

2:

TFT_Init();

//初始化液晶屏

3:

ts_cal_init();

//初始化触摸屏

4:

创建窗口(创建时窗口的背景可随自己的意愿填写)

window_back=TFT_CreateWindowEx(0,0,320,240,COLOR_WHITE);

//创建背景窗口

5:

TFT_File_Picture:

窗口贴图函数

6:

TFT_ClearWindow:

窗口清除函数

7:

TFT_SetTextPos:

窗口内设置光标位置函数

8:

TFT_SetColor:

设置窗口前景色

第2步.

从文件夹中读取歌曲名字,保存起来(方法:

指针数组、链表、数据库。

注:

读取歌曲名功能、保存

歌曲名功能最好能分开);

再写一个函数,使其能在屏幕上显示歌词列表,并能高亮指定的某一首歌。

扫描某个目录下的歌曲文件名字,调用保存歌曲名功能函数,全部保存起来。

(参考函数名get_song_list)。

把所有的歌曲名字(.mp3为后缀的文件)显示在歌词列表窗口中,当前播放歌曲的名字在列表中应该

反显(方法:

重新设置颜色、画矩形框等)。

获取某个目录下文件的名称所用函数

1、DIR*opendir(char*pathname);

2、structdirent*readdir(DIR*dir);

3、intclosedir(DIR*dir);

opendir返回一个DIR类型的指针;

readdir参数是opendir返回的指针;

返回值是structdirent类型的指针;

比如:

readdir函数返回值为dp,dp->

d_name即文件的名字;

循环把dp->

d_name保存起来;

赋值之前要判断一下dp->

d_name是不是歌曲文件名(即是不是.mp3文件)。

若是则调用保存歌曲名函数,

否则不保存(注:

可用函数strstr)。

可以参考“linuxC函数.chm”文档中的readdir函数;

循环赋值的时候给一个变量++测出有多少首歌(推荐变量名:

song_num)。

第3步.

播放\暂停、上一首、下一首,快进、快退(触摸屏、物理按键都要实现);

点播放列表中歌曲的名字实

现切换歌曲。

切换歌曲的时候,播放列表中的相应歌曲名字要反显。

歌曲的切换通过mplayer提供的"

loadfilepathname"

命令,切换到pathname指定的歌曲。

在歌词列表实现之后,创建子进程,在子进程中启动mplayer

启动mplayer的语句:

execl("

./mplayer"

"

mplayer"

-ac"

mad"

-slave"

-quiet"

-input"

file=/tmp/mplayer_fifo"

buf,NULL);

在execl中规定mplayer从命名管道中获取消息,主进程中就必须通过向命名管道写"

命令字符串"

控制mplayer,所以必须在创建子进程之前创建mplayer_fifo,父子进程通过mplayer_fifo通信。

buf为mplayer启动时播放歌曲的目录文件名。

主进程中创建touchpad_control线程(触点检测模块)、key_control线程(物理按键控制模块);

检测触

摸屏、物理按键,以及控制相应的操作。

第4步.

在屏幕上显示歌曲长度、当前播放到多少秒、当前歌曲的“专辑、歌手、标题、发行年份”、进度条要求:

在屏幕歌曲信息窗口中显示歌曲的总长度,当前播放时间。

(切换歌曲活快进快退的时候刷新信息)

在歌曲信息窗口中显示歌曲的“专辑、歌手、标题、发行年份”。

(切换歌曲的时候刷新信息).

播放进度条随着时间推移。

(切换歌曲、或快进快退的时候可以刷新)

1:

父子进程通过管道通信;

即子进程通过管道把消息传给父进程

子进程把mplayer输出的信息重定向到管道中。

主进程从管道中读,读出来后解析再做相应的处理。

(注:

使用dup2函数,子进程重定向mplayer的

输出至管道的写端,父进程从管道的读端读mplayer的输出信息)

2:

主进程创建子线程

get_song_detail

每隔一段时间发一条命令,获取当前播放时间、进度、歌曲信息等。

read_dispose_data

循环读管道把读到的消息保存在字符数组中,解析读到的消息,把有用的消息解析出来,做相

应的处理。

第5步、

在歌词窗口显示歌词。

歌词循环打印,歌词与歌曲同步,切换歌曲的时候切换新的歌词。

可以用mplayer返回来的当前播放时间去查找歌词解析里的时间,这样快进歌词也可以跟着同步。

如果用以前的虚拟时间,歌曲快进,歌词不能同步。

歌词解析功能也是创建一个新的线程(display_lyrics)去完成

四、系统调试与结果

Ⅰ.调试:

1、连接开发板与物理机,打开虚拟机、xshell(串口控制开发板用)

2、在notepad++下编写程序,虚拟机下进行交叉编译

3、联合调试,在xshell查看并分析开发板的运行信息

Ⅱ.系统调试结果

系统调试结果如下图所示

五、主要元器件与设备

1、课程设计体A8开发板一套

2、windowXP电脑(装ubuntu的虚拟机、xshell)一台

会与建议

6.1、设计体会

通过这次的课程设计,我明白了一个项目的开发完成,需要列出各个模块的分工,各各个模块的个子模块的编译与调试,最后把各个模块进行组合,系统调试,运行。

编译和调试的细节需要仔细认真的完成,才能保证整个项目的圆满完成。

6.2、设计建议

建议老师在编辑代码和调试程序的时候多多指导,有的代码读起来有些吃力,希望老师可以在程序的编译这方面多多指点。

七、参考文献

[1]杨士元.掀开智能家居的面纱[J].中国计算机用户.2002,21(08):

23-26.

[2]秦勃,王琳,邵峰晶,於雷.无线嵌入式智能家居环境网关[J].计算机应用研究.2006,12(06):

18-35.

[3]朱文凯,何岭松,丁汉,熊有伦.基于Internet的嵌入式Web传感器[J].仪表技术与传感器.2002,3(08):

23-25.

[4]王文利,段宝岩,刘宏.基于网络的机械设备远程监测与故障诊断[J].制造业自动化.1999,21(04):

32-35.

[5]周洪,胡文山,张立明,卢亦焱.智能家居控制系统[M].北京:

中国电力出版社.2006:

82-85.

[6]陶波,丁汉,熊有伦.基于嵌入式Internet的工业控制[J].测控技术.2001,12(08):

45-49.

[7]卢伟国,杨本强.嵌入式WEB传感器的网络化接口设计[J].电子技术应用.2004,34(22):

89-93.

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2