嵌入式智能家居之多媒体播放器.doc

上传人:F****n 文档编号:103486480 上传时间:2019-10-07 格式:DOC 页数:12 大小:1.12MB
返回 下载 相关 举报
嵌入式智能家居之多媒体播放器.doc_第1页
第1页 / 共12页
嵌入式智能家居之多媒体播放器.doc_第2页
第2页 / 共12页
嵌入式智能家居之多媒体播放器.doc_第3页
第3页 / 共12页
嵌入式智能家居之多媒体播放器.doc_第4页
第4页 / 共12页
嵌入式智能家居之多媒体播放器.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《嵌入式智能家居之多媒体播放器.doc》由会员分享,可在线阅读,更多相关《嵌入式智能家居之多媒体播放器.doc(12页珍藏版)》请在金锄头文库上搜索。

1、安 康 学 院嵌入式设计报告书课题名称:嵌入式智能家居之多媒体播放器姓 名:学 号:院 系:电子与信息工程系专 业:电子信息工程指导教师:张兴辉时 间:2013年6月深入贯彻党的十七届五中全会精神,紧紧抓住卫生事业前所未有的发展机遇,坚持以人为本、执政为民,全面落实科学发展观,不断开拓创新,全面推进医药卫生体制改革与发展,不断提高公共卫生服务能力和基本医疗服务能力,提高广大人民群众的健康水平。actively carry out the law on civil air defense education, drawn out of the air defense in Pingliang c

2、ity Building under easy fare, daily special inspection and regulation, overfulfilled the province upper and lower knots of up to 500,000 yuan fee collection tasks. 5, further standardize internal management, improve staff quality. Adhere to the课程设计项目成绩评定表一、设计任务及要求:1、设计任务: 智能家居之多媒体播放器2、要 求: 1、熟练掌握虚拟机

3、、Cortex-A8开发板环境搭建 2、实现linux下的多媒体播放器设计指导教师签名: 年 月 日 二、指导教师评语:指导教师签名: 年 月 日 三、成绩评定:指导教师签名: 年 月 日四、系部意见:系部盖章: 年 月 日设计项目成绩评定表电子与信息工程系 2011年5月 课程设计报告书目录设计报告书目录一、 设计目的1二、设计思路1三、设计过程13.1、系统总体方案13.2、虚拟机、开发板环境的搭建13.3、程序设计具体步骤4四、系统调试与结果6五、主要元器件与设备6六、课程设计体会与建议66.1、设计体会66.2、设计建议6七、参考文献7单片机开发课程设计1、 设计目的1、了解嵌入式系统

4、、物联网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:配合-

5、l以MB为单位显示文件大小 -R:递归显示所有目录文件#cd:切换目录cd/root 可进入指定目录cd 可进入上一层目录cd - 可进入上一个进入的目录cd 可进入用户的home目录#cp /etc/inittab/home参数: -R:拷贝文件夹 -f:若同名则不提示,直接覆盖 -v:显示拷贝进度rm:删除文件#rm -f filelclear:清屏#clearmkdir:创建目录语法:#mkdir dir1参数:-p在指定路径建立文件夹,需要时创建上层目录find 文件查找指令 语法:find 路径名 name 文件名Pwd:显示当前目录路径#pwdps(进程查看命令)命令格式:$ ps

6、cal(显示日历)命令格式: $cal 选项 月份 年选项:-y|显示整年日历$ cal 4 2007reboot(重启电脑)dhclient重新获取IP地址环境搭建的过程:1、设置虚拟机IP,同时保证虚拟机网络通畅2、设置开发板IP,同时保证开发板网络通畅3、挂载虚拟机下指定的文件夹到开发板的指定目录开发流程图如图所示:父进程等待子进程歌词显示发命令获取歌曲信息键盘监测与处理读取,处理mpayer的数据调用execl启动mplayer触屏检测与处理重定向mplayer的输出至管道的写端创建进程开始初始化TFT初始化触摸屏绘制背景窗口及图片获取歌曲列表打开播放列表,并让默认播放器播放歌曲高亮显

7、示创建命名管道,用于向mplayer发送命令;创建无名管道,用于从mplayer读取内容子进程:开启mplayer父进程:创建线程3.3、程序设计具体步骤第1 步.功能:初始化图形库和触摸屏、实现背景窗口的初始化。要求:创建一个C 文件,在此文件中写一个系统初始化、窗口初始化函数。提示:用到的接口函数1:getFBP(/dev/fb0); /将LCD 内核态的FramerBuffer 映射到用户态,并获取其参数2:TFT_Init(); /初始化液晶屏3:ts_cal_init(); /初始化触摸屏4:创建窗口(创建时窗口的背景可随自己的意愿填写)window_back = TFT_Creat

