9156
需用时 18:18
53
45
线性时钟:横行的时间
/gkimage/e2/xv/yh/e2xvyh.png
:DIYer:尤斐( Euphy)
:制作时间: 6小时
:制作难度: ★★★★★
:GEEK指数: ★★★★☆

线性时钟介绍:

相信童鞋们温暖的小窝里都少不了一块钟表,滴滴答答不停走动的表针忠实的指示着时间。这些圆型时钟极具20世纪特色,现在我就给大家看一些更具后现代感的东西。

这是一个时钟DIY的全部过程:从开始的构想到制作流程的每一步,都将原汁原味的呈现出来。
我们要制作的东西,叫做线性时钟。什么是线性时钟呢?顾名思义,所谓线性时钟就是把圆形钟面上的数字拉直,然后按直线排列起来。想象一下,要是在家里或是办公室放着一个这么Geek的时钟,一定会有种很潮的感觉。
我雄心勃勃,希望将来能把线性时钟推向市场,让它走进千家万户。如果你看了之后,准备亲自操刀DIY一个,或是灵光闪现想对它进行改进的话,本文提供全套制作方案和使用的零件列表。

/gkimage/hy/qq/6e/hyqq6e.png
这个线性时钟是一个简化版本,用了很多常见的零件。它只是个检验可行性的愿型。制作过程并不复杂,如果零件、工具齐全,一晚上足以搞定。我选择的元件大都比较容易找到,制作时也无需对它们开膛破肚,更用不着太特殊的东西,而且制作精度的要求也不太高。
之后介绍了我试图改进线性时钟所做的几种尝试以及最终定型方案。我很享受整个DIY过程,我相信你看过之后肯定也按捺不住、蠢蠢欲动了吧。下面就让我们开始吧!


1   设定目标

/gkimage/ac/ol/kj/acolkj.png
这里选取了我设计时画的部分草图。

/gkimage/sl/t3/rs/slt3rs.png
从中可以大致看出线性时钟逐渐成形的过程。

/gkimage/c6/ad/y4/c6ady4.png
这个过程确实很辛苦。我甚至因为可实现的方法太多,不知如何选择而陷入僵局。

/gkimage/5m/gn/le/5mgnle.png
我提前设定了一些线性时钟应该具备的特性:
1、小功率,最好不用电源线,仅用电池就能工作
2、造价低,适应普通零售商店的价格范围
3、水平、垂直放置皆可使用
4、指针不走动时不能有噪音
5、重量轻,无需特殊的架子或钩子就能固定到墙上
6、满足多数人审美观点需求,要有多种样式、颜色和材料可供选择

/gkimage/aw/y1/rg/awy1rg.png
我犹豫了很长时间之后,终于选定了一个比较简单的机械设计方案,即用一个绕线轮来控制装有弹簧的蜗牛凸轮的转向,并通过他们来带动齿轮组,控制指针移动。
时钟信号来源于一个石英钟机芯,机芯每秒钟发出一个脉冲信号,该信号可作为时钟的计时装置。其实有很多电子设备都能实现计时功能,比如时钟芯片和无线电时钟等,但是为了简单起见,我还是选择了石英芯片,因为我对它比较熟悉,并且有利于控制成本。
为了避免往时钟上安装讨厌的电源线,我决定用电池作为时钟的能源。因此我主要考虑使用弹簧驱动装置,这样电机之类的就不必使用了,只需每分钟给个脉冲信号就行。但如果按照这个思路制作,难度会很大,所以在本文中我将设计简化为使用微控制器来驱动步进电机。
看到这里,童鞋们可以直接跳到最后去看看制作完的线性时钟是个神马模样。

2   最终定型设计

/gkimage/dc/p2/ar/dcp2ar.png
线性时钟的设计理念是用常规的原理,设计出一个具有非常规外形的时钟。我想让制作出的时钟达到这样一种效果:乍一看根本不像时钟,但定睛一看又确确实实是个时钟。它具备普通时钟的一切要素(指针、数字等),但是外形却完全颠覆常规,令人难以置信。看到这里也许会有童鞋不理解:“你要做线性时钟,可是如果表针走到头之后怎么办呢?——不要着急,耐心看下去,我会给你个满意答复的哦。
从外观上看,它也不会令人感到突兀,因为我想让它能融入到普通家庭中去,所以在颜色和材料的选择上都考虑了这一点。但是它的外形的确是与众不同,横着放,会让我们想起老式收音机上的调频指针,竖着放会让人联想到气压计、温度计之类的仪器。
在水平状态下时,它可以悬挂到墙上,或是当做书架或者壁炉架使用。竖起来放置时看时间可能困难一些,因为上下读数总要比左右读数更别扭一些。

