Chumby 探险之旅

作者:Daniel Bartholomew

我现在是一位最酷的小工具之一 Chumby 的快乐拥有者,我从未体验过如此酷的小工具。乍一看,这台小巧的计算机似乎只不过是一个连接网络的闹钟。就其本身而言,这是一个很棒的想法,并且对我来说物有所值。然而,Chumby 远不止是一个简单的闹钟,无论是否连接网络。为此,当 Chumby 从中国的工厂运往我这里时,我做出了有意识的决定,将 Chumby 放在卧室里。如此有用的设备应该放在人们醒着时可以利用它的房间里。

Adventures with Chumby

图 1. Chumby 的包装内容

Chumby 的核心是一台小型嵌入式计算机,包裹在塑料和皮革制成的柔软、可挤压的外壳中。如果您想了解技术细节,Chumby 由 350MHz ARM 处理器驱动,包含 64MB SDRAM 和 64MB NAND Flash ROM。对于输出,它具有 3.5 英寸 LCD 彩色触摸屏、2W 立体声扬声器、两个 USB 2.0 全速端口和一个耳机插孔。对于输入,它具有前面提到的触摸屏、顶部的挤压按钮和一个用于运动和倾斜感应的加速度计。它通过 802.11b/g 连接到互联网,这意味着您需要拥有某种无线网络。电源由外部交流适配器提供,还有一个用于九伏电池的连接器,用于紧急供电。

Adventures with Chumby

图 2. Chumby 的背面

Chumby 显示小型 Flash 电影“小部件”。这些 Flash 电影可以执行 Flash 电影在 Chumby 运行的 Flash-Lite-3 嵌入式 Flash 播放器限制范围内可以执行的任何操作。实际上,这意味着它可以播放大多数在 Flash 浏览器插件版本 8 或更低版本中运行的 Flash 电影。版本 9 的浏览器插件中添加了一些 Flash-Lite-3 不支持的功能。

Chumby 的设计投入了大量的心思和关怀,并且似乎已尽一切努力使 Chumby 尽可能易于使用。即使是包装也包含一些不错的细节,例如 Chumby 到达时使用的亚麻袋,而不是又一个盒子。这些袋子很有用,意味着减少浪费——这在我的书中始终是一件好事。

用户界面也设计得很好。我非常不懂技术的妻子也能够轻松找到使用 Chumby 的方法。甚至还有一个不错的电影,当您第一次打开 Chumby 时播放,它会快速浏览界面和主要功能。

Adventures with Chumby

图 3. Chumby 引导式教程

一旦我打开 Chumby 的包装并将其连接到我的网络(并将我在其中一个袋子里找到的小饰品给了我的孩子们),就进入了正题。我最初的想法是想把 Chumby 变成一个厨房助手,它带有一个最喜欢的食谱数据库,可以从内置或内部 Web 服务器、食谱搜索小部件(用于搜索数据库中的食谱,或在线查找新食谱)、音乐播放器、购物清单创建器、膳食计划器、日历、相册、鸡蛋计时器、计算器和一个普通的闹钟。十件事应该不难,对吧?嗯,我的成功参差不齐。有些事情进展顺利,而另一些则不然。我还没有放弃最终让以上所有功能都正常工作,但并非所有功能目前都能工作。

Adventures with Chumby

图 4. 厨房中的 Chumby

我的首要任务是尝试创建一些 Flash 小部件,我很快发现,将 Flash 作为 Chumby 上首选的应用程序开发方法存在一些主要缺点。好的一面是 Adobe 的 Flash 软件易于使用,并且可以创建各种东西。坏的一面是,该软件——除了它是专有的、闭源的并且仅适用于 Windows 和 Macintosh 之外——价格是 Chumby 的两倍,而且没有易于使用的开源替代方案可以在 Linux 上运行的 Flash 编程环境。

在这个领域已经取得了一些进展,主要是沿着用于编写和编译 Adobe 的 Action Script 语言到 Flash 电影中的简单环境的方向,但其中最好的 FlashDevelop 仅适用于 Windows。我也不太热衷于学习另一种编程语言。有一些 Linux GUI 工具处于概念验证阶段(意味着它们看起来不错,但不能工作)。

我的另一个选择是破解 Chumby 上底层的嵌入式 Linux 操作系统,并添加像嵌入式 GTK 或 KDE 这样的东西,但我很快就放弃了这个想法,因为我不认为我有能力避免在过程中将 Chumby 变成一个镇纸。

