基于IOT背景下,嵌入式电子相册的设计

目录

  • 基于IOT背景下,嵌入式电子相册的设计
    • 一、设计目的
    • 二、整体设计
    • 三、软件设计
    • 四、测试视频
    • 五、总结

前言:随着物联网技术的不断发展,物联网技术在城市管理、智能交通系统、以及之能家居等领域的应用十分广泛,本文就智慧生活领域中的电子相册展开分享。

一、设计目的

随着文娱活动越来越受年轻人所关注,对美好时光的记录成为当下年轻人的一大生活方式。作为追求个性化、独特化广大年轻人中的一员,对于私人定制电子相册的期望度也十分高。笔者通过设计一项嵌入式电子相册旨在满足当下需求。

二、整体设计

本项目使用粤嵌GC6818试验机及VM虚拟机中的Ubuntu操作系统完成整个流程,系统整体设计思路如图1。









































































主菜单









电子相册









照片翻页和播放









音乐播放器









音乐切换和播放









视频播放器









视频切换和播放







图1系统整体设计图
(1)硬件清单:粤嵌GC6818试验机整套
(2)软件清单:VM虚拟机、Ubuntu操作系统、Secure CRT7.3(比较稳定)

三、软件设计

1、主函数

#include "color.h"               //显示颜色的头文件
#include "bmp.h"                //显示bmp图片的头文件
#include "ts.h"                 //触摸屏的头文件
#include "music.h"              //音乐的头文件
#include "movie.h"              //视频的头文件int main(int argc, char const *argv[])
{int ts_x, ts_y;char music_path[4][32]={"./1.mp3","./2.mp3","./3.mp3","./4.mp3"};//音乐目录char music_pitc[4][32]={"./1.bmp","./2.bmp","./3.bmp","./4.bmp"};//音乐图片目录char video_path[2][16]={"./1.mp4","./2.mp4"};                    //视频目录char bmp_path[5][32]={"./p1.bmp","./p2.bmp","./p3.bmp","./p4.bmp","./p5.bmp"};//相册目录int i=0;int j=0;int k=0;open_lcd_color();            //1、打开显示屏(color)open_lcd_bmp();             //1、打开显示屏(bmp)open_ts();                    //1、打开触摸屏show_bmp("./init.bmp");                        //2、显示音乐界面图片//show_color(0x00ff0000);                   //2、显示颜色while(1){get_ts_xy(&ts_x, &ts_y);   show_bmp("./main.bmp");             //2、获取触摸屏坐标if(ts_x>0 && ts_x<80 && ts_y>0 && ts_y <50)  // 显示菜单页{show_bmp("./init.bmp");    }//===============一、音乐播放器================//if(ts_x>280 && ts_x<410 && ts_y>190 && ts_y <310)//===================点击音乐播放器{printf("=============1、音乐播放器==============\n");show_bmp("./music.bmp");    while(1){get_ts_xy(&ts_x, &ts_y);       //2、获取触摸屏坐标if(ts_x>310 && ts_x<480 && ts_y>400 && ts_y <480)//============开始音乐{exit_music();show_bmp("./1.bmp");start_music("./1.mp3");}//=================================列表播放========================================//if(ts_x>640 && ts_x<800 && ts_y>0 && ts_y <60)//============第一首{exit_music();show_bmp("./1.bmp");start_music("./1.mp3");}if(ts_x>640 && ts_x<800 && ts_y>61 && ts_y <120)//============第二首{exit_music();show_bmp("./2.bmp");start_music("./2.mp3");}if(ts_x>640 && ts_x<800 && ts_y>121 && ts_y <180)//============第三首{exit_music();show_bmp("./3.bmp");start_music("./3.mp3");}if(ts_x>640 && ts_x<800 && ts_y>181 && ts_y <240)//============第四首{exit_music();show_bmp("./4.bmp");start_music("./4.mp3");}
//=====================================上一首,下一首====================//if(ts_x>500 && ts_x<550 && ts_y>400 && ts_y <480)//=============上一首{exit_music();printf("上一首 \n");i--;if(i==-1){i=3;}start_music(music_path[i]);show_bmp(music_pitc[i]);}if(ts_x>580 && ts_x<630 && ts_y>400 && ts_y <480)//=============下一首{exit_music();printf("下一首 \n");i++;if(i==4){i=0;}start_music(music_path[i]);show_bmp(music_pitc[i]);}if(ts_x>650 && ts_x<800 && ts_y>400 && ts_y <480)//=============退出音乐,回到主菜单{exit_music();printf("=============主界面==============\n");show_bmp("./main.bmp");ts_x = 0;ts_y = 0;break;}if(ts_x>0 && ts_x<150 && ts_y>400 && ts_y <480)//=============停止音乐{printf("停止音乐 \n");stop_music();}if(ts_x>160 && ts_x<300 && ts_y>400 && ts_y <480)//===========继续音乐{printf("继续音乐 \n");cont_music();}    }}//==============二、视频播放器=================//if(ts_x>480 && ts_x<620 && ts_y>190 && ts_y <310) //=====================到视频播放器{printf("=============2、视频播放器==============\n");show_bmp("./video.bmp");while(1){get_ts_xy(&ts_x, &ts_y);        //2、获取触摸屏坐标//1、指定打开视频if(ts_x>0 && ts_x<150 && ts_y>400 && ts_y <480)//=================开始播放视频{printf("开始播放视频 \n");start_movie("./1.mp4", 150, 100, 493, 250);}//2、退出视频if(ts_x>0 && ts_x<80 && ts_y>0 && ts_y <50)//=================退出视频播放,回到主菜单{send_cmd_pipe(1);printf("=============主界面==============\n");show_bmp("./main.bmp");ts_x = 0;ts_y = 0;break;}//3、视频暂停/继续if(ts_x>350 && ts_x<450 && ts_y>400 && ts_y <480)//=================停止视频/继续视频{send_cmd_pipe(2);printf("视频暂停/继续\n");}if(ts_x>650 && ts_x<725 && ts_y>400 && ts_y <480)//==============调大音量{send_cmd_pipe(3);printf("音量加10\n");}if(ts_x>725 && ts_x<800 && ts_y>400 && ts_y <480)//===============调小音量{send_cmd_pipe(4);printf("音量减10\n");}if(ts_x>250 && ts_x<350 && ts_y>400 && ts_y <480)//=============快退5s{send_cmd_pipe(5);printf("快退5秒\n");}if(ts_x>450 && ts_x<550 && ts_y>400 && ts_y <480)//=============快进5s{send_cmd_pipe(6);printf("快进5秒\n");}if(ts_x>150 && ts_x<250 && ts_y>400 && ts_y <480)//=============上一个视频{send_cmd_pipe(1);usleep(500000);printf("上一个视频 \n");j--;if(j==-1){j=1;}start_movie(video_path[j], 150, 100, 493, 250);}if(ts_x>550 && ts_x<650 && ts_y>400 && ts_y <480)//=============下一个视频{send_cmd_pipe(1);usleep(500000);printf("下一个视频 \n");j++;if(j==2){j=0;}start_movie(video_path[j], 150, 100, 493, 250);}}}if(ts_x>90 && ts_x<210 && ts_y>190 && ts_y <310)//======================进入电子相册{printf("=============3、电子相册==============\n");show_bmp("./p1.bmp");while(1){get_ts_xy(&ts_x, &ts_y);if(ts_x>0 && ts_x<400 && ts_y>50 && ts_y <480 )//点击左半边 ,切换上一张图片{printf("切换上一张 \n");k--;if (k==-1){k=4;}show_bmp(bmp_path[k]);}if(ts_x>400 && ts_x<800 && ts_y>0 && ts_y <480)//点击右半边 ,切换下一张图片{printf("切换下一张 \n");k++;if (k==5){k=0;}show_bmp(bmp_path[k]);}if(ts_x>0 && ts_x<80 && ts_y>0 && ts_y <50)//点击左上角,退出,回到主界面{printf("=============主界面==============\n");show_bmp("./main.bmp");ts_x = 0;ts_y = 0;break;}}}}close_lcd_color();         //3、关闭显示屏(color)    close_lcd_bmp();            //3、关闭显示屏(bmp)close_ts();                   //3、关闭触摸屏return 0;
}