3   线性时钟原型----简介和零件目录

在完成线性时钟制作的过程中,我利用手头的材料制作出一个线性时钟的原型,用它来验证某些想法的可行性。
制作原型的目的是为了尽快确定可行的制作方案,摸清制作的难度以及需要的时间,并借此推测预定时间内最多能测试几个版本。
下面就是我选择的制作材料,材料的选择并非因为它们完美适用,只是碰巧想到,或是恰好有现成的,所以换成其他可替换的零件肯定也是没问题的。

3.1   底座

/gkimage/8k/nk/9q/8knk9q.png
○ 我用泡沫夹芯板来制作底座,因为它重量轻,而且硬度高,强度大,切割比较方便,切痕清晰。如果没有泡沫板,那瓦楞纸板也是个不错的选择。

3.2   运转部分

/gkimage/al/6n/ax/al6nax.png
○ 2个窗帘导轨----我花了7英镑(11美元)从John Lewis商店买了个PVC材料的导轨。导轨需要两段,它的长度就是线性时钟的长度。我将一个125公分的窗帘导轨锯成了两段,因此测试机的长度就是62.5厘米。
○ 4个缝纫机绕线轮当作传动轮----塑料的比较好,而且更便宜。
○ 2个滑轮安装在时钟另一端----我恰好有滑轮,如果没有滑轮也可以用缝纫机绕线轮代替。
○ 绕线要要找稍微粗一点的,还要找些松紧带,一些轻木片之类的能在导轨槽里来回滑动的薄片。

3.3   控制核心

/gkimage/sa/b8/3g/sab83g.png
○ 带有Adafruit Motorshield 的Arduino控制板--用这么智能的装备貌似是杀鸡用牛刀了,因为我恰好有一个性能不错的板子,所以就直接用上了。步进电机控制的原理并不复杂,如果你有个暂时不用的Arduino兼容板,再有几片L293芯片,就可以很容易的在面包板上搭建出控制电路来驱动步进电机。你可以直接在Tom Igoe的步进电机专题中查到用Arduino驱动步进电机的电路。但是,这样的独立电路不如Motorshield自带的控制库性能强劲。
○ 所有版本的逻辑/计时部分的代码都是相同的,只是接口部分代码可能有少许不同。据我所知,所有的Arduino兼容板实现这些功能都是小菜一碟。
○ 2个步进电机——我测试的这种步进电机极其便宜,因此转矩不大,精度不高,每转一圈只分成20步,没花多少银子就买到了。同时我还制作了一个用NEMA17 步进电机组装的版本,它的性能强劲了不少,转动一圈分为400步,重量在1磅左右,单价约14英镑。买到它们之后,我就不再需要廉价的电机了。
○ 需要修改Arduino程序中"stepsPerRevolution"的参数来匹配你所选用的步进电机。
○ 在微控制器(arduino)没有连接到电脑上的时候,还要找个6-9V的直流电源给它供电。

3.4   工具

/gkimage/ie/ud/t4/ieudt4.png
● 主要就是刀子——不找把锋利的刀子,泡沫夹芯板就不容易切割整齐。所以最好能找把新的长刀刃裁纸刀,而且切割的时候要掌握好要领,最好是像锯木头那样来回轻轻的割,而不要像劈柴那样用蛮力去砍。
● 粘合剂——常见的带粘性的东西都用到了:强力胶水,热熔胶,万能胶,牛皮纸胶带。
● 焊接用的电烙铁或是螺旋接线柱,还有导线。

4   线性时钟原型----绕线轮

/gkimage/sp/ps/wl/sppswl.png
● 我制作的线性时钟大约10cm宽,首先把泡沫板裁剪到大致的宽度。

/gkimage/i7/6g/nz/i76gnz.png
● 把窗帘导轨粘到上面。

