1. 项目概述当量子物理遇见创客电子如果你对量子力学那些“既死又活”的玄妙概念感到好奇但又觉得它离现实世界太远那么这个项目或许能给你一个全新的视角。我最近用一块Arduino开发板、两个伺服电机和一个光敏电阻动手做了一个能“演示”薛定谔的猫思想实验的物理装置。这听起来可能有点跨界——一边是深奥的量子理论另一边是接地气的电子制作但恰恰是这种结合让抽象的科学原理变得可触摸、可交互。薛定谔的猫这个思想实验核心是想说明量子力学中的“叠加态”在宏观世界的荒谬性一只猫在盒子裡因为一个由量子随机事件比如原子衰变触发的机制会处于一种“既死又活”的叠加状态直到有人打开盒子观测状态才“坍缩”为其中之一。我的这个项目就是用电子工程的方法把这个思想实验具象化。一个伺服电机模拟“猫”的状态抬头代表“生”低头代表“死”另一个电机控制一个挡板来模拟“打开盒子”的观测行为而光敏电阻则充当“观测者”的眼睛——当环境光被遮挡模拟关闭盒子、不观测猫的状态随机切换保持叠加的“悬念”当光线照射到光敏电阻模拟打开盒子、进行观测猫的状态立即确定下来。这个项目非常适合对物理感兴趣的学生、电子爱好者或者任何想用动手的方式理解复杂概念的创客。它不要求你精通量子场论但通过搭建电路、编写代码和观察装置的物理反应你能直观地感受到“观测行为影响系统状态”这一量子力学的核心思想。接下来我会详细拆解从设计思路、电路连接、代码编写到外壳制作的全过程并分享我在调试过程中踩过的坑和总结的经验让你也能复现这个有趣的“量子猫盒”。2. 核心设计思路与方案选型2.1 为何选择Arduino与伺服电机组合要实现“薛定谔的猫”的可视化我们需要几个核心功能模块一个能随机决定“生”或“死”的“量子随机源”一个能体现这两种状态的“执行器”一个模拟“观测”行为的“传感器”以及一个控制一切的“大脑”。首先“大脑”我选择了最经典的Arduino Uno。原因很简单它足够普及资料丰富对于初学者和有一定经验的爱好者都非常友好。其ATmega328P微控制器的处理能力对于本项目——读取一个传感器、控制两个电机——来说绰绰有余。更重要的是Arduino IDE环境简单易用其丰富的库函数让控制伺服电机变得异常轻松无需深入底层定时器配置可以让我们更专注于逻辑的实现。其次对于“执行器”即表现猫状态的装置舵机伺服电机是理想选择。相比普通的直流电机舵机可以精确地控制旋转角度。我可以用0度代表“死亡”猫趴下90度或180度代表“生存”猫站立或抬头这种明确的、可视的角度变化比一个灯泡的亮灭或一个蜂鸣器的响停更能生动地体现“状态”的概念。两个舵机一个我们称之为“状态舵机”直接控制猫的模型另一个“挡板舵机”则控制一个挡板的开合用来物理上遮挡或暴露光敏电阻从而比单纯用一个开关按钮更具仪式感和隐喻性——观测行为本身改变了实验环境。2.2. 传感器选型与“观测”的隐喻实现如何定义“观测”在思想实验中观测就是打开盒子看一眼。在电子项目中我们需要一个能感知“打开”动作的传感器。常见的选择有按钮、超声波传感器、红外对管和光敏电阻。按钮虽然简单但过于直接缺乏“观测”的间接性和被动性——是你主动按下了按钮。超声波或红外传感器可以检测是否有物体比如手靠近这更接近“打开盒子”的动作。但我最终选择了光敏电阻。我的设计是将整个装置放入一个暗箱盒子中光敏电阻也置于其中。当箱盖关闭内部黑暗光敏电阻值很高代表“未观测”当箱盖打开环境光进入光敏电阻值骤降代表“观测发生”。这种设计巧妙地用“光”这个物理量隐喻了“信息”光子的进入带来了信息导致了波函数坍缩。这比检测一个特定手势更贴近原实验的哲学意味——是环境信息的介入改变了系统。2.3. 系统工作流程与逻辑设计整个系统的运行逻辑是项目的灵魂我将其设计为一个状态机主要包含两个模式“叠加态模式”和“确定态模式”。叠加态模式盒子关闭当光敏电阻检测到的光照强度低于某个阈值表示盒子关闭系统进入此模式。在此模式下“状态舵机”控制的猫模型其角度不会固定。我的程序会设置一个随机时间间隔比如1到5秒每隔一段时间就通过random()函数随机生成一个角度指令例如0度或90度并驱动舵机转动。从外部看你听到盒子裡舵机偶尔“吱吱”地转动但不知道猫具体是生是死它处于一种由程序定义的、快速切换的“动态叠加”中。此时“挡板舵机”处于关闭位置遮挡住光敏电阻维持暗环境。确定态模式盒子打开/观测发生当光敏电阻检测到光照强度超过阈值有人打开盒子光线射入系统立即跳出“叠加态模式”。程序会做两件事第一立即停止随机的角度切换将“状态舵机”锁定在当前最后一次随机生成的角度上这个角度就是“坍缩”后的确定状态。第二控制“挡板舵机”打开完全暴露光敏电阻这既是对“观测”行为的响应也确保了光敏读数稳定。此时观测者看到的是一个静止的、状态明确的猫。注意这里的“随机”是伪随机由Arduino的randomSeed(analogRead(A0))读取一个悬空模拟引脚如A0的噪声来播种可以在一定程度上模拟不确定性。但它并非真正的量子随机数。高级版本可以引入基于大气噪声的硬件随机数模块但对于概念演示Arduino的伪随机已足够。3. 硬件电路搭建详解3.1. 元件清单与核心参数在开始焊接之前请再次清点你的元件。除了项目正文中提到的我还补充了一些必要的和可选的配件让制作更顺利。核心元件Arduino Uno 开发板 x1项目核心控制器。兼容板如SMD版本的Uno也可用但建议使用原版或质量可靠的兼容板确保USB驱动和电源稳定。微型伺服电机SG90 x2这是最常用、性价比最高的选择。工作电压4.8V-6V扭矩约1.6kg/cm足够驱动一个轻质的猫模型和一个小挡板。务必确认是180度标准舵机。光敏电阻GL5528 x1其电阻值随光照增强而减小。在黑暗环境下阻值可达几兆欧明亮环境下可降至几千欧。这种大范围变化非常适合用于阈值判断。10kΩ 直插电阻 x1用于与光敏电阻组成分压电路。这是最经典的光敏电阻接法。精度5%的碳膜电阻即可。面包板与杜邦线公对公、公对母若干用于原型搭建。建议准备不同长度和颜色的线便于区分电源、地和信号。辅助与结构材料外部电源可选但推荐当同时驱动两个舵机时仅靠Arduino的USB供电5V/500mA可能会在舵机动作瞬间致电压骤降引起Arduino复位。建议使用一个5V/2A的直流电源适配器通过Arduino的DC接口或Vin引脚供电。电容推荐在Arduino的5V和GND之间并联一个100µF-470µF的电解电容可以缓冲舵机动作时的电流冲击让系统更稳定。猫模型与盒子可以用3D打印、激光切割木板如原文提到的尺寸或甚至厚纸板制作。猫模型要轻可以用纸片剪裁用热熔胶固定在舵机舵盘上。挡板一小片不透明材料塑料片、木板固定在第二个舵机上用于遮挡光敏电阻。3.2. 分压电路原理与光敏电阻接法光敏电阻不能直接接到Arduino的模拟输入引脚上因为它是一个阻值变化的元件我们需要将电阻变化转换为Arduino可以读取的电压变化。这就需要搭建一个分压电路。具体接法如下将光敏电阻的一端连接到Arduino的5V引脚。将光敏电阻的另一端和一个10kΩ固定电阻的一端连接在一起这个连接点我们称之为“信号点”。然后将这个“信号点”连接到Arduino的某个模拟输入引脚例如A1。最后将10kΩ固定电阻的另一端连接到GND地。它的工作原理是5V电压加在光敏电阻和10kΩ电阻这个串联电路上。根据欧姆定律两个电阻之间的“信号点”电压即A1引脚读取的电压等于5V * (R_fixed / (R_ldr R_fixed))其中R_fixed是10kΩ固定电阻R_ldr是光敏电阻的阻值。当环境变暗R_ldr变大分母变大分得的电压变小A1读取到的模拟值0-1023就变小。当环境变亮R_ldr变小A1读取到的值就变大。这样我们就通过一个简单的电路把光照强度变成了0-1023的数字。实操心得10kΩ这个值是个经验值。你可以根据你的光敏电阻型号和预期的光照环境调整。如果你希望装置在室内普通灯光下就能触发“观测”可能需要换用更小的电阻如4.7kΩ让信号点电压变化更敏感。反之如果只在阳光直射下才触发可以换用更大的电阻如22kΩ。调试时用Serial.println(analogRead(A1));在串口监视器裡观察不同光照下的读数再确定你的阈值。3.3. 舵机连接与电源注意事项两个舵机的连接方式一致但信号线需接在不同数字引脚上。接线每个舵机有三根线。通常棕色或黑色是GND红色是VCC电源正极橙色或黄色是信号线。电源强烈建议不要将两个舵机的VCC都接到Arduino板的5V引脚上。Arduino板载的5V稳压芯片输出能力有限约500mA-1A而一个SG90舵机堵转时电流可能超过500mA。两个一起动极易导致电压跌落Arduino重启。正确的做法是将两个舵机的GND都接到Arduino的GND将两个舵机的信号线分别接到数字引脚例如9和10但将两个舵机的VCC接到一个外部5V电源的正极同时将这个外部电源的GND也与Arduino的GND相连。这就是“共地”连接确保信号基准一致。信号引脚我选择数字引脚9和10是因为在Arduino Uno上这两个引脚支持使用analogWrite()函数进行PWM输出而舵机库Servo.h正是利用PWM来控制角度的。虽然Servo库理论上可以使用大多数数字引脚但使用9和10这类“硬件PWM”引脚通常更可靠。完整电路布局总结Arduino 5V → 光敏电阻一端。光敏电阻另一端 → Arduino模拟引脚A1且→ 10kΩ电阻一端。10kΩ电阻另一端 → Arduino GND。舵机1状态舵机信号线→Pin 9 VCC→外部5V GND→外部5V- (并与Arduino GND相连)。舵机2挡板舵机信号线→Pin 10 VCC→外部5V GND→外部5V- (并与Arduino GND相连)。在外部5V电源的正负输出端之间并联一个100µF的电解电容注意极性。4. 软件代码深度解析与编写4.1. 程序框架与核心变量定义我们将使用Arduino IDE进行编程。首先需要包含控制舵机的库并定义关键的引脚和变量。#include Servo.h // 引入舵机库 // 引脚定义 const int lightSensorPin A1; // 光敏电阻信号接在A1 const int catServoPin 9; // 控制猫状态的舵机接在9号引脚 const int lidServoPin 10; // 控制挡板的舵机接在10号引脚 // 阈值与状态变量 int lightThreshold 500; // 光照阈值需要根据实际调试确定。大于此值认为“打开盒子” int currentCatAngle; // 猫舵机当前角度 int currentLidAngle; // 挡板舵机当前角度 unsigned long lastChangeTime 0; // 上次改变猫状态的时间 int changeInterval; // 下一次改变状态的间隔时间毫秒 // 系统模式标志 bool isSuperpositionMode true; // 初始为叠加态模式 // 创建两个舵机对象 Servo catServo; Servo lidServo;代码解读lightThreshold这是区分“暗”未观测和“亮”观测的临界值。通过串口监视器观察你的光敏电阻在盒子关闭和打开时的读数取一个中间值。例如关闭时读数为200打开时为800那么阈值可以设为500。lastChangeTime和changeInterval这是实现“随机间隔切换”的关键。我们使用millis()函数进行非阻塞式的时间管理避免使用delay()导致程序卡死无法实时响应光线变化。isSuperpositionMode布尔变量true代表系统处于叠加态模式猫状态随机切换false代表确定态模式猫状态固定。4.2. 初始化设置setup函数在setup()函数中我们需要初始化串口通信用于调试、舵机并设置初始状态。void setup() { Serial.begin(9600); // 启动串口通信调试用 // 连接舵机到对应的引脚 catServo.attach(catServoPin); lidServo.attach(lidServoPin); // 初始化随机数种子用一个悬空的模拟引脚如A0的噪声 randomSeed(analogRead(A0)); // 初始状态挡板关闭遮挡光敏电阻猫处于随机一个角度 currentLidAngle 90; // 假设90度是挡板关闭的位置需要根据你的机械结构调整 lidServo.write(currentLidAngle); delay(500); // 给舵机时间转动到位 currentCatAngle random(0, 2) * 90; // 随机生成0或90度 catServo.write(currentCatAngle); delay(500); // 初始化第一次状态切换的间隔时间 changeInterval random(1000, 5000); // 随机1到5秒 lastChangeTime millis(); Serial.println(System Initialized. Schrodingers Cat is in the box...); }关键点说明randomSeed(analogRead(A0))这是改善Arduino伪随机数质量的小技巧。一个未连接的模拟引脚会读取到环境电磁噪声值在不停微小波动用这个值作为随机数种子可以使每次上电后的随机序列更“不可预测”。random(0, 2) * 90random(0,2)会返回0或1。乘以90后得到0度或90度分别对应我们定义的“死”和“生”。你可以根据需要调整角度。舵机的初始角度如挡板的90度必须根据你的实际机械安装来确定。你需要手动测试找到挡板能完全遮挡和完全暴露光敏电阻的角度。4.3. 主循环逻辑loop函数实现loop()函数是序的心脏它需要不断检查光线、管理状态切换。void loop() { // 1. 读取当前光照强度 int lightValue analogRead(lightSensorPin); Serial.print(Light: ); Serial.println(lightValue); // 调试输出确定阈值后可以注释掉 // 2. 判断模式切换 if (lightValue lightThreshold) { // 光照强进入“观测”/确定态模式 if (isSuperpositionMode) { enterObservationMode(); } // 在确定态模式下什么都不做保持状态静止 } else { // 光照弱进入“未观测”/叠加态模式 if (!isSuperpositionMode) { enterSuperpositionMode(); } // 在叠加态模式下执行随机状态切换 runSuperpositionMode(); } // 短暂延时降低循环频率避免过于频繁读取传感器 delay(100); }4.4. 关键功能函数剖析主循环中调用了三个核心功能函数它们的实现如下void enterObservationMode() { Serial.println(--- Box OPENED! State Collapsed. ---); isSuperpositionMode false; // 打开挡板让光完全照到光敏电阻 currentLidAngle 0; // 假设0度是挡板完全打开的位置 lidServo.write(currentLidAngle); delay(300); // 等待舵机动作 // 猫状态保持在进入此模式前的那一刻角度即“坍缩” // currentCatAngle 变量已经记录了当前角度无需改变 // 可以在这里添加一个提示音或LED闪烁表示坍缩发生 } void enterSuperpositionMode() { Serial.println(--- Box CLOSED. Entering Superposition... ---); isSuperpositionMode true; // 关闭挡板遮挡光线 currentLidAngle 90; lidServo.write(currentLidAngle); delay(300); // 重置随机切换的时间间隔 changeInterval random(1000, 5000); lastChangeTime millis(); } void runSuperpositionMode() { // 检查是否到达预定的状态切换时间 if (millis() - lastChangeTime changeInterval) { // 时间到切换猫的状态 if (currentCatAngle 0) { currentCatAngle 90; } else { currentCatAngle 0; } catServo.write(currentCatAngle); Serial.print(Cat state toggled to: ); Serial.println(currentCatAngle); // 为下一次切换设置新的随机间隔 changeInterval random(1000, 5000); lastChangeTime millis(); } }逻辑精髓enterObservationMode和enterSuperpositionMode只在模式发生改变时被调用一次用于执行模式切换时的“仪式性”动作移动挡板、打印信息等。runSuperpositionMode函数在处于叠加态时每个循环周期都会被调用。它使用millis()进行非阻塞计时时间一到就切换猫的角度并重新计时。这模拟了在未被观测时系统内在的、不确定的状态跃迁。串口打印信息是强大的调试工具。在最终版本你可以注释掉它们或者用LCD屏幕来显示状态会更美观。5. 机械结构与外壳制作要点5.1. 猫模型与联动机构设计猫的状态需要被直观看到。最简单的方法是用硬卡纸或薄木板剪裁一个猫的侧影。将猫模型的底部用热熔胶或螺丝固定在一个舵机附带的塑料舵盘上。当舵机在0度和90度间转动时猫就从“趴着”变成“站着”。关键技巧重心要低确保猫模型的重心尽可能靠近舵机的旋转轴。如果模型太高或上部太重舵机可能无力驱动或在转动时抖动。可以在模型底部加配重如硬币。连接要牢固舵盘和模型之间的连接必须结实。舵机在启停时有扭矩冲击不牢固的连接容易松脱。建议使用螺丝固定如果只能用胶务必确保接触面大且清洁。留出运动空间在设计外壳时必须为猫模型的旋转留出足够的扇形空间避免在转动过程中碰到箱壁。5.2. 暗箱设计与光路控制外壳的核心目标是创造一个可控的明暗环境。原文作者使用了激光切割的木板这是一个非常专业和美观的选择。你也可以使用现成的纸盒、塑料收纳盒甚至用乐高积木搭建。设计要点密闭性盒子在关闭时要尽可能不透光。接缝处可以使用黑色电工胶带或海绵条进行密封。这是确保光敏电阻读数准确的关键。观测窗你需要一个可以方便打开和关闭的盖子或门。这就是你的“观测口”。可以在门上贴一个“警告观测会导致态坍缩”的趣味标签。内部布局光敏电阻应安装在盒子内壁远离猫模型和舵机避免被机械部件遮挡。最好将其指向盒盖方向这样开盖时光线能直接照射到。挡板舵机这个舵机应安装在光敏电阻的前方。挡板的大小要确保在关闭位置时能完全覆盖光敏电阻的感光面。状态舵机与猫模型安装在盒子中央或靠前位置便于从观测窗查看。Arduino主板与线路可以固定在盒子底部或侧壁。所有电线用扎带整理好避免缠绕运动部件。开孔与走线在盒子侧面或背面钻一个小孔用于USB电源线或外部电源线的引入。孔不宜过大以免漏光。5.3. 挡板机构的实现细节挡板机构是模拟“观测行为”的物理交互点。将第二个舵机水平安装使其舵盘在一个垂直平面内转动。用一根细杆如牙签、竹签或一个小连杆将挡板垂直固定在舵盘上。校准步骤将挡板舵机连接到Arduino上传一个简单的测试程序让舵机在0度和90度间转动。手动将挡板安装到舵盘上但先不要粘死。运行程序至0度调整挡板位置使其完全离开光敏电阻前方确保光线能无遮挡照射。然后固定挡板。运行程序至90度检查挡板是否完全遮挡住光敏电阻。如果不完全可能需要修改代码中的角度值比如用85度或95度或者重新调整挡板的安装角度。实操心得舵机有死区且存在个体差异和齿轮回差。你代码裡写的90度实际机械位置可能不是绝对的。因此机械安装和软件参数必须联合调试。不要指望一次安装就完美要预留调整空间。可以使用可调式的连接如用螺丝夹紧而不是直接粘死来方便微调。6. 系统调试与优化实录6.1. 分步调试法从单元到整体不要一次性组装好所有部件再调试那样问题会纠缠在一起难以排查。建议按以下顺序进行第一阶段传感器调试仅连接光敏电阻电路5V GND A1 10kΩ电阻到Arduino。上传一个只读取A1引脚并打印到串口监视器的简单程序。打开串口监视器观察数值。用手完全捂住光敏电阻记录读数暗值。用手电筒照射它记录读数亮值。确定一个合理的lightThreshold例如取暗值和亮值的平均值。第二阶段单个舵机调试断开传感器连接一个舵机到9号引脚使用外部5V电源供电。上传Servo库的示例程序Sweep观察舵机是否能平滑地从0度转到180度。确认其运动范围符合你的机械设计需求。修改程序测试你需要的特定角度如0度和90度观察舵机是否能准确到位并保持稳定。第三阶段逻辑调试无机械负载连接两个舵机但仍不安装猫模型和挡板。上传完整程序但将控制角度的代码改为控制LED亮灭或在串口打印状态以代替实际的舵机转动。这样可以在不消耗大电流的情况下完整测试你的光照检测、模式切换、随机间隔逻辑是否正确。用手遮挡或照亮光敏电阻观察串口打印的模式切换信息是否准确状态切换的计时逻辑是否正常。第四阶段全系统联调将调试好的逻辑程序烧录进去。先安装挡板舵机和挡板测试开合是否顺畅能否有效遮挡光线。最后安装猫模型舵机注意观察在模式切换和随机切换时两个舵机同时运动是否会引起电源波动表现为Arduino重启。如果出现检查你的外部电源是否足够5V/2A以上并确认滤波电容已接好。6.2. 常见问题与解决方案速查表在调试和运行中你可能会遇到以下问题。这里列出我的排查经验和解决方法问题现象可能原因排查步骤与解决方案Arduino频繁自动复位1. 舵机动力不足或堵转电流过大。2. 电源功率不足或连线虚接。1.确保使用外部5V/2A电源单独给舵机供电并与Arduino共地。2. 在舵机电源正负极间并联一个470µF电解电容缓冲电流冲击。3. 检查猫模型或挡板是否卡住导致舵机堵转。减轻负载或调整机械结构。光敏电阻读数不稳定模式误触发1. 暗箱密闭性不好有漏光。2. 环境光变化如室内灯光闪烁。3. 阈值设置不合理。1. 加强暗箱密封使用黑色内壁吸收杂散光。2. 在程序中加入软件去抖连续多次如5次读取光敏值取平均值或中位数再与阈值比较。或者要求光照状态持续一段时间如200毫秒才触发模式切换。3. 重新校准阈值在串口监视器中观察典型明暗值。猫状态切换不随机每次上电序列相同randomSeed()播种的随机源不够随机。确保用于播种的模拟引脚如A0悬空不接任何线路。甚至可以连接一个很长的导线作为天线收集更多环境噪声。如果还不行可以结合millis()作为种子的一部分randomSeed(analogRead(A0) millis())。舵机转动到特定角度有抖动或异响1. 机械阻力过大或负载不平衡。2. 目标角度超出舵机物理限位。3. 电源电压不稳。1. 检查机械结构是否顺畅润滑轴套减轻负载。2. 避免将角度设置为接近0或180的极限值留出几度余量如5-175度。3. 用万用表测量舵机供电电压在动作时是否跌落严重升级电源或加大滤波电容。挡板无法完全遮挡/暴露光敏电阻1. 舵机安装角度未校准。2. 挡板形状或安装位置不佳。1.不要完全相信代码中的角度值。通过串口发送指令微调lidServo.write()中的角度找到能完全遮挡和完全暴露的两个实际角度值并更新到代码中。2. 调整挡板的形状或加长力臂确保其运动轨迹能覆盖光敏电阻。串口打印正常但舵机不动作1. 信号线接触不良或接错。2. 舵机电源未接通或电压不对。3. 代码中舵机对象未正确attach到引脚。1. 用万用表检查舵机信号线到Arduino引脚是否连通VCC是否有5V电压。2. 编写一个最简单的测试程序只让一个舵机转动排除主程序逻辑错误。3. 检查setup()中catServo.attach(pin)的引脚号是否正确。6.3. 功能扩展与创意优化思路基础版本完成后你可以考虑以下方向进行升级让项目更具表现力和互动性增加视觉反馈在盒子外部安装两个LED一个红色代表“死”一个绿色代表“生”。在确定态模式下根据猫的状态点亮对应的LED。在叠加态模式下让两个LED快速交替闪烁直观表现“叠加”概念。增加听觉反馈加入一个无源蜂鸣器。在状态每次“随机切换”时发出一个简短的提示音。在“坍缩”进入确定态发生时播放一个独特的音效增强仪式感。使用屏幕显示添加一块OLED或LCD屏幕显示当前模式“叠加态”、“已观测生/死”、光敏电阻实时数值、状态切换次数等详细信息使其更具科技感和教学性。改进随机性如前所述可以引入基于环境噪声的硬件随机数发生器模块获得更接近“真随机”的效果从哲学上更贴近量子力学的本质。制作更精美的外观像原项目作者一样使用激光切割亚克力或木板设计一个带有装饰图案、观测窗和说明文字的艺术化外壳。一个好的外观能让项目从“实验原型”升级为“展示作品”。这个项目最吸引我的地方在于它用如此具体和物理的方式触碰了一个极其抽象的概念。当你亲手关闭盒盖听到裡面舵机毫无规律地“咔嗒”作响你知道猫的状态正在编程定义的“概率云”中跳跃而当你打开盒盖一切声响归于平静猫凝固在一个确定的姿态——那一刻你不仅仅是看到了一个结果你亲身扮演了“观测者”完成了从叠加态到确定态的“坍缩”。这种体验是任何教科书或视频都无法给予的。它或许没有解释量子力学的数学但它成功地搭建了一座从宏观直觉通向微观奇观的桥梁。