用命令行播放视频

树莓派上可以播放 H264 和 mp4 等视频格式,1080p也没问题,因为这种格式的文件有硬件加速。

首先安装 安装 omxplayer ,这是一个命令行的播放器:

sudo apt-get install omxplayer

然后就可以播放了,当然需要通过 HDMI 连接到显示器看:

omxplayer -o hdmi /path/to/filename.mp4

-o hdmi 表示音频直接通过 HDMI 播放,播放时按左右箭头快进、按 q 退出。

更多命令行选项和播放时的控制快捷键请参考 omxplayer 的文档。

使用WebIOPi控制树莓派的GPIO引脚电平

1、必须安装python开发版,即python-dev,不然后面很多软件都会安装不成功,提示目录无法找到之类的。

sudo apt-get install python-dev

正常情况下,以上在线安装命令即可安装成功,但运气不好的是,笔者在安装时,在线命令安装资源包404。

python2.7-dev_2.7.3~rc2-2.1_armhf.deb找不到,后来只能手动找了以下包安装。

wget http://ftp.debian.org/debian/pool/main/p/python2.7/python2.7-dev_2.7.3-6_armhf.deb sudo dpkg -i python2.7-dev_2.7.3-6_armhf.deb

2、安装python的GPIO模块

Google Code项目地址:http://raspberry-gpio-python.googlecode.com

wget http://raspberry-gpio-python.googlecode.com/files/RPi.GPIO-0.4.1a.tar.gz tar -xvzf RPi.GPIO-0.4.1a.tar.gz cd RPi.GPIO-0.4.1a sudo python setup.py install

3、安装webopio

Google Code项目地址:http://code.google.com/p/webiopi/

wget http://webiopi.googlecode.com/files/WebIOPi-0.5.3.tar.gz tar xvzf WebIOPi-0.5.3.tar.gz cd WebIOPi-0.5.3 sudo ./setup.sh

4、首先设置或修改webopio的密码

sudo webiopi-passwd

用户名是:webiopi

如不修改密码,默认密码是:raspberry

5、启动webopio

sudo python -m webiopi 8000

端口可自行修改,默认是8000

6、让webopio后台运行,否则按ctarl+c就会断掉

sudo /etc/init.d/webiopi start

sudo /etc/init.d/webiopi stop

7、设置webopio随系统启动

sudo update-rc.d webiopi defaults

8、用浏览器打开IP地址访问管理界面

http://192.168.1.106:8000/webiopi/

控制方法:

a.点击外侧的“IN/OUT”切换GPIO的工作模式,输入/输出

b.输出模式下,点击内侧的数字,切换输出电平,高/低

c.输入模式下,内测数字代表GPIO的输入状态

给树莓派挂载移动硬盘或U盘

外接U盘或移动硬盘时,默认不会自动挂载,所以需要用 mount 命令挂载。通常我们在 /mnt 或 /media 目录下新建一个目录作为挂载点。比如:

sudo mkdir /mnt/1GB_USB_flash sudo mount -o uid=pi,gid=pi /dev/sda1 /mnt/1GB_USB_flash //用完之后卸载 sudo umount /mnt/1GB_USB_flash

sda1 是取决于你的实际情况,a表示第一个硬盘,1表示第一个分区。

挂载exFAT格式的硬盘

FAT 格式U盘 mount 本身就能支持,但如果你的U盘或移动硬盘使用的是 exFAT 格式,mount 会说不支持。没关系,安装 exfat-fuse 软件之后 mount 就支持了。

sudo apt-get install exfat-fuse

如果想开机自动挂载,而不是每次手工执行,可以编辑 /etc/fstab 文件。比如在末尾添加一行:

/dev/sda1 /mnt/usbdisk vfat rw,defaults 0 0

挂载NTFS格式的硬盘(读写方式挂载)

默认挂载NTFS格式的硬盘只有只读权限,需要借助其它工具实现。

#安装所需软件包 sudo apt-get install fuse-utils ntfs-3g #加载内核模块 modprobe fuse #编辑fstab让移动硬盘开机自动挂载 sudo nano /etc/fstab #在最后一行添加如下内容 /dev/sda1 /mnt/myusbdrive ntfs-3g defaults,noexec,umask=0000 0 0 #保存重启,即可生效

挂载FAT32格式的硬盘

#创建挂载点 sudo mkdir /mnt/myusbdrive #编辑fstab让移动硬盘开机自动挂载 sudo nano /etc/fstab #在最后一行添加如下内容 /dev/sda1 /mnt/myusbdrive auto defaults,noexec,umask=0000 0 0 #保存重启,即可生效

说明:

sda1是取决于你的实际情况,a表示第一个硬盘,1表示第一个分区。

umask=0000 0 0

前面四个0就是对所有人,可读可写可执行,

后面两个0,第一个代表dump,0是不备份

第二个代表fsck检查的顺序,0表示不检查

卸载:sudo umount /mnt/myusbdrive

查看挂载情况可使用以下命令。

cd /mnt/myusbdrive ls

挂载U盘的更多细节请参考 RPi Adding USB Drives。

用树莓派搭建BT下载服务器

用树莓派搭建BT下载服务器,外出或睡觉的时候就不用开着电脑下载了,而且更省电。很简单,只要安装 transmission 就可以了,更棒的是它还可以通过 Web 界面控制!

1.首先安装 transmission:

sudo apt-get install transmission-daemon

2.然后创建下载目录,一个是下载完成的目录,一个是未完成的目录,具体目录根据你的情况决定:

mkdir -p /home/pi/incomplete # for incomplete downloads mkdir /home/pi/complete # finished downloads

3.还要配置目录的权限:

sudo usermod -a -G debian-transmission pi #如果是 fat 格式的移动硬盘无需下面这么改,mount的时候指定用户和读写权限就行 #这个是对 SD 卡上的目录而言的 chgrp debian-transmission /home/pi/incomplete chgrp debian-transmission /home/pi/complete chmod 770 /home/pi/incomplete chmod 770 /home/pi/complete

4.修改配置文件 /etc/transmission-daemon/settings.json ,这是一个 json 格式的文件,配置项很多,但重点改下面这些:

下载目录位置:

