1. 项目概述与核心原理如果你对电子制作和Arduino编程感兴趣并且想做一个看起来非常酷炫、能吸引所有朋友目光的玩意儿那么这个旋转LED时钟绝对是个绝佳的选择。它不像普通的数码管或点阵屏时钟那样静止不动而是通过一个高速旋转的LED灯条在空中“画”出时间和图案充满了未来感和机械美感。我第一次看到这种效果时就被它那种“无中生有”的显示方式深深吸引了这背后依赖的正是我们人眼一个有趣的生理特性——视觉暂留。视觉暂留简单来说就是当光线进入我们的眼睛在视网膜上成像后这个视觉信号并不会立刻消失而是会保留大约1/24秒。电影和动画就是利用这个原理通过快速播放连续的静态画面让我们感觉看到了流畅的运动。在这个项目中我们反其道而行之我们让一排LED灯高速旋转。在任何一个瞬间这排灯都只点亮了构成完整图像的一个“切片”。但由于旋转速度极快人眼无法分辨每一个独立的“切片”反而会把前后瞬间点亮的、处于不同空间位置的LED光点“连接”起来在大脑中合成一幅完整的、仿佛悬浮在空中的图像。这就是POVPersistence of Vision显示的核心。整个系统的硬件核心是一块小巧的Arduino Nano它负责整个显示逻辑的“大脑”。机械部分通常是一个由电机驱动的旋转臂LED灯条就安装在这个臂的末端。但这里有一个关键问题Arduino怎么知道旋转臂当前转到哪个位置了它需要一个“起点”或“参考点”来开始绘制每一帧图像。这就是霍尔效应传感器大显身手的地方。我们在旋转底座上固定一块小磁铁在固定的主板上安装一个A3144霍尔传感器。每当旋转臂带着磁铁经过传感器上方时传感器就会输出一个信号跳变。Arduino捕捉到这个信号就知道“好新一轮的绘制开始了现在是从0度位置起笔。” 有了这个精确的同步信号Arduino就能根据旋转的角度精确地控制每一个LED在正确的时刻点亮或熄灭从而“画”出稳定的字符和图形。这个项目不仅结果酷过程也极具学习价值。你会接触到微控制器编程、传感器应用、PWM调光、定时器中断甚至涉及到一些基础的机械结构和供电设计。它完美地融合了软件、硬件和一点点的机械知识是一个综合性很强的创客入门项目。2. 核心硬件选型与电路设计解析制作一个稳定可靠的旋转时钟硬件是地基。每一个元件的选择都直接影响到最终的显示效果、稳定性和续航。下面我们来详细拆解这份物料清单并解释其背后的设计逻辑。2.1 主控与显示单元为什么是Arduino Nano和8颗LEDArduino Nano是这个项目控制核心的不二之选。相比于UNO它体积更小、重量更轻这对于需要高速旋转的物体来说至关重要可以降低转动惯量让电机工作更轻松。同时它保留了UNO几乎所有的IO口和功能价格也更具优势。其内置的16MHz晶振提供了足够的处理速度来计算和输出显示数据。在实际焊接时建议先使用排母将Nano插在万用板上方便后续调试和更换。LED阵列选择了8颗普通的5mm直插LED。这个数量是权衡了显示分辨率、控制复杂度和功耗后的结果。8个像素在垂直方向上足以清晰地显示数字、字母和一些简单图标。如果LED数量太少如4个显示的数字会显得粗糙数量太多如16个则需要更多的IO口和驱动电流电路和代码都会变得复杂。8个是一个经典的折中点。LED的颜色可以选择高亮的白色或蓝色在环境中对比度会更好。务必注意LED是有极性的长脚为正极阳极短脚为负极阴极。限流电阻的计算是保证LED长寿的关键。我们使用3.7V锂电池供电Arduino Nano的IO口输出高电平电压约为5V。假设我们使用典型的5mm LED其正向压降Vf约为2.0V红/黄到3.3V白/蓝工作电流If通常为20mA。 以一颗白色LEDVf3.0V为例计算电阻值 电阻需要承担的电压 电源电压 - LED压降 5V - 3.0V 2.0V。 根据欧姆定律 R V / I 2.0V / 0.02A 100 Ohm。 原清单建议使用150欧姆电阻这是一个更保守和安全的值。使用150欧姆时实际电流 I 2.0V / 150Ω ≈ 13.3mALED亮度稍减但寿命更长对IO口的负担也更小发热更少。实操心得我强烈建议使用150欧姆甚至220欧姆的电阻。在黑暗环境下13mA的电流足以让LED非常明亮而过高的电流如20mA长期工作会显著缩短LED寿命尤其是在旋转产生的轻微振动环境下。2.2 位置感知与供电系统霍尔传感器与电池A3144霍尔效应传感器是整个系统的“眼睛”用于零位校准。它是一款单极开关型霍尔传感器意味着只有当南极或北极取决于型号靠近时才会触发磁场移除后恢复。我们将一块小磁铁固定在旋转的底座上将A3144传感器固定在静止的底板上并对准磁铁轨迹。当旋转部分每转一圈磁铁经过传感器一次传感器输出引脚就会产生一个从高电平到低电平或反之的跳变。Arduino通过中断功能捕获这个跳变将其作为每一帧图像绘制的绝对起始时间点。没有这个同步信号显示的内容就会漂移、抖动无法稳定下来。注意A3144的接线务必正确。通常它有三个引脚VCC接5V、GND、OUT信号输出。需要根据数据手册确认其有效触发磁极通常是芯片印字面靠近磁铁南极时触发。安装时传感器与磁铁的间隙要尽量小1-3mm为宜但绝不能碰撞。供电部分采用了单节3.7V锂电池通常是14500或18650。选择3.7V而非更高的电压如9V主要基于以下考量电压匹配Arduino Nano的输入电压范围为7-12V通过Vin引脚或5V通过5V引脚。3.7V锂电池充满电约4.2V无法通过Vin供电。因此我们需要将其直接连接到Nano的5V引脚。这是一种非标准用法但有条件可行。因为Nano板载的5V稳压芯片如AMS1117要求输入至少比输出高1V以上才能稳定输出5V。4.2V的输入勉强在其临界点当电池电压降至3.7V时5V引脚将无法提供稳定的5V可能导致系统不稳定或重启。解决方案更稳妥的方案是使用一块3.7V升压5V的稳压模块如MT3608等。将锂电池接升压模块的输入输出稳定的5V再接至Nano的5V引脚。这样即使电池电压下降也能保证系统稳定工作。当然如果为了极致简化在电池满电时直接接5V引脚短期测试是可以的但这不是一个可靠的产品级方案。续航与安全单节18650电池容量可达3000mAh以上假设整个系统工作电流在100-150mA理论续航可达20-30小时非常可观。务必为锂电池配备一个简单的保护板防止过充和过放。2.3 电路连接图与布线要点虽然原文只提到了“Schema”但我们可以构建一个清晰可靠的连接方案。核心思想是所有静止部分电池、霍尔传感器的电路都在底板上而旋转部分Arduino Nano, LED阵列的电路都在旋转臂上。两者之间通过滑环或无线供电无线数据传输复杂度高解决供电和信号问题。对于入门制作我们采用最经典的“无接触供电无线同步”简化版即旋转部分由安装在旋转轴上的电池独立供电霍尔传感器信号通过无线方式如红外对管或直接采用无刷电机本身的霍尔信号来模拟。但为了最直观地理解我们先描述有线连接的理论电路。假设所有元件都在同一块旋转的电路板上LED连接将8颗LED的阴极短脚分别通过8个150Ω电阻连接到Arduino Nano的8个数字IO口例如D2-D9。将所有LED的阳极长脚焊接在一起连接到电路板的VCC5V网络。为什么用共阳接法这样配置时当IO口输出低电平0VLED两端形成电压差电流从VCC通过LED和电阻流向IO口LED点亮。Arduino的IO口在低电平时的灌电流sink current能力通常比高电平时的拉电流source current能力更强驱动LED更稳定。霍尔传感器连接A3144的VCC接Nano的5VGND接GNDOUT信号线接Nano的一个支持外部中断的引脚如D2或D3。供电连接锂电池正极接Nano的5V引脚负极接GND。再次强调建议经过升压稳压模块。布线实操心得重心平衡将电池、Arduino等较重的元件尽量靠近旋转中心安装LED灯条延伸出去。这能极大减少旋转时的振动让显示更稳定。可以用配重块如螺母在对称位置进行平衡调试。走线固定所有导线尤其是LED引线必须用扎带或热熔胶牢固固定防止高速旋转时因离心力甩动导致脱焊或短路。留出调试接口在固定不动的底板上引出一个USB接口连接到Nano的编程口或者预留一个串口调试接口这样可以在不拆解的情况下更新程序或查看调试信息。3. 软件逻辑剖析与代码实现详解硬件搭建好了接下来就是赋予它灵魂的软件部分。POV显示的代码逻辑是其精髓理解了这个你就能自己设计显示任何内容。3.1 核心算法如何用一行LED“画”出字符显示的核心是一个“空间-时间”映射算法。我们把要显示的一整幅画面比如一个数字“12:30”看作一个二维位图。这个位图的宽度对应于旋转一圈的360度高度对应于我们那8个LED的物理位置。建立显示缓冲区在代码中我们定义一个二维数组作为显示缓冲区例如byte displayBuffer[360][8]。这个数组的每一行代表旋转的1度角总共360行对应一圈每一列代表从上到下的一个LED。数组中的每个元素是0或1表示在某个角度位置、某个LED是熄灭还是点亮。当然为了节省内存我们不会真的为每个角度都存储数据而是根据转速和刷新率计算需要多少“时间片”。同步与定时程序通过外部中断引脚监听霍尔传感器的信号。每次中断触发就将一个代表“当前角度”的变量如angle重置为0并启动一个高精度的定时器如使用micros()函数。角度计算与像素映射在定时器中断或主循环中我们根据自上次霍尔信号以来经过的时间以及已知的旋转速度RPM计算出当前的旋转角度。例如电机转速为600 RPM即每秒10转每转100毫秒。那么每毫秒转过的角度就是 360° / 100ms 3.6°/ms。如果距离上次霍尔信号过去了elapsedTime毫秒则当前角度angle (elapsedTime * 3.6)对360取模。数据输出根据计算出的angle取整后作为数组行索引从displayBuffer中取出对应那一行的8个比特即8个LED的状态通过IO口一次性输出到LED阵列上。形成图像这个过程以极高的频率每秒数千次重复。对于人眼来说由于视觉暂留在不同角度位置瞬间点亮的LED就被“连接”成了完整的、静止的图像。3.2 代码框架与关键函数这里提供一个高度概括但逻辑完整的代码框架并附上关键部分的解释。// 引脚定义 #define HALL_SENSOR_PIN 2 // 使用D2支持外部中断0 #define LED_COUNT 8 int ledPins[LED_COUNT] {3, 4, 5, 6, 7, 8, 9, 10}; // LED连接的引脚 // 显示数据缓冲区 (示例存储一个简单图形) // buffer[角度索引][LED索引] 1点亮 0熄灭 byte povBuffer[360][LED_COUNT]; // 时间与角度计算变量 volatile unsigned long lastHallTime 0; // 上次霍尔触发的时间戳 volatile float currentAngle 0.0; // 当前角度 float rpm 600.0; // 假设转速实际需要测量或校准 float usPerDegree; // 每旋转1度所需的微秒数 void setup() { // 初始化LED引脚为输出模式并初始化为高电平共阳接法高电平熄灭 for (int i 0; i LED_COUNT; i) { pinMode(ledPins[i], OUTPUT); digitalWrite(ledPins[i], HIGH); } // 初始化霍尔传感器引脚为输入并启用内部上拉电阻 pinMode(HALL_SENSOR_PIN, INPUT_PULLUP); // 为霍尔传感器引脚配置下降沿触发的外部中断假设磁铁靠近时输出从HIGH变LOW attachInterrupt(digitalPinToInterrupt(HALL_SENSOR_PIN), hallSensorISR, FALLING); // 计算时间参数 usPerDegree (60.0 * 1000000.0) / (rpm * 360.0); // (微秒/分钟) / (转/分钟 * 度/转) // 初始化显示缓冲区此处应填充实际要显示的数字或图形数据 initDisplayBuffer(); // 开启一个定时器中断用于定期更新LED显示。这里用简单的micros()差值模拟。 // 实际更精细的控制可以使用Timer1等硬件定时器。 } void loop() { // 主循环主要负责非实时性任务如 // 1. 从RTC模块读取当前时间如果有时钟模块 // 2. 根据时间更新显示缓冲区的内容将“12:30”转换成点阵数据填入povBuffer // 3. 处理可能的按钮输入调整时间 updateTimeAndDisplayBuffer(); // 实时显示由中断服务例程(ISR)和定时器控制不放在主循环中以保证时序精确。 } // 霍尔传感器中断服务程序必须快速执行 void hallSensorISR() { lastHallTime micros(); // 记录触发时刻的精确时间 currentAngle 0.0; // 角度归零 // 注意在ISR内避免使用delay()、串口打印等耗时操作。 } // 一个被高频调用的函数例如在定时器中断中调用负责根据当前角度刷新LED void refreshDisplay() { unsigned long now micros(); unsigned long elapsed now - lastHallTime; // 计算自上次同步后的角度 float angle fmod((elapsed / usPerDegree), 360.0); int angleIndex (int)angle; // 将浮点角度转换为整数索引0-359 // 从缓冲区读取当前角度对应的LED状态并输出 for (int i 0; i LED_COUNT; i) { if (povBuffer[angleIndex][i] 1) { digitalWrite(ledPins[i], LOW); // 共阳接法低电平点亮 } else { digitalWrite(ledPins[i], HIGH); // 高电平熄灭 } } } // 示例初始化缓冲区画一个简单的竖线 void initDisplayBuffer() { // 首先清空缓冲区 for (int a 0; a 360; a) { for (int l 0; l LED_COUNT; l) { povBuffer[a][l] 0; } } // 在角度0的位置点亮所有LED形成一条竖线 for (int l 0; l LED_COUNT; l) { povBuffer[0][l] 1; } // 在角度90的位置点亮最中间的4个LED povBuffer[90][2] 1; povBuffer[90][3] 1; povBuffer[90][4] 1; povBuffer[90][5] 1; }代码关键点解析volatile关键字在中断服务程序ISR中修改的、在主循环中也会读取的变量如lastHallTime必须用volatile声明。这告诉编译器不要对这个变量进行优化确保每次都能从内存中读取最新值。中断的快速性hallSensorISR()函数必须极其简短只做最必要的操作记录时间。复杂的计算或IO操作要放到主循环或定时器中断中。角度计算与取模使用fmod()函数进行浮点数取模运算确保角度始终在0-360度之间循环。缓冲区填充initDisplayBuffer()和updateTimeAndDisplayBuffer()是艺术创作和功能实现的地方。你需要编写函数将数字、字母、图形转换成对应的二维点阵数据填入povBuffer。这可以预先定义好字体库也可以实时计算。3.3 时间显示功能的实现要让这个旋转的灯条显示实时时间你需要一个可靠的时间源。有几种方案DS3231高精度RTC模块这是最佳选择。它自带高精度晶振和电池即使主系统断电时间也在持续走时。通过I2C总线与Arduino通信非常稳定。软件模拟RTC仅依靠Arduino的内部时钟精度很差每天误差可能达到数秒甚至分钟不适合作为时钟使用。网络授时NTP如果系统中有Wi-Fi模块如ESP8266可以定期从网络获取时间精度最高但系统复杂。添加DS3231后你需要在setup()中初始化I2C并设置RTC的初始时间通常只需设置一次。在loop()或定时任务中定期如每秒一次从DS3231读取小时、分钟、秒然后调用一个renderTimeToBuffer(hour, minute)函数。这个函数负责将时间数字如“12”和“30”转换成对应的点阵数据并正确地布局到povBuffer的相应角度区域。例如你可能决定在0-120度角显示小时“12”在120-240度角显示冒号“:”在240-360度角显示分钟“30”。4. 机械结构搭建与系统集成硬件和软件都准备好了现在需要把它们安全、稳定地组装起来并让它们转起来。机械部分是项目成功的关键一个抖动、不平衡的旋转体会让显示效果大打折扣。4.1 电机选型与驱动电机选择直流有刷电机最简单成本低但转速不稳定容易受电压和负载影响需要额外的调速电路和可能的速度反馈如编码器来稳定转速否则显示会伸缩变形。无刷直流电机这是更专业的选择。转速稳定、效率高、寿命长。许多无刷电机如航模电机内部集成了霍尔传感器其信号可以直接被Arduino用来做同步省去了额外的磁铁和A3144传感器。但需要无刷电调驱动控制稍复杂。步进电机转速极其精确可以通过编程精确控制每转的步数理论上可以实现完美的同步无需霍尔传感器。但需要步进电机驱动器系统相对复杂且在高速旋转时可能产生振动和噪音。对于入门者我推荐使用一个带减速箱的直流电机并搭配一个简单的PWM调速模块。减速箱可以提供更大的扭矩和更稳定的转速。通过实验找到一个PWM值使得电机转速接近你代码中预设的RPM如600。转速的轻微波动可以通过软件算法进行一定补偿。安装要点同心度电机轴与旋转臂通常是亚克力板或PCB的连接必须高度同心。任何偏心都会导致剧烈的振动。可以使用联轴器或精心设计的夹具。垂直度旋转臂的平面必须与电机轴垂直。可以用直角尺仔细校准。轴承支撑如果旋转臂较长仅在电机一端支撑可能造成悬臂梁抖动。可以在旋转臂的远端增加一个轴承作为辅助支撑点这能极大提高稳定性。轴承座需要精确地与电机轴对心。4.2 旋转体制作与动平衡调试旋转体通常由轻质材料制成如玻纤板、亚克力板或碳纤维板。将Arduino Nano、电池、LED灯条等所有旋转部件都安装在这块板上。动平衡调试是重中之重也是最需要耐心的一步初步布局将所有元件大致摆放在板上将最重的部件电池尽量靠近旋转中心。静态平衡将组装好的旋转板不接电机放在一个水平的刀口或平衡架上。观察它是否倾向一边。在较轻的一侧添加配重如小螺母、焊锡直到它能保持水平静止。动态平衡粗调以较低转速启动电机观察旋转时是否抖动。用手轻轻感受电机座的振动。在振动最大方向的反向位置尝试粘贴小块橡皮泥或蓝丁胶然后再次测试直到振动明显减小。动态平衡细调逐步提高转速重复步骤3。高速下微小的不平衡都会被放大。这是一个反复迭代的过程。实操心得使用手机慢动作摄影功能拍摄旋转中的灯条可以非常直观地看到抖动情况比肉眼观察更有效。4.3 供电与信号传输方案这是旋转系统设计的经典挑战如何给旋转部分供电并传输同步信号滑环方案这是最直接、可靠的方案。滑环通过电刷和旋转的导电环实现物理接触式的电力和信号传输。你可以购买微型滑环模块通常有3-5路通道分别用于VCC、GND和霍尔信号等。优点是稳定延迟低。缺点是存在机械磨损可能引入接触噪声。无线供电无线数据传输更酷但更复杂的方案。使用一对耦合线圈进行感应式无线供电同时使用红外对管或蓝牙/Wi-Fi进行数据传输。霍尔同步信号可以通过红外对管旋转部分装发射管固定部分装接收管来模拟。此方案无接触、无磨损但设计调试难度大效率相对较低。独立旋转供电无线同步即本项目原始思路的延伸。旋转部分由自身携带的电池供电完全独立。同步信号采用无线方式。这简化了机械结构但需要解决电池更换/充电的问题且整体重量增加。对于首次制作我建议尝试滑环方案。选择一款质量可靠的小型滑环将底板上的电源和霍尔传感器信号通过滑环连接到旋转的Arduino上。注意将信号线如霍尔信号与电源线电机驱动电源分开或采用屏蔽线以减少电机产生的电噪声干扰。5. 系统调试、优化与问题排查实录即使按照指南一步步做第一次上电也很大概率看不到完美的时钟而是一团乱闪的光晕。别担心调试是创客项目的必修课。下面是我在多次制作中积累的常见问题清单和解决方法。5.1 显示问题排查问题现象可能原因排查与解决方法显示完全混乱无规则闪烁1. LED引脚定义与代码不符。2. 霍尔传感器未触发或接线错误。3. 转速与代码中预设的RPM值严重不符。1. 逐个点亮LED测试写一个简单程序循环点亮每个LED确认硬件连接正确。2. 用示波器或万用表测量霍尔传感器输出信号。磁铁靠近时输出应有明显的电平跳变。检查中断引脚配置上升沿/下降沿。3. 用手机秒表或光电测速仪实际测量电机转速并更新代码中的rpm变量。图像抖动、漂移或拉伸1. 电机转速不稳定。2. 机械振动过大。3. 霍尔传感器同步信号不精确磁铁与传感器间隙变化。4. 角度计算的时间基准不精确。1. 为电机提供稳定的电源使用带反馈的调速电路或更换为无刷电机。2. 重新进行动平衡调试确保旋转体平稳。3. 确保磁铁和霍尔传感器安装牢固间隙恒定且小1-3mm。4. 使用micros()函数获取更精确的时间戳避免使用millis()。考虑使用硬件定时器中断来驱动显示刷新。图像暗淡或有重影1. LED限流电阻过大或供电电压不足。2. LED点亮时间占空比太短。3. 视觉暂留效应不足转速太慢。1. 检查电池电压确保在负载下仍能提供足够电压。尝试减小限流电阻如从150Ω换为100Ω但注意不要超过LED和IO口额定电流。2. 在代码中增加LED的点亮时间即每个角度位置的显示持续时间但注意时间过长会导致图像变粗。3. 提高电机转速。通常需要达到每分钟300转以上才能有较好的效果。只能看到一条亮线看不到字符显示缓冲区数据填充错误可能所有角度都填充了相同的数据如一条竖线。检查initDisplayBuffer()和updateTimeAndDisplayBuffer()函数确保你正在向不同的角度索引写入不同的数据以构成完整的字符图形。使用串口打印调试输出当前正在渲染的角度和对应的缓冲区数据。字符显示不完整只有一半霍尔传感器安装位置不对导致同步点不在图像绘制的起始角度。调整磁铁或霍尔传感器的相对位置。在代码中可以添加一个“相位偏移”变量。在计算angleIndex时加上这个偏移值从而软件调整图像的起始位置。例如int angleIndex (int)(angle phaseOffset) % 360;通过串口指令动态调整phaseOffset直到图像居中显示。5.2 软件与性能优化技巧当基本显示功能实现后这些优化能让你的时钟更稳定、更省电、功能更强大。使用硬件定时器中断代替在loop()中依赖micros()差值的轮询方式。配置一个硬件定时器如Arduino Nano的Timer1使其以固定的高频率例如20kHz触发中断。在中断服务程序中调用refreshDisplay()函数。这样可以确保LED刷新周期极其稳定不受主循环中其他任务如读取RTC的干扰显示效果会锐利很多。动态转速补偿电机转速不可能绝对恒定。我们可以让代码自动测量转速。在hallSensorISR()中我们不仅记录当前时间还计算与上一次中断的时间间隔这个间隔就是旋转一周的实际周期。用这个实时计算的周期来动态更新usPerDegree变量就能补偿转速的微小波动消除图像的伸缩现象。亮度与Gamma校正直接开关LED只有最亮和熄灭两种状态。如果想显示更复杂的灰度图像或实现平滑的动画需要使用PWM调光。但POV显示中每个LED在每个位置点亮的时间极短传统的PWM频率可能不够。可以采用二进制编码调制BCM或位角度调制BAM等专为POV设计的高灰度控制算法。此外人眼对亮度的感知是非线性的对低亮度更敏感。可以对PWM输出值进行Gamma校正例如输出值 pow(输入值/255.0, 2.2) * 255使亮度变化看起来更均匀。低功耗设计如果使用电池供电功耗很重要。在不需要更新显示内容时例如深夜可以让Arduino进入休眠模式仅保留RTC和外部中断唤醒功能。同时可以降低电机转速或间歇性关闭显示大幅延长续航。5.3 进阶功能拓展思路当基础时钟运行稳定后你可以尝试加入更多创意元素无线控制增加一个蓝牙模块如HC-05或Wi-Fi模块如ESP-01S通过手机APP或网页来调整时间、设置闹钟、更改显示模式如切换为温度显示、滚动文字等。环境感应加入温湿度传感器如DHT11让时钟在整点或其他时间显示当前环境参数。动画与图形利用更复杂的缓冲区管理实现简单的动画效果比如旋转的秒针、整点报时的特效动画等。多圈与彩色显示使用WS2812B等可寻址RGB LED灯条代替普通LED。通过精确的时序控制可以实现全彩显示。甚至可以使用两排或多排LED通过错位安装和复杂的算法实现“3D”立体显示效果。这个基于Arduino的POV旋转时钟项目从理解视觉暂留的原理开始到硬件选型、电路焊接、软件编程、机械组装最后完成调试和优化是一个贯穿了电子、编程、机械的综合性实践。过程中遇到的每一个问题都是深入学习的机会。当看到自己亲手制作的装置在空中清晰地显示出时间的那一刻所有的努力都会变得无比值得。它不仅仅是一个时钟更是一个展示创客精神和工程思维的动态雕塑。