《智能家居》培训第六天------2019-01-10

目录:

  一)摄像头

  二)照明

  三)所想

  四)总结

 

 

一)摄像头

  摄像头这块学了跟没学一样我觉得,摄像头给的api,yuyv转rgb24也是给的api,总而言之就是,直接给了两个源文件,这两个源文件已经实现了屏幕显示摄像头数据的这个功能,我们所做的就只是把这两个文件和main文件整合,摄像头是怎么获得数据怎么传输数据,数据如何通过什么方式显示在屏幕上这些重点的都没详细讲,只是粗略讲了一下这个过程,不过这也正常,看了一下老师的源码,涉及到的东西确实很多,不觉得这是几天可以搞定的东西,而这可以说是本次培训的最后一天了。

  那么这篇笔记该怎么写呢,如何实现的肯定是没法写的了,我也不懂,就只记录目前知道的东西吧

  1)老师的笔记图

  2)V4L2

  V4L2是linux系统中的一个关于处理视频这一块的一个开发框架,一个处理视频数据的机制,目前我还没有开始学习这个框架

  点击此链接学习V4L2

  3)过程遇到的问题

  ① 问题:显示摄像头界面与菜单栏的点击无法同时实现,就是希望进入摄像界面以后点击返回可以返回主界面,再进入摄像界面依然可以显示摄像头内容

  ② 解决方法:有了之前解决视频菜单栏无法显示的经验,容易想到这个问题也可以使用线程来解决

  ③ 实现:我希望我的main.c文件尽量简洁,其中代码尽量少尽量清晰,我整合了很久代码,希望最终可以只是在main里添加一个显示摄像头的子线程,而把其他什么打开设备、缓存帧、yuyv转rgb24等显示摄像头内容之前需要进行的操作独立成一个文件,但是无论我怎么尝试,都无法实现预期,几个小时后,我妥协了,直接把摄像这一块的代码全部移植到main里,yuyv转rgb24为单独一个文件,这就解决问题了,但是我的main.c也变得繁琐起来了。以下是摄像界面图,图一是摄像头打开前显示的画面:

 

二)照明

  其实就是点灯,这个就不详写了,直接给代码吧

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <fcntl.h>
 4 #include <linux/ioctl.h>
 5 
 6 #define GEC210_LED_ON    _IOW('A', 0x03, unsigned long) 
 7 #define GEC210_LED_OFF    _IOW('A', 0x04, unsigned long)
 8 int light(void)
 9 {
10     int fd_light;
11     fd_light = open("/dev/led_drv", O_RDONLY);//以只读的方式LED的驱动,这个驱动文件要先安装,用老师给的驱动文件led_drv.ko
12     if(fd_light < 0)
13     {
14         perror("open");
15         return -1;        
16     }
17     //在此基础上实现流水灯的效果
18     while(1)
19     {
20         ioctl(fd_light, GEC210_LED_ON, 4); //点亮第4个灯
21         sleep(1);
22         ioctl(fd_light, GEC210_LED_OFF, 4); //关闭第4个灯
23         sleep(1);        
24     }
25     close(fd_light);
26     return 0;    
27 }
led.c

三)所想

  1)没什么想的今天,就感觉没学到什么东西,希望自己可以抽空学习一下V4L2这个东西,如果学了的话到时候再补充这篇笔记

四)总结

   1)实现了摄像头的功能,解决的菜单栏的问题

  2)菜单栏的拍照拍摄功能没有实现

  3)学习了点灯

  4)第七天就不单独写笔记了,因为第七天没学新东西,项目验收而已,我在第七天尝试了实现拍照功能,但是失败了,的确可以生成一张jpg图片,但是这张图片没有数据,问了一下老师,说是在数据写入的时候出现了问题,测试了一下发现不是数据写入的问题,而是使用read函数读取屏幕信息的时候就失败了,尝试了半天,read依然返回-1,也就是依然失败,最后放弃了。

转载于:https://www.cnblogs.com/lzemian-n/p/10259485.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/278473.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记一次kafka数据丢失问题的排查

2019独角兽企业重金招聘Python工程师标准>>> 数据丢失为大事&#xff0c;针对数据丢失的问题我们排查结果如下。 第一&#xff1a;是否存在数据丢失的问题&#xff1f; 存在&#xff0c;且已重现。 第二&#xff1a;是在什么地方丢失的数据&#xff0c;是否是YDB…

ipad iphone开发_如何在iPhone或iPad上更改应用程序的语言

ipad iphone开发BigTunaOnline/Shutterstock.comBigTunaOnline / Shutterstock.comApple’s iOS 13 makes the iPhone and iPad multilingual. Now, you can change the language of an individual app without changing your primary system language. Each app can have its …

Docker最全教程——从理论到实战(七)

Docker最全教程——从理论到实战&#xff08;七&#xff09; 原文:Docker最全教程——从理论到实战&#xff08;七&#xff09;在本系列教程中&#xff0c;笔者希望将必要的知识点围绕理论、流程&#xff08;工作流程&#xff09;、方法、实践来进行讲解&#xff0c;而不是单纯…

设置Windows 10时如何创建本地帐户

Windows 10 tries its hardest to make you use a Microsoft account. The option was already hidden, but now it’s not even offered on Windows 10 Home while you’re connected to the internet. Here’s how to create a local account anyway. Windows 10尽最大努力使…

