基于视觉暂留的钟面设计 最终方案报告外文翻译资料

 2022-10-28 03:10

英语原文共 18 页,剩余内容已隐藏,支付完成后下载完整资料


基于视觉暂留的钟面设计

最终方案报告

2000.12.8

Mike Aung, Brooke Bassage-Glock, Matthew Gay

【摘要】目前,市场上存在一种基于视觉暂留的数字时钟,包含由弹簧驱动的倒立摆,在摆杆上有一条LED随着摆杆的摇摆而闪亮,因此出现一个漂浮在空中的数字时钟。我们的项目是一个依赖视觉暂留的新风格的时钟设计。然而 ,我们使用一个旋转的摆杆输出一个模拟钟面而不是使用一个钟摆,由FPGA控制发光二极管和提供了准确时间的输出。

前言

依赖视觉暂留的时钟不是新产品,在许多购物中心的科学商店都可以发现它们。然而,目前市场上所有的时钟都是使用倒立摆设计,一个塑料条连接着基台上的一个支点,用户把塑料条拉到一边然后再释放它,使它来回摆动(基台的弹簧提供振荡动力)。有5到10 个LED在棒上排成一行并高频闪亮,这样就有一个数字时钟钟面浮在基台上。一个很好的商业化生产时钟的例子可以在http://www.fantazein.com上看到。

这些数字时钟是非常有趣的产品,但是我们想要更新颖的设计。因此,我们决定使用一个旋转棒输出一个模拟时钟钟面而不是使用一个摆杆。我们最初的目标是不仅输出钟表指针,还有数字3、6、9和12。然而,在这个设计中我们存在一些难题,所以我们决定放弃数字,代之以每小时刻度线。

时钟主要由两个系统组成。FPGA用来控制led,设置时间和掌控时间。机械系统由电机、旋转棒,和用来旋转LED棒的电刷组成,让信号从静止的FPGA传输到旋转led上。我们的项目的设计框图如下所示:

旋转杆与led长条安装在电路板上,我们希望电动机旋转长条的速度是一个常数。FPGA包含两个逻辑模块,有一个时钟信号控制实现显示小时,分钟,秒,通过线路可以进入时钟设置时间,正确的时间再通过线路输出。

硬件

滑环

这个项目最困难的部分是设计一个从一个静止的点控制的带有LED的旋转杆。我们一开始有可能从旋转接头获得信号,有一些商用接头能够做到这一点,但这超出了我们的预算。我们最初的想法是使用四行手机绳控制线连接板子。但是发现手机绳是一种具有非常高摩擦装置,经过一些测试后,我们认为使用该控制线需要一个非常高的力矩马达。我们还考虑旋转所有的数字逻辑,这样我们只需要一个通过连接点的动力,但这会影响我们使用项目所需要的FPGA。最后的想法是使用类似于卡槽车上使用的滑环系统,导电材料构成的同心圆被放置在旋转棒下面,金属条挂在旋棒上且在旋棒旋转时保持在同一个圆上。该系统示意图如下所示:

最终方案被证明是最成功的,就是我们使用的设计。用一只飞刀在PCB上切出5根导电材料构成的同心圆,然后从板子的中心钻一个洞为了转轴运行通过。插槽车金属刷是用来在圆上旋转的滑环,将它成一个角度安装到旋转棒上。使用插槽车滑环有两个原因,首先,它们本身形成三角形,所以我们不必再将所有滑环塑造成同样高度。第二,滑环具有弹力,这意味着在触碰到焊点时他们能够仍接触圆环轨道。传感器系统的近距离照片如下所示:

发动机

