基于Circuit Playground Express与3D打印的机械心脏制作指南
2026/5/16 2:33:17 网站建设 项目流程

1. 项目概述:一个会“呼吸”的机械心脏

如果你对创客、STEAM教育或者互动艺术装置感兴趣,那么亲手制作一个能模拟真实心跳、并且心率可以手动调节的解剖心脏模型,绝对是一个能让你成就感爆棚的项目。这不仅仅是一个静态的展示品,它是一个融合了3D打印微控制器编程基础机械传动的综合性作品。想象一下,一个半透明、结构分明的3D打印心脏,在你的控制下,像生命体一样有节奏地舒张与收缩,这种将数字指令转化为物理运动的魔力,正是物理计算(Physical Computing)最迷人的地方。

这个项目的核心,是利用一块Circuit Playground Express开发板作为“大脑”,通过图形化编程工具MakeCode编写简单的逻辑,读取一个电位器(旋钮)的模拟信号,并将其转化为控制伺服电机转速的指令。电机通过一个简单的偏心轮机构,带动四片独立的3D打印心脏“瓣叶”往复运动,模拟心脏的搏动。整个过程,从建模、打印、编程到组装,你都能亲力亲为,最终得到的不仅是一个酷炫的展品,更是一套完整的跨学科知识实践。

无论你是想为生物课准备一个生动的教具,还是为艺术项目增添一个动态元素,亦或是单纯享受从零到一创造的乐趣,这个项目都提供了一个清晰、可实现的路径。它巧妙地将抽象的代码、无形的电信号与有形的机械运动连接起来,让你直观地理解现代智能装置是如何“活”起来的。

2. 核心硬件选型与电路设计解析

在动手之前,理解每个硬件的角色和它们如何协同工作是成功的关键。这个项目硬件清单精炼,每一件都有其不可替代的作用。

2.1 “大脑”:Circuit Playground Express开发板

Circuit Playground Express是这个项目当之无愧的控制核心。我选择它,而非更常见的Arduino Uno,主要基于以下几点考量:

  1. 高度集成与易用性:这块板子自带10个可编程RGB NeoPixel灯、运动传感器、温度传感器、光线传感器、声音传感器,甚至还有红外接收发射器。虽然本项目只用到其基础的GPIO和模拟输入功能,但这种“开箱即用”的集成度,极大简化了外围电路,避免了初学者面对一堆分立元件的茫然。
  2. 对MakeCode的完美支持:Circuit Playground Express是微软MakeCode官方深度支持的硬件之一。这意味着在MakeCode的在线编辑器中,你可以直接找到针对这块板子所有传感器的图形化代码块,编程体验无缝衔接,几乎零配置。
  3. 双启动模式与便捷编程:它支持UF2引导程序。通过USB连接电脑后,按一下复位键,电脑会识别出一个名为CPLAYBOOT的U盘,直接将编译好的.uf2文件拖进去就完成了程序烧录,过程如同拷贝文件一样简单,完全避开了传统Arduino需要选择端口和板型的繁琐步骤。

注意:市场上还有一款“Circuit Playground Classic”,它不支持MakeCode和UF2拖放编程。购买时务必确认是“Express”版本,这是项目能顺利进行的前提。

2.2 “肌肉”:连续旋转伺服电机

伺服电机通常用于精确的角度控制(如0-180度)。但本项目需要的是持续的往复旋转来模拟搏动,因此我们选用的是连续旋转伺服电机。它的内部电路经过改造,使得控制信号不再对应一个固定角度,而是对应一个恒定的旋转速度和方向。

  • 工作原理:普通伺服电机接收一个脉冲宽度调制信号,根据脉冲宽度(通常在1ms到2ms之间)转到特定位置。连续旋转伺服电机解除了这个机械限位,将脉冲宽度解读为速度指令:1.5ms脉冲对应停止,小于1.5ms对应一个方向的全速旋转,大于1.5ms对应反方向全速旋转。
  • 在本项目中的应用:我们将通过MakeCode,将电位器读取到的值(0-1023)映射到某个速度区间(例如对应脉冲宽度1.3ms到1.7ms),从而实现通过旋钮无级调节电机的“搏动”频率。电机轴心上粘贴的偏心圆盘是关键,它将电机的匀速旋转转化为上下起伏的往复运动,从而推动心脏瓣叶。