所以,我使用了我拥有的和我能找到的。这种方法的好处是,新的小部件一直在发布——在我拥有 Chumby 的几周内就超过了十几个——而且人们一直在不断思考他们的 Chumby 可以做的新事情。

Chumby 作为闹钟

Chumby 内置了一个闹钟,所以这个功能在 Chumby 到达之前就从我的清单中划掉了。Chumby 可以设置多个闹钟,闹钟可以触发不同的声音并激活不同的小部件集。例如,早上我有一个闹钟不会发出声音(Chumby 不在我的卧室里,所以任何闹钟声音都听不到),但它所做的是将活动的小部件集切换到我的“早上”集,其中包含我喜欢在准备早餐时查看的新闻和天气小部件的混合。当到了送孩子们上学的时间时,还有一个闹钟,这个闹钟会发出声音。我还有其他早上、下午和晚上的闹钟——尽管它们不会发出任何声音——但会将活动的小部件集切换到我在这些时间通常感兴趣的事物类型。

Chumby 作为数码相框

相册也在 Chumby 到达之前就划掉了。有很多选项可以通过您的 Chumby 显示照片。最简单的是一系列官方照片小部件,可以从您的 Flickr、Picasa、Photobucket 或 MySpace 帐户中拉取照片。您只需输入您的登录详细信息和您想要的相册,就可以开始了。

还有一个名为 Dailio 的便捷服务,您可以在其中将照片发送到特殊的电子邮件地址,它们将无需任何进一步的努力就会显示在您的 Chumby 上。

Chumby 作为厨房定时器

鸡蛋计时器是另一个容易从我的清单中划掉的项目,因为 Chumby 社区的一位有进取心的成员(创建 Dailio 小部件的同一位)已经创建了一个非常好用的计时器。

Adventures with Chumby

图 5. Toasty,Chumby 厨房定时器

Chumby 作为计算器

还有一个计算器小部件,由 Chumby 社区的另一位成员创建。它运行良好,这就是我对这个主题要说的全部,除了我希望按钮更大一些。

Chumby 作为日历

我正在使用的日历小部件是显示我的 Google 日历的小部件。它仅限于议程视图,其中按顺序列出每个计划的项目。如果能有每日、每周或每月视图会更好,但如果不是我想要的,它肯定也是可用的。

Chumby 作为音乐播放器

我对 Chumby 对听音乐的支持非常满意。Chumby 控制面板的音乐部分有多个选项,可让您收听来自各种位置的音乐。这些位置包括 iPod、SHOUTcast 流、Mediafly 播客、来自广播电台或您自己的本地 SlimServer 的任何 MP3 或 Ogg 格式的无线电流,或者来自插入可用 USB 端口之一的 USB 拇指驱动器的音乐文件(Ogg、MP3 或 FLAC 格式)。

Adventures with Chumby

图 6. Chumby 上的音乐

顺便说一句,Chumby 上的扬声器听起来非常不错,尤其是考虑到它们的尺寸。当然,如果您想要更好的声音,可以选择插入一套外部扬声器或一副耳机到耳机插孔。

Chumby 作为食谱书

我对我的厨房助手 Chumby 的第一个想法是将其变成一本食谱书,所以我在这里投入了很多精力。巧合的是,食谱书的想法也是我妻子最喜欢的 Chumby 用途。多年来,她一直在她的电脑上以 .odt 格式存储她最喜欢的食谱,每当她做需要食谱的东西时,她要么在她的电脑上来回跑很多次,要么她打印出食谱。这两种选择都不理想。

与我为 Chumby 概述的其他任务一样——顺便说一句,我给他取名为 George——我首先寻找是否有人已经创建了一个食谱小部件。我找不到任何,所以我然后决定看看是否有任何小部件我可以轻松地改编成食谱小部件。

有几个照片查看小部件,所以我的第一个想法只是创建我的食谱的 320x240 像素图像,将它们上传到我的 Flickr 或 Picasa 帐户,然后在 Chumby 上查看它们。这可行——毕竟 PNG 图像就是 PNG 图像——但效果不是很好,因为几乎所有的照片小部件都是用于显示幻灯片的,照片每隔几秒钟切换一次。如果您正在显示照片,这很好——我使用 Flickr 小部件来显示我孩子的照片并且非常喜欢它——但食谱需要停留在屏幕上几分钟(或更长时间,具体取决于准备时间)。

