基于GEC6818的智能家居系统

项目目标:

  • 使用GEC6818(ARM开发板)以及Linux操作系统来设计一个可以实现动感相册/监控/音乐播放器功能且UI友好,人机交互性高的智能家居系统。
  • 代码编写&项目组成方案

本项目将使用C语言编写,由一个main函数以及若干子函数,子函数头文件,以及若干个库一起编写而成。

  • 程序逻辑

程序设计逻辑程序逻辑图

  • UI设计

既然设计目标是UI友好,人机交互性高的智能家居系统,那么UI方面也要下足功夫设计。
主题:
主题
登陆界面:
登录界面
主菜单:
菜单界面
音乐播放器界面:
音乐播放器
相册界面:
相册
摄像头界面:
摄像头
由自己设计的开机动画为前提,设计所有的菜单界面,以保持人机界面的科技感/统一感。菜单按钮使用了拟物化的风格,从而缩小使用的学习成本,让整个系统充满着科技感的同时且容易使用,交互简单。

  • 项目硬件方面

使用GEC6818开发板,该开发板使用ARM-CortexA53八核处理器,搭载了一块800*480分辨率的屏幕,自带电源串口/调试串口/USB
OTG接口/音频接口等需要用到的I/O。

  • 项目软件方面
  • 本项目全部使用C语言编写,C语言编写后用交叉编译的方式,在电脑端用虚拟机Vmware中的Ubantu12.04系统的Termianl编译。
    (其实就是交叉编译…)
  • 源代码:(Main函数)
#include "lcd.h"
#include "touch.h"
#include "jpg.h"
#include "camera.h"

/*
1901532117 杨锦鹏  Main函数代码
*/
int x,y;
int ts_fd;
struct LcdDev * lcd;

char  buf[20] = {0};
//不断获取触摸屏坐标
void * thread1_fun(void * arg)
{
while(1)
{
get_xy(&x,&y,ts_fd);
x = x / 1024 * 800;
y = y / 600  * 480;
}
}

//不断获取摄像头图像
void * thread2_fun(void * arg)
{
while(1)
{
camera_get_image();
}
}




int main()
{
int i=0;//开机动画变量i
//1.打开LCD
lcd = lcd_init(LCD_PATH);
printf("Open Lcd Device Normal\n");

//2.打开触摸屏
ts_fd = Touch_Init(TOUCH_SCREEN_PATH);
printf("Open Touch Screen Normal\n");


//4.创建两条线程
pthread_t  thread1,thread2;
pthread_create(&thread1,NULL,thread1_fun,NULL);
pthread_create(&thread2,NULL,thread2_fun,NULL);
for(i=0;i<=144;i++)//1.开机动画
{
sprintf(buf,"./gif/Frame%d.jpg",i);//按顺序打印所有jpg图片,组成开机动画
show_jpg(lcd,0,0,buf);//调用JPG库
usleep(500);//图片显示速度为0.5秒
}
//5.显示登陆界面
login();

}

如需要完整项目代码/笔记/项目报告,请站内信给我。我会发给大家完整的项目源代码。-Mriese

2021年5月3日23点43分

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