/gkimage/qd/ag/88/qdag88.png
● 泡沫板长度不太重要,我找到的板子长度不够,需要用胶水把两块板子粘起来,即使中间留点缝隙影响也不大。我用的胶水就是普通的万能胶,用它足以应付PVC滑轨和泡沫板,但是它能溶解聚苯乙烯材料做的泡沫板,所以用它粘泡沫板边的时候要注意。

/gkimage/sa/8l/u2/sa8lu2.png
● 粘滑轨的时候也要小心些,粘之前,先看看滑轨是否弯曲,要是弯曲,务必要把它掰直。可以裁剪些长条状的东西卡在滑轨间,并用松紧带固定,这样等待胶水晾干时,滑轨就能保持笔直。挤胶水时注意要沿着滑轨的边,尽量避免过量的胶水溶解泡沫板。

5   线性时钟原型----绕线轮

/gkimage/sp/ps/wl/sppswl.png
● 把两个缝纫机绕线轮粘到一起。
● 粘贴面要打磨平整,然后用强力胶水粘住。

/gkimage/b2/lm/cl/b2lmcl.png
● 在时钟运行中,一个轮绕线,另一个轮放线。你可能会想:两个绕线轮粘在一起,不就相当于一个吗,那只用一个长一些的线筒可不可以呢?嗯,这种想法应该是对的,但是如果这样的话两根线可能会搅在一起,所以为了让它们运行更流畅我使用了两个绕线轮。
● 这里还需要设法把绕线轮和步进电机的轴连在一起。恰好,我的电机轴上带有一个铜环,刚好能塞到绕线轮的孔里,大小还蛮合适。我用热熔胶把轴和绕线轮牢牢地固定在一起,要是不放心,你还可以用环氧树脂来粘,强度保证给力。

/gkimage/de/81/2g/de812g.png
● 这里注意要在绕线轮和电机外壳之间留点缝隙,确保电机旋转时没有障碍。缝隙有两张纸那么厚就可以,在固定的时候可以预先拿两张纸垫到缝隙里,这样就不用担心绕线轮和电机外壳接触了。

/gkimage/fk/kn/60/fkkn60.png
● 在每个绕线轮上缠一根比时钟稍长的线,两根线的方向相反,为确保线头不松散,把线头用蓝丁胶(BLU - TACK)粘一下,再裁剪它们到一定长度。

/gkimage/1b/kb/oi/1bkboi.png

6   线性时钟原型---安装电机

/gkimage/7d/gp/uh/7dgpuh.png
● 把和电机固定好的绕线轮安装到时钟底座端部--安装的时候注意高度,要让绕过上方绕线轮的线恰好能通过滑轨的槽而不会碰到滑轨。

/gkimage/h2/11/zy/h211zy.png
● 绕线轮上的线要横穿整条滑轨,然后通过滑轨另一端的惰轮引回来,再绕到绕线轮的另一侧。

/gkimage/w0/3p/y6/w03py6.png
● 看起来想绕好这圈线也不容易,如果你有链条、传送带之类的物品,可以拿来代替绕线。我就用珠链(卷帘上的)做过测试,但是用起来有点滞重,我选的电机又比较小,用珠链传动时转动不流畅。然后把电机固定在底座上开好的圆槽里,我的电机小且轻,所以不用做任何处理,摩擦力就能把它们固定住。这样做优点是可以方便调整,但是缺点是容易受外力影响而掉下来。

7   线性时钟原型----惰轮

/gkimage/lo/w3/sb/low3sb.png
● 时钟的另一端需装上惰轮(就是不做功的滑轮)。惰轮的位置要放准,它的一侧应对准滑轨槽的中线。这样穿过滑轨槽从绕线轮上引来的线就不会碰到槽的内壁,也就能顺利的绕过惰轮了。

/gkimage/s4/hl/4r/s4hl4r.png
● 绕线轮的进线侧对位置的要求就没有这么苛刻了,只要使线能够顺畅的经过整个时钟,再绕回到绕线轮上就行。为了让出绕线的通路,我在时钟内侧剪掉了好几个“路障”。