在PowerPoint 2010中将鼠标用作激光笔

Have you ever wished you had a laser pointer to focus attention on a key point in a PowerPoint slideshow? Today, we’ll take a look at how can use use your mouse as a laser pointer in PowerPoint 2010. 您是否曾经希望激光指示器能将注意力集中在PowerPoint幻灯…

this表示当前对象简单实例

直接上代码 class Message { private Channel channel ; // 保存消息发送通道 private String title ; // 消息标题 private String content ; // 消息内容 // 4、调用此构造实例化&#xff0c;此时的channel 主类ch public Message(Channel channel,String title,String cont…

twitter推文不收录_如何使用Twitter书签保存推文供以后使用

twitter推文不收录Khamosh PathakKhamosh PathakTwitter has a new Bookmarks feature that lets you privately save tweets for later. If you’ve been using the Like feature as a workaround for saving tweets, here’s why you should start bookmarking. Twitter具有一…

if的作用域问题 *输出1~6的随机数*

1 //测试if语句2 public class TestIf {3 public static void main(String[] args){4 double d Math.random();//0~1之间的小数5 int e (int)(d*5); //[0,4]6 //int f 1(int)(d*6); //[1,6] 掷色子7 System.out.println(e);8 …

为您的Blogger博客设计一个美丽的新主题

Would you like to give your Blogger blog a fresh coat of paint with a new theme? Here’s how you can use the new Template Designer to make your Blogger site stand out from the crowd and look great. 您想给Blogger博客一个新的主题吗&#xff1f; 您可以通过以…

Lab 6-4

In this lab, we’ll analyze the malware found in the file Lab06-04.exe. Questions and Short Answers What is the difference between the calls made from the main method in Labs 6-3 and 6-4? A: The function at 0x401000 is the check Internet connection method…

步入三十岁前的总结:看似经历很多得到很多,但,实际却一无所得

本文算是一篇审视自己的文章吧&#xff0c;感觉跟我类似经历的人应该很多&#xff0c;认同感应该也大一些。我是12年网络专业很普通的一所大专院校毕业&#xff0c;到现在为止工作已经超过五年。这五年里&#xff0c;做过运维工程师&#xff0c;也在小车床工作间里做了一下技工…

vue---day03

1. Vue的生命周期 - 创建和销毁的时候可以做一些我们自己的事情 - beforeCreated - created - beforeMount - mounted - beforeUpdate - updated - activated - deactivated - beforeDestroy - destroyed 1.1 知识点回顾 1.1.1 be…

U Sparkle 开发者计划招募中!

向我们投稿吧 在此之前&#xff0c;我们有收到过几篇民间高手的投稿&#xff0c;如&#xff1a; USequencer 初识&#xff08;作者&#xff1a;焱燚(七火)&#xff09; Unity游戏界面解决方案: PSD For UGUI&#xff08;作者&#xff1a;张俊钦&#xff09; UGUI 降低填充率技巧…

如何添加引文标_如何在Google文档中查找和添加引文

如何添加引文标When writing papers, you need to generate a detailed and accurate list of all the sources you’ve cited in your paper. With Google Docs, you can easily find and then add citations to all of your research papers. 撰写论文时&#xff0c;您需要生…

Linux Centos下SQL Server 2017安装和配置

Linux Centos下SQL Server 2017安装和配置 原文:Linux Centos下SQL Server 2017安装和配置我们知道在Linux下安装服务有很多方式&#xff0c;最为简单的也就是yum安装&#xff0c;但是很多服务通过yum是无法安装的&#xff0c;如果想使用yum安装&#xff0c;需要指定yum安装仓库…

如何在Linux上使用端口敲门(以及为什么不应该这样做)

Photographee.eu/ShutterstockPhotographee.eu/ShutterstockPort knocking is a way to secure a server by closing firewall ports—even those you know will be used. Those ports are opened on demand if—and only if—the connection request provides the secret knoc…

小到年货大到产业,刘村长的扶贫模式有点厉害!

河北省阜平县平石头村的村民&#xff0c;今年春节再也不用头疼买什么年货&#xff0c;去哪买年货的问题了&#xff0c;因为他们的“村长”刘强东&#xff0c;给每户人家都送来了年货大礼包&#xff01;大礼包里不仅有牛奶、果汁、毛衣、长裤、波司登羽绒服、枕头、毛巾、炊大皇…

克隆ubuntu硬盘_使用Ubuntu Live CD克隆硬盘

克隆ubuntu硬盘Whether you’re setting up multiple computers or doing a full backup, cloning hard drives is a common maintenance task. Don’t bother burning a new boot CD or paying for new software – you can do it easily with your Ubuntu Live CD. 无论是设置…

从Boxee的Amie Street访问音乐

One of our favorite sites for discovering new music is Amie Street. Today we take a look at the Amie Street app for Boxee that allows you to access your favorite tunes from the Boxee interface. 我们最喜欢的发现新音乐的网站之一是Amie Street。 今天&#xff0…

如何在Word,Excel和PowerPoint 2010中裁剪图片

When you add pictures to your Office documents you might need to crop them to remove unwanted areas, or isolate a specific part. Today we’ll take a look at how to crop images in Office 2010. 将图片添加到Office文档时&#xff0c;可能需要裁剪它们以删除不需要…