Adventures with Chumby

图 7. 我早期尝试的食谱书——单独的“卡片”图像

效果最好的照片小部件是 Dailio 小部件。与其他照片小部件不同,这个小部件允许您设置照片的显示时间(从五秒到五分钟)。还有一个永远选项,我假设这意味着照片会一直显示,直到您手动更改它为止,但该选项对我不起作用。相反,它导致食谱闪烁和结巴。所以我被困在五分钟内,这还可以,但并不完美。

我终于找到了完美的食谱选项,就在我的眼皮底下:Impress,OpenOffice.org 演示文稿应用程序。它有一个选项可以将任何幻灯片导出为 Flash (.swf) 文件。事实证明,这些文件在 Chumby 上也能完美播放,即使它们在技术上尺寸不正确。所以我选择了一个基本模板,然后,使用每张幻灯片作为“食谱卡片”,创建了一本食谱书。

Adventures with Chumby

图 8. 创建食谱书

为了简单易用,我没有放入任何过渡或文本动画。我还尝试尽可能保持字体大,同时仍然将整个食谱放在一张幻灯片上。不将任何自动前进幻灯片放入我的演示文稿的副作用是,每张幻灯片都会停留在原位,直到我完成它,这是完美的行为。

每个演示文稿总是从第一张幻灯片开始,您必须点击浏览每张前面的食谱才能到达您想要的食谱。所以我创建了几个具有一般主题的演示文稿,例如甜点、主菜等等,以保持每个小部件的食谱数量可管理。

目前,食谱书非常朴素。在接下来的几周内,我计划在食谱中添加照片并进行其他一般改进,但就目前而言,它们已经被很好地利用了。

Adventures with Chumby

图 9. Chumby 上的食谱

将自定义小部件(如我的食谱书)放到 Chumby 上的过程很简单。实际上有两种方法可以做到这一点,但最直接的选择是将其上传到 Chumby.com 并将其添加到您在那里的频道之一。您只需要您的 .swf 文件和一个图标。该图标是一个简单的 80x60 像素 .jpg 图像。我保持了我的图标的简单性,方法是使用 The GIMP 在白色背景上放置黑色文本。

Adventures with Chumby

图 10. 在 The GIMP 中创建图标

转到 www.chumby.com/widgets/upload 上传您的小部件。表单是不言自明的。上传后,您的小部件将在您选择的类别中可用,如果您将其标记为公开,则所有 Chumby 用户都可以查看它(一旦 Chumby 人员确定它不是恶意小部件)。

浏览器方法的唯一真正缺点是 Chumby.com 只允许您上传小于 100K 的小部件。如果您创建的小部件大于该大小——并且我预计一旦我添加了所有食谱和照片,每本食谱书都可能大于该大小——将小部件放到您的 Chumby 上的另一种方法是使用 USB 拇指驱动器。

对于拇指驱动器方法,除了图标和 Flash 文件之外,您还需要一个名为 profile.xml 的文本文件。Chumby 在启动时会查找此文件,并将其中描述的任何小部件添加到您的所有小部件频道。此文件是不言自明的,Chumby Wiki 提供了完整的说明。

列表 1. 示例 profile.xml 文件

<profile>
  <widget_instances>
      <widget_instance id="1">
      <widget>
        <name>Breads</name>
        <description>Various bread recipes.</description>
        <version>1.0</version>
        <mode time="180" mode="timeout"/>
        <access sendable="false" deleteable="false" access="private"
         virtualable="false"/>

        <user username="myusername"/>

        <thumbnail href="file:////mnt/usb/breads.jpg"
         contenttype="image/jpeg"/>
        <movie href="file:////mnt/usb/breads.swf"
         contenttype="application/x-shockwave-flash"/>
      </widget>
      </widget_instance>

      <widget_instance id="2">
      <widget>
        <name>Cookies</name>
        <description>Various cookie recipes.</description>
        <version>1.0</version>
        <mode time="180" mode="timeout"/>
        <access sendable="false" deleteable="false" access="private"
         virtualable="false"/>

        <user username="myusername"/>

        <thumbnail href="file:////mnt/usb/cookies.jpg"
         contenttype="image/jpeg"/>
        <movie href="file:////mnt/usb/cookies.swf"
         contenttype="application/x-shockwave-flash"/>
      </widget>
    </widget_instance>

  </widget_instances>
</profile>

Chumby 作为食谱搜索引擎、购物清单创建器和膳食计划器

