資料介紹
描述
當我們玩涉及骰子的游戲時,一個或多個骰子不可避免地會在過度熱情的玩家試圖擲雙 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次下載 | 免費
評論
查看更多