为这个项目选择一个电动机并不像我们原来想象得那么简单。我们需要的电机具有以下特点:高转矩、高转速,转速稳定。设计的第一个发动机是一个软盘驱动器,它有相当高的扭矩,合理的高转速,它有一个内部电动机控制器因此我们期望它具有稳定的转速。然而,经过一些测试,很明显,软盘驱动电动机的旋转控制系统没有达到旋转旋棒的要求。这个发动机有两个速度:快和慢,不幸的是当它试图推动我们的旋棒,有足够转矩使控制器把速度控制在两者之间,同时,没有足够的扭矩来克服皮卡和环之间的摩擦, 所以我们试图减少摩擦和环之间的压力但导致了不好的连接。所以,总的来说,软盘驱动器的应用并不成功。我们下一个电动机从无线电器材公司得到的高速直流电机。考虑到3.49美元低成本我们对它是否有足够的转矩存在怀疑,但事实证明它是一个很好的发动机。在旋转速度高于600 RPM时它与与我们时钟所需速度相协调,并且在转矩要求上也没有太大的问题,只是有时候确实需要一点推力让它运转。但这种电动机主要有两个问题。首先,我们不能得到一个恒定的转速,这可能要与某种控制系统结合来保持它的旋转速度恒定。第二个问题是,运行时它会过热然后慢下来。很大可能原因是它不得不具有大的扭矩(这无疑是具有较大电流),也可能是由于电动机安装在一块木头上,没有很好地散热。然而,尽管存在这些问题,我们坚持选用这个发动机因为它能很好地运行,我们没有时间去找一个更好的解决方案。

FPGA设计原理图

FPGA有两个主要部分,每一个都由两个模块组成。时钟模块允许用户设置时间,并跟踪时间。然后时间信号从这些模块传输到LED控制模块。LED控制模块使用时间数据在恰当的时期闪亮LED。包含所有的输入和输出模块框图如下所示:时钟

用Verilog设计时钟是相当简单的,它包括两个模块,可以在附录中找到。第一个模块 Second.v是一个简单的时钟分频器,输出一秒钟时间的时钟信号。1MHz时钟频率很容易实现这个设计,所有这些模块所要做的就是转化输出每500000个时钟周期。第二模块clock.v跟踪时间。他从Second.v中得到1Hz的时钟信号并使用它作为一组三个计数器的时钟(小时、分钟、秒)。然而不是使用标准的时间值,而是跟随指针的位置。这意味着,如果时间是3:21,输出小时= 90,分钟= 126。因此时钟只不过是3个计数器。分钟和秒钟计数器以6递增,小时计数器以30递增。设置时钟有两个输入位setm和seth。正常运行的时钟这两位都在低电平。如果设置为高,小时和分钟每秒增加一次,这允许用户轻松地在输入位高时设置时间,然后在设定好时间后将他们恢复低电平。

LED 控制

有两个Verilog模块用于控制LED闪光。第一个模块,position.v,测算旋棒的角度。它基本上是一个从0到360的计数器,通过调整增量之间的时钟周期数,很容易适应发动机的速度。对于我们的项设计,汽车将旋转大约10Hz。另外一个softreset信号输入position.v,用于计数器重启归零。这是补充是希望电动机转速会足够稳定,我们可以简单地运行略慢速度电动机,然后使用光电门发出一个脉冲把旋棒重置到12点位置,这将更容易调节电机速度。不幸的是,电动机转速多变,很明显,这种方法是不够的。第二模块, hands.v,实际上就是控制杆上的发光二极管。它position.v输出的角度位置与clock.v所输出的时间处理比较,当两个值是相同的,就可以设置h(时针)或m(分针)。

结果

我们从来没有能使时钟完美运行,但是我们对这个项目的结果基本满意。我们的最终项目能够在时间上有重要的准确性,以及输出某种形式的钟面。然而,我们无法让电动机以恒定速率旋转。因此钟面在形状上没有完美协调而在范围内旋转。通过调整电机的电压我们可以让钟面更易观察,但即使我们使电机与FPGA完全相符,电动机转速也会漂移。所以,我们的设计是比较成功的,但并非完美的。

我们最终的设计包括图片和在运转中的动态展示。第一张图片展示了固定设计。你可以看到滑环怎样连接轨道的,事实上滑环划过镀铜板留下了些微闪亮的痕迹。基础的设计并不是那么明显,但如果你仔细看看图片的底部,您可以看到,我们把电机外部金属板安装在一块木头上。这块木头有两个目的:它为电机提供了安全保护并且抑制了一些振动。