8、eWindowEx(0,0,320,240,COLOR_WHITE); /创建背景窗口5:TFT_File_Picture:窗口贴图函数6:TFT_ClearWindow:窗口清除函数7:TFT_SetTextPos:窗口内设置光标位置函数8:TFT_SetColor:设置窗口前景色第2 步.功能:从文件夹中读取歌曲名字,保存起来(方法:指针数组、链表、数据库。注:读取歌曲名功能、保存歌曲名功能最好能分开);再写一个函数,使其能在屏幕上显示歌词列表,并能高亮指定的某一首歌。要求:1:扫描某个目录下的歌曲文件名字,调用保存歌曲名功能函数,全部保存起来。(参考函数名get_song_list)。2

9、:把所有的歌曲名字(.mp3 为后缀的文件)显示在歌词列表窗口中,当前播放歌曲的名字在列表中应该反显(方法:重新设置颜色、画矩形框等)。提示:获取某个目录下文件的名称所用函数1、DIR* opendir(char* pathname);2、struct dirent * readdir(DIR* dir);3、int closedir(DIR *dir);opendir 返回一个DIR 类型的指针;readdir 参数是opendir 返回的指针;返回值是struct dirent 类型的指针;比如:readdir 函数返回值为dp,dp-d_name 即文件的名字;循环把dp-d_name

10、保存起来;赋值之前要判断一下dp-d_name 是不是歌曲文件名(即是不是.mp3 文件)。若是则调用保存歌曲名函数,否则不保存(注:可用函数strstr)。可以参考“linux C 函数.chm”文档中的readdir 函数;循环赋值的时候给一个变量+ 测出有多少首歌(推荐变量名:song_num)。第3 步.功能:播放暂停、上一首、下一首,快进、快退(触摸屏、物理按键都要实现);点播放列表中歌曲的名字实现切换歌曲。要求:切换歌曲的时候,播放列表中的相应歌曲名字要反显。提示:1:歌曲的切换通过mplayer 提供的loadfile pathname命令,切换到pathname 指定的歌曲。2

11、:在歌词列表实现之后,创建子进程,在子进程中启动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 启动时播放歌曲的目录文件名。3:主进程中创建touchpad_control 线程(触点检测模

12、块)、key_control 线程(物理按键控制模块);检测触摸屏、物理按键,以及控制相应的操作。第4 步.功能:在屏幕上显示歌曲长度、当前播放到多少秒、当前歌曲的“专辑、歌手、标题、发行年份”、进度条要求:1:在屏幕歌曲信息窗口中显示歌曲的总长度,当前播放时间。(切换歌曲活快进快退的时候刷新信息)2:在歌曲信息窗口中显示歌曲的“专辑、歌手、标题、发行年份”。(切换歌曲的时候刷新信息).3:播放进度条随着时间推移。(切换歌曲、或快进快退的时候可以刷新)提示:1: 父子进程通过管道通信;即子进程通过管道把消息传给父进程子进程把mplayer 输出的信息重定向到管道中。主进程从管道中读,读出来后解

13、析再做相应的处理。(注:使用dup2 函数,子进程重定向mplayer 的输出至管道的写端,父进程从管道的读端读mplayer 的输出信息)2: 主进程创建子线程1:get_song_detail每隔一段时间发一条命令,获取当前播放时间、进度、歌曲信息等。2:read_dispose_data循环读管道把读到的消息保存在字符数组中,解析读到的消息,把有用的消息解析出来,做相应的处理。第5步、功能:在歌词窗口显示歌词。要求:歌词循环打印,歌词与歌曲同步,切换歌曲的时候切换新的歌词。提示:1:可以用mplayer 返回来的当前播放时间去查找歌词解析里的时间,这样快进歌词也可以跟着同步。2:如果用以

14、前的虚拟时间,歌曲快进,歌词不能同步。3:歌词解析功能也是创建一个新的线程(display_lyrics)去完成四、系统调试与结果.调试:1、连接开发板与物理机,打开虚拟机、xshell(串口控制开发板用)2、在notepad+下编写程序,虚拟机下进行交叉编译3、联合调试,在xshell查看并分析开发板的运行信息.系统调试结果 系统调试结果如下图所示五、主要元器件与设备1、 课程设计体A8开发板一套2、window XP电脑(装ubuntu的虚拟机、xshell)一台会与建议6.1、设计体会通过这次的课程设计,我明白了一个项目的开发完成,需要列出各个模块的分工,各各个模块的个子模块的编译与调试,最后把各个模块进行组合,系统调试,运行。编译和调试的细节需要仔细认真的完成,才能保证整个项目的圆满完成。6.2、设计建议 建议老师在编辑代码和调试程序的时候多多指导,有的代码读

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号