万圣节的电子动画头骨
本帖最后由 fibx 于 2023-10-20 09:07 编辑# 万圣节的电子动画头骨
https://www.bilibili.com/video/BV1nj411v7y1/



大家好!我叫帕特里夏(Patrícia),住在巴西,很高兴与大家分享我的第一个项目。我的英语可能不太流利,但我会在谷歌翻译的帮助下尽力而为。如果你有任何问题,请毫不犹豫地在评论区用任何语言提出问题,我会尽力回答!在这篇文章中,我想向您介绍一个有趣的互动项目,一个由 Arduino 驱动的电子动画头骨。这个头骨可以进行眼睛和下巴的运动,使其成为一件令人着迷且身临其境的电子艺术作品。
## **项目概况:**
这款电子动画头骨由两个作为眼睛的 5 毫米红色 LED 和三个作为控制眼睛和下巴运动的微型伺服电机组成,能创造出逼真的表情。但这个头骨真正的特别之处在于它具有对周围环境做出反应的能力。它配备了超声波传感器(HC-SR04),可以检测物体的接近程度,当有人接近或离开时,头骨可以做出不同的反应。眼睛和嘴巴动画的速度和强度变化多端,为附近的任何人提供互动和身临其境的体验。
## **如何计算所需电流:**
- LED:LED 的总电流为 0.04A (40mA)。
LED电流=2*(0.02A)= 0.04A(或40mA)
- 伺服系统:伺服系统的总电流为 1.65A (1650mA)。
伺服电流=3*(0.22A)*2.5=1.65A(或1650mA)
- 超声波传感器:传感器消耗约15mA。
传感器电流=0.015A(或15mA)
- Arduino Uno:Arduino 消耗约 50mA 电流。
**现在将所有电流相加:**
所需总电流 = 0.04A (LED) + 1.65A (伺服) + 0.015A (传感器) + 0.05A (Arduino) = 1.755A (或 1755mA)
在极端情况下,所需的总电流为 1.755A (1755mA),但大多数情况下 1A 就足够了。
## **重要说明:**
**关于控制:**
控制伺服电机时,最好使用 PWM(脉冲宽度调制)引脚,因为它可以实现更平滑、更精确的运动。尽管可以使用非 PWM 数字引脚控制伺服电机,但这可能需要更多工作和编程技能。因此,只要有可能,请选择 PWM 引脚进行伺服电机控制。
**关于传感器:**
HC-SR04超声波距离传感器不应连接到 Arduino PWM 引脚,因为它依赖于简单的脉冲协议来测量距离,而PWM引脚会生成具有可变脉冲宽度的脉冲信号。这种不兼容性可能会导致测量受干扰和不准确。为了实现可靠、准确的通信,请将传感器连接到 Arduino 的非 PWM 数字引脚。
**结论:**
制作电子动画头骨是一个独特且令人兴奋的项目,它融合了电子和艺术。Arduino 驱动的头骨能够对周围环境做出反应,增添了更多的互动性。如果您是 DIY 电子产品的粉丝,并且想要尝试一些创意,我希望这个项目能够激发您的灵感。请记住,无论您偏爱哪种语言,我都会帮助解决任何问题或进行解释。祝万圣节玩得开心,打造你的电子动画头骨!
# 材料
## **所需材料:**
- 国家地理“人体”收藏中的人类躯体
- Arduino Uno 或类似品(我使用 Uno,然后将芯片放入 Standalone/Zatino中)
- 电解电容 1000uF 16V
- 2x 5mm 红色 LED
- 2x 330 欧姆电阻
- 3x SG90 9g 微型伺服电机
- 超声波传感器 HC-SR04
- 柔性电线/跳线
- 薄热缩管
- 快干胶
- 热熔胶
- 密封件(“婆婆的舌头”)
- 黑色双面毛毯
- 硬线
- 万能电路板 (PCB),用于组装头骨内部电路
- 钳子、剪刀、微型研磨机(理想)
- 电源 5V 和至少 1A。
# 第 1 步:眼睛


















