资料介绍
描述
当我们玩涉及骰子的游戏时,一个或多个骰子不可避免地会在过度热情的玩家试图掷双 6 后落在地板上。这个骰子头骨解决了这个问题,并且添加了 Arduino Nano,只要检测到掷骰子就会亮起红色。我希望它发出一声“吼叫!” 声音,但 Nano 不能真正播放音频。第 1 步:制作头骨和电池座
头骨是根据 Windham Graves 提供的模型 3D 打印出来的。有关3D 打印头骨所需的文件,请访问 ThingIVerse.com 。请注意,使用标准质量设置和 PLA 灯丝在 Creality 3 S1 打印机上打印需要 26 小时。
头骨的背面是空心的,因此更容易在后面安装电子设备。
可选 - 打印后,使用泡沫刷在头骨上涂上环氧树脂,之后可以将其扔掉。环氧树脂干燥后,使用 Rust-oleum Ultra Matte 油漆和底漆喷涂骷髅哑光黑色。
寻找或购买一个开/关开关。使用 Dremel 工具在头骨右耳附近开出开/关开关的开口。暂时不要将开关放入孔中,需要先添加一些电线(更多内容见下文)。
钻开开关开口进入头骨的“喉咙”,为照亮眼睛的 RGB LED 开一个口。使用与 LED 直径大致相同的钻头。开关放置在头骨的右耳上,使喉咙相对难以接近的右侧可以进行钻孔。喉咙的倾斜角度使从左侧钻孔更容易,因此无需在该侧的外颅骨上打孔。
在喉管的另一侧为光敏电阻钻另一个孔。当骰子中断从 LED 进入光敏电阻的光时,它们将被检测到。检测逻辑对光照水平的变化相当敏感,所以只要在眼孔周围挥动你的手就足以触发它们。光敏电阻越靠近 LED 的正对面,电路检测骰子的能力就越好。
9V 电池座也是 3D 打印的。有关打印文件,请参阅ThingIVerse.com 。使用了打印文件的“紧凑”版本,但头骨中的任何一个版本都有足够的空间。
第 2 步:构建电路
一个小的 PCB 用于固定 Nano 和一个用于电池/开关引线的两端连接器。
步骤 2.1:将纳米、LED、光敏电阻和相关电阻焊接在一起
在将电池和开关放入头骨之前,可以将纳米、光敏电阻、常规电阻和 LED 焊接在一起。使用 PCB 上的小型两导体旋入式接线柱连接到 Nano 的 Vin 和 GND 端子。该接线柱将在总装期间派上用场。
步骤 2.2:将开关和 9V 电池连接器焊接在一起
开关和电池座可以与 2 英寸(5 厘米)的电线一起焊接在一起。不要将电池/开关引线拧到 PCB 上。
第 3 步:对 Nano 进行编程
使用 Arduino IDE,将以下代码上传到 Nano。
// Light up skull code for Arduino Nano
// (C) Copyright 2021 John Dillenburg
// john _at_ dillenburg.org
//
double avgWhenOn;
double avgWhenOff;
long last = 0;
int lightOnLevel = 4;
long lastTrigger = 0;
long triggerCooldown = 500; // milliseconds
int detectThreshold = 10;
long recalibrateInterval = 300000; // milliseconds
long lastRecalibrate = 0;
void setup() {
Serial.begin(115200);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(A0, INPUT);
calibrate();
if (Serial) {
Serial.print("lightOnLevel = ");
Serial.print(lightOnLevel);
Serial.print(" avgWhenOn = ");
Serial.print(avgWhenOn);
Serial.print(" avgWhenOff = ");
Serial.println(avgWhenOff);
}
detectMode();
}
void calibrate() {
lightOnLevel = 20;
avgWhenOn = average(500, lightOnLevel);
avgWhenOff = average(500, 0);
while (avgWhenOff - avgWhenOn < detectThreshold && lightOnLevel < 255) {
lightOnLevel += 16;
avgWhenOn = average(500, lightOnLevel);
}
if (lightOnLevel > 255) lightOnLevel = 255;
lastRecalibrate = millis();
}
void rgb(int r, int g, int b) {
analogWrite(9, 255 - r);
analogWrite(10, 255 - g);
analogWrite(11, 255 - b);
}
void movementDetected() {
rgb(255, 0, 0);
delay(3000);
}
void detectMode() {
rgb(lightOnLevel, lightOnLevel, lightOnLevel);
}
double average(int duration, int level) {
rgb(level, level, level);
long start = millis();
long count = 0;
double sum = 0.0;
while (millis() < start + duration) {
sum += analogRead(A0);
count++;
}
return sum / count;
}
void loop() {
int detector = analogRead(A0);
avgWhenOn = avgWhenOn * 0.999 + detector * 0.001;
if (Serial && millis() > last + 1000) {
Serial.print("detector = ");
Serial.print(detector);
Serial.print(" avg = ");
Serial.println(avgWhenOn);
last = millis();
}
if (detector > avgWhenOn + detectThreshold && millis() > lastTrigger + triggerCooldown) {
if (Serial) {
Serial.print("triggered ");
Serial.println(detector);
}
movementDetected();
lastTrigger = millis();
detectMode();
}
if (millis() > lastRecalibrate + recalibrateInterval) {
calibrate();
}
}
该代码使用 avgWhenOn 变量跟踪环境 + LED 灯级别。如果阴影从连接到引脚 A0 的光敏电阻前面经过,则从 A0 读取的值将增加,这将触发 movementDetected() 函数。movementDetected() 函数将 LED 变为红色 3 秒。
avgWhenOn 变量使用无限脉冲响应系统对最新的光敏电阻读数与旧读数进行平均。我选择 0.999 和 0.001 作为权重。这似乎只是对最新读数的轻微加权,但 Nano loop() 函数被调用得如此频繁,以至于变量在一秒钟内稳定到平均值。
Serial print 语句是可选的,其编码方式使得在安装后将跳过它们。
第 4 步:将它们放在一起
在头骨的后部/底部工作,光敏电阻器被放置在喉咙左侧钻出的孔中,并使用大量热熔胶粘在适当的位置。
喉咙右侧的 LED 灯也是如此。
将开关和 9V 电池连接器的电线穿过开关孔。将两条引线拧到小型 Nano PCB 上。
将 9V 电池放入电池座中,并在下面涂上热熔胶。
PCB 本身可以塞入底部,并在缠结的电线中保持原位。
打开头骨后,它会在测量初始光照水平时闪烁白色。之后,即使是最轻微的阴影从眼前掠过,头骨也会将 LED 灯切换为亮红色。
享受!
- Arduino Nano漂亮礼服
- Arduino动画矩阵骰子
- Arduino二进制骰子
- Arduino电子骰子系统
- Arduino LED骰子
- Arduino骰子开源案例
- 使用Arduino板载的骰子项目
- 基于Arduino的7段显示数字骰子
- 使用Arduino Nano克隆西蒙
- DIY Arduino Nano
- Arduino Nano板测试
- 测试比较四种Arduino Nano全新型号的数据详细说明 25次下载
- Arduino Nano Rev3.2电路原理图免费下载 46次下载
- Arduino Nano电路原理图免费下载 280次下载
- Arduino nano (AD)PCB自制 0次下载
- 基于Arduino的机器学习开发 1.7w次阅读
- 分享一个棋盘游戏电子骰子电路 2234次阅读
- 三个简单的电子骰子电路分析 5765次阅读
- 当Arduino遇上树莓派:Nano RP2040连接板 6472次阅读
- 基于AT89C205构建的电子骰子的电路图 2178次阅读
- 基于Arduino Nano R3实现摩托车尾灯的设计方案 1910次阅读
- 工业级智能停车系统设计方案 824次阅读
- 如何使用Arduino Nano控制红绿灯 5001次阅读
- 如何通过蓝牙微控制器控制多功能骰子? 2905次阅读
- dfrobot Arduino Nano控制板介绍 5611次阅读
- dfrobotDFRduino Nano 3.0控制器介绍 2484次阅读
- 带反接保护的电子骰子电路 3381次阅读
- LED骰子diy教程 4648次阅读
- arduino是什么以及arduino能干什么 4.4w次阅读
- 驱动电子骰子至少需要几个I/O口? 3962次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多