/gkimage/2t/0c/xq/2t0cxq.png
●惰轮安放的角度没特殊要求,只要能保证进出线不碰到时钟的两侧就合适。好的,安放成功!是不是看起来很不错哦,不过唯一的不足就是一旦安放完毕就不太容易调整了。

8   线性时钟原型----滑动块和指示器

/gkimage/po/q1/y3/poq1y3.png
● 用轻木做个类似雪橇的有两条腿的滑动块,用来在滑轨上滑动。在其中的一条腿上刻出凹槽来固定绳子。

/gkimage/n5/64/oh/n564oh.png
● 作为一名老手,我制作的时候没有先做好再往上装,而是直接在滑轨上组装的。

/gkimage/04/nh/3g/04nh3g.png
● 安装好之后,等胶水一干,滑动块可以滑动,我就迫不及待的进入了下一步的工作。最后,还需要从硬纸板或者其他什么东西裁下几个细条,当做时钟的指针。
● 下面这个滑块就不错,做这样的滑块还真是个技术活。

9   线性时钟原型----绕线

时钟的绕线轮直径和上面绕线的多少密切相关,绕线越多它体型就越胖,步长就变得越长---也就是说,因为线是逐渐绕上去的,电机每前进一步绕线轮上就多绕一些线。这在实际中会引起一个小问题,当其中一个绕线轮绕满线之后那么传动中的线会略微变形。
为了补偿这个变化(虽然不严重,但也足以引起一些问题),两边的绕线回路可以用一条松紧带捆在一起。这样绕线就有了足够的伸缩性,松的时候能保持运行的流畅,在被拉紧得时候又能提供足够的张力保持不变形。
这有一定的难度,我的制作过程都已经用图片展示出来:

/gkimage/4l/6m/fy/4l6mfy.png
● 保证每一对绕线轮上的线都足够在时钟上绕一圈。也就是说,要把这一对绕线轮上引出的线从时钟另一端的惰轮上绕过再引回来。把两个绕线轮上的线截成同样长度。
● 每个绕线轮只绕一半的线,把两个绕线轮的线头沿滑块槽引到惰轮。

/gkimage/5y/cm/6g/5ycm6g.png
● 用手指捏住两个线头,沿着滑块槽的方向来回扯动,试着让线在绕线轮来回缠绕几圈,感觉一下张力的变化程度。这样松紧带会拉到多紧你就心里有数了。如果变化很小(绕线较细时),那么松紧带就不必放的太松。如果变化很大(绕线较粗时),这时就有必要让松紧带富余一些了。

/gkimage/1g/8k/ew/1g8kew.png
● 在两根线的末端都打上大约一英寸的结,两根线不直接连接,而是用一段适当长度的松紧带连起来,先在松紧带的一端打一个结。
● 把松紧带打结的一端捆到从惰轮引来的线上(来自于另一端的收线轮)
● 然后再来回扯一扯线,试试看把松紧带的节套到绕线的哪个位置比较合适,然后再打上结固定住。我在绕线的线头上多打了几个结,这样方便调整松紧带的长短。

/gkimage/kb/1h/2n/kb1h2n.png
● 松紧带上的结要能卡到你开的滑动块凹槽上。如果怕不结实可以再用胶水粘一下,但是我发现只要把结塞进槽里,它就不容易跑出来了。

10   线性时钟原型----电路部分

/gkimage/p7/n8/cn/p7n8cn.png
● 电路部分主要由一块Arduino板和一块Adafruit Motorshield板组成。通常电机和Arduino板不宜使用同一个电源供电,但是在这个DIY中电机的功率很小,只需要很小的电压就能驱动。所以我就插了根跳线,让arduino板的电源同时给Motorshield供电。
● 接下来又做了几根4针脚的延长线,因为我的步进电机恰好有几个那样的接口,只是接口上的线稍细了些。
● 我对步进电机了解也不太深,只能大致给童鞋们说一说基本原理:步进电机中都有两个线圈,对两个线圈输入一定频率和极性的脉冲信号,就能驱动转子向指定方向旋转。在我所用的步进电机上,这两个线圈是相互独立的,所以电机上引出了四根线。关于这种型号步进电机的详细介绍可以查阅 下面 这篇文章。

/gkimage/1s/a5/7n/1sa57n.png