“download-dir”: “/home/pi/complete”, 未完成的下载目录 “incomplete-dir”: “/home/pi/incomplete”, 允许Web访问的白名单地址 “rpc-whitelist”: “192.168.1.*”,

5.最后,配置好之后重启 transmission,注意以下两个命令按顺序执行,单独 restart 的话配置不会保存:

sudo service transmission-daemon reload sudo service transmission-daemon restart

现在就好了,在浏览器中访问 IP 加 9091端口:比如: http://192.168.1.3:9091/ 。访问时输入用户名和密码,默认都是:transmission 。

你现在已经有了一个独立的 BT 下载服务器了!界面功能完备,可以做限速等设置。

关于 transmission 配置的详细信息请参考:EditConfigFiles。

修改 transmission 用户名和密码的方法:

1.先停止服务: sudo service transmission-daemon stop

2.修改配置文件,下面两项分别是用户和密码,你看到这个是加密的密码,没关系直接把密码改为你想要的密码明文就可以:

“rpc-username”: “transmission”,

“rpc-password”: “{2dc2c41724aab07ccc301e97f56360cb35f8ba1fGVVrdHDX”,

3.再此启动服务 :sudo service transmission-daemon start 。启动的时候 transmission 会自动把新密码加密。

另外,transmission 默认监听 51413 端口,最好在路由器上做个端口转发,把这个端口转到它的 IP 地址。

电驴可以用 mldonkey 支持。

树莓派之父Eben Upton启示录

“这能鼓励人们培养对自然科学、技术、工程以及数学的兴趣。这可说是一种教育,如果有人并不为之感到兴奋,我会很鄙视他。我鄙视那些对于从太空中拍摄照片都感到无动于衷的毛孩子。”

Eben Upton是个热情奔放的人。如今,他是Broadcom(博通)公司的技术总监及ASIC架构师。但是到了晚上以及周末,他就摇身变成了树莓派背后的驱动力。这个小小的微型计算机自打2012年推出以来已经在个人计算机爱好者中掀起了一场革命式的风暴,它甚至代表了科技的未来。

身材高大,着装随意,太阳镜斜挂在T恤上,这就是Eben那天早上去工作时的样子。树莓派基金会的创始人以及理事正在向我解释这令人惊讶的微型计算机的背景情况。这是台3英寸长2英寸宽的多媒体中心,同时也是一台Web服务器、经典老游戏的游戏平台、教学工具,甚至可以成为我们已经讨论过的——太空照相机。

但是Eben可不会去设计普通的电脑,他和他的团队也不会一直靠着生产树莓派直到退休。他们正在计划的是一些大胆的创意,一些很酷的东西。他们意识到,只要有合适的硬件,树莓派能够改变世界。

树莓派的起源

“起先我们并不认为自己可以构建起一台通用型的计算机”

受Acorn BBC Micro(一种1980年代的电脑,为BBC电脑扫盲计划而制,主要卖给英国的各个学校)的启发,树莓派于2006年开始设计。Eben同教师、学者以及兴趣爱好者们合作,目的是为了发明一种电脑可以激发孩童的兴趣。

“刚开始我们并不认为我们可以构建出一种通用型的计算机。我们也没有在构建一台PC。我们能看到的是,我们正在构建一台可编程的器件。一开始我们使用微控制器,我肯定你已经在一块大的橙色板子上见过它们了(参见树莓派官网)。这是个基于微控制器的平台,可以驱动一台电视,把它插上电视接口就行了。没错,这是个很有趣的设备。它的性能,我看大概相当于一台80年代的微型机。”

“你可以自己构建,动手将它们焊接在一起”

我马上就联想到70年代的那种在电路板上靠手工组装起来的简单的计算机。就是70年代中期,Steve Wozniak在乔布斯“父母”的车库里组装起来的那种。当然了,计算机自从那时起便开始有了飞跃式的进步,但是Eben心里非常清楚,这种可以对计算机进行手动重新配置的思想是非常重要的,这就是极客精神。

“这成了项目成功的重要因素。人们想要一些他们可以理解的东西。大概直到2009年后期,我们可以开始构建和通用型计算机相似的产品了,只需要合适的芯片就行。有一块Broadcom芯片正好完全满足树莓派的功能集。”

树莓派首次发布是在2012年初,当然了,那时的树莓派并没有任何可拆卸的部分。但是它可以根据你想要的特定目的来进行重新配置。这就是为什么树莓派出货时没有配备键盘和鼠标的原因。正如Eben所说:“我们有种特别的感觉,觉得这玩意会变得很有用。于是我们就创造了它,正如你所看到的,它就是这么简单。”

英国电脑,英国制造

“我并不是一个狭隘的民族主义者,但是芯片是英国制造的,用的IP也是英国的…那么它就是英国的。”

在英国,80年代后计算机制造业就已经几乎不存在了。国际上的16位机如Amiga以及Atari ST, PC,Apple Mac还有游戏主机迅速取代了曾经取得过辉煌的本土8位机。除了一部分90年代瞄准教育市场的Acorn计算机外,其他领域都已被来自美国和日本的设计所占领。

8位机时代的经典比如Sinclair Spectrum ZX80还有Amstrad CPC 464已经一去不复返了,但是树莓派,这个土生土长的英国产微型计算机可以再次骄傲起来了。

我对Eben提到了这些。

“我并不是一个狭隘的民族主义者,但是既然采用的是英国产的芯片,使用的IP也是英国的,很明显还得包括ARM处理器(ARM处理器起源于剑桥),那么它就是英国制造。其中一件改变了我们的事情就是最初当我们在思考树莓派在教育领域的应用时我们并没有想到它在全球范围内产生的影响。”

但那些曾经的巨头Sinclair,Amstrad和Acorn又变得如何了呢?有一天Eben也能和这些英国的8位机巨头们相提并论吗?比如理想主义者Clive Sinclair爵士(Sinclair ZX80和ZX Spectrum的设计者)或者是精明的商人Baron Sugar(Amstrad创始人,负责家用计算机、字处理软件和IBM兼容机,在80和90年代纵横欧洲),甚至是Acorn计算机的创始人Christopher Curry(ARM继承了他的遗产)?

“你得记住这些伟大的前辈,他们卖出了数百万台计算机,他们开创了一次革命,他们创造了一个行业,他们创造了我如今的工作,他们创造的Acorn成就了ARM,他们在剑桥所创造出的科技领域孕育出了我们现在所使用的芯片核心。这种不断延续的进步正是始于这些先辈。”

“我想在未来10年的时间里如果我们能将英国科技行业的技术传承下去,那么那时我认为我们配的上这份殊荣。但现在还轮不到我们。”

我们对Eben打算如何将技术传播到英国及更广的地区中去很感兴趣,相信读者也是一样。但是首先,树莓派到底是如何构建起来的呢?

树莓派装配线

为了更多的理解有关树莓派的方方面面——包括如何将成本控制的如此低廉——我在Sony的新兴业务司高级经理Gareth Jones的陪同下参观了树莓派的生产线。有关工厂的一些背景趣闻和涉及到组装树莓派的过程都非常有趣。

树莓派最初于2011年在中国开始生产,但是结果并不令人满意。结果,树莓派基金会将生产任务迁回了英国。

在威尔士(英国的一个半岛)南部的一个前彩色电视工厂中有4条生产线(很快就会扩增到6条产线,这样才能赶上树莓派那惊人的订货量),每天产出约12000台这种微型电脑。这是Sony众多合作关系中的一个,而最终的成品:一台可以正常工作的树莓派设备——将在树莓派基金会的许可下为Premier Farnell公司组装(这只是2家授权厂商之一,另一家是RS Components,它们都是英国公司)。

工厂由Sony公司所持有,工厂大部分都在生产电视摄像机。在这复杂庞大的工厂中,各个办公区就像蜂巢一样正不停的忙碌着。

生产一台树莓派的过程是相当了不起的。器件来自于从欧洲到远东地区的器件供应商,将器件焊接到印制电路板上。大部分的生产都已自动化了,由摄像头和定位控制仪来将板子和孔缝正确对齐,以此得到必须达到100微米厚度的焊接层。

遵循这个步骤,将0.5mm大小的器件接到电路板上。线轴上有一台使用了机械手臂的机器,通过真空喷嘴可拾起器件。从上面的图片中可以看到,这个阶段的过程类似于早期的计算机在磁带上接收数据时一样——当然了,事实上有很大的不同。从供应商发来的元器件都在这些线轴的磁带上,每个能容纳10000支晶体管、二极管和其他零散的器件。一个称为TIMMS的系统管理这整个过程,监视着元器件,表现的就像是个股票经纪似的,一旦有线轴上的器件快用完了就会通知给操作员。同样的,通过摄像头来检查喷嘴的方向,一旦设置妥当,它们就会被安置在有焊锡的位置。

由于每天都会组装大约400000件产品,随着组装过程的继续,会添加更大尺寸的元器件上去。这里再次利用到摄像头来检查正确的旋转角度以及XY坐标的位置。如果出现任何问题,电路板就会做出旋转来调整适应。

树莓派成功的秘诀还不得而知,但这很可能与主芯片和其节省空间、打包式(package-on-package)的空间管理方式有关。逻辑芯片和内存芯片是堆叠起来的——这种方式在智能手机的生产中也使用到了。要做到这一点,首先把CPU并放置到电路板上,再一次用焊锡将其固定住。一旦CPU就位了,就把RAM芯片焊上锡并安置在CPU之上。焊接厚度需要精确控制,太薄或太厚都会是灾难性的失败。

之后,电路板会通过温度达到238摄氏度的烤箱,在这高温下焊块会蒸发掉。树莓派的电路板已经基本组装完成,就等着测试了。测试也需要几个步骤来进行。

首先是视觉检测,再次通过摄像头和计算机来完成。之后,再手工加入以太网口、音频插孔和其他一些因为体积太大而没法在自动化产线上完成的组件。这些组件通过流焊接机(以批量方式快速焊接组件)完成焊接,然后再通过肉眼检查。测试继续在8个测试站中进行,每两个测试站有4个人来负责。

MAC地址这时会下载到树莓派上,直流电源、音频和视频输出都会得到检查,这大约需要60到90秒时间。这之后,电路板会被放置到ESD包装盒中等待运输。但是,测试过程还没有结束。有一个独立的QA组会试验这些板子,像用户一样运行它们,以此检测树莓派以证明它可以用在学校或家里。能被QA检查出来缺陷是非常罕见的,在450000件产品中只有115件被退回了(这个数字我是听来的,其实只有18个确实有缺陷,其他的只是因为SD卡太烂才显得好像有缺陷)。

Gareth Jones告诉我树莓派可以当做工业控制过程中的处理器来使用,Sony在圣何塞的分公司就对他们正在开发的项目中使用树莓派大感兴趣。

最关键的是,有消息指出有很多学校都组织了参观树莓派工厂的活动。在当今大量的制造业都输出到中国的时代里,这一点显得尤为可贵。因为它不仅向孩子们展示了这款流行的微型计算机出自于英国,而且还扩大了本土制造业的就业机会。这并不会让你整天在埋在油脂和污垢中(和传统的制造业相比)。

树莓派所代表的精神

数据显示如今树莓派已经卖出了大约100万台,而在写作本文时订单数量还在持续攀升。基于这份数据,树莓派基金会预估会有20到30万台设备会最终落到孩子们的手中,这大大超出当初所预计的每年向学校卖出1万台设备的计划。

“无论如何,树莓派会通过父母、学校、老师、爷爷奶奶最终转到孩子们的手上,甚至有的孩子会自己去购买。这与minecraft(一个游戏,可以在一个三维世界里用各种方块来建造建筑物)里的东西很相似。”Eben说到。

“这对孩子们来说是非常有意义的。你可以创建一个程序来盖房子,而不必一块砖一块砖的砌。一旦你构建好一个可以盖房子的程序,那你就可以用它来盖更多的房子。而这种自动化所带来的便利才是真正有价值的。”

但是,让这台微型计算机到达孩子们的手上仅仅只是Eben计划挑战技术断代问题的第一步(英国的青少年接触编程等科技领域的人数越来越少,最终会出现青黄不接的技术断层)。

“我们国家有大量的人口需要工作,我们国家也有大量的公司急需人才,并不是说只需要数学博士这样的人,只要能编程的就可以了。对此,我们可以靠移民人才来填补一些空缺,这可以解决一些问题。但是真正的问题在于这个国家在技术上正依附于印度,我们和美国最终会吸干印度所有最优秀的程序员。这种现象真是太可怕了。”

“我们不能继续这样下去,这只是短期的解决方法。”

对于如此重要的一个问题,似乎很难碰到有人会来回答。Eben充满热情的手舞足蹈着,继续自己的论点,他看到的是一个简单的、长期的解决方案。而据我观察,这可不是我们从政府那儿听到的那套说辞。

“我不知道为什么。我们都很清楚这个问题,只需要花几个小时看看简历就能意识到。我只要找齐足够的人组建一支团队就可以开干了。我们做这个不仅是因为我们觉得树莓派本身很棒,而且我们认为有少许容易解决的事情却被(政府)搞砸了。”

要迎战这些问题,树莓派基金会设立了6位理事(他们之中David Barben为许多玩家所熟知,他是经典的太空贸易游戏Elite的联合作者之一)来管理组织的运营。为了协助这些理事,Eben雇佣了6名员工。

“在销售前70万台树莓派时,我们并没有任何雇员。因此我们增加了6位员工。我们拥有很大的志愿者社区,这些志愿者晚上和周末都在花时间摆弄树莓派,有些大学里的志愿者则白天黑夜以及周末都扑在树莓派上。”

“我们只是一个很小的团队,我们认为我们可以有所作为。而事实上我们认为可以有所作为这意味着我们觉得问题是相当简单直白的。就像为孩子培养兴趣这事儿,如果我们觉得我们是在强迫孩子学习编程,那么我们绝不会成功。对于树莓派,我觉得我们已经意识到了一点,那就是如果你把工具交给人们,他们自己就会去做了。我们不需要去强推什么,把工具给他们,让他们有机会像在minecraft中建房子一样,给他们机会做出一只猫在Scratch中跑来跑去,让人们有机会去做物理计算。这对我来说真是个大大的惊喜。”

树莓派的下一步在哪?

有着1百万台的销量以及在发烧友中急速攀升的人气口碑,满足了家庭影院发烧友,作为旨在培养孩子们兴趣的微型计算机已经取得了成功。那么Eben的工作完成了吗?树莓派是否已经完成了它所被设定的目标?

“坦率的说,我认为还有很多软件方面的工作需要做。把精力放在软件上,而不是下一代跑的更快的处理器——从现在的价位上看,目前我们没有更好的芯片可用了。关于软件的好处就是你只需要把钱花在软件上一次,你就可以在每件产品中把钱收回来。为树莓派优化软件是非常昂贵的,但之后人人都能受益。去年那100万买了树莓派的人,他们都能从中获益。这并不像他们需要去买另一个新的一样。从软件中获得里程数,这正是我们正在做的。我相信未来某个时刻我们会再做另一个派的。如今我还看不出有什么是需要改变的,但如果有更好的芯片出现我们会考虑的。”

会考虑做体积更大些的设备吗?挂载在更大的电路板上?

“我认为大小是很重要的——大小决定了成本。我想能让你做到成本低廉的其中一个办法就是堆叠式内存配置(stacked memory configuration,同前文的package-on-package一样)。如果你不这么做,我觉得如今树莓派的体积会大很多,那样就不酷了。”

Eben对竞争对手也并不表示担心——至少,对于目前的对手来说是这样。

“在价位的问题上并没有什么可说的。我认为人们现在可以接受50美元内的设备,尽管有人声称50美元价位的计算机并不存在(但树莓派做到了)。因此实际上,那些可以接受70美元价位的人在设备的性能水平上就有了可比较性。”

“其中一些比较是基于各种中国产的设备,它们通常配有低端的ARM Cortex CPU,且多媒体功能非常薄弱。因此,在那个价位上人们可以得到CPU强劲许多而GPU薄弱许多的设备。是的,看到这些事物出现是很有趣的。我尚未见到哪种产品有对我们产生特别的威胁。”

这究竟能算作威胁吗?

“有关威胁论,这的确是个有趣的话题。我真的不认为有什么可算作威胁,但是我们的目标是将来会有很多微型的可编程计算机。如果有人生产了大量的微型可编程计算机,那很好。”

发烧友和孩子们手中的微型可编程计算机——对于技术人才短缺的危机来说并不是一个立竿见影的解决方案,但这毫无疑问向前迈出了积极的一步。

“你常常会听到有人在说‘哪有什么技术人才短缺的事情,根本不存在什么工程技术断层的问题’——去你的!什么时候在这栋大楼里当我被合格的面试者所包围的时候,我就同意没有技术人才短缺的问题。”

可是,这样的人才不是只有在数学、科学技术相关领域的人才够格吗?

“人们可以把有些技能利用到计算机编程中。基本上,有的任务的确最好是由有数学背景的人来完成,但是我认为对于那些有潜力的人来说,如果你在他们合适的年纪让他们接触到合适的工具,那么他们就会去学习相关技能,成为一名伟大的计算机程序员。你应该看到过,在游戏产业里,那些上访谈节目的人常常都不是科班出身。我在剑桥修过相关课程而入行,但是我在孩童时代就有了‘黑客’背景,我10岁就开始编程了。”

“我认为潜力是无限的。编程方面的东西并不是非常难,至少和求学之路相比没那么难。我认识很多非常非常有天分的计算机程序员,但他们在传统学业上都不怎么成功。”

“我认识一些人他们从16岁起就开始工作了,他们都是优秀的程序员,因此我认为树莓派有潜在的巨大影响力。风险就在于我们可能会调整方向以针对学业成绩完成的最好的那部分孩子,这些人已经拥有了数学能力。有了数学和科学技能的基因组合,下面要发生的就是我们(代表着程序员)会同物理学家、数学家、投资银行家来争夺这部分人群,这些白人少年往往会成为中产阶级。这是一种零和博弈(zero sum game)。”

那么答案是什么呢?除了数学加自然科学这组黄金技能组合外,Eben要如何应对那些缺乏潜力,且自我持续能力差的技能组合呢?

“你要做的就是把我刚才说的三件事分散开来——白人、中产阶级、男性。把你的人才池加倍,让女孩也参与进来,让少数族裔人群也参与进来。”

结论

Eben Upton似乎并不是一个志在白手起家创立一番事业然后就在游艇上退休的人。相反,他几乎可以肯定是一个关注到真实世界中的问题,并意识到该怎么解决的人。大多数人可能尝试通过政治或激进主义来改变世界,Eben Upton选择构建一台计算机作为长期的解决方案。

这台微型计算机产自英国,这是我们骄傲的源头。通常我们把计算机产品看做是无地域限制的,对此也并不关心。可是产自远东地区的电脑、平板以及智能手机正无止境地涌入我们手中,成为我们每天生活的必备品。它们的产出地我们很清楚,但带来的相关影响则完全忽略了。在全球化进程中这已经成为生活的事实,很大程度上已经不重要了。

那么树莓派是否代表了一种巨变?使得计算机正变得更加地区化?对此我表示怀疑。相反,树莓派是一种强大有效的硬件,能够在计算机教学和学习领域中产生革命性的变革,不仅是在英国,全世界范围内都会如此。

树莓派赋予物理世界计算能力

在PingWest专题《世界尽头与冷酷仙境》中,我们提到2013年会是“软件吞噬世界”与“未来硬件的复兴”这两个世界错综相映的一个起始。

而在硬件复兴中,开源硬件是其中至关重要的一环,包括我们熟知的Arduino,能够通过各种各样的传感器来感知环境,深受设计师、艺术家以及爱好者的追捧,英国树莓派基金会开发出的“树莓派”(Raspberry Pi)也是一款这样的产品。它在过去2012年售出了超过百万台,但相比于它的无限潜力,仍然可以说它是还未得到足够重视的趋势产品。

这款信用卡大小的微型电脑连接上电视或键盘,能够将在PC上的功能移植这个不到手掌大小的物件上,如电子制表、玩游戏以及简单的文字处理,同时连上显示器还能播放高清视频。

树莓派目前有两种版本,25美元版本的基本配置为256M内存,一个USB接口,700MHz ARM处理器,35美元的升级版内存增加了一倍,为512M,提供两个USB接口,支持HDMI输出以及自适应以太网端口。

这款微型电脑虽然配置不高,但由于价格便宜,以及自由的环境可以让用户自己扩展各种功能,如语音控制车库、制作电视机盒子或者蔬菜乐器等项目,从产品正式发布就用户的亲睐,至今销量已过百万,并且大部分来自成年爱好者,其中小部分,大概五分之一来自教育机构和孩子。

在谈到为什么制作这么一款低配置的微型电脑时,树莓派创始人Eben Upton在树莓派官网做了分享。在2006年,Eben和他的同事意识到,虽然计算机技术在不断增长,但就读CS(Computer Science)专业的大学新生编程水平和计算机能力却在逐年下降,从1990年面试的CS专业申请者都是些经验丰富的编程爱好者,到进入21世纪后,每年申请CS专业的学生只会一些基础的网页设计。于是,Eben和他在剑桥计算机实验室的同事决定做一款小型且廉价的微型电脑,没有图形界面,通过编程实现功能扩展,他希望这款产品能够成为学生学习时使用的工具,告别现在界面简单、操作方便但原理极为复杂的计算机设备,成为学生学习计算机的启蒙工具,如同当年的BBC Micro。

在2006年至2008年的这段时间内,Eben设计了几个版本,到2008年,产品才基本成型,能够做到成本低,用户买得起,并且已经支持视频功能,要知道对那些最开始对编程不感兴趣的小孩来说,这是一项非常有吸引力的功能。3年后,树莓派基金会与元器件厂商14/Premier Farnell和RS Electronics合作,实现量产,正式发布,用户可以在树莓派官网上购买。

作为一款低配置的微型电脑,到底是什么吸引用户纷纷解囊购买这款产品,并且售出超过百万台?那么我们不妨看看树莓派这款开源硬件为生活带来哪些新体验。

艺术时尚领域

1.黑色条纹绘图机

与市面上流行的绘图机不同的是,这款黑白条纹绘图机采用树莓派加机械装置的组合,能够将彩色照片绘制成巨幅黑白壁画。通过特定的编程处理,装上的树莓派能够将电子彩照数据转换成矢量数据,并由机器绘制。由于绘制出的壁画适合作为装饰品挂在墙上,很受用户喜欢。

目前这项计划的代码已经闭源,但开发团队接受购买壁画的申请,价格200美元起。

2.一台树莓派+一个DeviantArt账号=一面动态精美插画墙

电子图片有很多可能性,但除了Instagram主题产品(InstaPrint)外,市面似乎没有能够利用网上精美的图片作品开发出的让人感到新奇的产品。而黑客Cameron Wiebe用一台树莓派和一个DeviantArt账号去重新发明了一些东西。

DeviantArt.com是一个插图社区,Wiebe写了一个脚本,将网站内的图片导入到树莓派内,并且通过显示屏,动态得将图片展示到一面墙上。

源代码在Wiebe个人网站上有下载,相信这么一款产品对于艺术爱好者来说非常有吸引力,能够将自己的作品或者喜爱的艺术家的作品展示到自己家中的墙上,并且实时进行更新。

3.树莓派“Beet Box”

对于既热爱电子音乐又对园艺学感兴趣的人来说,树莓派“Beet Box”是一款不能错过的产品。树莓派“Beet Box”由一台树莓派、触摸传感器以及一款蔬菜(如甜菜)组合而成,树莓派和甜菜连接起来,通过触摸传感器,能够将甜菜转换成电子键盘。

蔬菜和微型电脑树莓派看起来是一个荒谬的组合,但事实证明两者的结合带来了不一样的音乐体验。这个项目的制作者斯科特.加纳将项目所需要的物件列在其个人网站上,详尽计划公布在GitHub上。

家庭智能领域

1.声控车库门和声控咖啡机

声控车库门是Dark Therapy第一个树莓派项目,将Siri代理在树莓派上运行,同时使用无线网络将手机和树莓派相连,进入到树莓派的GPIO pin上,控制继电器上的开关,继电器与车库系统相连。那样便可以在iPhone上使用Siri控制车库的开关。

声控车库门对于那些有车的用户来说事件方便的事情,但对于那些使用公共交通出行的都市居民来说,咖啡相当于他们的燃料,而咖啡机如同车库门。Sascha Wolter将他的咖啡机装上树莓派,运行Java,能够语音识别,控制咖啡机。但是这项计划存在天花板,到目前为止只能进行开和关的控制。

2.树莓派媒体中心

由于树莓派的低价以及带有HDMI插头、能够播放高清视频的设计使得它成为一个非常受欢迎的媒体中心改装器。这里有更多关于如何打造一款娱乐计算机的技术细节,并且这个说明解释了如何把普通的媒体中心改装器转变成未来的机顶盒。

医学领域

树莓派医学设备输入盾(shield)

关于医学的创新正在以一个非常快的速度发生,比如孵化器Rock Health,或者开放API的Nike。然而,对于工程师来说,收集血压、触电皮肤反应等数据仍旧十分繁杂。为此,西班牙硬件工程师Enter Libelium,做出一个树莓派输入盾,可以让工程师们以相对容易的途径获得各种测量数据。这个输入盾可以收集数据,通过ZigBee或者WiFi传送到App上。由于测出的数据不够精确,不能用在医疗设备上,但这款工具能够在达到监管机构FDA(美国食品药物监管局)要求之前,帮助你测试一款新的设备或者一个好的想法。

VNC远程登录树莓派的图形界面

安装VNC需要使用命令行。如果需要远程操作安装VNC,就必须通过SSH登录到命令行界面。

安装

树莓派命令行:

sudo apt-get install tightvncserver

安装好之后请一定先使用此命令设置一个VNC密码:

vncpasswd

(先输入操作密码两次,然后会询问是否设置一个查看(view-only)密码,按自己喜欢,一般没必要。)

开机自动启动

设置开机启动,需要在/etc/init.d/中创建一个文件。例如tightvncserver:

(注:启动脚本的名称,有和程序名一致的习惯)

sudo nano /etc/init.d/tightvncserver

内容如下:(putty窗口中按右键=粘贴)#!/bin/sh

### BEGIN INIT INFO # Provides: tightvncserver # Required-Start: $local_fs # Required-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start/stop tightvncserver ### END INIT INFO # More details see: # http://www.penguintutor.com/linux/tightvnc ### Customize this entry # Set the USER variable to the name of the user to start tightvncserver under export USER=’pi’ ### End customization required eval cd ~$USER case “$1” in start) # 启动命令行。此处自定义分辨率、控制台号码或其它参数。 su $USER -c ‘/usr/bin/tightvncserver -depth 16 -geometry 800×600 :1’ echo “Starting TightVNC server for $USER ” ;; stop) # 终止命令行。此处控制台号码与启动一致。 su $USER -c ‘/usr/bin/tightvncserver -kill :1’ echo “Tightvncserver stopped” ;; *) echo “Usage: /etc/init.d/tightvncserver {start|stop}” exit 1 ;; esac exit 0

注:少数玩家默认用户不是pi的请自行更改USER变量

按Ctrl+X,回答Y(存盘)退出nano编辑器。

然后给tightvncserver文件加执行权限,并更新开机启动列表。

sudo chmod 755 /etc/init.d/tightvncserver sudo update-rc.d tightvncserver defaults

电脑登录VNC

下载Windows客户端RealVNC Viewer。

登录地址输入“IP地址:控制台号码”,0号控制台可不加号码。

也可使用Android版VNC客户端,下载地址:http://android.d.cn/software/19334.html

附:手工启动与参数(以下用处不大,没兴趣请略过)

使用此命令手工启动VNC服务器程序:

tightvncserver -geometry 800×600 :1

如果首次启动,并且未曾使用vncpasswd命令设置密码,程序会要求设置一个。

开机启动很方便。如果没理由,真的不推荐手工启动。

命令行参数说明:

一、:1,指定控制台的号码。

启动多个控制台,可以提供互不影响的多个桌面环境。(大多数人不用多用户操作所以没意义)

可以不加此参数,tightvncserver会自动寻找从1开始的下一个空闲控制台。

加上此参数,会强制使用指定的控制台,如果此控制台已经启动则报错。加此参数可有效防止无意多次启动程序(会启动多个控制台)白白浪费系统资源。

特殊的0号控制台

0号控制台就是连接真实显示器真正输出图像的那个桌面。

对于VNC客户端,不输入端口号登录,默认就登录到0号控制台,方便。

但是因为0号是真正的桌面,所以和开机启动桌面环境,或者自己用startx命令,都存在啰嗦的冲突。

到头来是个麻烦。因此自动启动的配置教程中,一律使用1号控制台。

二、-geometry 800×600,分辨率。可以不加。

终止VNC控制台:

tightvncserver -kill :1

查看正在运行的控制台列表:

ps ax | grep Xtightvnc | grep -v grep

via

使用raspi-config配置树莓派

初次启动Raspberry Pi时,你会看到一个叫做raspi-config的配置工具。如果在日后使用过程中你需要更改这些设置,你可以通过在Pi的命令行中运行raspi-config来使用这个工具。在这里,你需要进行一些最基本的设置来继续使用你的Pi。

首先,我们要选择expand_rootfs。它的作用是将刚才写入到SD卡中的映像文件大小扩展到整张SD卡中。如果你使用的是一张较大的SD卡(例如 16GB),那么你肯定像充分利用上面的空间。因为原本的映像只有大约2GB的大小,进行该操作就能将它扩展到与你的SD卡同样的大小。

选中expand_rootfs选项,然后按下回车。你会看到如下提示,只需要再按一下回车就可以回到raspi-config的主菜单中。

接下来就是overscan选项。你会发现,屏幕显示的图像并没有完全占用你的显示器空间;所以,最后就是将overscan禁用掉,来让系统充分利用整个 屏幕。但如果你的屏幕显示没有问题,那么你就可以跳过这个步骤。假设你需要禁用overscan,那么将overscan选项选中后按下回车。

接下来的画面能够让你选择禁用(Disable)或者是启用(Enable) overscan。如果你在往后使用的过程中更换显示器或者电视机,你或许需要重新启用overscan。

接下来,我们要确保我们的键盘正常工作。Raspbian默认的是英国键盘布局,而我们在中国使用的键盘布局与美国的相同,因此我们要对它进行更改才能正常使用。

选中configure_keyboard,然后按下回车。下面显示的画面中你会看到一个很长的列表,里面都是不同的键盘类型。你可以根据你的需要来选择,或者直接选择Generic 105-key (Intl) PC键盘。

在选择键盘类型以后,你需要为它选择一个键盘布局。刚开始显示的列表中,都只有英国的键盘布局,但是我们现在要选择美国的键盘布局,因此我们选中其他(Other),然后再里面的列表选择English (US)。

然后你会被问到关于辅助键的问题,选择默认的选项,并且在下一个画面中选择No compose key选项。同样,如果你需要更改这个设置,可以使用raspi-config来更改。

最后一个选项为是否打开CTRL+ALT+BACKSPACE的组合键。它可以在你的图形界面崩溃时,不需重启而将图形界面进程结束掉。

回到主菜单,下一步我们要设置一个用户密码。

选中change_pass然后按下回车。一个确认窗口弹出以后,在屏幕的底下会提示你输入一个新的UNIX用户密码。

到这里就差不多完成了。接下来设置你的“区域”,这个主要会决定系统使用的字符集和语言。同样,如果你不想使用英国英语,那么你可以在这里更改这些设置。在演示中我们选择的是美国英语,因此我们选择en_US.UTF-8,并下翻列表将en_GB选项剔除。

再下一个对话框中会让你选择默认的区域,选择你刚才选的区域然后按回车继续。

回到raspi-config的主菜单,设置适当的时区。选中change_timezone选项然后按下回车。你会先看到一个地区列表。

选择一个地区,然后下一个菜单中会显示该区域的具体位置。

再次回到主菜单,剩下还没选过的选项我们可以忽略,直接点击完成(Finish)。系统会提示你,一些变更需要重启才能生效。重启以后,你会看到一个登录界面,如下:

在这里,用户名为”pi”,密码就是你刚才设置的UNIX用户密码。

使用你的Raspberry Pi

现在,你已经登录到了你之前设置的Raspberry Pi中了。你要做的第一件事,就是在命令行中输入”startx”来进入图形界面,以下我们会把这个界面称之为“窗口管理器”。

屏幕快速闪烁几次后,你应该会看到如下画面:(除了那个终端窗口以外)

当你把Pi配置完成,并且打开了LXDE窗口管理器以后,你就得到了一台运行完整 Debian的Linux机器了。在这个时候,你可以使用Midori来浏览网页,架设一个网页服务器,或者是进行一些平常的工作。

使用PuTTY登录到树莓派

装有Linux的树莓派,和普通计算机一样。所有操作都可以通过电脑的远程登录完成。通过VNC可以登录到树莓派的桌面环境,而通过SSH可以操作树莓派的命令行。

开启SSH

事实上最新的Raspbian 2012-10-28已经默认启动了SSH支持,无需特意开启。(2016.11起新系统需要通过这个方法开启SSH服务)

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

登录SSH

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

PuTTY 下载:putty.zip

打开PuTTY,输入树莓派的IP地址即可登录。

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

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

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

推荐PuTTY中文版的原因

就算您阅读英文毫无压力,我也推荐使用中文版的PuTTY。两点理由:

一、默认字体是更大字号、更容易看清的12px(小四)新宋体。

二、与英文原版不同,汉化版做了更改,默认即采用UTF-8编码进行通信。

这样无需任何设置,即可避免Linux命令行显示中文的乱码(变问号、变方块等)问题。

* 如果您使用英文版PuTTY,碰到命令行的中文乱码,请调整连接选项的:

Window -> Translation,Remote character set改为“UTF-8”。

树莓派的无显示器操作

其实想要无显示器操作树莓派,只需要SD卡烧好系统之后,插卡开机,SSH登录即可。

如果不知道树莓派开机之后的IP地址请查看这篇文章:没有显示器且IP未知的情况下登录树莓派

另外提醒:新装系统SSH首次登录,不会出现第一次开机的raspi-config设置程序。请用sudo raspi-config命令手工启动。

另外在PuTTY的第一个屏幕,可以使用“保存”按钮,把编辑好各种选项的连接,存成列表框里的一个条目。

下次连接时直接双击即可。

没有显示器且IP未知的情况下登录树莓派

如果是没有显示器操作树莓派,可能会不知道树莓派有线网卡自动分配到的IP地址,不知道登录到哪儿。以下提供详细操作步骤解决这个问题。

网段扫描法

这个是推荐的办法。网段扫描工具很多,推荐一个Advanced IP Scanner,下载地址:ipscan22.exe。

虽然是小工具但需要安装。忍耐一下吧。

软件会自动检测电脑所在的网段,自动决定扫描范围。(例如电脑IP是192.168.1.101,扫描范围就是192.168.1.*)

按Start开始扫描,即可看到同一网段内所有计算机的列表。

这个软件的优点在于:能扫描出网络设备的生产商。

找到生产商是“Raspberry Pi Foundation”的机器就是树莓派。

路由器查询法

如果您有路由器的登录权限(例如家庭网络),也可以在路由器的管理界面,直接查询路由器分配给树莓派的IP地址。

树莓派Raspbian系统的默认主机名是raspberrypi,找就行了。

(如果用ArchLinuxARM系统,找alarmpi。如果自己更改了hostname,改成啥就找啥)

附:使树莓派每次都能动态分配到同一个IP地址

动态IP是有租期的。租期到了,再分配到的IP地址可能会改变,有时会造成不便。

如果能够管理路由器,可以命令路由器记住树莓派网卡的MAC硬件地址。

只要是同一台树莓派,无论操作系统如何变化,路由器就会自动分配同一个IP地址,永不变化。

推荐这种方法。因为既能享受自动分配IP地址的方便,又能保证IP地址固定,方便SSH、VNC等的连接。

静态IP地址绑定到MAC地址的方法,不同的路由器设置方法大同小异,具体请参考路由器用户指南。

PuTTY免输密码自动登录树莓派

是不是觉得每次输入用户名和密码很烦?PuTTY不提供“记住密码”一类的选项——PuTTY自动登录Linux系统,需要使用公钥/私钥方式。

这种方式需要生成一组对应的公钥(简短的字符串)和密钥(一个文件),然后把公钥放到树莓派上,私钥提供给PuTTY。PuTTY仍然不知道你的密码,而是通过与服务器核对密钥而核实身份。

自动输入用户名

这个功能倒是有的。在连接->数据选项里。(英文版:Connection->Data)

生成公钥/私钥对

使用PuTTY安装目录里的puttygen.exe工具。先点“生成(Generate)”,然后随意移动鼠标直到进度条填满,即可生成密钥:

公钥部分:把上边那一段文字全选->复制备用。(不要点击“保存公钥(Save Public Key)”,点那个保存的公钥没有用!)

私钥部分:点击“保存私钥(Save Private Key)”,保存一个.ppk文件。

注:求您别给密钥文件加密码——加了密码,每次使用.ppk文件时就都需要提供,就背离自动登录这个目的。

自动登录

将公钥和私钥分别告知树莓派和PuTTY,就可以实现自动认证。

公钥文件:放在树莓派的一个文件里。

请先用PuTTY,输用户名密码登录树莓派。使用命令 nano ~/.ssh/authorized_keys 编辑authorized_keys文件。——通常这个文件不存在,nano会打开一个空文件。

把刚才COPY下来的公钥粘到这个文件里去。(PuTTY中按右键是粘贴。)

注意:只有一行。按左右方向键翻阅一下确认粘贴正确。粘上了按Ctrl+X -> Y -> 回车,存盘退出nano。

私钥文件:提供给PuTTY。

每次PuTTY登录时,在“连接 -> SSH -> 认证”选项中,“认证私钥文件”选择刚才的.ppk文件就可以自动登录了。

(英文版:Connection -> SSH -> Auth, Private keyfile for authentication)

使用SFTP远程传输树莓派文件

只要不特意禁止,SSH都会附带SFTP——安全FTP功能,用来做和FTP类似的,上传/下载/管理文件的操作。其实很多FTP软件就“顺便”支持SFTP。

推荐FileZilla。理由和PuTTY用汉化版一样——无需设置直接UTF-8编码,中文名文件上传树莓派不乱码。

只需在“快速连接”中输入:

主机:sftp://192.168.1.102 (换成您的树莓派的IP地址。前面的sftp://一定要加)

用户名和密码照实填。(Raspbian默认是pi/raspberry)

不想每次在“快速连接”里手动输入,您也可以用“站点管理器”,新建一个永久的连接使用。和SSH登录一样,首次登陆会确认密钥。勾上“总是信任”确定即可。

可以在右侧窗口看到,无需任何设置,树莓派上的中文目录名即可显示。事实上,上传本机的中文名文件,然后用ls命令检查,也能看到没有乱码。

FileZilla直接支持32/64位的WinXP/7,也支持Linux。开源免费无需破解,自带中文版无需汉化。

官网下载: http://filezilla-project.org/download.php?type=client

国内下载站(新浪):http://down.tech.sina.com.cn/content/2471.html

如果您使用FlashFXP、WinSCP等其他客户端,可能需要手工在连接选项里选中“文件名使用UTF-8编码”之类的选项,否则乱码。请注意!

电脑单机网卡连接树莓派

用途:不方便上网的用户,单机PC通过网卡接网线连接树莓派。连接成功后可在PC端通过ssh远端控制树莓派。方法如下:

系统:windows XP

1. PC端设定IP:控制面板——网络连接,实例:本机IP:192.168.0.1,掩码:255.255.255.0,网关:192.168.0.1,DNS:192.168.0.1;

2. 树莓派端设定IP:改etc/network/interfaces ,实例:

#iface eth0 inet dhcp

iface default inet static

address 192.168.0.2

netmask 255.255.255.0

gateway 192.168.0.1

设置树莓派的固定IP,和PC机在一个网段内,并以PC机的IP为网关

3. 双绞线和网线连接PC和树莓派。

4. xp下一定记得关闭防火墙

5. putty 用ssh 192.168.0.2

大功告成。

编译树莓派操作系统内核

首先在https://github.com/raspberrypi/linux/上下载最新的内核源代码,如当前最新的内核下载连接是:https://github.com/raspberrypi/linux/archive/rpi-3.6.y.zip

然后安装编译工具如gcc、make、patch等,可以使用apt-get install gcc make命令,再检查系统时间,如果时间不对,可以手动设置一下时间,也可以重新启动ntp服务,自动对时。将下载的内核文件放在随便找个目录放着,并用unzip解压它,

unzip rpi-3.2.27.zip

如果命令不成功则可能是没有安装unzip,可以使用apt-get install unzip命令安装就行了。

开始编译内核,首先使用以下命令对内核进行配置。

make menuconfig

载图太麻烦了,所以我直接用鼠标选了图,大家将就的看看吧。

需要说明的是在System Type这一项里,一定要选择合适的cpu也就是armBCM2708这个型号,其它的东西大家可以自己选择,需要什么用星号表示将这一项编译进内核,M表示编译成模块。

.config – Linux/arm 3.2.27 Kernel Configuration Arrow keys navigate the menu. selects submenus —>. Highlighted letters are hotkeys. Pressing includes, excludes, modularizes features. Press to exit, for Help, for Search. Legend: [*] built-in [ ] excluded module < > module capable [*] MMU-based Paged Memory Management Support ARM system type (Broadcom BCM2708 family) —> *** System MMU *** Broadcom BCM2708 Implementations —> *** Processor Type *** -*- Support ARM V6 processor *** Processor Features *** [*] Support Thumb user binaries [ ] Disable I-Cache (I-bit) [ ] Disable D-Cache (C-bit) [ ] Disable branch prediction [*] Use non-cacheable memory for DMA [ ] ARM errata: FSR write bit incorrect on a SWP to read-only memory -*- ARM errata: Invalidation of the Instruction Cache operation can fail [ ] ARM errata: Possible cache data corruption with hit-under-miss enabled