树莓派是一种十分有用的小计算机。我有好几个呢,因为我会把它用到我的白天的工作中,我想是时候用一个(在晚上)了。
我也很喜欢养热带昆虫,特别是甲虫。这些可不是你家花园里那些甲虫,除非你刚好生活在雨林。我现在手上的这些是象甲虫,它们来自美洲中南部。下面放照:
这些昆虫通常是夜行的。在白天它们通常喜欢在垫草(苔藓)下面挖洞,或者挂在树杈上。但到了晚上,它们就变得十分活跃。我之所以知道这一点,是因为当我早上起来,我发现它们箱子里的树枝都被重新排列了。
现在来说说我的树莓派项目,我想用树莓派的摄像头来做一部网络相机,也想做一些延时摄影的视频,因为我真的不想盯着屏幕12小时来看看这些小家伙都在晚上干了点啥。于是就有了Beetlecam(甲虫相机)这个项目,它会时不时在这里进行直播。默认情况下,Beetlecam会每30秒拍一张照片,也可以根据给定的时长生成延时影片。下面是经过24小时拍摄的镜头压缩到20分钟左右的视频。
在这篇文章里我将告诉你如何用你的树莓派来组装并运行一个Beetlecam。
Beetlecam 硬件
要运行一个Beetlecam,你需要下面3样东西:
- 一个树莓派(任何型号,除了Pizero树莓派0,因为它不支持摄像头)
- 一个树莓派摄像头
- 一箱子热带昆虫
或许你没有第三项,别担心,它可以用到任何你想要延时摄影的地方。
一个常规的树莓派摄像头就够了,但我用的是红外线版,因为它可以在全黑的情况下进行拍摄。如果你要拍的对象是在夜间活动的,那么红外线版本就必不可少了。下面是我的小派和摄像头(注意摄像头左右各有一个红外LED)。
安装树莓派十分简单,我用了魔术贴来把它粘在箱子上面,也方便移动位置。下面是安装好的:
Beetlecam 软件
Beetlecam软件分为两部分,一部分是一个web应用,用来展示最后拍下的换,另一部分是一个脚本每隔一段时间就拍一张照片然后上传。这两部分都在Beetlecam repository.
要运行Beetlecam,你还需要一些额外的类库。你可以用树莓派桌面上的terminal(终端)应用来安装它们,或者用SSH/Dataplicity来远程连接到树莓派上。不管你用哪种,运行下面的命令:
sudo apt-get update sudo apt-get install python-dev python-pip python-lxml libjpeg-dev sudo pip install moya picamera
这可能要花一些时间,来杯咖啡吧。
当上面的命令都完成,你就能运行这个命令了moya -v
下一步是从Github上获取Beetlecam的源码,通过以下命令获取:
sudo apt-get install git git clone https://github.com/moyaproject/beetlecam.git
这个命令会在你当前路径下创建一个beetlecam
文件夹,并用cd beetlecam
cd到这个目录下。
在这个目录里,你应该可以找到一个叫做beetlecam.py
的Python文件。这是一个周期性拍照并上传照片的脚本。这个Python代码所做的是拍摄照片并发送POST请求给web应用。当你在一个网页上填表单时,浏览器就会发出一个POST请求。Beetlecam所做的,就是给这个表单填数据。
通过下面命令运行 beetlecam.py:
python beetlecam.py run -r 30
你将会看到命令行有错误提示,那是因为我们还没有运行Beetlecam的web应用部分。
要运行web应用,需要打开一个新的Terminal(终端)窗口,或者SSH实例。这样我们就可以让beetlcam.py一直在小派上运行。cd到beetlecam
路径下然后运行:
cd site moya init
这个命令会初始化web应用并创建数据库。接着,用下面的命令来运行web应用:
moya runserver -t --host 0.0.0.0
然后你就应该可以用浏览器打开 http://127.0.0.1:8000看到beetlecam.py拍摄的照片了。也许你用的是网络里面的另外一台机器,那就应该用树莓派的主机名替换URL,默认情况下是http://raspberrypi:8000。
第二部分?
如果大家还感兴趣的话,我将告诉大家如何创建一个延时摄影视频,并将介绍更多beetlecam.py
的细节,以及web应用的实现。