2.3 “感知与控制”界面:电位器与电源系统

  • 电位器:这是一个模拟输入元件。旋转旋钮会改变其电阻值,Circuit Playground Express的模拟引脚(如A1)会读取到一个随之变化的电压值(0-3.3V),并转化为0-1023的数字值。这个值就是我们代码中调节心率的核心参数。选择带塑料旋钮的滑杆或旋转式电位器均可,它为用户提供了最直观的物理交互方式。
  • 电源系统:整个系统的能耗不高,但电机启动瞬间需要较大电流。方案有两种:
    • 3节AAA电池盒:输出约4.5V,经济易得,是快速验证原型的最佳选择。务必选用带开关和JST-PH2接头的电池盒。
    • 3.7V 2200mAh锂电池:搭配微型USB充电板,可重复充电,更环保,电压也完全在开发板工作范围内。锂电池通常放电更平稳。
    • 关键配件——带开关的JST延长线:无论采用哪种电源,都强烈建议串接一个带开关的JST 2-Pin延长线。这让你能彻底切断整个系统的电源,而不仅仅是让开发板进入休眠,对于长期展示和安全性都至关重要。

2.4 电路连接图解

整个电路的连接极其简洁,遵循“电源并联,信号串联”的原则。

  1. 电源总线:将电池的正极(红色线)同时连接到Circuit Playground Express的VOUT引脚和伺服电机的VCC(或红色线)。将电池的负极(黑色线)同时连接到开发板的GND引脚和伺服电机的GND(棕色或黑色线)。VOUT引脚在板载USB有电时输出5V,在用电池时直接输出电池电压,非常适合为外设供电。
  2. 信号线连接:伺服电机的信号线(通常为橙色或黄色)连接到Circuit Playground Express的任何一个支持PWM输出的数字引脚,例如A1A2
  3. 电位器连接:电位器有三根线。两侧的引脚分别接开发板的3.3VGND。中间的滑动引脚(信号端)接一个模拟输入引脚,例如A0

实操心得:使用鳄鱼夹转杜邦线来连接电位器和开发板会非常方便,特别是在原型搭建阶段,可以免去焊接的麻烦,快速调整和测试。连接完成后,务必用扎带或胶带简单固定一下线材,防止因拉扯导致短路或接触不良。

3. 图形化编程:用MakeCode赋予心脏“节律”

对于没有编程基础的朋友来说,代码可能是最大的拦路虎。但MakeCode的图形化积木块设计,让控制逻辑变得像搭积木一样直观。我们完全不需要书写任何文本代码。

3.1 MakeCode环境搭建与初次使用

首先,访问微软MakeCode for Adafruit网站,选择创建新项目,硬件选择“Circuit Playground Express”。界面主要分为三块:左侧的积木块分类区,中间的代码编辑区,以及右侧的实时模拟器。模拟器里有一个Circuit Playground Express的虚拟模型,你甚至可以在烧录代码到实物之前,在这里测试程序逻辑,比如转动虚拟电位器看电机速度会不会变化,这个功能对调试非常有帮助。

3.2 核心代码块逻辑拆解