● 两根线连接到一个线圈上,另外两根连到另一个线圈。借助万用表确定怎样正确连线。然后一个线圈的两根线连到Motorshield板的1、2输出端上,另一线圈连到4 、5输出端。这里要注意线的极性,不要接反。
● 测试程序时无需等待,可以直接把程序中millisPerSecond的值改为200,它的转速就会变成原来的5倍。你也可以改变步长,步长变化会改变每个周期电机移动的步数。

11   线性时钟原型---程序

程序其实并不复杂,但是你必须要有最新版的Adafruit Motorshield驱动。因为其中的一个更新在这个程序代码里有重要作用。

程序代码:

程序中有三个内部时间定义,由三个整型变量组成:currentSeconds, currentMinutes 和 currentHours。这三个时间在程序开始前预置,并随着程序运行自动累加。
程序的主循环语句记录开始时间,然后连续检测时间是否超过1000毫秒。如果超过的话,内部时钟时间加1(doTick()),然后触发子程序使时钟上的指针移动(renderTime())。
doTick()子程序负责累加时间,由秒到分钟,由分钟到小时,并且在必要时重置时间。
renderTime()子程序的作用是把累加的时间转换成时钟面板上的时分秒的位置,更准确的说就是步进电机转动的步数。这个程序能判断指针当前位置,(启动时设定在00:00的位置,也就是时钟最左边的位置),通过指针当前位置和初始位置的比较来决定步进电机的运动方向。
使用Arduino的内部计时器有时会不太可靠。这个问题有很多解决方法, Arduino主页 中也介绍了一些让计时更准确的方法,也可以使用时间函数库。考虑到这仅仅是一台测试机,我采用了一种比较简略的解决方案(这貌似是我想偷懒时的一贯借口哦)。
因为我使用的是Adafruit公司的Motorshield板,所以便用AFMotor函数库来驱动电机。如果你通过其他电路驱动步进电机,也可以选用Arduino步进电机函数库中的其他一些子程序来加快编程。如果你下载了我的程序,记得文件必须保存为.pde后缀,文件名可以自己修改。

** 程序 **


12   线性时钟原型---修改软件程序

你所选的步进电机不一定和我用的相同,为了使程序适用于不同的电机要进行修改,主要有以下几处:

1、改变电机声明变量的参数

AF_Stepper hourHand(20, 1); // hours
AF_Stepper minuteHand(20, 2); // minutes
第一行,改变数值20可以设定电机旋转一圈移动的步数。一般可设置为200(就是每步1.8度)。如果你没有所用电机的参数资料,那就只能通过实验来检测了,我相信你肯定能够设法得到这个数据。

2、改变stepsPerClock的参数

int stepsPerClock = 592;
这一步可能比较复杂,因为这个数据取决于线性时钟的长度,电机每转一圈的步数以及绕线轮的直径,需要利用公式计算出来。我只计算了电机移动100步时滑动块的移动距离,通过它就能方便的算出滑动块移动整个时钟长度时,电机需要移动多少步。这里注意应在时钟两端留出余量,防止滑动块从时钟两端滑落。

3、调整当前时间:

这个版本的程序中设置初始时间不太方便,下一版本中会进行修改,使我们能用Arduino板上的按钮来改变时间。
int currentSeconds = 0;
int currentMinutes = 55;
int currentHours = 11;
如果按照上面的值设定,时钟启动时指针会指向11点55分。有不少改进方法使设置初始时间更加智能,但是在原型中这个程序已经够用了。
我通常设置的初始时间比当前时刻晚一分钟,这样就留出了往arduino板上烧写程序的时间,刷新完程序等到恰好一分钟时再按下复位按钮。时钟刚启动时,分针可能会有些错位,偏离整分钟的位置,不用担心,用手调整到准确位置就可以了。

4、调整时间速度

通过下面这一行代码可以改变计时的速度。在测试时我把计时速度调整为实际的5倍。
int const millisPerSecond = 200;
上面这段代码设定每秒钟为200毫秒,而实际应该是1000毫秒,因此若想调回实际时间时,只要把200再改为1000即可。

13   线性时钟原型----指针、表盘

