这是一个结合了3D打印、舵机、PIR传感器和DFPlayer MP3模块的DIY项目,旨在制作一个带有动画眼睛的"鱿鱼游戏"老板面具。当检测到动作时,面具的眼睛会移动并播放声音,非常适合万圣节使用。
这个项目是一个很好的起点,特别适合那些想控制眼球运动和播放特定音频文件的小伙伴们。通过协调PIR传感器检测到的运动、舵机的移动和DFPlayer的音频播放,你可以实现一个非常优秀的动画效果。
步骤1:3D打印部件
眼睛及面具本身都是使用标准3D打印机和PLA打印出来的。打印质量为中等,如果你想要更好的外观,可以打磨然后平滑地涂上颜料。
3D打印组件包括:
- 面具(面部)
- 两个眼球
- 两个眼睑
- 舵机支架(用于固定所有5个舵机)
- 万向节(用于实现眼睛的平滑运动)
- 支撑面具内部的两根杆
- 用于盖住电子元件和便于安装在墙壁上的背板
你可以选择使用不同颜色的眼球,甚至在打印后手绘。万向节对眼睛的平滑运动至关重要,使其能够模拟真实的动作。
3D打印文件可以文末下载。
步骤2:组装眼睛
现在我们有了3D打印的部件,是时候开始组装眼睛了。我们将使用五个MG90S舵机来控制眼睑和眼球的运动。以下是需要的材料:
组件:
- 5个MG90S舵机
- 铁丝(我们使用几个回形针来连接杆)
- 钳子和剪线钳
组装过程:
校准舵机:确保所有舵机初始位置为90度。这对于确保动作的正确校准非常关键。
安装舵机:将每个舵机放入3D打印的舵机支架中。两个舵机控制眼睛的左右运动,两个控制上下运动,一个用于眼睑。
连接眼球:使用回形针线将舵机与眼球连接,形成连杆结构。这会将舵机的旋转传递给眼球运动。添加万向节确保眼球运动平滑。
连接眼睑:最后一个舵机将控制眼睑,使你的面具能够眨眼或闭眼。使用相同的方法将眼睑连接到舵机上。
眼睛的运动依靠伺服电机在两个轴上(上下和左右)进行操控。每只眼睛的运动由两个伺服电机控制,而眼睑的开合则由一个伺服电机控制。
步骤3:测试眼睛
在我们继续项目的其他部分之前,先来测试一下眼睛确保一切正常。
以下是测试的简单电路设置:
- 将舵机连接到面包板。
- 上传一个简单的舵机控制代码,使眼球向各个方向移动,并眨眼。
使用Arduino IDE上传代码,并观察运动。可以根据需要调整角度和延迟时间。
舵机连接
我们的设置第一部分涉及将五个舵机连接到Arduino Nano。这些舵机将控制以下运动:
- 舵机1:左眼的水平运动
- 舵机2:左眼的垂直运动
- 舵机3:控制眼睑
- 舵机4:右眼的垂直运动
- 舵机5:右眼的水平运动
以下是IO引脚分配:
- 舵机1:数字2
- 舵机2:数字3
- 舵机3:数字5
- 舵机4:数字6
- 舵机5:数字9
确保你的舵机有合适的外部电源供电,因为Arduino板载的5V供电不足以为多个舵机供电。
代码说明
舵机控制代码使用Servo库来管理每个舵机的运动。它定义了左右移动以及眼睑上下移动的具体角度。设置部分初始化了每个舵机,设定初始位置,并包含一个循环,以便在定义的角度之间平滑过渡。眼球的运动是根据代码中设定的条件触发,确保眼睛按照预期动作。
代码可以在文末下载。
步骤4:设计PCB
设计一块PCB来整合所有组件,包括DFPlayer、PIR传感器、舵机、扬声器和Arduino Nano。目的是创建一个更稳定的电路和原型。
组件包括:
- Arduino Nano(主控制器)
- DFPlayer MP3模块(用于声音)
- PIR传感器(运动检测)
- 5个舵机输入
- 扬声器用于音频输出
作者选择了PCBWay进行电路板制作。Gerber文件和电路原理图可以在这一链接中找到:[PCBWay项目链接](https://www.pcbway.com/project/shareproject/The_Face_maker101_c4124445.html “PCBWay项目链接”)。如果你没有焊接经验,也可以使用PCBWay的组装PCB服务。
组件清单包括用于电源需求的电容、用于电机数字输入的电阻、用于传感器和扬声器的接线端,以及DFPlayer和Arduino Nano用的公母针座。
- 电阻和电容(用于功率调节)
- 接线端(用于传感器和扬声器连接)
- 公/母针座(用于DFPlayer、Nano和电机)
之后把所有的组件焊接到位。
步骤5:”面具“的主代码
集成PIR传感器和DFPlayer
一切都安装好,接下来需要将主代码上传到Arduino Nano中。这段代码整合了PIR传感器、舵机和DFPlayer MP3模块。原理很简单:当PIR传感器检测到运动时,舵机会移动以打开眼睑并移动眼球,同时DFPlayer播放声音。
代码的关键组成部分包括:
- PIR传感器检测到运动时触发。
- DFPlayer播放存储在SD卡上的声音文件。
- 舵机控制眼球和眼睑的运动。
DFPlayer Mini和扬声器设置
DFPlayer Mini是一款简单、低成本的MP3播放器,可以播放存储在microSD卡上的音频文件。在这个项目中,它将在PIR传感器检测到运动时播放声音文件。
- 将DFPlayer的RX引脚连接到Arduino Nano的数字11,将TX引脚连接到数字10。
- 将扬声器连接到DFPlayer的SPK+和SPK-引脚用于声音输出。
PIR运动传感器连接
- PIR传感器将检测运动并触发舵机运动和音频播放。
- 将PIR传感器的输出引脚连接到Arduino Nano的数字7。
使用9V外部电源为电路供电,确保稳定性能。布线和编码完成后,就可以测试你的项目了。
- 将代码上传到Arduino Nano。
- 确保PIR传感器放置在易于检测运动的地方。
- 当PIR传感器检测到运动时,控制眼睑的舵机应打开,DFPlayer应播放预加载的声音文件。
- 然后,舵机将以协调的顺序移动眼球。
代码解释
主代码使用DFPlayer库来控制音频播放,同时与PIR传感器的输出进行协调。当检测到运动时,代码触发舵机移动眼睛并同时开始音频文件播放。这种同步增强了效果,使眼睛显得更加逼真。代码有效处理各种情况,确保眼球运动和声音播放之间的无缝过渡。
注意:附带文件“1.mp3”包含了项目中使用的声音“I see you(我看见你了)”。只需将音频文件上传到SD卡(SD卡格式必须为FAT32)。
文件和代码文末下载。
步骤6:最终组装
现在我们可以把所有组件组合到面具中了。
请按以下步骤操作:
- 插入支撑杆:将两个支撑杆连接到面具背面。
- 安装舵机支架:使用热熔胶固定舵机支架(附有舵机和眼球)到杆上。
- 安装PIR传感器:在面具的正面钻一个6mm的小孔,来放置PIR传感器。它是一个迷你PIR传感器,所以可以完美地适配孔位。
- 放置扬声器:将扬声器放置在面具内,确保其不露于视线。
- 连接PCB:固定PCB在面具内部,并完成所有必要的连接。
- 封闭面具:一旦所有连接完毕并到位,使用背板将电子设备封闭起来。
最后,使用双面胶或其他方法将面具安装在墙上。使用9V电源为面具供电,一切便准备就绪。
你可以根据个人喜好自定义此面具,比如添加不同的声音或更复杂的眼球动作。
如果你想让你的面具更加吸引人,还可以添加LED灯,在检测到运动时亮起来,增强视觉效果。
首发于DF创客社区 相关文件可移步下载。