我们需要的代码逻辑非常简单清晰,主要在两个积木块内完成:

  1. “当开机时”积木块:这里放置只需要执行一次的初始化设置。我们需要将连接伺服电机的引脚(比如A1)设置为伺服电机模式。在MakeCode的“引脚”分类下,可以找到将引脚 [A1] 设为伺服电机 [180]°这个积木。对于连续旋转伺服电机,角度范围参数(180)本身不影响连续旋转功能,但必须设置这个模式来启用该引脚的PWM输出。

  2. “无限循环”积木块:这是程序的主循环,里面的指令会一遍又一遍地执行。我们需要做两件事:

    • 读取电位器值:从“输入”分类中拖出引脚 [A0] 模拟读取积木。这个值范围是0-1023。
    • 映射并控制伺服电机:电位器读到的原始值不能直接用于控制伺服速度。我们需要将其“映射”到一个合适的速度范围。在“数学”分类中找到映射 [值] 从 [低] [高] 至 [低] [高]积木。
      • [值]处放入引脚 [A0] 模拟读取
      • 从 [0] [1023]保持不变,这是输入范围。
      • 至 [X] [Y]是关键。对于连续旋转伺服,通常0代表全速正向,180代表全速反向,90代表停止。经过测试,为了让心脏有从“缓慢搏动”到“剧烈颤动”的可调范围,我将输出范围设置为至 [80] [100]。这意味着当电位器转到一端(读数为0)时,电机速度为80(较慢的反向旋转),转到另一端(读数为1023)时,速度为100(较慢的正向旋转)。速度值越接近90,转动越慢;越远离90,转动越快。这个范围需要根据你粘贴的偏心盘大小和期望的搏动幅度进行微调。
    • 最后,将映射后的值,通过引脚 [A1] 伺服写入 [值]积木输出,驱动电机。

3.3 代码烧录与调试实战

编写完成后,点击左下角的“下载”按钮,会生成一个.uf2文件。

  1. 用USB数据线连接Circuit Playground Express和电脑。
  2. 快速按一下板子中央的复位按钮。此时,板子上的所有LED会快速闪烁绿色,然后熄灭。电脑上会出现一个名为CPLAYBOOT的U盘。
  3. 将下载的.uf2文件直接拖入CPLAYBOOT盘符。拖入后,盘符会自动消失(系统可能提示“弹出错误”,可忽略)。程序烧录完成。

常见问题排查

  • 电脑不显示CPLAYBOOT盘:首先检查USB线是否是数据线(很多充电线只能供电)。尝试更换USB口或数据线。如果电脑出现的是CIRCUITPY盘,说明板子处于CircuitPython模式,此时需要快速双击复位按钮,即可切换到MakeCode所需的UF2引导模式。
  • 电机不转:首先检查电源是否打开(电池盒开关或JST延长线开关)。用MakeCode的模拟器测试代码逻辑是否正确。检查所有接线是否牢固,特别是电机的电源线是否接在了VOUTGND上。
  • 心脏搏动方向或速度不理想:调整代码中映射积木的至 [X] [Y]范围。如果心脏是“吸气”时张开而非“搏出”时张开,可以尝试交换X和Y的值(例如从[80][100]改为[100][80]),或者调整偏心盘在电机轴上的粘贴角度。

4. 3D模型处理与打印实战指南

心脏的机械结构是项目的视觉核心。我们使用的是基于开源解剖模型修改的四瓣叶设计,每个瓣叶独立运动,合起来形成一个完整的心室。

4.1 模型获取与预处理

项目所需的STL文件通常是一个包含“基座”和四个“心脏象限”(即瓣叶)的压缩包。下载后,你需要使用切片软件(如Ultimaker Cura、PrusaSlicer)将其转换为3D打印机可以执行的G代码。

  • 模型检查:在切片软件中打开模型,利用视图工具旋转、缩放,确认四个瓣叶模型是否完整,并且底部是否有足够的平面用于粘贴 cardboard hinge(纸板铰链)。检查基座模型中央是否有用于穿过伺服电机轴的孔洞。

4.2 切片参数精细设置