/gkimage/i4/h3/vs/i4h3vs.png
测试时,先用手将滑动块移到起始位置(00:00)然后启动时钟。如果你使用的是Arduino开发环境,还可以从串口接口的显示器读出时钟内部时间。当内部时钟数值改变时,电机就会运转,带动时钟表盘指针移动到相应位置。
虽然我知道实际过程可能没有那样简单,但是至少理论上是那样的。
接下来还需要制作表盘,可以打印或者干脆自己动手画一个,然后把两个卡片纸做的指针粘到上面,看,我们的线性时钟基本成型!注意两个指针距表盘的高度不能相同,否则在移动的过程中可能会"撞车"。此刻你就可以清理一下多余的杂物,再固定上支架,这样就可以把时钟立起来或者是挂起来。还可以再做一个外壳,把这些电子元件隐藏在里面。

14   原型的改进

/gkimage/dd/2c/qv/dd2cqv.png
● 我最开始设想的时钟使用弹簧作驱动,用石英机芯作时钟信号源,再通过电磁铁和齿轮传动链来带动表针移动。
● 线性时钟的原型完工后,我开始考虑如何改进。它想走进千家万户的话就必须要能适应多种环境,所以我就想制作一个更实用的改进版来对部件进行测试。

/gkimage/hk/43/31/hk4331.png
● 在改进版本中,我将一段两米长的铝制滑轨锯成两段,代替原来的pvc滑轨。我原本以为铝制的滑轨更牢固,因此时钟就能做的更长。可是在测试中,情况并非如此,铝制滑轨带来的改进并不明显。原因是铝制滑轨并非在所有部分都那么光滑,尤其端部十分粗糙,因为硬度高,想打磨光滑也很困难。如果最后还要对时钟进行包装的话,那金属滑轨就更没有什么明显的好处了。

15   改进尝试#1——珠状链环

/gkimage/vn/bn/v3/vnbnv3.png
● 从卷帘上找一条珠链----因为时钟长一米,所以要把它连成一米长的圆环---也就是说,所找的珠链至少要有两米才行,这样才可能连成这个链环。

/gkimage/xi/jc/8e/xijc8e.png
● 可是有个问题,卷帘上只有一个珠链轮,所以我测绘了它,并和两个支架和一些安装在导轨上的滑动块一同进行3D打印。
● 我在http://www.shapeways.com 上把设计图3D打印成实体零件,下面就是这些零件的STL文件,我相信它们会对你有帮助的。

** 图样一 **

** 图样二 **

** 图样三 **


/gkimage/ok/td/2b/oktd2b.png
● 刚开始我还用轻木做了两个滑轮。它们虽然可以工作,但是边缘做不圆滑,所以就放弃了。

/gkimage/w6/3h/uy/w63huy.png

● 这些设计似乎看上去很棒,样子很漂亮,表面也十分光滑。但正如我猜的那样,它们有个缺陷,那就是太重,那两个小电机根本奈何不了它们。如果电机的转矩能再大一点儿那就是绝配,所以虽然这想法十分简洁,现在我也只能放弃。

16   改进尝试#2——绕线和摩擦轮传动

/gkimage/ow/ze/3b/owze3b.png
● 我又改回用一段绕线来作为传动带,用我的小电机来驱动。不过这次我尝试用两个啮合齿轮来代替缝纫机绕线轮。这就能很好的解决绕线轮直径随绕线增多而变大的问题。

/gkimage/s5/ko/8n/s5ko8n.png
● 和滑轮一样,啮合齿轮也是从Rapid网站订购的。

/gkimage/jt/h0/a4/jth0a4.png
● 固定在电机转轴上的黄铜管由K&S Metals公司生产,是我从附近的器材商店淘到的。

/gkimage/94/44/ir/9444ir.png
● 我又多加了两个用塑料薄片裁剪成的引线装置,它们可以使绕线和齿轮保持对齐。

/gkimage/af/22/an/af22an.png
● 看似一切都很美妙,也的确能工作,但它们也有很大的局限性,那就是对工作条件太敏感了。因为是这套系统是靠摩擦力驱动,所以发生打滑的概率很大。即便刚开始运行很好也不能保证永远不出类似问题。我绞尽脑汁也对它无可奈何,我想所有靠摩擦力驱动的装置都会遇到这样的问题吧。

17   改进尝试#3——绕线轮的回归