接下来,我们仍然有一个时钟的截图,来自对运转中的时钟的视频。视频的开始发动机显然没有调谐好,指针疯狂地旋转。但是在视频后半部分,电机变得更加优化,您可以清楚地看到指针。视频是从setm位置高开始,因此分针移动的速度每秒一分钟。在视频中,看起来只有一半的时钟外环是任何时间都可见的,钟面黑暗的缺口。这是相机的拍摄结果而不是一个真正的效果。当我们观察时钟时没有明显的黑点,正如在静态图像上可以看到的一样。从这个视频,很明显,我们的时钟几乎功能完善,但是我们需要在稳定的电机下工作。

我们原本以为可以通过输入position.v的softreset 控制漂移运动的速度。我们可以忽略马达的速度是轻微变化的,所以12点总是在同一个地方。不幸的是我们的运动速度是如此的不稳定,这个计划显然是不会成功的。我们有两个可能的替代方法使该功能正常使用。第一个是使用某种形式的电路控制电机以不变的速度旋转,这可能是通过某种反馈回路就会给我们更稳定的电动机转速。另一个替代方法是不假定电机匀速旋转,相应调整LED闪光频率。这可以同样用某种反馈回路实现。对于第一个方法,我们可以基于前面的旋转的时间周期。这个想法似乎是最有用的,因为不管什么运行速度它都会实现一个稳定的时钟。然而,这样的安排将导致随着时间的推移钟面的漂移,因为LED控制器不能立即进行调整,随着时间的推移钟面会周期循环。减少这种漂移我们可以每隔百周期左右(可能或多或少,取决于电机的稳定)使用置位键。除了用一些系统获得一个稳定的速度,我们也应该升级我们的电机,或者减少我们滑环和轨道之间的摩擦。当前的设置下无法使电机运行超过10分钟。更高的力矩马达肯定会解决这个问题,或者某种更好连接旋转接头的系统。改变电动机和添加一个反馈回路应该足以稳定钟面。

我们原本计划在钟面上输出数字3,6,9和12。不幸的是,我们每有时间去实现这一点,最终无奈放弃选择了以上最终设计。添加数字需要额外的7个二极管和5个额外的输入。这用我们现有的系统的轨道和刷子可能实现,但是它会导致一个相当大的硬件基础。相反使用一些简单的编码控制发光二极管和在旋棒是放置解码器可能是最容易。这就意味着我们不需要添加更多的轨道,而且不会很难实现。另一个非常简单的修改是添加秒针,这只不过输出一个“s”位类似于“m”和“h”位。然而,它可能需要在电路上添加一些LED来使分针和秒针之间不会产生混乱。

元件

来源

标识#

价格

电机

无线电器材公司

273-256

$3.49

蓝色LED

无线电器材公司

900-7170

$4.19

电路板

无线电器材公司

276-1395

$2.19

卡槽车滑环

Pegasus Hobby

Aurora XL400

$2.29

元件清单

附录A - Verilog代码

Hands.v

// Matthew Gay

// hands.v outputs a single bit for the hour (h) and minute

hands (m),

// as well as a bit that controls the hourly tick marks

(tick).

// If h=1, then the hour hand is on, otherwise its off.

module hands(clk,reset,softreset,seth,setm,h,m,tick);

input clk,reset,softreset,seth,setm;

output h,m,tick;

reg h,m,tick;

reg [9:0] hour;

reg [9:0] minute;

reg [9:0] second;

reg [9:0] angle;

clock gettime(clk,reset,hour,minute,second,seth,setm);

position getposition(clk,softreset,angle);

always @ (angle or hour or minute or reset)

if (reset)

begin

h lt;= 0;

m lt;= 0;

tick lt;= 0;

end

else

begin

if ((angle == hour) || (angle == minute)) h lt;= 1;

else h lt;= 0;

if (angle == minute) m lt;= 1;

else m lt;= 0;

if (angle == 0) tick lt;= 1;

else if (angle == 30) tick lt;= 1;

else if (angle == 60) tick lt;= 1;

else if (angle == 90) tick lt;= 1;

else if (angle == 120) tick lt;= 1;

else if (an

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[152892],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。