打印质量直接决定最终动作的流畅度和外观。推荐以下切片参数,你可以根据自己打印机的情况微调:

  • 层高0.2mm。这是一个在打印质量和时间之间取得良好平衡的通用设置,能保证模型表面足够光滑。
  • 壁厚:至少2倍喷嘴直径(0.4mm喷嘴则设为0.8mm)。足够的壁厚能保证瓣叶在反复运动中有足够的强度,不易断裂。
  • 填充密度15%-20%。对于这种非承重的动态模型,不需要太高填充,20%的网格填充足以提供内部支撑并保持轻量化。
  • 支撑结构必须开启。由于心脏瓣叶存在明显的悬空部分(特别是内部腔体结构),不开启支撑这些部位会打印失败。建议使用“树状支撑”或“线性支撑”,并将支撑与模型的“接触Z距离”适当调大(如0.2mm),以便于后期拆除,减少模型表面损伤。
  • 打印速度:外壁40mm/s,内壁和填充50-60mm/s。适当降低外壁速度能提升表面光洁度。首层速度务必更慢(如20mm/s),确保粘附牢固。
  • 材料选择:PLA材料是最佳选择。它易于打印,几乎没有异味,收缩率低,成品强度也足够。如果追求半透明的生物组织质感,可以选择浅红或肉色的透明/半透明PLA。

实操心得:打印完成后,拆除支撑需要耐心。建议使用模型专用剪钳精细镊子,从支撑与模型连接的边缘小心撬开。对于残留的支撑“疤痕”,可以用细砂纸(如800目)轻轻打磨。在粘贴纸板铰链前,确保瓣叶底部接触面平整干净。

5. 机械组装与动态结构实现

这是将静态模型变为动态装置的关键步骤,充满了手工制作的乐趣,也需要一些技巧。

5.1 制作驱动机构:偏心轮与电机座

  1. 电机固定板:从废纸箱上裁切一块约12x12厘米的硬纸板。在中心位置,用美工刀挖一个与伺服电机外壳形状匹配的方孔,能将电机紧密地卡进去,电机前部的安装法兰要卡在纸板背面。用热熔胶在纸板背面沿电机边缘加固一圈。
  2. 制作偏心盘:这是将旋转运动转化为往复运动的核心。剪一个小圆形纸片(直径约1.5-2厘米),用热熔胶将其偏离中心地粘在伺服电机的舵盘上。偏心距越大,心脏瓣叶的摆动幅度就越大,但电机负载也越重。建议先从小偏心距开始测试,如果搏动幅度不够,再在原有基础上粘贴更大的圆片来增加偏心距。
  3. 测试驱动机构:在将心脏瓣叶装上去之前,先给电机通电测试。观察偏心盘的旋转,它应该是一个平稳的、轴心不在圆心的圆周运动。用手轻轻触碰偏心盘边缘,能感受到规律的上下起伏的推力。这个推力就是驱动心脏“搏动”的源动力。

5.2 安装心脏瓣叶与铰链系统

  1. 制作纸板铰链:裁切4条长约12-15厘米、宽约2.5厘米的硬纸板条。它们将充当连接瓣叶和基座的“铰链”,既要牢固,又要允许一定程度的弯曲。
  2. 连接瓣叶:在每条纸板条的一端,用热熔胶将其垂直粘贴在一个心脏瓣叶模型的内侧底部。确保粘贴牢固,且纸板条的方向大致垂直于瓣叶的接触面。
  3. 定位与粘合:这是组装中最需要耐心和眼力的步骤。将带有偏心盘的电机板平放。将四个瓣叶(连同其纸板铰链)围绕电机中心摆放。关键点在于:四个瓣叶的纸板铰链的另一端,需要用热熔胶呈放射状地粘在电机板上的同一个圆周上,并且要确保每个铰链都有一定的弯曲弧度,使得四个瓣叶在自然状态下能合拢成一个完整的心脏形状。你可以先用铅笔在电机板上轻轻标记四个粘贴点,确保它们均匀分布。
  4. 调整与测试:粘合后,再次通电。观察四个瓣叶是否能被偏心盘顺畅地顶开和放回。偏心盘在旋转时,应该能依次接触到四个瓣叶内侧的某个点,推动它们向外运动。如果某个瓣叶不动或运动不协调,可能是其铰链粘得太紧或太松,需要微调铰链的弯曲度或粘贴位置。