/gkimage/nv/f6/ph/nvf6ph.png
● 所以,最终只好又重新选择了双绕线轮,但是我还是做了一些改进,适当改变其放置位置使绕线更均匀。提前尽量将绕线轮上的线绕均匀,这样绕线的轮和不绕线的轮才有相同的转动速度。

/gkimage/hl/no/2h/hlno2h.png
● 它虽然不像珠链传动系统那样简单,但是却很安静,更重要的是,它们重量轻,价格低,和这些小电机搭配很完美。

/gkimage/hl/no/2h/hlno2h.png
● 通过以上的过程,童鞋们也能感觉到,设计其实就是一个不断改进,不断折中的过程,经过这样的过程才能形成最终的实际作品。不经过辛苦的摸索,直接想把纸上设想的方案完美转化为现实是不太实际的做法。

/gkimage/cx/32/gx/cx32gx.png

18   收尾工作

/gkimage/sl/y4/1o/sly41o.png
● 我又在时钟背后的槽里安上了几个支脚,这样它就能站起来了,如果往这些槽里穿上绳子还可以把它挂在墙上。
● 我觉得我更想给它做个壳子。

19   装配电路

/gkimage/tl/dd/te/tlddte.png
最后一步是安装电路板。可以先把它们粘在一块小泡沫板上,再将小泡沫板固定到时钟背后。为了方便固定,可以在时钟背后适当的挖一些槽。
需要用到下面这些材料:
● 几英寸长的万能电路板
● 连接用的导线
● 与Motorshield引脚相匹配的导线插头
● 3个按钮开关和1个LED灯(我用的是弯脚型开关和散光LED,这样更便于操作。)

/gkimage/ed/90/ml/ed90ml.png
● 程序也进行了修改,现在时钟可以在按钮的控制下开启或关闭,当它停止时,表盘时间可以由另外两个按钮手动调整。
● 实现此功能靠的是Alexander Brevig按钮函数库。有了这些调节按钮,设置时间时就不用再连接电脑,时钟也就更实用了。但是如果万一时钟掉电,还是需要进行复位。

/gkimage/cc/d0/4l/ccd04l.png
● 对时钟的外观进行修整,使它看上去更像是一件产品。
● 3个开关分别连接2脚,9脚和10脚,LED灯连接在13脚。每个开关的另一脚都和地线相连,并且每个引脚都有上拉电阻(内置于Arduino板上),所以只要不短路,各引脚默认电压就是+5V。
● 程序会检测开关上的高(松开按钮)低(按下按钮)电平,当程序检测到按钮松开时便开始工作。

** 程序2 **


20   时钟指针制作

/gkimage/mb/kq/pg/mbkqpg.png
● 表针、绕线都固定在滑动块上,表针不应变形,要始终保持在与表盘距离适当的特定角度上。
● 一开始我只是用万能胶把绕线和纸板做成的指针粘到滑动块上。
/gkimage/xk/lm/l1/xklml1.png
● 纸板做成的指针制作简单,但是却不易保持形状----它会逐渐自动展开,这样就容易和另一个指针在重合位置时“撞车”。
● 因此我又制作了一些新的指针,粘上了一些细铁丝,这样指针的形状就能固定住了,然后再用从衣服上拆下的塑料粘扣把它们粘到滑动块上。

/gkimage/n6/2y/1w/n62y1w.png
● 用塑料粘扣固定绕线和铁丝非常牢固,固定好之后,再轻轻地把铁丝掰到合适的角度上就OK了。

21   总体评价及改进方向!

在最开头我就列出了对线性时钟的几个要求:

低功耗---最好不用电源,仅靠电池就能使用:没有达到这个目标。现在的这个方案使用了一个arduino板和两个步进电机。如果只用电池的话,arduino板上的微处理器尚可坚持些时日,但是再加上两个电机的话,我估计能坚持一周就不错了。虽然现在这个版本没达到设想要求,但是也能够接受,因为我突然意识到即便是用电源供电也不一定非要从墙上引出根难看的黑线来。线性时钟的电源线完全可以选用漂亮的纤维编织套管包装,或是用像音箱线一类的扁平电源线。目前的情况看用电池供电还是个梦想,但是我相信这个设想可以在一个不是微处理器和电机组合的版本中实现。


