




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.电子系统设计与实践报告院 系 电气与信息工程学院 专业班级 电气151班 学生学号 学生姓名 指导教师 李叔元 完成日期 2018年06月28日 .目录第一章 设计目的与任务31.1 设计目的31.2 设计项目要求3第一章 知识点总结32.1 搭建开发环境32.2 linux操作系统的常规使用42.3 windows 与 Linux的文件共享52.4 硬件控制52.5 写代码控制驱动对应的硬件62.6 人机交互72.7音视频的播放92.8音视频的播放92.9 U盘下载9第3章 智能家居的具体实现103.1智能家居整体设计图103.2智能家居C语言程序10第四章 心得体会18第一章 设计目的与任务1.1 设计目的1掌握Linux系统的常规使用。2掌握主控板的常规使用。3掌握使用linnux系统编程代码控制主控板显示屏。4对所学知识进行项目的验收检测。1.2 设计项目要求智能家居系统通过家庭网络,让系统中的各类设备之间相互联动,为我们营造智能化、舒适化、便利化的生活环境。智能家居可以让我们解放双手,提高生活水平。本次实训的要求是设计缩小版的智能家居,其特点在于操作简单、易于上手、稳定性强,实现实时监控、视频的播放、音乐的播放、图片的显示以及对控制led灯的开关。所以本周要学习关于嵌入式的基本入门知识,以及相关软件的使用。第1章 知识点总结2.1 搭建开发环境 步骤: 一:安装虚拟机,直接双击安装程序,不断下一步,最后要求你输入密钥,安装包里面有破解程序 二:解压ubuntu就可以直接使用 虚拟机:用软件来模拟真实的电脑,我们的linux操作系统必须在虚拟机上运行 ubuntu(乌邦图):linux操作系统一个发行版本的名字使用linux操作系统 登陆的时候千万不要用guest身份登陆,要使用yueqian登陆,密码是123456 linux跟windows的使用习惯有些不同,作为开发人员我们使用命令来控制linux系统 打开命令终端:ctrl+alt+t gecubuntu:$ gec-当前用户的名字 ubuntu-操作系统的名字 -当前用户的家目录 $ -当前用户是个普通用户 linux中的这些命令统称shell命令,做系统运维的人就是编写程序用这些命令来自动管理服务器2.2 linux操作系统的常规使用2.2.1启动Linux系统启动VMware-选中Ubuntu12.04-继续运行虚拟机-进入桌面系统-启动命令行-双击terminal(ctrl + alt + t)2.2.2 linux常规命令的使用A.查看某个位置下有什么东西 ls 选项 路径ls 查看当前的位置下有什么东西(刷新)ls -l 查看当前位置下文件的详细信息drwx rwx r-x 文件操作权限(chmod)ls -a 查看当前位置下所有的文件(包含隐藏文件)ls -la两个功能结合在一起B.修改工作路径(更改当前所处的文件夹的位置)cd (路径)cd /回到根目录(起点)cd / & cd home & cd gec=cd /home/geccd .返回上一级cd 返回家目录(常规操作位置:家目录/共享目录) =/home/gecC.得到当前的工作路径 pwd 得到当前的位置D.创建 & 删除(文件/目录)touch 文件名1 文件名2/创建空白文件rm 文件名1 文件名2/删除文件mkdir 目录名1 目录名2 /创建目录rm -rf 目录名1 目录名2 /删除目录E.编辑 & 编译 & 执行gedit filename.c/怎么编写源文件(c代码)gcc/arm-linux-gcc filename.c -o filename /生成可执行文件(编译)./filename /运行可执行程序F.修改文件的为可执行权限chmod 777 filename(3)补充:路径的组成(文件存储结构:树状结构)相对路径:当前位置下/一级目录/二级目录绝对路径:/一级目录/二级目录2.3 windows 与 Linux的文件共享虚拟机-设置-选项-共享文件夹-启用-添加-下一步-配置如下主机路径(windows):笔记名称(LInux):share(必须进入/mnt/hgfs)test1.c:编写九九乘法表,编译,运行起来#includevoid main() char i,j,k; for(i=1;i=9;i+) for(j=1;j产生设备文件 -文件IO才能生效insmod xxx.ko=insmod: cant insert led_drv.ko: File exists 表示驱动已经存在C.查看系统下已有的驱动lsmod=led_drv 1203 0 - Live 0xbf028000/LED驱动buzzer_drv 1488 0 - Live 0xbf022000/蜂鸣器gec210_beep 1298 0 - Live 0xbf0e6000 /蜂鸣器rtnet3070ap 24124 0 - Live 0xbf0d3000rt3070ap 488261 1 rtnet3070ap, Live 0xbf044000 (P)rtutil3070ap 22027 2 rtnet3070ap,rt3070ap, Live 0xbf037000ov9650 8851 0 - Live 0xbf02e000snd_soc_gec210_wm8960 3084 0 - Live 0xbf01c000snd_soc_wm8960 19792 1 snd_soc_gec210_wm8960, Live 0xbf011000D.卸载原有的驱动rmmod led_drv /buzzer_drv/gec210_beep(3)应用程序的使用./led_test报错:./led_test Usage:./led_test led_no = 0,1, 2,3test1.c:把LED和蜂鸣器的驱动加载,使用自带的应用程序进行控制2.5 写代码控制驱动对应的硬件(1)LED灯A.打开对应的设备文件:/dev/ledsB.控制灯的状态ioctl(led_fd, 1, led_namb);参数2:灯的状态 1亮0灭参数3:灯的序号 0/1/2/3C.关闭对应的文件描述符test2-1:完成的流水灯的设计。(10次)sleep(1); =1susleep(1000*1000);=1us(1s)(2)蜂鸣器A.打开对应的设备文件:/dev/beep_drvB.控制灯的状态ioctl(fd,GEC210_BEEP_ON);参数2:灯的状态 1亮0灭C.关闭对应的文件描述符test2-1:完成的流水灯的设计。sleep(1); =1susleep(1000*1000);=1us(1s)test2-2:倒车雷达的实现5s处于安全距离,5s后,进行一级报警(500ms)再过5s,进入2级报警状态(200ms)再过5s,进入3级报警状态(50ms)2.6 人机交互所有的功能的启动、结束:都是由用户来进行控制。(人机交互)2.6.1 触摸屏的开发linux对于常用输入设备,其开发方式都是一样的 =输入子系统(鼠标、键盘、触摸屏.)2.6.2输入子系统的原理cat /dev/event0 2.6.3程序设计输入子系统的设备文件:/dev/event0开发说明书(头文件):input.h(1)打开硬件对应的设备文件(2)根据说明书提供的原始数据格式,进行读取操作struct input_event _u16 type;_u16 code;_s32 value;(3)根据说明书提供的数据分类,进行拆包处理原始数据按住时type = 0x3 code = 0x0 value = 653type = 0x3 code = 0x1 value = 103type = 0x3 code = 0x18 value = 255type = 0x0 code = 0x0 value = 0松开type = 0x3 code = 0x18 value = 0type = 0x0 code = 0x0 value = 0A.解决设备类型 type/* * Event types 输入设备当成是event,type的取值范围 */#define EV_SYN0x00#define EV_KEY0x01/键盘#define EV_REL0x02/鼠标#define EV_ABS0x03/触摸屏B.解决某一个设备下的动作 types_code#define SYN_REPORT0#define SYN_CONFIG1#define SYN_MT_REPORT2#define SYN_DROPPED3#define REL_X0x00#define REL_Y0x01#define REL_Z0x02#define ABS_X0x00X坐标value x的坐标值#define ABS_Y0x01Y坐标value y的坐标值#define ABS_PRESSURE0x18压力值value:0 : 正在按压中=0 : 手已经松开了ts.c:实现手指按下时,坐标的捕捉及输出打印的条件:当压力值为0,手指弹开test2.c:利用触摸屏结合硬件驱动,进行点灯控制2.7音视频的播放(命令行 ./main ./test madplay)(1)音视频播放的原理数据输入:音频文件/视频文件黑匣子(播放器):madplay / mplayer数据输出:LCD,耳机接口(2)播放音乐madplay 1.mp3mplayer mv.mp4(3)替换MP4播放器rootGEC210 xzxwhich mplayer/bin/mplayerrm /bin/mplayertest1:完成命令行播放音乐和视频2.8音视频的播放命令行:只能同时运行一个可执行文件/一条命令代码内嵌调用命令行:#include int system(const char *command);command:命令行的写法video.ctest2.c:在代码内实现音视频的播放test3.c:利用触摸屏 + 音视频播放,实现小型播放器。(播放音乐、上一首、下一首、暂停播放、继续播放、前进、后退)2.9 U盘下载(1)数据放入U盘(2)插入开发板的USB接口-udev insert or remove-sda1-add(3)U盘数据的所在地?/mnt/udiskcp 1.mp3 /第3章 智能家居的具体实现3.1智能家居整体设计图 智能家居整体功能如图1所示3.2智能家居C语言程序#include #include #include /open write read lseek close #include #include #include #include lcd.h#include api_v4l2.h/B.设定人生目标void *child_fun(void *arg)/定义出存放画面的变量FreamBuffer freambuf;unsigned char data640*480*3=0;while(1)/3.从缓冲区中去提取数据linux_v4l2_get_fream(&freambuf);/4.将YUYV进行转换为RGB:LCD.Cyuyv_to_rgb24(freambuf.buf,data,640,480);/5.将RGB数据显示到LCD之上lcd_draw_bmp_for_buf(0,0,data,640,480);void show_camera() int x,y;/1.子功能UI的显示lcd_draw_bmp(0,0,/yinshipin/camera.bmp);/800*480pthread_t child_name;pthread_create(&child_name,NULL,child_fun,NULL);while(1) ts_get_xy(&x,&y);if(x599 & x0 &y599 & x159 &y599 & x319 &y399 & x299 &y400) /上一首count-;if(count 599 & x299 &y3) count=3;music_stop(music_bufcount-1);music_play(music_bufcount);else if(x0 & x299 &y199 & x299 &y300 & x400 &y0 & x239 &y480) /上一个count-;if(count 399 & x239 &y2) count=2;video_stop(video_bufcount-1);video_play(video_bufcount);else if(x0 & x0 &y549 & x0 &y249 & x0 &y0 & x0 &y480) /上一张count-;lcd_draw_bmp(0,0,photo_bufcount);if(count 699 & x0 &y9) count=9;else if(x100 & x0 &y99 & x99 &y99 & x299 &y599 & x99 &y599 & x299 &y349 & x399 &y99 & x99 &y299 & x99 &y499 & x99 &y199 & x299 &y399 & x299 &y400) /安防show_camera();/解除初始化区域linux_v4l2_stop_capturing();linux_v4l2_devic
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论