色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>使用Arduino Nano點亮骰子頭骨

使用Arduino Nano點亮骰子頭骨

2023-02-09 | zip | 0.06 MB | 次下載 | 免費

資料介紹

描述

當我們玩涉及骰子的游戲時,一個或多個骰子不可避免地會在過度熱情的玩家試圖擲雙 6 后落在地板上。這個骰子頭骨解決了這個問題,并且添加了 Arduino Nano,只要檢測到擲骰子就會亮起紅色。我希望它發出一聲??“吼叫!” 聲音,但 Nano 不能真正播放音頻第 1 步:制作頭骨和電池座

頭骨是根據 Windham Graves 提供的模型 3D 打印出來的。有關3D 打印頭骨所需的文件,訪問 ThingIVerse.com 。請注意,使用標準質量設置和 PLA 燈絲在 Creality 3 S1 打印機上打印需要 26 小時。

頭骨的背面是空心的,因此更容易在后面安裝電子設備。

可選 - 打印后,使用泡沫刷在頭骨上涂上環氧樹脂,之后可以將其扔掉。環氧樹脂干燥后,使用 Rust-oleum Ultra Matte 油漆和底漆噴涂骷髏啞光黑色。

尋找或購買一個開/關開關。使用 Dremel 工具在頭骨右耳附近開出開/關開關的開口。暫時不要將開關放入孔中,需要先添加一些電線(更多內容見下文)。

pYYBAGPjRMKAbEF5AAQ9YVEb-2c396.jpg
頭骨左耳附近的開/關開關位置
?

鉆開開關開口進入頭骨的“喉嚨”,為照亮眼睛的 RGB LED 開一個口。使用與 LED 直徑大致相同的鉆頭。開關放置在頭骨的右耳上,使喉嚨相對難以接近的右側可以進行鉆孔。喉嚨的傾斜角度使從左側鉆孔更容易,因此無需在該側的外顱骨上打孔。

在喉管的另一側為光敏電阻鉆另一個孔。當骰子中斷從 LED 進入光敏電阻的光時,它們將被檢測到。檢測邏輯對光照水平的變化相當敏感,所以只要在眼孔周圍揮動你的手就足以觸發它們。光敏電阻越靠近 LED 的正對面,電路檢測骰子的能力就越好。

9V 電池座也是 3D 打印的。有關打印文件,請參閱ThingIVerse.com 使用了打印文件的“緊湊”版本,但頭骨中的任何一個版本都有足夠的空間。

第 2 步:構建電路

poYBAGPjcomABaO-AACeXzzTUag631.png
?

一個小的 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 本身可以塞入底部,并在纏結的電線中保持原位。

pYYBAGPjcreARtVZAAs0BOvX8OQ994.jpg
頭骨底部顯示凌亂的布線
?

打開頭骨后,它會在測量初始光照水平時閃爍白色。之后,即使是最輕微的陰影從眼前掠過,頭骨也會將 LED 燈切換為亮紅色。

享受!


評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 亚洲 中文 自拍 无码| 国模玲玲自拍337p| 亚洲精品入口一区二区乱麻豆精品| tube日本护士| 亚洲乱码爆乳精品成人毛片| 乱码国产丰满人妻WWW| 俄罗斯女人Z0ZOZO| 伊人角狠狠狠狠| 色多多污版app下载网站| 亚洲精品乱码电影在线观看| 久久久久国产精品嫩草影院| 耽肉高h喷汁呻吟| 一二三四视频免费社区5| 日韩美女爱爱| 久久中文电影| 国产精品久久久久秋霞影视| 94vvv男人的天堂| 亚洲激情一区| 日日日操操操| 免费看毛片的网址| 寂寞少妇直播| 国产XXXXXX农村野外| 97视频在线免费| 夜夜躁婷婷AV蜜桃视频| 挺进老师的紧窄小肉六电影完整版| 精品爽爽久久久久久蜜臀| 国产成人综合视频| 啊…嗯啊好深男男高h文| 中文无码热在线视频| 亚洲欧美综合中文| 天天夜夜草草久久亚洲香蕉| 奇米狠狠干| 欧美国产日韩久久久| 伦理在线影院伦理电影| 极品色αv影院| 国产亚洲精品免费视频| 国产成人精品久久久久婷婷| 草莓视频cm.888tw| 99在线视频免费观看视频| 97在线视频网站| 最新日本免费一区|