造价低——要在普通零售商店的价格范围内实现!至少我这么认为。为了回复一个读者的问题,我计算了一下使用简化电路时(非集成的分立元件电路)的成本,共计是40美元。如果批量购进配件的话,这个成本还可以更低。而且时钟的制作并不复杂,所以人工成本也不高。40美元的成本中不包括外壳,因为不同材质和外观的外壳价格也不尽相同,将外壳考虑进去时成本可能更高一些。如果成本按60美元计算,那批发价格可以到 120美元,零售价格更可高达200美元以上。听起来很诱人呦。如果我们取消中间环节,进行直销,又能降低部分成本。


水平、垂直皆可使用——实现!该时钟在任何状态下都没有靠重力工作的部件,滑动块和指针都很轻,所以时钟在水平和垂直方向都能使用。


指针不走时不能有噪音----实现!如果电机持续发出嗡嗡嗡的声音,那么这个声音如果被时钟外壳或墙壁放大会形成恼人的噪音。但是线性时钟指针运动的空闲中电机不通电,因此也就不会有持续的噪音了。但是当指针跳动时滑动块还是会发出咔咔的声音,不过我想用些毛毡应该能减小噪音。


重量轻——无需特殊的架子或钩子就能固定到墙上:实现!试验证明,把塑料的窗帘导轨升级到铝制的做法似乎是做了个无用功,导轨变得更重但是却没起到什么作用。但即便是换成铝制的导轨,墙上的挂钩也能承担起它的重量。加上个木质外壳也不用过分担心超重,因为相对于悬挂,我更倾向于将线性时钟摆放在某个地方(比如壁炉或书架上)。


满足多数人审美观点——要有多种样式、颜色和材料供选择:实现。之所以提这样的要求是因为我不想制作出来的时钟看起来怪里怪气,或是和普通家庭的格调迥异。我始终认为我做的时钟必须要有方便制作外壳的轮廓,而不能有突出的轴或是钟摆,否则为了给这些突出物留空间,我就不得不破坏时钟的外表了。 看着这制作成功的时钟,我很高兴,在我给大家讲它的制作过程时,它已经在我的桌子上滴滴答答的走了一周了。


不过要想制作成产品,还需要进行一些改进:
● 用带齿的链环或是珠状链环来代替两根绕线。这样驱动轮的直径就不会变化(因为它们不会层层堆积)。另外绕线在长期的运行中可能会变长,变松,这个问题可以尝试用短点的弹簧或是松紧带来解决。
● 使用独立元件组成的电机驱动电路来代替Adafruit的motorshield板。motorshield功能非常强大,但是用在这里显得大材小用。 可以使用几片L293芯片和一些三极管组成一个更加简单的电路,再搭配一个功能相对简单的arduino板,这样成本能降低不少。
● 在时钟的起点位置安装一个指针位置检测器,在指针每次到达起点时用来自动调整指针的位置。
● 选择更好的时钟内部计时方法。其实有很多方法都能实现这个目的,我感觉可以用石英钟上的计时芯片来进行改进。
这些都是今后要改进的方向。有些是为了提高产品的质量,有些是为了控制成本。毫无疑问,一个成本过高的产品即使十分完美也是没有商业价值的。

/gkimage/00/we/js/00wejs.png
感谢童鞋们能耐着性子读完我这篇冗长的制作介绍。我很乐意听到有人想试着自行DIY,希望上面这些介绍能对你有一些帮助。即使你没有按照我所设计的过程制作,也可以从这篇文章里找到已经被我尝试过的方法,我希望你也能享受DIY本身带来的无穷乐趣。

22   DIYer签到处

希望你的家中也能早早挂上这“条”潮得长青苔的钟!

资料来源

编辑:Luna3.0

果壳DIY站QQ群: 132647923 (加入时请报上你在果壳的个人主页地址,以防广告ID)

果壳DIY站微博: http://t.sina.com.cn/guokrdiy

投稿须知

The End

发布于2011-04-11, 本文版权属于果壳网(guokr.com),禁止转载。如有需要,请联系果壳。 如在其他平台看到此文章被盗用,请告诉我们(文章版权保护服务由维权骑士提供)

gunpole

电气工程硕士

pic