5.3 包裹外层与整体集成

  1. 添加“心外膜”:为了赋予心脏更逼真的外观并隐藏内部机械结构,我们使用肉色或红色的弹力氨纶袜(或弹力布)作为外层。剪下袜筒的一部分,将其像套袜子一样套在组装好的心脏模型外部。弹力布的收缩力会温柔地将四个瓣叶拢在一起,同时允许它们向外扩张。这一步能瞬间提升模型的视觉完整度和逼真度。
  2. 整体装箱与布局:找一个大小合适的纸盒作为展示基座。在盒子侧面开孔,用于固定电位器旋钮和电源开关。将电机板(连同上面的心脏)用热熔胶或螺丝固定在盒子内部顶端。将Circuit Playground Express开发板、电池等元件合理布置在盒子内空余位置,并用尼龙扎带或双面胶固定,避免线材杂乱和元件晃动。
  3. 最终连线与美化:将所有电子元件按照之前的电路图在盒子内部连接好。检查所有接线无误后,合上盒子(或保留一面透明作为展示)。你可以在盒子外部贴上标签,例如“心率调节旋钮”、“电源开关”,甚至画上一些简单的解剖示意图,让它成为一个完整的教学或艺术装置。

6. 项目优化与扩展思路

完成基础版本后,这个项目还有巨大的潜力可以挖掘,你可以根据自己的兴趣进行升级。

6.1 功能扩展:从单一心跳到生命体征模拟

  • 添加音效:利用Circuit Playground Express板载的蜂鸣器或连接一个微型扬声器,通过MakeCode编程,让心跳声与机械运动同步。可以录制或合成“扑通、扑通”的心跳音,速度随电位器调节而变化。
  • 增加视觉反馈:利用板载的10个RGB LED,编写灯光效果。例如,心跳时所有LED同步闪烁红光,或者设计一个从中心向外扩散的脉搏波光效。
  • 引入自动节律:抛弃电位器,改用程序模拟更真实的心跳。例如,可以编写一个包含“收缩期”和“舒张期”不同速度的循环,甚至能模拟“窦性心律不齐”或“早搏”等特征,用于更高级的医学教学演示。
  • 无线控制与传感:为Circuit Playground Express添加蓝牙或Wi-Fi模块,通过手机App或网页来远程控制心率,甚至接入心率传感器,让模型实时反映佩戴者的真实心率。

6.2 结构优化:提升可靠性与表现力

  • 材料升级:用亚克力板或激光切割的木板替代纸板制作电机基座和铰链,结构强度和耐久性会大幅提升,适合长期展示。
  • 铰链机构改进:使用真正的微型合页或3D打印柔性铰链(使用TPU材料)来代替纸板铰链,可以使运动更顺滑、更耐久。
  • 模型精细化:使用更高级的3D建模软件(如Blender)对心脏模型进行修改,增加心房、大血管(主动脉、肺动脉)等结构,甚至可以将心室和心房做成独立运动的部分,制作一个更复杂的双心腔模型。

6.3 教学应用场景深化

  • 数据可视化:将电位器读取的心率值,通过串口发送到电脑,用Python或Processing编写一个简单的程序,实时绘制心电图般的波形图,将不可见的电信号和机械运动转化为可视化的数据。
  • 对照实验:制作两个心脏模型,一个作为对照,另一个可以模拟不同病理状态(如心率过快、过慢、搏动无力)。通过对比,让学生更直观地理解心脏疾病的表现。
  • 艺术化呈现:将整个装置放入一个精心设计的艺术场景中,比如一个发光的“生命之树”中央,或者一个蒸汽朋克风格的机械箱体内,结合灯光和音效,打造一个引人深思的互动艺术装置。

这个项目就像一把钥匙,它打开了一扇门,门后是物理计算、数字制造和跨学科创造的广阔世界。最让我着迷的,始终是那个旋动电位器旋钮的瞬间——你的指令通过代码、电流,最终化为机械心脏那充满生命律动的张合。这种从抽象思维到物理现实的直接映射,所带来的满足感是无与伦比的。不妨就从这里开始,动手创造属于你自己的、会跳动的奇迹吧。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询