分类 树莓派 下的文章

1. 我的世界: Pi

源于 Raspberry Pi 基金会. CC BY-SA 4.0

“我的世界”是世界上几乎每一个青少年都特别喜欢的一款游戏,而且它成功抓住了年轻人眼球,成为目前最能激发年轻人创造力的游戏之一。这个树莓派版本自带的我的世界不仅仅是一个具有创造性的建筑游戏,还是一个具有编程接口,可以通过 Python 与之交互的版本。

我的世界:Pi 版对于老师来说是一个教授学生解决问题和编写代码完成任务的好方式。你可以使用 Python API 创建一个房子,并且一直跟随这你的脚步移动,在所到之处建造一座桥,让天空落下熔岩雨滴,在空中显示温度,以及其它你可以想象到的一切东西。

详情请见 "我的世界: Pi 入门"

2. 反应游戏和交通灯

源于 Low Voltage Labs. CC BY-SA 4.0

使用树莓派可以很轻松地进行物理计算,只需要连接几个 LED 和按钮到开发板上的 GPIO 接口,再用几行代码你就可以按下按钮来开灯。一旦你了解了如何使用代码来完成这些基本的操作,接下来就可以根据你的想象来做其它事情了。

如果你知道如何让一个灯闪烁,你就可以控制三个灯闪烁。挑选三个和交通灯一样颜色的 LED 灯,然后编写控制交通灯的代码。如果你知道如何使用按钮触发事件,那么你就可以模拟一个行人过马路。同时你可以参考其它已经完成的交通灯附件,比如PI-TRAFFIC, PI-STOP, Traffic HAT,等等。

代码并不是全部——这只是一个演练,让你理解现实世界里系统是如何完成设计的。计算思维是一个让你终身受用的技能。

源于 Raspberry Pi 基金会. CC BY-SA 4.0

接下来试着接通两个按钮和 LED 灯的电源,实现一个双玩家的反应游戏 —— 让 LED 灯随机时间点亮,然后看是谁抢先按下按钮。

要想了解更多可以看看 GPIO Zero recipes。你所需要的资料都可以在 CamJam EduKit 1 找到。

3. Sense HAT 电子宠物

Astro Pi —— 一个增强版的树莓派 —— 将在 12 月问世,但是你并没有错过亲手把玩这个硬件的机会。Sense HAT 是使用在 Astro Pi 的一个传感器扩展板,现在已经开放购买了。你可以使用它来进行数据搜集、科学实验,游戏等等。可以看看下面树莓派的 Carrie Anne 拍摄的 Gurl Geek Diaries 的视频,里面演示了一种很棒的入门途径——在 Sense HAT 屏幕上自己设计一个生动的像素宠物:视频(墙外)。

详见 "探索 Sense HAT."

4. 红外鸟笼

源于 Raspberry Pi 基金会. CC BY-SA 4.0

让整个班级都可以参与进来的好主意是在鸟笼里放置一个树莓派和夜视镜头,以及一些红外线灯,这样子你就可以在黑暗中看见鸟笼里的情况了,然后使用树莓派通过网络串流视频。然后就可以等待小鸟归笼了,你可以在不打扰的情况下近距离观察小窝里的它们了。

要了解更多有关红外线和光谱的知识,以及如何校准摄像头焦点和使用软件控制摄像头,可以访问 打造一个红外鸟笼

5. 机器人

源于 Raspberry Pi 基金会. CC BY-SA 4.0

只需要一个树莓派、很少的几个电机和电机控制器,你就可以自己动手制作一个机器人。可以制作的机器人有很多种,从简单的由几个轮子和自制底盘拼凑的简单小车,到由游戏控制器驱动、具有自我意识、配备了传感器,安装了摄像头的金属小马。

要学习如何控制不同的电机,可以使用 RTK 电机驱动开发板入门或者使用配置了电机、轮子和传感器的 CamJam 机器人开发套件——具有很大的价值和大量的学习潜力。