我还没有能够将所有我想放到 Chumby 上的东西都放上去。但是,在实际使用 Chumby 几周后,我不确定它们一开始就是好主意。

主要原因是我的预期食谱搜索、购物清单创建器和膳食计划小部件都需要大量的文本输入,而这正是 Chumby 不理想的地方。Chumby 主要是一个输出设备,适合显示各种信息。输入最好限制为简单的交互,例如点击按钮和在屏幕上滑动手指。

Chumby 可以处理文本输入,并且某些小部件需要它。例如,控制面板有一个简单的屏幕键盘,您可以在 Chumby 的初始设置期间在其中输入您的无线设置。此外,在音乐界面中,还有另一个屏幕键盘,您可以在其中输入您要连接的无线电流的位置。但是,在需要时支持文本输入和进行大量文本输入是两件非常不同的事情。

在仅仅在上面提到的两个地方输入文本之后,我可以看到这不是我想在 Chumby 上定期做的事情,因为虽然它可以工作,但速度很慢。问题是,当使用 Chumby 时,自然要做的事情是使用您的手指,并且大多数小部件——如果它们有按钮的话——都保持按钮大而数量少。为了有效的文本输入,您需要很多小按钮,而在 Chumby 的屏幕上,很多小按钮实际上需要您使用手写笔——这不是我想在 Chumby 上使用的东西。

我尝试使用 RSS 小部件来显示来自提供 RSS 订阅的站点(例如 Taste-of-Home 的每日食谱)的食谱数据,但正如您从屏幕截图中所见,我的测试效果不佳。

Adventures with Chumby

图 11. 某些 RSS 订阅不起作用。

最终想法

Chumby 是一款令人惊叹的设备。它可以适应房屋中的几乎任何房间,并且可以显示 Flash 文件格式限制范围内可以显示的任何类型的数据。

新的小部件不断涌现,基本软件也在不断改进。查看 chumby.com 并浏览可用的小部件;总有一款适合您。

Chumby 也非常容易破解。底层操作系统是嵌入式 Linux,所有源代码(除了少数他们不允许披露的许可位)和完整的硬件原理图都可以在 Chumby 网站上找到。开发人员似乎真的理解了使设备可破解的想法,他们唯一的警告是温和地提醒您,如果您拆开 Chumby,它将使保修失效。除此之外,他们积极鼓励您将 Chumby 变成您喜欢的任何东西,并渴望通过他们的网站、论坛和维基以任何方式帮助您。

在如今这个锁定、不许您窥探幕后否则我们将起诉您的小工具时代,拥有一款您可以随意改装的小工具,并提供完整的原理图和源代码——以及原始开发人员——来指导您,这是一种美好的感觉。

Chumby 秘密菜单——就像 Pi 一样简单

Chumby 上有一个秘密菜单,并且很容易访问。以下是您需要做的

  1. 调出控制面板。

  2. 点击设置。

  3. 点击 Chumby 信息。

  4. 在信息屏幕的右上角是一个微小的 Pi 符号,点击它。

  5. 完成!

如果您按照上述步骤操作,您现在正在查看一个标题为“您相信用户吗?”的屏幕。创战纪 参考暂且不提,现在您可以执行浏览文件系统和启动 SSH 守护程序等操作。

Chumby 软件许可

Chumby 上的软件是完全开源的。只需查看软件许可屏幕(从设置→Chumby 信息→软件许可访问)。随意破解 Chumby 吧。

Chumby 上的 SSH 和 HTTP

基于 Linux,Chumby 具有许多未立即公开的功能。这方面的一个例子是内置的 Web 服务器和 SSH 进入 Chumby 的能力。

默认情况下,Web 服务器只有一个链接到一些关于无线连接状况的统计信息,但它可以很容易地扩展。

Adventures with Chumby

是的,您可以 SSH 进入 Chumby。

当您 SSH 进入 Chumby 时,您会发现一个由 BusyBox 提供的友好的嵌入式命令行环境正在等待您。您甚至可以设置 cron 作业并运行 shell 脚本。

资源

所有关于 Chumby 的资源:chumby.com

友好且乐于助人的 Chumby 论坛:forum.chumby.com

Chumby Wiki:wiki.chumby.com

Chumby 细节:www.chumby.com/developers

FlashDevelop:www.flashdevelop.org

Daniel Bartholomew 与他的妻子和孩子住在北卡罗来纳州。

加载 Disqus 评论