tips:在主函数中,定义了#include “color.h”,显示颜色的头文件定义#include “bmp.h” ,显示bmp图片的头文件;定义include “ts.h” ,作为触摸屏的头文件;定义include “music.h” ,作为音乐的头文件,定义#include “movie.h” ,作为视频的头文件。整体实现主菜单的设计,进入主菜单实现对相册、音乐播放器、视频播放器的选择。此外,在相册中可以实现照片触摸更换;在音乐播放器中实现歌曲轮询,切换和暂停;在视频播放器中实现视频轮询,切换和暂停。**

四、测试视频

项目整体运行效果如下视频所示。

五、总结

以上就是今天要分享的内容,本文仅仅简单介绍了基于IOT背景下,嵌入式电子相册的设计,具体代码已经在gitee仓库开源(https://gitee.com/nqqdz/electonic-picture.git),旨在与各位同学一起交流,提升技术。作为一位死磕嵌入式的小白,希望大家能在此过程中不吝赐教,如有问题,请大家批评指正。

基于IOT背景下,嵌入式电子相册的设计相关推荐

  1. 计算机毕业设计springboot基于疫情背景下的新型点餐送餐系统bpe1s源码+系统+程序+lw文档+部署

    计算机毕业设计springboot基于疫情背景下的新型点餐送餐系统bpe1s源码+系统+程序+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件:idea ecli ...

  2. 计算机网络与云计算研究背景,基于云计算背景下的计算机网络安全研究

    宋彬彬 摘  要: 云计算可以用于商业计算方法,它可以使计算指令发给很多计算机组建的资源池上,使用客户可以按照自己的去求得到想要的计算方式.存储空间和信息服务,客户可以从逻辑底层硬件.网络协议和软件中 ...

  3. “双碳”背景下 数据中心规划设计的新趋势及展望

    政策层面 2021年,工业和信息化部印发了<新型数据中心发展三年行动计划(2021-2023年)>,<行动计划>明确提出,用3年时间基本形成布局合理.技术先进.绿色低碳.算力规 ...

  4. 在物联网(IOT)背景下服务器怎样和电控板打交道的?

    背景 随着物联网(IOT)的发展,很多的智能设备进入了寻常人家,比如各类智能家电产品,比如智能洗衣机.智能冰箱.智能空调,这些智能产品为我们的生活提供了很多的便利和舒适的生活,并且解放了我们的双手.现 ...

  5. 基于GPS定位的嵌入式汽车监控器设计

    随着人们生活水平的提高,汽车逐渐进入了普通家庭,中国各大城市的汽车保有量逐年增加.同时,汽车被盗.被抢也成为一个较为严重的社会问题.虽然各 类汽车防盗/报警器在汽车上的应用在一定程度上解决了汽车的安全 ...

  6. 基于opencV的动态背景下运动目标检测及跟踪(修改版)

    基于openCV的动态背景下的运动目标检测 from: http://www.mianfeiwendang.com/doc/89c6692a222a84b2ced0d502/1 摘要:介绍在动态背景下 ...

  7. 基于 Python 的电信领域电信领域设计与实现-毕业设计程序

    一.课题内容及研究意义 随着互联网的发展,上网人数越来越多,电信业务也随之增加.,然而就出现客服难以应付如此庞大的业务咨询量,电信领域自动问答软件就很好的解决了这个问题.在这样一个大数据时代,人们对于 ...

  8. 基于MySQL数据库下亿级数据的分库分表

    来自:www.cnblogs.com/jpfss/ 移动互联网时代,海量的用户数据每天都在产生,基于用户使用数据等这样的分析,都需要依靠数据统计和分析,当数据量小时,数据库方面的优化显得不太重要,一旦 ...

  9. 数据库查询某一列大写转化小写字母表示_基于MySQL数据库下亿级数据的分库分表...

    每天给你诚意满满的干货 本文来自程序之心知乎专栏收到的投稿 作者:恒生研究院 移动互联网时代,海量的用户数据每天都在产生,基于用户使用数据等这样的分析,都需要依靠数据统计和分析,当数据量小时,数据库方 ...

最新文章

  1. 独家 | 一文读懂LinkedIn个性化推荐模型及建模原理
  2. Spring-Cloud中的 熔断、限流、降级
  3. python数据收集整理教案_数据收集整理教案讲解学习
  4. java中精确地小数_在Java等于方法中进行精确比较
  5. 【51nod - 1108】距离之和最小 V2(曼哈顿距离,中位数性质)
  6. Node.js 中 exports 和 module.exports 的区别
  7. Android ExpandableListView实现列表可扩展点击显示内容或隐藏内容
  8. cookie控制窗口打开打开
  9. Layer 提示框tips使用(批量提示)
  10. wlanconnect无法连接wifi_苹果iphone12无法连接wifi怎么回事 解决方法分享
  11. HTML中怎么创建表单,如何在HTML中创建表单
  12. 创新实践部第一次培训---算法入门
  13. ar 微信小程序_微信小程序开放AR功能,全面提升交互体验
  14. line-height 和 height 区别
  15. 照片:Majoy是什么东西?
  16. 蓝牙、wifi、zigbee和lora、NB-lot,通话信号,网络信号4G
  17. Flowable 6.6.0 事件注册表用户指南 - 2 配置 - 2.6,2.7,2.8
  18. 2018.10.30-dtoj-4010-秀秀的照片(photo)
  19. Java 实现栈的三种方式
  20. 极速PDF编辑器提示缺少字体解决方案

热门文章

  1. 在收尾阶段应该进行哪些工作?
  2. 倍福FTP文件下载方式
  3. pg mysql 联表查询_postgresql多表查询语句优化
  4. php大作业关于中国美食,我爱中国美食作文700字
  5. php大图片接口上传慢,七牛php sdk上传文件太慢
  6. 【毕业设计】基于树莓派的智能小车设计 - 物联网 单片机 嵌入式 stm32
  7. Android电源管理之系统休眠
  8. Java构造函数调用顺序问题
  9. JavaScript箭头函数的使用和this指向
  10. mysql四舍五入函数