这是电子邮件时间 - 制作一个“电子邮件时钟”....你获得的kb越多,时钟滴答越多!
我对电子邮件很担心。我的收件箱中的每千字节都会破坏我生命中的另一分钟,但我无法停止检查它。因此,我决定在一台让我担心收到邮件的设备中体现我的焦虑。我一直很喜欢发条机制,所以我以时钟的形式制作了我的电子邮件物品。对于我收到的每一千字节的新邮件,时钟会无情地前进。
这是我想出的基本设计。时钟本身由微控制器驱动,微控制器连接到互联网并查询检查我的电子邮件帐户的程序。该程序报告了千字节的数量,微控制器将时钟向前移动每千字节的一个滴答。简单!
要自己构建,您需要知道如何编程微控制器以及如何进行基本的Web编程。有关微控制器编程,请参阅MAKE,第04卷中的入门文章(第158页)或者我的书 物理计算:用计算机感知和控制物理世界。对于Web组件,我使用了用Perl编写的通用网关接口(CGI)脚本,但您也可以用PHP,Python,Ruby和其他语言编写CGI脚本。
- 电线焊接到电磁铁触点。注意底部的水晶和中心的斑点下的“神秘芯片”(图1)。
- 廉价的电池时钟通常都以相同的方式工作(图2)。
- 时钟后视图,显示在以太网,电源和USB-B端口的外壳上钻孔,用于编程Arduino微控制器板(图3)。
- 时钟正面图,被去除的面孔(图4)。
材料
这是我为电子邮件时钟的基本构建块选择的内容。
微控制器我使用了Arduino模块(arduino.berlios.de),这是一个小型I / O板和开发环境,它是围绕Atmel的ATMega8微控制器构建的。 Arduino基于Wiring,这是另一个开放且易于开发的环境,它使用ATMega128芯片。我之所以选择Arduino,是因为我知道我最终想制作自己的定制电路板,而ATMega8比ATMega128更容易焊接。
串口转以太网转换器我没有费心为Arduino板编写自己的TCP / IP堆栈,而是使用了一些方便的硬件:Lantronix的XPort串口转以太网模块。这些模块可以在以太网连接和为微控制器供电的串行端口之间路由数据。为了避免一些焊接,我还推荐Cobox Micro,它具有与XPort相同的编程接口(您只是telnet in),但是更简单的物理接口。
时钟我本来喜欢建造一个机械钟但没有时间,所以我从便宜的电池时钟中取出了胆量并将其驱动轴连接到钟表式古董测试仪的轮毂上。
系统图。 CGI脚本查询我的邮件帐户并返回新的邮件量。微控制器调用脚本,并相应地向前移动时钟的指针。
建立它
我开始寻找最简单的驱动时钟的方法。我小心翼翼地把时钟拆开,检查了里面的电路板。中间有一个神秘的芯片,用塑料密封,但我发现时钟的主齿轮驱动所有其他齿轮,由螺线管控制。两个螺线管端子很容易被发现,我想我所要做的就是通过这些连接发出一个脉冲,时钟会快乐地离开。
我将几根导线焊接到电磁铁触点上,然后将时钟重新组合在一起。然后我用5VDC电源直接脉冲电磁阀,绕过神秘的芯片。电机跳了,但时钟没有打勾。显然,还有更多需要学习的东西,所以我将时钟的电池放回原位并将引线连接到示波器,以查看电压在滴答时的变化情况。这种模式比我预期的要复杂得多。每一秒,脉冲将交替:高 - 低 - 零一秒,低 - 高 - 零。
我将微控制器编程为复制该模式,并将其输出馈入时钟。这需要一些实验,但最终我得到了微控制器来控制时钟。它产生的每个刻度都将时钟向前移动大约两秒钟。由于我不关心保持实际时间,这很好。
下一步是让微控制器检查邮件。 XPort只需要从微控制器端连接三条线:串行接收,串行发送和复位连接,以允许微处理器重新启动端口。为XPort制作电路板是一个挑战,因为它的引脚不遵循 1/ 10“网格,业余爱好者perfboard标准。所以我使用CadSoft的Eagle软件设计一个定制板来安装模块。你可以在tigoe.net/emailclock找到布局文件。
然后我通过USB转串口转换器电缆从我的笔记本电脑配置XPort。按照Lantronix的说明,我给它一个IP地址,网关地址和子网掩码。我还配置了串口设置。
我打开了一个终端窗口,远程登录到XPort,然后进入“Hello World!”以确认消息正在通过。然后我退出telnet并尝试通过在串行窗口中输入其数字地址(端口80)来连接到我的Web服务器:
C82.165.199.37 / 80。
XPort通过返回“C”确认。我用我的服务器上的网页HTTP请求回复, http://tigoe.net/pcomp/index.shtml:
获取/pcomp/index.shtml HTTP / 1.1主机:tigoe.net
服务器返回HTTP标头和请求页面的内容:
HTTP / 1.1 200 OK日期:2005年12月13日星期二20:50:27 GMT服务器:Apache / 1.3.33(Unix)传输编码:分块内容类型:text / html ......等等。
成功!看到HTTP(超文本传输协议)的这种交换,通常是Web浏览器和服务器的隐藏语言,意味着我已经让XPort作为浏览器运行。现在我只需让微控制器也这样做:打开网络连接,请求页面,然后阅读结果。您可以在tigoe.net/emailclock找到我的代码。我通过Arduino的板载串口到USB转换器从我的笔记本电脑上传了编译过的固件。
微控制器没有请求HTML页面 - 它正在调用一个公共网关接口(CGI)脚本,也可以在上面的链接中找到,它检查我的所有邮件帐户,查询新邮件的数量,添加数字,以及将总数发回给谁问。由于不希望从浏览器调用此脚本,因此不会将其结果格式化为HTML。为了最大限度地减少微控制器方面所需的编程,它保持简单,仅返回HTTP标头和一行文本:
.
一旦整个系统工作,我找到了一个时钟的外壳:一个漂亮的,古色古香的电子测试设备,在其钟形表面后面有一个孔,可以容纳一个驱动轴。时钟轴很容易拧入,Arduino模块和XPort紧密贴合在里面。我在后面钻了几个电源线和以太网电缆,时钟已经完成。
它的效果如何?我仍然强制性地检查我的电子邮件,但是花了几个小时来构建这个时钟,我根本没有打开我的邮件程序!
Tom Igoe是纽约大学互动电信项目的物理计算领域的负责人。
参考文献:
http://arduino.berlios.de
http://tigoe.net/emailclock
http://tigoe.net/pcomp/index.shtml
从MAKE 6 - 页面117.获取MAKE,订阅或购买单卷。