1. 使用微型研磨机为眼睛打孔。
**注意:**孔的尺寸必须足以放置伺服电机的传动轴,使其不会卡在孔中,防止电机烧毁;
2. 切割伺服电机的“襟翼”以匹配头骨(见图);
3. 用热熔胶粘合伺服电机;
4. 切掉眼窝并丢弃;
5. 切掉伺服电机的塑料“臂”,将带有速干胶水的圆形部分放在眼睛的顶部;
6. 将眼睛安装到伺服电机上。
# 第 2 步:测试眼睛的角度


将眼睛放在正确的位置,以“直视前方90°”为中心轴;
向里和向外看:50° 或 130°
# 第 3 步:过线孔

在头骨上钻一个孔,让刚性下颌线穿过。
# 第 4 步:下巴






1. 剪断下巴上的 2 个锁扣;
2. 在下巴侧面打一个孔以安装刚性线;
3. 将下巴伺服电机粘到头骨上(参看图片);
4. 取一根硬线,弯曲一端的一小段,使其呈 L 形,以装入下巴上的孔中,并将线的另一端穿过步骤 2 中打的孔。
5. 下巴伺服电机还包含一根尖端弯曲的电线,以适应来自钳口的电线。
OBS:下巴伺服电机的角度,按如下参数调整:
嘴巴闭合:140°
半开嘴:110°和90°
张嘴:70°
# 第 5 步:连接






1. 如图所示进行连接;
2. 在头骨底部再打一个孔,将伺服电机信号线(橙色线)以及万能电路板上的火线和零线穿过。
OBS:使用 Arduino Uno 或您选择的其他一种。
# 第 6 步:超声波传感器 HC-SR04 和最终组装






1. 将超声波传感器放在头骨前面,尽可能靠近眼睛,模拟头骨在眼睛前面时会看起来是斗鸡眼;
2. 制作一个木制支撑物或其他任何东西来支撑头骨,发挥你的创造力。
3. 用毯子或另一块深色布覆盖整个电子部件以隐藏电子部件(传感器除外)。
# 第7步:程序代码
```c++
// 嘴巴:
int fechada = 140;
const int abertura1 = 110;
const int abertura2 = 90;
const int abertura3 = 70; // 伺服的最大启动
// 眼睛:
const int olhoEsquerdoFora = 50;
const int olhoEsquerdoDentro = 130;
int olhoEsquerdoFrente = 90;
const int olhoDireitoFora = 130;
const int olhoDireitoDentro = 50;
int olhoDireitoFrente = 90;
// 传感器引脚:
const int trigPin = 8; // 超声波传感器输出引脚(触发)
const int echoPin = 7; // 超声波传感器输入引脚(回声)
// 伺服电机引脚:
const int olhoEsquerdoPin = 3; // 用于左眼伺服的带 PWM 的数字引脚
const int olhoDireitoPin = 5; // 用于右眼伺服带 PWM 的数字引脚
const int mandibulaPin = 11; // 用于卡爪伺服的带 PWM 的数字引脚
const int enderecoOlhos = 0; // EEPROM 中用于存储眼睛位置的地址
const int enderecoMandibula = 2; // EEPROM 中用于存储钳口位置的地址
// 定义控制动画的距离。
const int distanciaLonge = 50; // 50厘米以上
const int distanciaMedia = 30; // 30 至 50 厘米之间
const int distanciaPerto = 15; // 小于或等于15厘米
```
附件:
>英文链接:(https://www.instructables.com/Animatronic-Skull-With-Arduino/)
>英文作者:(https://www.instructables.com/member/patymaker/)
>中文翻译:(https://mc.dfrobot.com.cn/home.php?mod=space&uid=835443&do=profile)

好复杂的创意
页:
[1]