精华内容
下载资源
问答
  • 研 究 生 课 程 论 文 (2013-2014学年第二学期)     基于触摸屏的树莓派照相机 研究生:蒋育霖 提交日期: 2014年6月17日

    基于Robopeak触摸屏和官方摄像头的树莓派照相机

    摘要:

        树莓派是开源硬件的里程碑,无数开发者们在树莓派平台上完成了他们的创意作品。如果搭载上嵌入式linux系统就可以组成一个微型的卡片计算机。今天我们来制作一个基于树莓派平台的触摸屏照相机,它并不是设计精美的产品,但它有着开源的可定制性。这个项目使用RobopeakTFT触摸屏和树莓派摄像头模块来制作一个一按即拍的数码相机。你也可以选择性的加入WiFi来自动的把拍摄的照片传到另一台电脑上以供编辑。它不是要代替你的数码相机(甚至是手机的摄像头)。它只是一个简单的学习锻炼的产物而不是精美的消费品。但因为它是开源的,你可以给它定制一些普通相机做不到的功能。 

    关键字:触摸屏 摄像头 树莓派 

     

    1、Robopeakmini USB触摸屏的安装

        RoboPeakUSB显示器是由RoboPeak团队开发的一款以USB接口作为传输协议的触摸屏显示器。RoboPeakUSB 显示器可以与各种不同的设备和平台进行连接,进而成为它们的人机接口。我们提供全面的产品资料和手册,让你无障碍使用这一便捷的产品。Robopeak团队开源产品的设计和源码,方便你的二次开发。所有资料将会在官网首发更新,欢迎关注Robopeak和DFRobot官网。 

    1.1、Robopeakmini USB触摸屏概述

       随着低成本,高性能的ARM处理器的普及,催生了一大批以树莓派为代表的Mini PC,它们通常使用 HDMI 接口与电视或者显示器连接,再配合 USB 接口的键盘与鼠标成为一台Mini PC。可是这样的组合让Mini PC失去了便携性,必须带上鼠标、键盘,且在有电视(带有HDMI接口的显示器)的地方才能使用。 利用RoboPeakUSB 显示器可以让Mini PC成为真正的Mini PC,只要有电源的地方,就可以使用。


    图1、MK802连接RoboPeakMini USB显示器 

       在PC上,有一块小型的触摸屏可以大大改善PC的使用体验,为有创意的应用提供了更多的可能。以 Razor 推出的灵刃系列笔记本电脑为例,其键盘旁集成的触摸屏可以成为游戏中技能的释放面板;对于一些专业软件,也可以成为常用功能的快速入口。


    图2、Razor Blade笔记本电脑的触控液晶屏

       此外对于一些没有显示器的设备,如服务器、NAS 等设备,触摸屏可以作为人机接口,显示设备的状态,提供设备的管理功能,可以大大的提高设备的用户体验,提高管理效率。


    图3、PC与RoboPeak Mini USB显示器进行连接

    1.2、Robopeak mini USB触摸屏的安装

       RoboPeakMini USB显示器在设计之初就充分的考虑到了与Mini PC连接工作的使用场景与Mini PC连接使用也是最方便的使用方式之一。

    您可以选择2种简单的方式使用RoboPeakMini USB 显示器

    .使用RoboPeak提供的预编译Mini PC固件

    .使用RoboPeakMini USB显示器驱动程序中的ARM Suite工具集安装预编译驱动

        为了方便大家使用,RoboPeak提供了预先编译并打包好的Mini PC固件供大家使用。您只需将预先编译固件镜像简单的写入SD卡或者Mini PC自带的NAND存储芯片中,即可使用USB显示器,无需任何额外配置。


        您可以从如下地址下载与您的设备对应的预编译固件

    http://www.robopeak.com/docs/doku.php?id=product-rpusbdisp-downloads


    步骤1下载并安装Win32 Disk Imager工具

    Win32Disk Imager是一款开源的Windows磁盘映像工具您可以下载该工具

    http://sourceforge.net/projects/win32diskimager/

    步骤2打开Win32 Disk Imager工具

    Win32 DiskImager并没有安装程序,解压缩后即可使用。请双击Win32Disklmagerexe可执行文件打开该工具。


    图4 Win32 Disk Imager主界面

        请利用ImageFile框中右边的打开文件按钮选择映像文件(*.img文件),并在Device一栏中选择您的SD卡。此时,Write按钮会从灰色不可用变成可用,请单击Write按钮。Win32Disk Imager会弹出如下对话框让您确认.


    图5 Win32 Disk Imager确认界面

        请单击Ye:按钮执行写入操作。Win32Disk Imager将会把映像文件中的内容写入您的SD卡中。根据您的SD卡的写入速度的不同这个过程可能会耗费较长的时间。请务必耐心的等待写入过程全部完成,否则可能造成数据不完整,无法正常使用SD卡启动您的Mini PC。


    图6 Win32 Disk Imager正在写入映像

        至此,树莓派的屏幕的过程全部结果,而且顺便也预装了树莓派的系统,为了确保所有相互依赖的软件正常工作,最简单的方法是从一个干净的系统开始。 格式化4GB或者更大容量的SD卡(也可以用带转接卡的microSD)并且写入2013-09-25版本的RaspbianWheezy操作系统,而不是之后的2013-12-20版本。虽然最新版本总是那么的诱人,但是TFT屏还不能在之后的版本上完全正常工作。修复工作正在进行中,这个问题可能会在后续的发布中得到解决。但是由于Robopeak触摸屏的限制,这里我们使用的是2013-09-10Wheezy Rasbian。

        使用2013-9-25和后面更新版本的树莓派系统时,触摸屏不能正常工作,而且Robopeak对后面版本的树莓派并没有很好的支持,在多次尝试之后选择了预编译好的MINI PC固件。


    然后进行第一次启动配置。 以下选项是必须的:

    ExpandFilesystem

    EnableCamera

    以下选项非常有用推荐设置:

    在InternationalizationOptions更改Change Timezone和Change Keyboard Layout为与你相对应的区域。

    以下配置是可选的:

    在AdvancedOption,选择Hostname来为树莓派指定一个唯一的名字(比如”picam”)来与网络内的其他树莓派区别开。

    在AdvancedOption,选择SSH来打开远程命令行访问(对日后的配置和查找问题很有帮助)。

     

    不应该使用下列选项:

       Overclock.这是一个便携式,电池供电的项目并且超频更费电。超频的系统很有可能烧坏SD卡。不要打开这个选项。接着就触摸屏就能正常工作了。


    图7 装好编译好屏幕驱动的树莓派系统的启动画面


    2 树莓派官方摄像头的安装 

    2.1 摄像头简介

         树莓派相机模块可以用来拍摄高清视频,以及相片。初学者使用很简单,但是作为高级用户假如你想学习更多知识,我们也会提供更多的帮助。在网上有很多例子,你也可以使用库来操作相机。

        如果你在细节感兴趣,你会想要知道该模块有五百万像素定焦相机支持1080p30,720p60和vga90视频模式,以及捕捉照片。它将通过一个15cm带状电缆的CSI电缆RaspberryPi。它可以通过算法和V4L API访问,并有众多的第三方库建造它,包括picameraPython库。

          连接方式:90度垂直连接器,HDMI口旁边那个。连接时触点一侧朝向HDMI接口


    图8 树莓派官方摄像头连接示意图

    软件使用:

    1. RPi固件和raspi-config已经为了摄像头更新,请执行一次apt-getupdate; apt-get upgrade(更新需要先安装putty,或者用键盘连接树莓派在树莓派命令行更新)


    图9 执行一次apt-get update


    图10 执行一次apt-get upgrade

    2. raspi-config中选择camera,启动RPi固件中的摄像头驱动,然后重启


    图11 启用摄像头模块

    3. 使用命令行程序raspivid和raspistill操作摄像头,捕捉视频片段或图像

    4. 捕捉到的视频片段需要用mplayer播放

     

          要实现在树莓派上面开发相机软件,还必须为树莓派相机安装Python库。


    sudo apt-get install pip python-pip
    sudo pip install picamera==0.8


       使用0.8版本非常重要,而不是更新的1.0版本。在新版本上我们使用的功能还有一点点不稳定。一旦状况改变,我们会发布一个修订版本修正这个问题,但是假如你是自己开发程序而不是使用现成的程序,那么还是可以考虑使用新一点的picamera库,关于该相机库的开发文档可以在下面的网站上找到,到目前为止,最新的库版本为1.5.

    http://picamera.readthedocs.org/en/release-1.2/


    3、软件开发平台的安装 

    3.1、SSH安装

         SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(NetworkWorking Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有U NIX平台—包括HP-UX、Linux、AIX、Solaris、DigitalUNIX、Irix,以及其他平台,都可运行SSH。

        这个是平时用的最多的东西了,使用SSH可以免去:在电脑与树莓派间切换的麻烦,购买KVM转换器的费用,甚至可以直接免去为树莓派专门准备显示器,方便广大只有笔记本没有单独显示器的在校学生。

         事实上树莓派大多数的操作,都可以通过电脑的远程登录完成。通过VNC可以登录到树莓派的桌面环境,而通过SSH可以操作树莓派的命令行。

    开启SSH

        事实上最新的Raspbian 2012-10-28已经默认启动了SSH支持,无需特意开启。

        如果因为各种原因,系统没开启SSH服务(从旧系统升级,曾经特意关掉等),可通过sudoraspi-config启用或禁止SSH。

    登录SSH

         登录SSH的唯一推荐工具是PuTTY。(Tunnelier(Bitvise SSH Client)也是好工具,但无奈中文乱码无法解决而不建议)

     论坛提供PuTTY0.62中文汉化版下载:

     

            打开PuTTY,输入树莓派的IP地址即可登录,其中IP地址可以在局域网内部查询。

     首次登录会和您确认连接密钥,请按“是”确认。只有首次登录会出现这个提示。

     登录后会提示输入用户名和密码,输入之后即可登录树莓派的命令行。

     (提示:Raspbian默认的用户名密码是pi/raspberry)


    图12 Putty远程登录树莓派


    图13 修改Putty远程登录树莓派的界面字体


    图14 保存所有的设置以方便下次的使用


    图15 远程登录到树莓派操作

     

     

    3.2 安装VNC实现远程可视化管理树莓派

          VNC(Virtual Network Computer)是虚拟网络计算机的缩写。VNC 是一款优秀的远程控制工具软件,由著名的AT&T 的欧洲研究实验室开发的。VNC 是在基于 UNIX 和 Linux 操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows和 MAC 中的任何远程控制软件媲美。 在 Linux 中,VNC 包括以下四个命令:vncserver,vncviewer,vncpasswd,和vncconnect。大多数情况下用户只需要其中的两个命令:vncserver 和vncviewer。


    安装步骤:

    一、首先,在树莓派上安装TightVNC 包,在putty里面或者树莓派终端输入


    sudo apt-get update
    sudo apt-get install tightvncserver


    之后树莓派就会自动从网上下载vnc的服务器端,安装过程中会提示是否安装,按小写的y后回车,继续安装。安装完成后会让你设置一个VNC登陆的密码,输入密码后还会问你是否输入个只能观看不能操作的密码,一般选择n,也就是不设置。整个安装完成之后输入

    二、之后对VNC进行配置。首先通过以下命令运行VNC


    tightvncserver


    之后会出现以下画面,要求设置VNC密码,这个密码是客户端连接时使用的。输入密码之后还可根据需要,再输入一个view-only的密码,使用这个密码只能查看桌面,但不能操作:

    三、在远程计算机(即电脑)上访问

    下载 VNC Viewer,官方下载地址:

    http://www.tightvnc.com/download.php

    下载Window版的VNC-Viewer,这里选择Windows 32位软件。

     

    图16 下载VNC

     

    安装时可以通过自定义选项选择只安装TightVNC viewer。运行TightVNC Viewer,在RemoteHost中填入Raspberry Pi的IP地址,注意IP后需要加”:1″,应该是表示连接ID吧。之前我没加,就一直连接不上。


    图17 VNC远程登录树莓派界面


    图18 树莓派Linux系统桌面

     

    4、基于触摸屏的树莓派相机软件开发

            该开发过程主要使用了python脚本的pygame模块来编写界面,使用picamera模块来实现摄影操作。

    4.1python简介

         Python是一种面向对象、解释型计算机程序设计语言,由Guidovan Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C++重写。


         与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理内存使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。


    4.2pygame模块

          Pygame是 跨平台 Python模块,专为电子游戏设计。 包含图像、声音。pygame建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚。基于这样一个设想,所有需要的游戏功能和理念都(主要是图像方面)都完全简化为游戏逻辑本身,所有的资源结构都可以由高级语言提供,如Python。

    使用Pygame

          Pygame的初始化非常方便,首先调用pygame.init(),这个函数为所有导入的pygame模块进行初始化,如果初始化失败,不会引发任何的异常。

    Pygame中用于显示的是一个叫Surface的东西,Surface可以理解成一个表面,就像画画的白纸一样,任何东西都可以在上面绘制。每个Surface都有它固定的分辨率(可以理解成白纸的大小,即宽和高)以及像素格式(pixelformat)。


    调用pygame.Surface可以创建一个图像对象。起初Surface会被清空成全黑,唯一需要的参数是它的大小。其它还有几个默认的参数:

    pygame.Surface((width,height), flags=0, depth=0, masks=None): return Surface

    pygame.Surface((width,height), flags=0, Surface): return Surface

    像素格式可以通过传入位深depth或者一张存在的Surface来决定,flags参数是表面的一组位或标志,可以传入以下参数的任意组合:

    HWSURFACE,在显存中创建图像

    SRCALPHA,像素格式有alpha值,即透明度


          Surface可以有许多额外的属性,像alpha层,关键色,源矩形裁剪等。这些功能主要影响Surface是如何粘贴到其它表面的。这里的粘贴不是一般意义上的粘贴,因为它不止是原图拷贝,有可能是进行像素的与运算、或运算等等,我们称这种操作为blit(位块传输),blit会尽可能使用硬件加速,如果实在不行,它们会使用具有很好优化手段的软件传输方法。


        在Pygame中支持三种类型的透明处理:关键色(colorkeys),表面alpha(surfacealphas),像素alpha(pixel alphas)。表面alpha能够和关键色混合使用,但是如果用了像素alpha,就不能和其它两种进行混合使用了。关键色使得某一种颜色成为透明,任何和这个颜色一样的像素将不会被绘制出来。表面alpha是一个单一的值,它决定了整张图片的透明度。这个值为255表示不透明,0则表示完全透明。


          像素alpha储存了所有像素的alpha值,也就是透明度。在表面上的像素访问是允许的,但是对于一个游戏来说,这个速度实在是太慢了(不是一般的慢啊…试过你就知道了)。像素的访问和修改可以通过get_at()和 set_at()函数,但是如果需要批量操作,这种方法是不可取的,实在要做,可以利用pygame.surfarray模块,它将Surface看做是很大的高维数组,操作起来相当快。任何函数如果要直接访问一个Surface的某个像素数据的话需要将这个Surface锁定,锁定和解锁可以调用lock()和unlock()方法。


           对Surface有一定了解之后,我们就可以来看display了,pygame.display是Pygame中用于屏幕显示的模块,一旦创建了一个display,你就可以把它当成是常规的Surface来使用了。Pygame在进行显示的时候是采用双缓冲机制的,其实它内部有两个Surface,每次要绘制时是在后备缓冲上进行绘制,当所有东西都绘制完毕后需要手动调用pygame.display.flip()函数,这个函数的作用就是将后备缓冲和前台缓冲进行一次交换,如此一来,先前绘制的东西也就自然而然得显示到屏幕上来了(也可以调用pygame.display.update(),它是对前一个翻页函数的优化,可以传入一些矩形,只在传入的矩形进行更新操作)。我们利用以下函数对屏幕的Surface进行初始化:


    pygame.display.set_mode(resolution=(0,0),flags=0, depth=0) : return Surface

    resolution表示需要创建的窗口的大小,即分辨率。flags表示一些位或标志,一般有以下几个:

    pygame.FULLSCREEN    创建一个全屏的显示模式

    pygame.DOUBLEBUF     建议和 HWSURFACE 或 OPENGL组合

    pygame.HWSURFACE     全屏下硬件加速

    pygame.OPENGL           创建一个opengl 的渲染显示模式

    pygame.RESIZABLE      显示窗口大小可变

    pygame.NOFRAME       显示窗口没有边框

    depth则表示当前Surface的位深。

    screen =pygame.display.set_mode(SCREENRECT.size, pygame.FULLSCREEN)


            我们可以采用以上语句创建一个用于全屏显示的Surface对象,并且返回给全局变量screen。接下来我们从文件中读取一张图片并且将它显示到屏幕上来,pygame.image模块是用于图像的传输的,它包含了一些读取和保存图片的函数,读取图片可以采用pygame.image.load。它的原型是:

    pygame.image.load(filename)return Surface

        从文件中载入一个图像,传入的是文件名。Pygame将会自动决定图像的类型(gif 或者 bmp)并且从数据中创建一个新的Surface对象。返回的Surface对象将会包含和文件中的原图一样的颜色格式、关键色和alpha通道。你可以返回Surface.convert()来创建一个拷贝,它在屏幕上绘制的时候效率更高。

     

    4.3picamera模块


    这个包提供了一个Python接口为Python2.7(或以上),Python3.2(或以上)的RaspberryPi的相机模块,地址为

    http://picamera.readthedocs.org/en/release-1.2/

    该代码在BSD许可证下授权。包可以从PyPI上的项目主页下载。该源代码可以从GitHub上,也承载了bug跟踪系统来获得。可以阅读ReadTheDocs上的文档(里面包含安装,快速启动实例,以及大量的代码)。



    图20 Picamera模块开发者文档

     

    4.4 拍摄照片

          拍摄照片有两种方法,一种是使用终端命令行,另外是一种是调用picamera模块,下面将分别介绍。

    方法一:使用终端命令行来拍摄照片:

       可以参考以下的开发者文档 http://bbs.ickey.cn/group-topic-id-5436.html ,目前提供了三个应用程序,分别为:raspistill、raspivid、raspistillyuv。其中raspistill 和 raspistillyuv 非常相似,并且都是用于捕捉图像,而raspivid 用于捕捉视频。

    所有应用程序均基于命令行方式运行,通过 OpenMAX的 mmal API 进行编写。OpenMAX 的 mmal API 提供了更易使用的系统组件。注意,mmal 是一个由Broadcom 为 Videocore 4 系统定制的 API。


        应用程序使用了三个 OpenMAX(mmal)组件:camera(摄像)、preview(预览)、encoder(编码)。所有应用程序均使用了摄像组件,raspistill使用了图像编码组件,raspivid 使用了视频编码组件,raspistillyuv 没有使用编码组件,而是直接将 YUV 从摄像组件输出到文件。

    预览显示为可选参数,但是可以用于全屏或输出到指定的显示器显示区域进行显示。如果预览被禁用,那么 null_silk组件将会对预览帧进行“吸收”。这是由于尽管不需要摄像头生成供显示所用的的预览帧,但是仍需要使用它们进行曝光计算和白平衡设置的缘故。

    拍摄照片示例:

    # 两秒钟(时间单位为毫秒)延迟后拍摄一张照片,并保存为image.jpg

    raspistill-t 2000 -o image.jpg


    图21 输入拍照指令


    图22 照片信息

    拍摄视频示例:

    # 使用默认设置录制一段 5 秒钟的视频片段(1080p30)

    raspivid-t 5000 -o video.h264


    图23 输入拍摄视频指令


     

    图24 视频信息

     

     

    方法二:使用Python IDLE编写的程序来实现拍照功能

    IDLE是开发python程序的基本IDE(集成开发环境),具备基本的IDE的功能,是非商业Python开发的不错的选择。当安装好python以后,IDLE就自动安装好了,不需要另外去找。同时,使用Eclipse这个强大的框架时IDLE也可以非常方便的调试Python程序。基本功能:语法加亮;段落缩进;基本文本编辑;TABLE键控制;调试程序。

     

    Idle 总的来说是标准的 Python 发行版,甚至是由 Guidovan Rossum 亲自编写(至少最初的绝大部分)。您可在能运行 Python 和 TK 的任何环境下运行 Idle。打开 Idle 后出现一个增强的交互命令行解释器窗口(具有比基本的交互命令提示符更好的剪切-粘贴、回行等功能)。除此之外,还有一个针对 Python 的编辑器(无代码合并,但有语法标签高亮和代码自动完成功能)、类浏览器和调试器。菜单为 TK “剥离”式;也就是点击顶部任意下拉菜单的虚线将会将该菜单提升到它自己的永久窗口中去。特别是"Edit" 菜单,将其“靠”在桌面一角非常实用。Idle 的调试器提供断点、步进和变量监视功能;但并没有其内存地址和变量内容存数或进行同步和其他分析功能来得优秀


    图25 Python IDE

     

    拍摄一张照片源代码:

     


    <span style="font-size:14px;">#定义照片的名字
    background_image_filename='image.jpg'
    #导入pygame库
    import pygame
    #导入一些常用的函数和常量
    from pygame.localsimport *
    #向sys模块借一个exit函数用来退出程序
    from sysimport exit
    #导入树莓派相机模块
    import picamera
    #导入时间模块
    import time
    from timeimport sleep
     
    #定义屏幕的长和宽常量
    width=320
    height=240
    #拍摄一张照片,分辨率由width和height决定,名字为image.jpg
    with picamera.PiCamera()as camera:
      camera.resolution=(width,height)
      camera.start_preview()
      time.sleep(2)
      camera.capture('image.jpg')
    #初始化pygame,为使用硬件做准备
    pygame.init()
    #创建了一个窗口
    screen =pygame.display.set_mode((width,height),0,32)
    #设置窗口标题
    pygame.display.set_caption("My Camera")
    #加载并转换图像
    background =pygame.image.load(background_image_filename).convert()
    #相机主循环
    while True:
    #接收到退出事件后退出程序
     for event in pygame.event.get():
          ifevent.type == QUIT:
               exit()
      #将背景图画上去  
      screen.blit(background,(0,0))
      #刷新一下画面
      pygame.display.update()</span>




    图26 程序运行结果

     

     

    5、完整的相机源程序 

    由于和上面拍摄一张照片源代码很相似,就不做注释了。


    <span style="font-size:14px;">background_image_filename='image1.jpg'
    import pygame
    from pygame.localsimport *
    from sysimport exit
    import picamera
    import time
    from timeimport sleep
    width=320
    height=240
    with picamera.PiCamera()as camera:
      camera.resolution=(width,height)
      camera.start_preview()
      time.sleep(2)
      camera.capture('image1.jpg')
    pygame.init()
    screen =pygame.display.set_mode((width,height),0,32)
    pygame.display.set_caption("My Camera")
    background =pygame.image.load(background_image_filename).convert()
    flag=0
    count=1
    while True:
     for event in pygame.event.get():
          ifevent.type == QUIT:
               exit()
          elifevent.type == MOUSEBUTTONDOWN:
             pressed_array=pygame.mouse.get_pressed()
             for index inrange(len(pressed_array)):
               ifpressed_array[index]:
                  ifindex==0:
                    flag=1
                    count=count+1
                   print('left')
                 elifindex==1:
                   print('mid')
                 elifindex==2:
                   print('right')
     if flag==1:
       with picamera.PiCamera() as camera:
          camera.resolution=(width,height)
          camera.start_preview()
          time.sleep(2)
          camera.capture("image%d.jpg" % count)
          background = pygame.image.load("image%d.jpg" % count).convert()
          flag=0
      screen.blit(background,(0,0))  
      pygame.display.update()
     </span>




    保存源代码为*.py,并运行该python脚本。运行的方法有两种,一种是用鼠标在树莓派上根据TFT屏幕运行脚本,第二种方法是用VNC在电脑端运行python脚本。

     


    图27 拍照过程

    所拍到的照片响应的保存在源程序的根目录下面,我们这里储存的目录是/home/pi/yulin,因此在里面可以找到刚才所拍下的照片,如下图所示


    图28 树莓派拍下的照片

    连续拍摄的时候不会覆盖掉前面已经存在的照片,因此我们可以连续拍摄。


    图29 连续拍摄

     

    6 总结与展望

     

    这一次的课程设计基本上算是完成了任务,只能拍摄320*240的照片,这是因为我们在确定课题的过程中没有考虑到现实实践的时候可能出现的困难,没有能正确的评估该设计,中期制作的时候也经常会发生被某一个很小的问题卡住很久的现象,还好后面能正确的跳出的陷阱,终于在课程设计的最后期限时勉强实现了基本的拍照功能,之所以没有实现那个很复杂的功能,这里面有好多原因,最主要的一个是我们一开始一直在使用别人写好的源程序,这样子的话一旦出现错误,便不知道错误出现在哪,一个庞大的系统有可能在原来的环境中没有问题,但是换了一个不一样的环境之后就会发生一些很严重的奔溃现象。因此一旦发生这种类型的错误,以后应该吸取教训,一步一步编写程序,有耐心的调试程序。

    下一步的设计的话,可以逐步的增加一些拍视频的功能,或者拍摄高清照片的功能,这些功能其实都不难,因为一旦环境配置好了,一个连接所有硬件的HelloWorld程序能正常工作,对于一个嵌入式系统是很重要的,接下来的事情只不过是在这上面小小的修改一下。

    增加完拍视频和高清照片的功能之后可以再美化一下界面,使得操作过程更加人性化,并且设置开机自启动相机程序,这样才算是真正实现一个基本的相机。

     

     

    7 参考文献

     

    1 . PIPad(树莓派+触摸屏+官方摄像头模块)变身7寸触摸屏相机(含样张)

     http://bbs.ickey.cn/group-topic-id-14600-sc-desc.html

    2 PythonPicamera1.2库中文教程

     http://bbs.ickey.cn/group-topic-id-15418.html

    3 树莓派摄像头模块应用程序文档翻译

     http://bbs.ickey.cn/group-topic-id-5436.html

    4 DIY一个带WIFI的树莓派照相机

     http://www.geekfan.net/5618/

    5 用Python和Pygame写游戏-从入门到精通

     http://eyehere.net/2011/python-pygame-novice-professional-1/

    6  树莓派学习16: 安装VNC,远程管理RaspberryPi

     http://bbs.ickey.cn/group-topic-id-4492.html

    7  Documentation for picamera

     http://picamera.readthedocs.org/en/release-1.5/

    8 树莓派官网

     http://www.raspberrypi.org/

    9 Robopeak mini usb触摸屏数据手册、用户手册

     http://www.robopeak.com/blog/?p=480

    10 DIY WiFiRaspberry Pi Touchscreen Camera

     https://learn.adafruit.com/diy-wifi-raspberry-pi-touch-cam/overview

     


    展开全文
  • DIY一个带WIFI的树莓派照相机

    千次阅读 2017-03-20 15:43:06
    本文由 极客范 - Boyd Wang 翻译自 Phillip Burgess。欢迎加入极客翻译小组,同我们一道翻译与分享。转载请参见文章末尾处的要求。 ...这个项目使用了Adafruit PiTFT触摸屏和树莓派摄像

    本文由 极客范 - Boyd Wang 翻译自 Phillip Burgess。欢迎加入极客翻译小组,同我们一道翻译与分享。转载请参见文章末尾处的要求。

    http://v.youku.com/v_show/id_XNjcyMzAwNDQ4.html



    概览

    这个项目使用了Adafruit PiTFT触摸屏和树莓派摄像头模块来制作一个一按即拍的数码相机。你也可以选择性的加入WiFi和Dropbox(一个云存储同步服务)来自动的把拍摄的照片传到另一台电脑上以供编辑。


    它不是要代替你的数码相机(甚至是手机的摄像头)。它只是一个简单的学习锻炼的产物而不是精美的消费品。但因为它是开源的,你可以给它定制一些普通相机做不到的功能。

    你需要的东西

    因为有以太网口和两个USB接口,Model B更容易安装。而Model A更省钱更省电…但是只有一个USB接口并且没有以太网口,它需要你花更多的力气来让所有软件加载起来。

    • PITFT Mini Kit — 供树莓派使用的TFT触屏
    • 树莓派摄像头模块。通常情况下你需要普通版本。但是在一些特殊的项目比如安保或户外夜间拍摄,你可以尝试红外版本
    • SD存储卡,4GB或者更大。为了使相机更加小巧便携,你可以选择性的使用microSD卡和low-profileShortening转接卡。

    下面是可选部分:

    • WiFi适配器,它使你能够把照片上传到Dropbox上(需要账户,免费的)。
    • 移动电源,它使整个相机变成可携带的。如果使用WiFi和/或Model B型树莓派,你需要一个可以提供1A电流的强劲移动电源(有些最大输出只有500mA)。
    • 某些情况下一个USB转TTL串口线是访问和配置树莓派更好的选择,如果你没有备用的键盘和显示器。

    一些所需的额外组件,工具和技术:烙铁和焊锡用于把头部与PiTFT屏焊接到一起;一些把组件组装到一起的方法–从简单的使用橡皮筋,到一个钻孔的电子元件板,再到精心设计的3D打印外壳。这一切都取决于你手边可用的资源。浏览一下看看这个项目需要哪些东西,然后根据你自己的情况想出解决办法把。   另一种树莓派一按即拍的相机! James Wolf在原始的外壳(除了电池)里制作了一个树莓派一按即拍相机。他自己做了一块板子来集成所需的线缆,带有电阻和按钮 ,拍摄的图片和Python文件链接可以在他的网站上找到。

    树莓派设置

    为了确保所有相互依赖的软件正常工作,最简单的方法是从一个干净的系统开始。 格式化4GB或者更大容量的SD卡(也可以用带转接卡的microSD)并且写入2013-09-25版本的Raspbian Wheezy操作系统。这篇教程介绍了如何为树莓派准备一张SD卡。 最重要的一点是使用2013-09-25版本的Raspbian,而不是之后的2013-12-20版本。虽然最新版本总是那么的诱人,但是TFT屏还不能在之后的版本上完全正常工作。修复工作正在进行中,这个问题可能会在后续的发布中得到解决。 点击这里下载2013-09-25版本Raspbian 接上显示器和键盘(或者USB转串口线),用手机的USB充电器或者有源的usb hub为树莓派供电,然后进行第一次启动配置。 以下选项是必须的:

    • Expand Filesystem
    • Enable Camera

    以下选项非常有用推荐设置:

    • Internationalization Options更改Change TimezoneChange Keyboard Layout为与你相对应的区域。

    以下配置是可选的:

    • Advanced Option,选择Hostname来为树莓派指定一个唯一的名字(比如”picam”)来与网络内的其他树莓派区别开。
    • Advanced Option,选择SSH来打开远程命令行访问(对日后的配置和查找问题很有帮助)。
    • 其他你喜好的配置

    不应该使用下列选项:

    • Overclock.这是一个便携式,电池供电的项目并且超频更费电。超频的系统很有可能烧坏SD卡。不要打开这个选项。

    一旦基础配置完成,你可以配置无线网络如果你打算用它的话。可以参考这篇教程。 一旦所有配置完成,下一步设置PiTFT。

    Adafruit PiTFT — 2.8英寸的树莓派触摸屏

    至少完成Assembly,Software Installation, Touchscreen Install & Calibrate 和 Using the Console pages几步。其余的部分(例如播放视频,加入关机键)对于这个项目来说没那么重要,但你可以根据自己的喜好完成。一旦你启动树莓派并且在2.8存TFT屏上看到了登录提示信息,你就离成功不远啦。 同样的,PiTFT可选的实体按键对这个项目来说也不是必须的。你可以为其他的功能安装它,但是相机的软件是完全基于触摸屏的。


    获取相机的软件只需要额外的几步… 首先,为树莓派相机安装Python库:

    sudo apt-get install pip python-pip

    sudo pip install picamera==0.8
    使用0.8版本非常重要,而不是更新的1.0版本。在新版本上我们使用的功能还有一点点不稳定。一旦状况改变,我们会发布一个修订版本修正这个问题。) 然后获取Python相机应用:
    wget https://github.com/adafruit/adafruit-pi-cam/archive/master.zip
    unzip master.zip
    最后,我们来试一下吧。软件必须以root身份运行(通过sudo命令)来在TFT屏上显示:
    cd adafruit-pi-cam-master

    sudo python cam.py
    如果一切正常,几秒钟的初始化之后,你应该能在屏幕上看到一个取景窗以及两个按钮。 如果没有,那应该有一个错误信息指导你排除错误:缺少类库或者驱动等。这也是为什么我们推荐先完成TFT教程部分。 如果我们想用Dropbox,还有一些工作要做,所以现在退出相机应用吧。按一下齿轮图标(设置),再按左箭头,最后是确认按钮。你现在应该回到命令行了。


    专用模式

    如果你喜欢把树莓派调成相机专用模式,可以从让命令行输出到PiTFT(请参考PiTFT教程)开始并且为开关电源分配一个额外的电源键,这样你就可以轻松安全的关闭树莓派而不用登录或连接键盘了。 一旦这些都完成了,通过编辑/etc/rc.local加入下面exit 0之前的代码来使树莓派一启动就进入相机软件。


    再次重启的时候你会看到命令行字符然后直接打开了picam软件。要关机的话,可以使用刚才分配的按键来切换。

    Dropbox配置

    Dropbox是一个”云”文件存储和同步服务。一个基础账户是免费的并且提供2G存储空间。我们可以利用它把树莓派里的相机导出到其他设备上(例如你的桌面电脑等)而不需要数据线或者替换存储卡。 这就需要WiFi链接了;试想一下一个连接着网线的相机是多么令人讨厌啊。它也需要在你的无线网络范围内,并给你的树莓派合适的访问设置。 下面的在RasPi.TV上的教程介绍了如何在树莓派上配置Dropbox使它们能一起工作。

    如何在树莓派上使用Dropbox

    步骤包括:

    • 创建一个Dropbox账户如果你还没有。
    • 在树莓派上下载和配置Dropbox Uploader(通过命令行完成)
    • 创建Dropbox应用并得到访问认证

    下面是一些我在Dropbox开发者网站为相机创建新app时的配置:


    额外的一步:

    • 通过在树莓派上上传一个文件(什么都行)来测试Dropbox Uploader程序。

    如果工作正常,下次你运行cam.py脚本时你就可以进入Settings并且选择Dropbox作为存储介质。以后的照片将会保存在”Photos”文件夹里并且上传到Dropbox上。

    使用相机

    你可能已经在测试时看到了相机的界面。现在我们来更详细的介绍下它是如何工作的还有哪些选项是可用的。 启动之后,相机程序会显示一个取景窗和两个按钮。屏幕的主要部分本身是一个快门“按扭” — 按一下它来拍照。 在屏幕的底部有2个按钮。左边的(一个小齿轮图标)将会呈现很多设置。右边的按钮(带有”Play”标志)使你能够浏览之前拍摄的照片(如果你什么都没拍,相机会提示你是”empty”的)。


    Settings菜单提供了很多相机的设置。这没有列出所有的树莓派相机功能,只有几个让你快速上手的必备选项。 通过屏幕顶部的左/右箭头在选项之间切换:


    Storage屏有3个不同的选项,每一个的优缺点如下:

    • Photos Folder:图片将存储到树莓派你的home目录里的”Photos”文件夹下(如果不存在将被创建)。树莓派上的其他程序可以很容易的访问到他们,但是在别的电脑上访问这一分区就不那么容易了。
    • Boot Parition:图片将会存储到boot分区的”/boot/DCIM/CANON999″目录下。当SD卡插入到其他电脑上,它将类似于一个数码相机的存储卡并且自动导入照片,取决于你的系统设置。缺点是boot分区的空间非常有限。你可能只能存储十几张照片。
    • Dropbox:正如前面讨论的,图片将会存储到Photos文件夹下并且上传到Dropbox(如果WiFi已经连接并且配置好了Dropbox)。

    Size屏可以选择3种尺寸:

    • Large (2592×1944,4:3比例):这是树莓派相机所支持的最大的尺寸(500w像素)。实际拍摄的要远大于取景窗里的显示。
    • Medium (1920×1080,16:9比例):HD分辨率,宽屏,200w像素。
    • Small (1440×1080,4:3比例):150w像素。

    后两种模式应该能够在取景窗显示实际拍摄的照片范围,但是实际上不是这样(相机类库的文档有些和实际情况不一致)。这个问题还在解决当中。


    Effect屏是所有乐趣发生的地方。这里有16种不同的艺术特效可以应用到照片上(算上”normal”,就是没有特效)。把你的照片弄得看起来像幅油画,或者铅笔素描,或者是奇奇怪怪的颜色!这些效果都是可以实时预览的。


    ISO屏调整相机的光感度。这你得自己权衡…高感光度在光线暗的情况下效果更好,但是图像会有很多噪点。ISO没有实时预览,只会在拍照的时候起效。


    最后一屏是退出相机程序选项,回到命令行。按一下红色的按钮退出,按箭头移到其他设置,或者按Done按钮取消。

    “Done”按钮会返回取景模式。 所有的设置将会被保存,下次运行脚本的时候所有的设置会生效。

    接下来的事情…

    这仅仅只是次尝试,接下来要做什么取决于你自己…

    • 摄像头模块可以换成红外版本
    • cam.py里的图标和按钮非常简陋,但是对于你自己的触屏程序(不管是拍照相关的还是别的)来说足够了。
    • 相机代码可以被扩展去做别的事情。这有很多我们没有提及的相机设置。可以添加其他的功能例如自拍,定时器或运动检测。或者录制视频。

    看看这个令人尴尬的组装,它用的是橡皮筋!也许一个合适的外壳更好…如果你能用到激光切割或者3D打印的那最好不过了。


    盒子的尺寸可以考虑缩减;在PiTFT和树莓派之间有很大的空间(即使是使用Model A的板子)。更高级的玩家可以考虑压缩电池和5V变压器尺寸,连接到TFT板子右边头部突出部分来代替USB电源连接。结果将是与现存的消费级数码相机大小相似。

    原文链接: Phillip Burgess 翻译: 极客范Boyd Wang

    译文链接: http://www.geekfan.net/5618/


    展开全文
  • 树莓派变身照相机——摄像头控制

    万次阅读 多人点赞 2016-08-22 22:14:42
    树莓派作为一台小型电脑,玩法多种多样。本文介绍树莓派控制摄像头的方法。 2.准备工作 1)连接摄像头与树莓派 2)修改树莓派配置,开启摄像头模块。 sudo raspi-config 如图所示,选择“Enable Camera”, 保存后将...

    1.前言

    树莓派作为一台小型电脑,玩法多种多样。本文介绍树莓派控制摄像头的方法。

    2.准备工作

    1)连接摄像头与树莓派

    2)修改树莓派配置,开启摄像头模块。

    sudo raspi-config

    如图所示,选择“Enable Camera”, 保存后将自动重启。

    3. 拍摄与查看

    接下来,可以进行拍摄了。

    raspistill -t 2000 -o image.jpg

    raspistill是树莓派控制摄像头拍照的命令,-t制定捕获图片等待时间,单位毫秒 -o输出文件名

    查看图片命令

    gpicview image.jpg

    4. 常用命令

    常用命令:
    # 两秒钟(时间单位为毫秒)延迟后拍摄一张照片,并保存为 image.jpg
    raspistill -t 2000 -o image.jpg
    
    # 拍摄一张自定义大小的照片。
    raspistill -t 2000 -o image.jpg -w 640 -h 480
    
    # 降低图像质量,减小文件尺寸
    raspistill -t 2000 -o image.jpg -q 5
    
    # 强制使预览窗口出现在坐标为 100,100 的位置,并且尺寸为宽 300 和高 200 像素。
    raspistill -t 2000 -o image.jpg -p 100,100,300,200
    
    # 禁用预览窗口
    raspistill -t 2000 -o image.jpg -n
    
    # 将图像保存为 PNG 文件(无损压缩格式,但是要比 JPEG 速度慢)。注意,当选择图像编码时,文件扩展名将被忽略。
    raspistill -t 2000 -o image.png –e png
    
    # 向 JPEG 文件中添加一些 EXIF 信息。该命令将会把作者名称标签设置为 Dreamcolor,GPS 海拔高度为 123.5米。
    raspistill -t 2000 -o image.jpg -x IFD0.Artist=Dreamcolor -x GPS.GPSAltitude=1235/10
    
    # 设置浮雕风格图像特效
    raspistill -t 2000 -o image.jpg -ifx emboss
    
    # 设置 YUV 图像的 U 和 V 通道为指定的值(128:128 为黑白图像)
    raspistill -t 2000 -o image.jpg -cfx 128:128
    
    # 仅显示两秒钟预览图像,而不对图像进行保存。
    raspistill -t 2000
    
    # 间隔获取图片,在 10 分钟(10 分钟 = 600000 毫秒)的时间里,每 10 秒获取一张,并且命名为 image_number_1_today.jpg,image_number_2_today.jpg... 的形式。
    raspistill -t 600000 -tl 10000 -o image_num_%d_today.jpg
    
    # 获取一张照片并发送至标准输出设备
    raspistill -t 2000 -o -
    
    # 获取一张照片并保存为一个文件
    raspistill -t 2000 -o - > my_file.jpg
    


    
    展开全文
  • 亚马逊刚刚推出了DeepLens 。...今天,我们将自己动手打造出一款基于深度学习的照相机,当小鸟出现在摄像头画面中时,它将能检测到小鸟并自动进行拍照。最终成品所拍摄的画面如下所示:相机不傻,...
    a91d51b60503dbb5c964dc09faa52cae.png

    亚马逊刚刚推出了DeepLens 。这是一款专门面向开发人员的全球首个支持深度学习的摄像机,它所使用的机器学习算法不仅可以检测物体活动和面部表情,而且还可以检测类似弹吉他等复杂的活动。虽然DeepLens还未正式上市,但智能摄像机的概念已经诞生了。

    今天,我们将自己动手打造出一款基于深度学习的照相机,当小鸟出现在摄像头画面中时,它将能检测到小鸟并自动进行拍照。最终成品所拍摄的画面如下所示:

    c84e903ff0e9a4908759fe7daf3252a2.png

    相机不傻,它可以很机智

    我们不打算将一个深度学习模块整合到相机中,相反,我们准备将树莓派“挂钩”到摄像头上,然后通过WiFi来发送照片。本着“一切从简”(穷)为核心出发,我们今天只打算搞一个跟DeepLens类似的概念原型,感兴趣的同学可以自己动手尝试一下。

    接下来,我们将使用Python编写一个Web服务器,树莓派将使用这个Web服务器来向计算机发送照片,或进行行为推断和图像检测。

    1d73f5edb4b592404f3ad37e01f2e525.png

    我们这里所使用的计算机其处理能力会更强,它会使用一种名叫 YOLO 的神经网络架构来检测输入的图像画面,并判断小鸟是否出现在了摄像头画面内。

    我们得先从YOLO架构开始,因为它是目前速度最快的检测模型之一。该模型专门给Tensorflow(谷歌基于DistBelief进行研发的第二代人工智能学习系统)留了一个接口,所以我们可以轻松地在不同的平台上安装和运行这个模型。友情提示,如果你使用的是我们本文所使用的迷你模型,你还可以用CPU来进行检测,而不只是依赖于价格昂贵的GPU。

    接下来回到我们的概念原型上… 如果像框内检测到了小鸟,那我们就保存图片并进行下一步分析。

    检测与拍照

    6ce64a7ffc8163a68b6fe61ea7fbaada.png

    正如我们所说的,DeepLens的拍照功能是整合在计算机里的,所以它可以直接使用板载计算能力来进行基准检测,并确定图像是否符合我们的标准。

    但是像树莓派这样的东西,我们其实并不需要使用它的计算能力来进行实时计算。因此,我们准备使用另一台计算机来推断出现在图像中的内容。

    我使用的是一台简单的Linux计算机,它带有一个摄像头以及WiFi无线网卡( 树莓派3 + 摄像头 ),而这个简单的设备将作为我的深度学习机器并进行图像推断。对我来说,这是目前最理想的解决方案了,这不仅大大缩减了我的成本,而且还可以让我在台式机上完成所有的计算。

    我们需要使用Flask来搭建Web服务器,这样我们就可以从摄像头那里获取图像了。

    from import lib import import_moduleimport osfrom flask import Flask, render_template, Response#uncomment below to use Raspberry Pi camera instead#from camera_pi import Camera#comment this out if you're not using USB webcamfrom camera_opencv import Cameraapp =Flask(__name__)@app.route('/')def index(): return "hello world!"def gen2(camera): """Returns a single imageframe""" frame = camera.get_frame() yield frame@app.route('/image.jpg')def image(): """Returns a single currentimage for the webcam""" return Response(gen2(Camera()),mimetype='image/jpeg')if __name__ == '__main__':app.run(host='0.0.0.0', threaded=True)

    如果你使用的是树莓派视频照相机,请确保没有注释掉上述代码中from camera_pi那一行,然后注释掉from camera_opencv那一行。

    你可以直接使用命令python3 app.py或gunicorn来运行服务器,这跟Miguel在文档中写的方法是一样的。如果我们使用了多台计算机来进行图像推断的话,我们还可以利用Miguel所开发的摄像头管理方案来管理摄像头以及计算线程。

    当我们启动了树莓派之后,首先需要根据IP地址来判断服务器是否正常工作,然后尝试通过Web浏览器来访问服务器。

    在树莓派中加载Web页面及图像来确定服务器是否正常工作:

    6bfed50387b0935fe00ca8c84752c783.png

    图像导入及推断

    既然我们已经设置好了终端来加载摄像头当前的图像内容,我们就可以构建一个脚本来捕捉图像并推断图像中的内容了。

    这里我们需要用到request库(一个优秀的Python库,用于从URL地址获取文件资源)以及 Darkflow (YOLO模型基于Tensorflow的实现)。

    不幸的是,我们没办法使用pip之类的方法来安装 Darkflow ,所以我们需要克隆整个代码库,然后自己动手完成项目的构建和安装。安装好Darkflow项目之后,我们还需要下载一个YOLO模型。

    因为我使用的是速度比较慢的计算机和板载CPU(而不是速度较快的GPU),所以我选择使用YOLO v2迷你网络。当然了,它的功能肯定没有完整的YOLO v2模型的推断准确性高啦!

    配置完成之后,我们还需要在计算机中安装Pillow、numpy和OpenCV。最后,我们就可以彻底完成我们的代码,并进行图像检测了。

    最终的代码如下所示:

    from darkflow.net.build import TFNetimport cv2from io import BytesIOimport timeimport requestsfrom PIL import Imageimport numpy as npoptions= {"model": "cfg/tiny-yolo-voc.cfg
    展开全文
  • 今天,我们将自己动手打造出一款基于深度学习的照相机,当小鸟出现在摄像头画面中时,它将能检测到小鸟并自动进行拍照。最终成品所拍摄的画面如下所示:   相机不傻,它可以很机智 我们不打算将一个深度学习模块...
  • 亚马逊刚刚推出了DeepLens 。...今天,我们将自己动手打造出一款基于深度学习的照相机,当小鸟出现在摄像头画面中时,它将能检测到小鸟并自动进行拍照。最终成品所拍摄的画面如下所示:相机不傻,...
  • {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台;社区覆盖了云计算、大数据、人工智能、...
  • 如果觉得本篇文章对您的学习起到帮助作用,请 点赞 + 关注 + 评论 ,留下您的足迹 在此项目中,通过连接GPIO引脚的按钮控制拍照,使用树莓派,Python和摄像头模块制作照相机和录像机。详细内容请看这里 相关内容: ...
  • 我决定在随身携带的行头里尽量将电脑方面的需求减至最低,所以我只带了一台Kindle,一部照相机,一部Android手机以及我的树莓派!尽管树莓派是一个美妙的项目,也是电子产品中的一项壮举,可...
  • 摄像头图像服务器栈 如果你不想使用树莓派摄像头,那么可以按照这些操作指南在树莓派上安装OpenCV 3,要按照说明书中获得最新版本本地安装OpenCV 3.3.1替代3.3.0版本。 旁注,为了在我的树莓派上用3.3.1,我得禁用...
  • 主要材料1、树莓派3 X12、摄像头模块 X13、9G 180°微型舵机 X24、迷你平移/倾斜照相机平台 防振照相机支架(2个舵机)5、电阻1K欧姆 X2(可选)6、金属部件7、固定带等(用于构建云台平台)你可以购买一个成品的云台平台...
  • 树莓派安装opencv配置及相关error 一、开启camera sudo apt-get uodate sudo apt-get upgrade sudo raspi-config #Enable Camera sudo reboot raspistill -o Desktop/image.jpg #测试拍照保存在桌面,照相机预览打开...
  • 7 MAKER:mjrovai/译:Cherry...4、迷你平移/倾斜照相机平台 防振照相机支架(2个舵机) 5、电阻1K欧姆 X2(可选) 6、金属部件 7、固定带等(用于构建云台平台) 你可以购买一个成品的云台平台舵机或自...

空空如也

空空如也

1 2
收藏数 37
精华内容 14
关键字:

树莓派照相机