或者,如果你还想了解更多核心内容,可以试试 PiBorg 的 4Borg(£99/$150)和 [DiddyBorg](https://www.piborg.org/diddyborg)(£180/$273),或者购买 Metal 版 DoodleBorg (£250/$380),然后构建一个最小版本的 DoodleBorg tank(非卖品)。

详情可见 机器人装备表


via: https://opensource.com/education/15/12/5-great-raspberry-pi-projects-classroom

作者:Ben Nuttall 译者:ezio 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

在树莓派 2B 上如何安装 FreeBSD 10 或 FreeBSD 11(current)?怎么在 Linux,OS X,FreeBSD 或类 Unix 操作系统上烧录 SD 卡?

在树莓派 2B 上安装 FreeBSD 10 或 FreeBSD 11(current)很容易。使用 FreeBSD 操作系统可以打造一个非常易用的 Unix 服务器。FreeBSD-CURRENT 自2012年十一月以来一直支持树莓派,2015年三月份后也开始支持树莓派2了。在这个快速教程中我将介绍如何在树莓派 2B 上安装 FreeBSD 11 current arm 版。

1. 下载 FreeBSD-current 的 arm 镜像

你可以 访问这个页面来下载 树莓派2的镜像。使用 wget 或 curl 命令来下载镜像:

$ wget ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/arm/armv6/ISO-IMAGES/11.0/FreeBSD-11.0-CURRENT-arm-armv6-RPI2-20151016-r289420.img.xz

$ curl -O ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/arm/armv6/ISO-IMAGES/11.0/FreeBSD-11.0-CURRENT-arm-armv6-RPI2-20151016-r289420.img.xz

2. 解压 FreeBSD-current 镜像

执行以下命令中的任何一个:

$ unxz FreeBSD-11.0-CURRENT-arm-armv6-RPI2-20151016-r289420.img.xz

$ xz --decompress FreeBSD-11.0-CURRENT-arm-armv6-RPI2-20151016-r289420.img.xz

3. 设置 SD

你可以在 OS X,Linux,FreeBSD,MS-Windows 和类 Unix 系统来烧录 SD 卡。

在 Mac OS X 下烧录 FreeBSD-current

使用下面的 dd 命令:

$ diskutil list
$ diskutil unmountDisk /dev/diskN
$ sudo dd if=FreeBSD-11.0-CURRENT-arm-armv6-RPI2-20151016-r289420.img of=/dev/disk2 bs=64k

示例输出:

1024+0 records in
1024+0 records out
1073741824 bytes transferred in 661.669584 secs (1622776 bytes/sec)

使用 Linux/FreeBSD 或者类 Unix 系统来烧录 FreeBSD-current

语法是这样:

$ dd if=FreeBSD-11.0-CURRENT-arm-armv6-RPI2-20151016-r289420.img of=/dev/sdb bs=1M

确保使用实际的 SD 卡的设备名称来替换 /dev/sdb(LCTT 译注:千万注意不要写错了)。

4. 引导 FreeBSD

在树莓派 2B 上插入 SD 卡。你需要连接键盘,鼠标和显示器。我使用的是 USB 转串口线来连接显示器的:

Fig.01 RPi USB based serial connection

图01 基于树莓派 USB 的串行连接

在下面的例子中,我使用 screen 命令来连接我的 RPI:

## Linux 上 ##
screen /dev/tty.USB0 115200

## OS X 上 ##
screen /dev/cu.usbserial 115200

## Windows 请使用 Putty.exe ##

FreeBSD RPI 启动输出样例:

Gif 01: Booting FreeBSD-current on RPi 2

图02: 在树莓派 2上引导 FreeBSD-current

5. FreeBSD 在 RPi 2上的用户名和密码

默认的密码是 freebsd/freebsd 和 root/root。

到此为止, FreeBSD-current 已经安装并运行在树莓派 2上。


via: http://www.cyberciti.biz/faq/how-to-install-freebsd-on-raspberry-pi-2-model-b/

作者:Vivek Gite 译者:strugglingyouth 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

树莓派 Raspberry Pi 是 Raspberry Pi Foundation 推出的迷你电脑,它只有信用卡大小,但可以完成一台普通 PC 能完成的大部分工作,并且价格很便宜,是电脑爱好者的不二选择,如果你是一名 Linuxer 更应该拥有一台这样的迷你电脑。

发展

Raspberry Pi 自 2012 年发布以来,依次发布了 Raspberry Pi 1 A , Raspberry Pi 1 B ,Raspberry Pi 1 B+ ,Raspberry Pi 1 A+ ,Raspberry 2 B 五个版本,这些版本硬件上有不少变化,具体可以查阅 Wikipedia Raspberry Pi ,另外 Raspberry Pi 2 B 将支持 Windows 10 iot ,这对非 Linux 用户来说也是一个福音,因为你可以完全把 Raspberry Pi 2 B 当成你的另一台 Windows PC ,详情可以查看 Raspberry Pi Windows 10 iot

Raspberry Pi 的用途

Raspberry Pi 到底能拿来做什么呢?它的玩法多的数不清了,因为这取决于我们的创意,作为一块开发板,它给我们提供了很大的自由。

下面是几张引用文章内的图:

操作系统的选择

由于 Raspberry Pi 几乎是为 Linux 而生的,所以 Raspberry Pi 的操作系统也是多样的,为此以下介绍几个操作系统。

以上操作系统都可以在 Raspberry Pi 主页 找到相关信息。

个人电脑

笔者只是将 Raspberry Pi 当成个人电脑使用而已,因此,未选择 Raspbian 而是选择了 Arch Arm。

下面是我选择的配件

  • Raspberry Pi 2 B
  • 8 G 闪迪内存卡
  • USB Wi-Fi 模块(可选)
  • 亚克力外壳(可选)
  • 散热铝片或铜片
  • 电源线
  • 键盘鼠标(可选)

安装系统

首先参照 Arch Arm Installation 安装系统。

为 SD 卡分区(用你 Linux 上的 sd 卡设备代替 sdX ):

fdisk /dev/sdX

第一步请先删除原来的分区并重新创建:

  • 输入 o 清除所有分区。
  • 输入 p 列出所有分区,此时应该没有分区。
  • 输入 n , 然后输入 p 选择主分区,1 是第一个分区 ,输入 ENTER 确定第一个扇区,然后输入 +100M 。
  • 输入 t , 然后输入 c 设置第一个分区类型为 W95 FAT32 (LBA)。
  • 输入 n , 然后输入 p 选择主分区, 2 是第二个分区, 直接输入 ENTER 确定默认的扇区和最后的扇区(剩下的所有容量作为第二个分区)
  • 输入 w 写入分区表并退出。

创建和挂载 vfat 文件系统(用你 Linux 上的 sd 卡设备代替 sdX ):

mkfs.vfat /dev/sdX1
mkdir boot
mount /dev/sdX1 boot

创建个挂载 ext4 文件系统(用你 Linux 上的 sd 卡设备代替 sdX ):

mkfs.ext4 /dev/sdX2
mkdir root
mount /dev/sdX2 root

使用 root 用户下载和解压 根文件系统:

wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz
bsdtar -xpf ArchLinuxARM-rpi-2-latest.tar.gz -C root
sync

移动启动文件到第一分区:

mv root/boot/* boot

卸载挂载点:

umount boot root

将 SD 卡插入 Raspberry Pi ,连接以太网和 5v 电源。

使用 SSH 登录

默认用户是 alarm 密码 alarm。(ssh 请先用此用户登录,再修改 ssh 配置允许 root 登录)

root 的默认密码是 root。

注意 :以下用到 sudo 命令的,若你未配置 sudo 请直接用 root 用户执行。

首次使用应该按如下格式 ssh 登录:

$ ssh -p 22 alarm@地址

进去后使用 su 切换到 root ,并修改密码:

$ sudo su -   
# password

为了能使 root 通过 ssh 登录,编辑 /etc/ssh/sshd_config

$ sudo nano /etc/ssh/sshd_config

#PermitRootLogin 这行去掉注释,并将值设置为 yes

PermitRootLogin yes

配置源与更新系统

编辑 /etc/pacman.d/mirrorlist

$ sudo nano /etc/pacman.d/mirrorlist

在顶部增加以下代码,这是中科大的源

## USTC
Server = http://mirrors.ustc.edu.cn/archlinuxarm/armv7h/$repo

编辑好后按 ctrl +x ,然后按 y 保存,然后升级整个系统:

$ sudo pacman -Syu

桌面化 Raspberry Pi

首先安装 xorg

$ sudo pacman -S xorg
$ sudo pacman -S xorg-xinit

然后安装 lxqt 桌面:

$ sudo pacman -S lxqt 

使用 vncviewer 访问 Raspberry Pi

首先配置 vncviewer,本机与 Raspberry Pi 都需要安装 tigervnc

$ sudo pacman -S tigervnc

在 Raspberry Pi 中执行 vncserver

$ vncserver 

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? n

New 'ArchRaspi:1 (locez)' desktop is ArchRaspi:1

Creating default startup script /home/locez/.vnc/xstartup
Starting applications specified in /home/locez/.vnc/xstartup
Log file is /home/locez/.vnc/ArchRaspi:1.log

然后编辑 ~/.vnc/xstartup ,将原来的内容替换为以下内容,你也可以直接删除原文件,再新建一个同名文件:

#!/bin/sh

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startlxqt

然后杀掉 vnc 服务,并重启它:

$ vncserver -kill :1
Killing Xvnc process ID 400

$ vncserver 

New 'ArchRaspi:1 (locez)' desktop is ArchRaspi:1

Starting applications specified in /home/locez/.vnc/xstartup
Log file is /home/locez/.vnc/ArchRaspi:1.log

记住上面的 :1 可能根据实际情况不同,这个端口是你用 vncviewer 连接时用的端口。

然后本机中执行:

$ vncviewer address:port

然后输入密码就可以了

小屏幕显示

现在我们看见这个不是全屏的,但是可以在启动 vncserver 的时候增加参数,来指定分辨率:

$ vncserver -kill :1
$ vcnserver -geometry 1920x1000

这下就全屏了

全屏

其它用途

然后你可以在不另外配显示屏的情况下正常使用 Raspberry Pi ,将它配置成一个 samba 服务器,或者做成一个下载器,这仅仅取决于,你想将 Raspberry Pi 拿来干什么。

笔者还尝试将 Raspberry Pi 直接连入手机 Wi-Fi ,把手机当成路由器使用,获取手机内网 IP 后,直接在手机上 ssh 内网登录,从而实现 Raspberry Pi 使用手机流量上网,并且不用借助路由器就可以连接 Raspberry Pi。

这里笔者推荐的是 juiceSSH ,手机上简单实用的一款 ssh 工具。由于篇幅原因,此处不再详述如何使用手机直连 Raspberry Pi,动手能力强的同学可以参看上面我给的思路,自行折腾。

后来笔者,买了键盘以后,又利用 tmux 将手机纯粹当屏幕使用。

首先 手机先 ssh 登陆 Raspberry Pi,执行

tmux

然后在看不见屏幕的情况下,使用键盘盲打输入 用户名密码 进行登录,然后执行

tmux attach

此时键盘与手机屏幕的输入已经是同步的,一台个人作品就此完成!

成果展示

下面几张图,是笔者在学校折腾的时候拍的:

参考资料

物联网(Internet of Things, IoT) 时代即将来临。很快,过不了几年,我们就会问自己当初是怎么在没有物联网的情况下生存的,就像我们现在怀疑过去没有手机的年代。Canonical 就是一个物联网快速发展却还是开放市场下的竞争者。这家公司宣称自己把赌注压到了IoT 上,就像他们已经在“云”上做过的一样。在今年一月底,Canonical 启动了一个基于Ubuntu Core 的小型操作系统,名字叫做 Ubuntu Snappy Core

Snappy 代表了两种意思,它是一种用来替代 deb 的新的打包格式;也是一个用来更新系统的前端,从CoreOS、红帽子和其他系统借鉴了原子更新这个想法。自从树莓派 2 投入市场,Canonical 很快就发布了用于树莓派的Snappy Core 版本。而第一代树莓派因为是基于ARMv6 ,Ubuntu 的ARM 镜像是基于ARMv7 ,所以不能运行ubuntu 。不过这种状况现在改变了,Canonical 通过发布 Snappy Core 的RPI2 镜像,抓住机会证明了Snappy 就是一个用于云计算,特别是用于物联网的系统。

Snappy 同样可以运行在其它像Amazon EC2, Microsofts Azure, Google的 Compute Engine 这样的云端上,也可以虚拟化在 KVM、Virtuabox 和vagrant 上。Canonical Ubuntu 已经拥抱了微软、谷歌、Docker、OpenStack 这些重量级选手,同时也与一些小项目达成合作关系。除了一些创业公司,比如 Ninja Sphere、Erle Robotics,还有一些开发板生产商,比如 Odroid、Banana Pro, Udoo, PCDuino 和 Parallella 、全志,Snappy 也提供了支持。Snappy Core 同时也希望尽快运行到路由器上来帮助改进路由器生产商目前很少更新固件的策略。

接下来,让我们看看怎么样在树莓派 2 上运行 Ubuntu Snappy Core。

用于树莓派2 的Snappy 镜像可以从 Raspberry Pi 网站 上下载。解压缩出来的镜像必须写到一个至少8GB 大小的SD 卡。尽管原始系统很小,但是原子升级和回滚功能会占用不小的空间。使用 Snappy 启动树莓派 2 后你就可以使用默认用户名和密码(都是ubuntu)登录系统。

sudo 已经配置好了可以直接用,安全起见,你应该使用以下命令来修改你的用户名

$ sudo usermod -l <new name> <old name> 

或者也可以使用adduser 为你添加一个新用户。

因为RPI缺少硬件时钟,而 Snappy Core 镜像并不知道这一点,所以系统会有一个小 bug:处理某些命令时会报很多错。不过这个很容易解决:

使用这个命令来确认这个bug 是否影响:

$ date 

如果输出类似 "Thu Jan 1 01:56:44 UTC 1970", 你可以这样做来改正:

$ sudo date --set="Sun Apr 04 17:43:26 UTC 2015" 

改成你的实际时间。

现在你可能打算检查一下,看看有没有可用的更新。注意通常使用的命令是不行的:

$ sudo apt-get update && sudo apt-get distupgrade 

这时系统不会让你通过,因为 Snappy 使用它自己精简过的、基于dpkg 的包管理系统。这么做的原因是 Snappy 会运行很多嵌入式程序,而同时你也会试图所有事情尽可能的简化。

让我们来看看最关键的部分,理解一下程序是如何与 Snappy 工作的。运行 Snappy 的SD 卡上除了 boot 分区外还有3个分区。其中的两个构成了一个重复的文件系统。这两个平行文件系统被固定挂载为只读模式,并且任何时刻只有一个是激活的。第三个分区是一个部分可写的文件系统,用来让用户存储数据。通过更新系统,标记为'system-a' 的分区会保持一个完整的文件系统,被称作核心,而另一个平行的文件系统仍然会是空的。

如果我们运行以下命令:

$ sudo snappy update

系统将会在'system-b' 上作为一个整体进行更新,这有点像是更新一个镜像文件。接下来你将会被告知要重启系统来激活新核心。

重启之后,运行下面的命令可以检查你的系统是否已经更新到最新版本,以及当前被激活的是哪个核心

$ sudo snappy versions -a 

经过更新-重启两步操作,你应该可以看到被激活的核心已经被改变了。

因为到目前为止我们还没有安装任何软件,所以可以用下面的命令更新:

$ sudo snappy update ubuntu-core

如果你打算仅仅更新特定的OS 版本这就够了。如果出了问题,你可以使用下面的命令回滚:

$ sudo snappy rollback ubuntu-core

这将会把系统状态回滚到更新之前。

再来说说那些让 Snappy 变得有用的软件。这里不会讲的太多关于如何构建软件、向 Snappy 应用商店添加软件的基础知识,但是你可以通过 Freenode 上的IRC 频道 #snappy 了解更多信息,那个上面有很多人参与。你可以通过浏览器访问http://:4200 来浏览应用商店,然后从商店安装软件,再在浏览器里访问 http://webdm.local 来启动程序。如何构建用于 Snappy 的软件并不难,而且也有了现成的参考文档 。你也可以很容易的把 DEB 安装包使用Snappy 格式移植到Snappy 上。

尽管 Ubuntu Snappy Core 吸引了我们去研究新型的 Snappy 安装包格式和 Canonical 式的原子更新操作,但是因为有限的可用应用,它现在在生产环境里还不是很有用。但是既然搭建一个 Snappy 环境如此简单,这看起来是一个学点新东西的好机会。


via: http://xmodulo.com/ubuntu-snappy-core-raspberry-pi-2.html

作者:Ferdinand Thommes 译者:Ezio 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Question: 我可以在树莓派上使用标准的USB网络摄像头么?我该如何检查USB网络摄像头与树莓派是否兼容?另外我该如何在树莓派上安装它?

如果你想在树莓上拍照或者录影,你可以安装树莓派的摄像头板。如果你不想要为摄像头模块花费额外的金钱,那有另外一个方法,就是你常见的USB 摄像头。你可能已经在PC上安装过了。

本教程中,我会展示如何在树莓派上设置摄像头。我们假设你使用的系统是Raspbian。

在此之前,你最好检查一下你的摄像头是否在这些已知与树莓派兼容的摄像头之中。如果你的摄像头不在这个兼容列表中,不要丧气,仍然有可能树莓派能检测到你的摄像头。

检查USB摄像头是否雨树莓派兼容

要检查你的摄像头是否可以被树莓派检测到,将它插入到树莓派的USB口中,然后输入下面的命令。

$ lsusb 

如果输出中没有你的摄像头,那么有可能你的树莓派的电源无法供应足够的电力给你的摄像头。这时你可以给你的摄像头用独立的电源线,比如有源USB hub,并重新输入lsusb命令。如果摄像头还是不能被识别,我们只有建议你购买其他树莓派支持的摄像头了。

在上面的截屏中,USB摄像头被识别为“1e4e:0102”,但是没有显示摄像头的制造商。当你在笔记本的Fedora 20中使用它时,它可以成功的检测到“1e4e:0102 Cubeternet GL-UPC822 UVC WebCam”。

另外一个可以检查摄像头是否被树莓派支持的方法是检查/dev目录。如果有/dev/video0,那么这暗示树莓派支持你的摄像头。

用USB Webcam拍照片

当USB摄像头成功挂载到树莓派上之后,下一步就是拍一些照片来验证它的功能了。

要想拍摄照片,你要安装fswebcam,这是一款小型摄像头程序。你可以直接通过Raspbian的仓库来安装fswebcam。

$ sudo apt-get install fswebcam 

fswebcam安装完成后,在终端中运行下面的命令来抓去一张来自摄像头的照片:

$ fswebcam --no-banner -r 640x480 image.jpg 

这条命令可以抓取一张640x480分辨率的照片,并且用jpg格式保存。它不会在照片的底部留下任何水印.

这就是fswebcam下640x480分辨率的结果。

下面的例子是没有定义分辨率的照片。图片是偏蓝的,并且默认的分辨率是358x288。


via: http://ask.xmodulo.com/install-usb-webcam-raspberry-pi.html

作者:Kristophorus Hadiono 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

现在使用树莓派摄像头模组("raspi cam"),也可以像使用卡片相机那样,给拍摄的照片增加各种各样的图片特效。 raspistill命令行工具,为您的树莓派提供了丰富的图片特效选项,来美化处理你的图片。

三个命令行工具可以用于抓取raspicam拍摄的照片或者视频,在这文章中将重点介绍其中的raspstill工具。raspstill工具提供了丰富的控制选项来处理图片,比如说:锐度(sharpness)、对比度(contrast)、亮度(brightness)、饱和度(saturation)、ISO、自动白平衡(AWB)、以及图片特效(image effect)等。

在这篇文章中,将介绍如何使用raspstill工具以及raspicam摄像头模组来控制照片的曝光、AWB以及其他的图片效果。我写了一个简单的python脚本来自动拍摄照片并在这些照片上自动应用各种图片特效。raspicam的帮助文档中介绍了该摄像头模组所支持的曝光模式、AWB和图片特效。总的来说,raspicam一共支持16种图片特效、12种曝光模式以及10种AWB选项。

Python脚本很简单,如下所示 。

#!/usb/bin/python
import os
import time
import subprocess
list_ex=['auto','night']
list_awb=['auto','cloud',flash']
list_ifx=['blur','cartoon','colourswap','emboss','film','gpen','hatch','negative','oilpaint','posterise','sketch','solarise','watercolour']
x=0
for ex in list_ex:
    for awb in list_awb:
        for ifx in list_ifx:
            x=x+1
            filename='img_'+ex+'_'+awb+'_'+ifx+'.jpg'
            cmd='raspistill -o '+filename+' -n -t 1000 -ex '+ex+' -awb '+awb+' -ifx '+ifx+' -w 640 -h 480'
            pid=subprocess.call(cmd,shell=True)
            print "["+str(x)+"]-"+ex+"_"+awb+"_"+ifx+".jpg"
            time.sleep(0.25)
print "End of image capture"

这个脚本完成了以下几个工作。首先,脚本中定义了3个列表,分别用于枚举曝光模式、AWB模式以及图片特效。在这个实例中,我们将使用到2种曝光模式、3种AWB模式以及13种图片特效。脚本会遍历上述3种选项的各种组合,并使用这些参数组合来运行raspistill工具。传入的参数共6个,分别为:(1)输出文件名;(2)曝光模式;(3)AWB模式;(4)图片特效模式;(5)拍照时间,设为1秒;(6)图片尺寸,设为640x480。脚本会自动拍摄78张照片,每张照片会应用不同的特效参数。

执行这个脚本也很简单,只需键入下面的命令行:

$ python name_of_this_script.py 

下面是抓取到一些样张。

小福利

除了使用raspistill命令行工具来操控raspicam摄像模组以外,还有其他的方法可以用哦。Picamera是一个python库,它提供了操控raspicam摄像模组的的API接口,这样就可以便捷地构建更加复杂的应用程序。如果你精通python,那么picamera一定是你的 hack 项目的好伙伴。picamera已经被默认集成到Raspbian最新版本的的镜像中。当然,如果你用的不是最新的Raspbian或者是使用其他的操作系统版本,你可以通过下面的方法来进行手动安装。

首先,先在你的系统上安装pip,详见指导

然后,就可以按下面的方法安装picamera。

 $ sudo pip install picamera 

picamera的使用说明可以查阅官方文档


via: http://xmodulo.com/apply-image-effects-pictures-raspberrypi.html

作者:Kristophorus Hadiono 译者:coloka 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出