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

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

概览

这个项目使用了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


1

2


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


1

2


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


1

2


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/

[ 转载请保留原文出处、译者和译文链接。]

时间: 2024-10-08 07:14:06

DIY一个带WIFI的树莓派照相机的相关文章

DIY一个基于树莓派和Python的无人机视觉跟踪系统

DIY一个基于树莓派和Python的无人机视觉跟踪系统 无人机通过图传将航拍到的图像存储并实时传送回地面站几乎已经是标配.如果想来点高级的--在无人机上直接处理拍摄的图像并实现自动控制要怎么实现呢?其实视觉跟踪已经在一些高端的消费级无人机上有了应用,不过玩现成的永远没有自己动手来劲;).前段时间DIY了一个无人机三轴云台的视觉跟踪系统,除去云台花了¥370,本文将设计思路与实验效果分享出来. 一.基本配置 1.1 硬件 计算平台:树莓派3 (¥219.00) 摄像头:USB网络摄像头(¥108.

DIY一个高大上带提醒的计时器,简单实用,你还在等什么

小编心语:锵锵锵!小编我又来了!昨天发了一篇比较实用的<Python聊天室>,鉴于反响还不错,SO ,小编也想给大家多分享点有用的干货,让大家边学边用.好了,闲话不多说,今天要给各位看官们介绍的是基于C语言的带提醒功能计时器.你还在为错过重要的事情而心烦不已吗?你还在为没抢到某米手机而扼腕叹息吗?你还在为没领到美食免单而空遗口水吗?从今天起,这些都不是问题,且看小编我给你一一道来!咳咳咳~上菜啦~ dialog+ncurse实现命令行带提醒功能计时器 一.说明 这次项目课要实现的东西功能很简单

Mac osx如何配置树莓派3 及 远程wifi控制树莓派

树莓派初次启动需要以下几个步骤: 安装系统镜像到SD卡 连接配置树莓派 配置远程控制树莓派 所需准备的材料如下: 16G以上高速存储SD卡一张.(请注意,树莓派3采用micro卡,网上买的手机内存卡可以直接使用) 读卡器一个mac一个网线一根路由器一个 1.  安装树莓派操作系统到sd卡 1)先到树莓派的官方网站去下载一个系统镜像,推荐下载Raspbian. 下载后,得到镜像如下 2)之后,读卡器中插入SD卡,插读卡器入电脑,这样我们使用df -h ,来查看一下,SD卡有没有插上. 如图,我们可

笔记本自带wifi

显示无线网络信息命令:netsh wlan show hostednetwork 运行命令:netsh wlan set hostednetwork mode=allow ssid=jshen key=958232826 此命令有三个参数,mode:是否启用虚拟WiFi网卡,改为disallow则为禁用. ssid:无线网名称,最好用英文. key:无线网密码,八个以上字符. 以上三个参数可以单独使用,例如只使用mode=disallow可以直接禁用虚拟Wifi网卡. 开启成功后,网络连接中会多

Android菜鸟笔记-WifiPickerActivity 实现跳转到系统自带wifi连接界面

前言: 在使用一些APP时,比如Google Play,在没有连接到网络时,APP会自动跳转到系统自带的wifi连接界面(如下图),在这个界面下连接wifi有一个很好的功能:在没有连上wifi热点时,"下一步"按钮是无法点击,这种体验效果是非常好的,确保了在下一步时,有网络可以使用. 实现步骤: 1. 怎么才能跳转到这个界面?(通过adb logcat查看Google Play跳转时的ACTION,log如下) I/ActivityManager(  444): START u0 {a

不止是联网!教你玩转PC自带Wi-Fi网卡

前言:Wi-Fi对于现在的智能手机来说已经是再熟悉不过的配置了,而主板自带Wi-Fi网卡的设计也越来越普及,但有些玩家可能思维还停留在“Wi-Fi网卡 = 连无线网络用的网卡,我用有线就不需要”的层次,因此我们今天就来跟大家谈谈,PC自带Wi-Fi网卡到底能够实现什么样的功能. 不止是联网!教你玩转PC自带Wi-Fi网卡 ●很多主板都自带了Wi-Fi无线网卡 七彩虹 战斧 C.A88AK旗舰版配备板载Wi-Fi网卡 Wi-Fi无线网卡以往一般常见于ITX尺寸的迷你主板上面,主要为了提升主板在客厅

如何编写一个带命令行参数的Python文件

看到别人执行一个支持命令行参数的python文件,瞬间觉得高大上起来.牛逼起来,那么如何编写一个带命令行参数的python脚本呢?不用紧张,下面将简单易懂地让你学会如何让自己的python脚本,支持命令行参数. 首先你要知道python中的sys模块的一些功能: import sys print "the number of python program's argument:",len(sys.argv) print "the value of every argument

QT模态对话框用法(在UI文件中设置Widget背景图,这个图是一个带阴影边框的图片——酷)

QT弹出模态对话框做法: 1.新建UI文件时,一定要选择基类是QDialog的,我的选择是:Dialog without Buttons(),如下图: 2.然后在使用的时候: MyDialog dlg(this); dlg.exec(); 如果不加this,则会在任务管理器里面产生一个新的EXE. 3.如果对话框的标题是自定义,不想使用系统的标题,这时候需要在代码中加入: setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint ); setAttr

iOS: 学习笔记, 添加一个带界面约束的控制器

1. 创建一个空iOS应用程序(Empty Application). 2. 添加加控制器类. 修改控制器类的viewDidLoad 1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 //创建标题 5 UILabel *header = [[UILabel alloc] init]; 6 header.text = @"欢迎来到我的世界!"; 7 header.textAlignment = NSTextAlignmentCenter