小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Ardiuno智能電蚊拍

 mynotebook 2022-06-25 發(fā)布于湖南

夏天來了,又到了蚊子嗡嗡嗡的季節(jié),在這一點(diǎn)上,國(guó)內(nèi)和海外并沒有區(qū)別。

今天我們介紹的項(xiàng)目,就是魔改升級(jí)我們的武器——電蚊拍,讓我們與蚊子的斗爭(zhēng)更加有趣一些!

升級(jí)后的電蚊拍功能包括:

  • 添加電子裝置來檢測(cè)殺傷力
  • 增加一個(gè)4位數(shù)的計(jì)數(shù)器,統(tǒng)計(jì)“擊殺數(shù)”
  • 支持USB充電
  • 增加“擊殺聲音”以獲得更好的體驗(yàn)

▼ 點(diǎn)擊查看效果

創(chuàng)作思路

作者的想法是,當(dāng)蚊子撞上電蚊拍的金屬網(wǎng)并產(chǎn)生電弧時(shí),電蚊拍的電路上一定有一些電流的變化。如果能在電路中找到一個(gè)可以被Arduino或ATtiny讀取的地方(即0到5伏之間),那么就可以很容易地進(jìn)行計(jì)數(shù)和顯示分?jǐn)?shù),并播放聲音。

聲音功能可以用DFPlayer模塊很容易地在ATtiny上添加。

分?jǐn)?shù)將會(huì)用一個(gè)4位7段的顯示器來顯示,它的板載TM1637只用兩根線(ATtiny的兩個(gè)IO引腳)就能驅(qū)動(dòng)這個(gè)顯示器。

因?yàn)檫@些電子模塊是在5V下運(yùn)行的,而電蚊拍通常是用2節(jié)1.5V的電池的,所以順便用USB充電電池升級(jí)一下電蚊拍的電源部分。

換句話說,這次的“武器升級(jí)”都是用相對(duì)容易找到的現(xiàn)成的電子模塊來改造的,唯一的 復(fù)雜一點(diǎn)的地方是在信號(hào)計(jì)算方面,這塊是由ATtiny通過編程處理的。

在下面的教程分享中,假定大家都對(duì)Ardiuno和如何編程有一些了解,如果沒有,可以先學(xué)習(xí)一下Arduino基礎(chǔ)教程。

在開始之前還需要說明一個(gè)安全問題:

電蚊拍使用高電壓(按下按鈕時(shí)網(wǎng)狀物上有幾百伏的電壓),即使電流很低,在連接電池時(shí)也要注意不要接觸它或其內(nèi)部電路。

注意不要讓小孩子玩這個(gè)。

材料

對(duì)于這個(gè)“終極”電蚊拍,我們需要:

  • 一個(gè)電蚊拍
  • Digispark pro (帶有ATtiny,在網(wǎng)上很容易找到)
  • DFPlayer (DFRobot購(gòu)買)
  • 電阻器:1Ω、1kΩ
  • 8Ω 揚(yáng)聲器
  • SD卡(一個(gè)小容量的卡即可,用來存儲(chǔ)一些聲音文件)
  • 鋰離子充電電池:廢舊電池
  • 電池充電器
  • 電位器(我用的是1MΩ的,這不是很重要,但高數(shù)值會(huì)限制通過電位器的電流消耗)
  • 帶有TM1637的四位數(shù)LED顯示屏(確保是4位數(shù)顯示屏+TM1637,而不是只有4位數(shù)顯示屏)
  • 電容:470μF
  • 開/關(guān)撥動(dòng)開關(guān)
  • 按鈕
  • 電線(重復(fù)使用舊的電話線或網(wǎng)線)

工具部分,我們需要用到電烙鐵、一把熱膠槍和一臺(tái)3D打印機(jī)(一些創(chuàng)意來修改拍子的手柄......)

第1步:如何升級(jí)我們的電蚊拍?

如果你不關(guān)心它的工作方式,只是想要做“終極”電蚊拍,那可以跳過這個(gè)步驟。

解釋電蚊拍如何工作的資源可以在互聯(lián)網(wǎng)上找到。https://www./mosquito-swatter-bat-circuit/

圖片

它是振蕩電路和一個(gè)將電壓提升到數(shù)百伏的電路,再加上連接到拍子的金屬網(wǎng)組成的。

首先遇到的問題是,找不到什么東西可以在這里掛上ATtiny(由于ATtiny的5伏限制,高壓側(cè)不能直接使用)。

為了解決這個(gè)問題,第二個(gè)想法是測(cè)量電流消耗。

當(dāng)金屬網(wǎng)上發(fā)生電弧,蚊子被電殺時(shí),一定有一些能量消耗,應(yīng)該可以通過ATtiny讀取。

測(cè)量這個(gè)消耗的最好方法是測(cè)一下電流消耗,而測(cè)量電流的最簡(jiǎn)單方法是測(cè)量電阻上的電壓,這一點(diǎn)ATtiny可以做到。

因此,計(jì)數(shù)蚊子的方法是在電池和電蚊拍電路之間插入一個(gè)小電阻,并監(jiān)測(cè)這個(gè)電阻上的電壓。

除此之外,我們使用已經(jīng)制作好的電子模塊(每個(gè)功能都有一個(gè):聲音、顯示、充電器等),所以綜合來說,這是一個(gè)相對(duì)比較簡(jiǎn)單的電子項(xiàng)目了。

第2步:準(zhǔn)備電路

圖片


圖片

圖片

主要組件有:

  • ATtiny (Digispark pro)
  • DFPlayer
  • USB充電器和電池
  • 顯示器
  • 重置按鈕
  • 開/關(guān)開關(guān)
  • 用于調(diào)節(jié)音量的電位器
  • 兩個(gè)電阻和一個(gè)電容

我們最好先把它們擺放好,好確保它們能放進(jìn)在手柄里,Digispark和DFPlayer可以靠近一點(diǎn),根據(jù)它們?cè)谧罱K模塊中的位置,給其他組件留出合適的電線長(zhǎng)度(即USB充電器上有一個(gè)USB端口,需要可以用來充電)。

第3步:拆開電蚊拍

圖片

圖片

卸下電池,拆開拍子(應(yīng)該只有幾個(gè)螺絲)。

可以先看一下大概有多少空間留給我們來放附加的組件。

也可以順便看看你的拍子是否與這個(gè)教程分享中使用的拍子一樣。

需要注意的主要區(qū)別是拍子的推鈕的 '位置'。在圖中,它位于電池的+號(hào)和拍子的電路之間。如果是這樣的話,就可以了(見照片)。

在某些拍子上,這個(gè)按鈕位于地線-和電路之間。在這種情況下,下面修改和代碼將不起作用。將會(huì)需要在硬件和軟件方面進(jìn)行一些調(diào)整。

第4步:魔改電蚊拍

圖片

圖片

圖片

在這個(gè)步驟中,我們:

  • 在為兩個(gè)AAA電池設(shè)計(jì)的隔間里給電池騰出一些空間(并重新使用充電電池的電池接頭)。

第5步:構(gòu)建電路并焊接元件

圖片

圖片

圖片

圖片

根據(jù)所有元件的最終位置預(yù)先進(jìn)行布局,估計(jì)一下各種線的長(zhǎng)度,開始焊接。

在上一步中,為了清楚起見,沒有畫出地線和VCC(5V)線,但所有的地線都需要相互連接,所有的VCC都需要相互連接。

對(duì)于VCC,Digispark有3個(gè)標(biāo)有5V的引腳,它們是連在一起的,可以用來重新分配給其他元件。不要使用Digispark的VIN(VIN是一個(gè)需要高于6V的電壓輸入,我們不使用它,而是使用電池充電器的5V輸出)。

建議從Digispark開始:

  • 將Digispark焊接到DFPlayer上
  • 將Digispark焊接到顯示屏、按鈕和電位器上
  • 使用熱縮管避免接觸和短路(比如在Digispark和DFPlayer之間的電阻)

然后,繼續(xù)進(jìn)行電蚊拍電路、電池充電器、開關(guān)的連接:

  • 電池 -到充電器 電池 - 輸入
  • 電池+到充電器 電池+輸入
  • 電蚊拍電路上的1歐姆電阻+
  • 電蚊拍電路的+-上的電容器,注意電容器的極性!
  • Digispark的A12腳與按鈕相連(按鈕有兩個(gè)接頭,一個(gè)與電池+連接,A12與另一個(gè)連接)
  • 使用熱縮管來避免接觸和短路(在電容器/電阻上等等)。

第6步:隔離顯示屏與電蚊拍電路

圖片

在測(cè)試中發(fā)現(xiàn)會(huì)遇到顯示問題——當(dāng)蚊子碰到電蚊拍的網(wǎng)眼時(shí),顯示屏?xí)P(guān)閉或者出錯(cuò)。

懷疑這是由于高電壓變化產(chǎn)生的電子干擾影響了顯示電路和連接。

修復(fù)方法很簡(jiǎn)單,在電路上貼一些膠帶,鋁箔(電磁屏蔽),再貼膠帶。

當(dāng)然,不要把鋁箔直接放在電路上……

第7步:在SD卡上加載聲音

DFPlayer播放的聲音是存儲(chǔ)在SD卡上的。

做法很簡(jiǎn)單,把卡裝好,然后復(fù)制選擇的聲音:

  • 開機(jī)時(shí)播放的聲音('準(zhǔn)備好進(jìn)行下一場(chǎng)戰(zhàn)斗')
  • 一個(gè) '怪物被殺 '的聲音
  • 一個(gè) '等級(jí)提升 '的聲音
  • 一些在檢測(cè)到擊殺時(shí)隨機(jī)播放的聲音文件

DFPlayer將根據(jù) '軌道編號(hào) '播放聲音。

根據(jù)觀察,發(fā)現(xiàn)文件不是根據(jù)它們的名字來排序的,而是根據(jù)它們?cè)诳ㄉ系?/span>inode號(hào)來排序的(在Linux上可以用 ls -id 查看)

ls -id * | more
647 1_Monster_kill.mp3
648 2_mixkit-final-level-bonus-2061.wav
649 3_get_ready_to_the_newt_fight.mp3
650 mixkit-arcade-retro-scoring-counter-273.wav
651 mixkit-arcade-video-game-bonus-2044.wav
652 mixkit-arcade-video-game-scoring-presentation-274.wav
653 mixkit-game-bonus-reached-2065.wav
654 mixkit-game-experience-level-increased-2062.wav
655 mixkit-winning-an-extra-bonus-2060.wav

如果你從一張新成型的卡開始,軌道號(hào)/inode的順序?qū)⑹锹曇粑募膹?fù)制順序(即復(fù)制在卡上的第一個(gè)文件就是1號(hào))。

在下面的代碼中,文件/音軌的選擇是通過setTrack()完成的。

 // 0 is random betwen tracks 4 to 9
 // 1 is monster kill = track 1 (listed by inode on card (ls -id))
 // 2 is level up
 // 3 is power on
 if (sound_type==0)  setTrack(int(random(4,9))); //SD card contains 9 files
 if (sound_type==1)  setTrack(1); // monster kill
 if (sound_type==2)  setTrack(2); //level up
 if (sound_type==3)  setTrack(3); //power on

你可以自行修改這部分,讓動(dòng)作sound_type和播放的音頻之間匹配上。

音頻可以到文末打包下載。

第8步:打印一個(gè)新的握柄

圖片

如果電蚊拍和上面的一樣,可以直接打印這個(gè)的手柄設(shè)計(jì)。

如果不一樣,可能需要自己設(shè)計(jì)一個(gè)。

不過,有些拍子的手柄很大,然后里面幾乎什么都沒有,也可以直接裝上附加電路。記得我們?nèi)匀恍枰獮轱@示屏和揚(yáng)聲器找一個(gè)位置。

3D打印的文件可以到文末打包下載。

第9步:組裝起來

圖片

圖片

圖片

圖片

這邊用熱膠槍將零件固定在它們的最終位置。

揚(yáng)聲器也是直接粘在拍子上的。

第10步:蚊子在哪里?

再次重申,如果你不關(guān)心它的工作方式,只是想得到你的“終極”電蚊拍的玩家,你可以跳過這一步......或者之后再來看。

一旦我們把所有的元件都焊接在一起,如果在ATtiny上加載一個(gè)簡(jiǎn)單的程序,只做一個(gè)模擬讀?。ˋ12),然后看一下原始數(shù)據(jù):

圖片

原始數(shù)據(jù)看起來非常嘈雜,我們無(wú)法知道在圖上什么地方/什么時(shí)候有蚊子(或其他東西,我沒有等蚊子打我的球拍來調(diào)試代碼 :) 它自己撞到了電蚊拍的網(wǎng)眼上(見圖1)。

平均數(shù)是清理部分噪音的好方法,我的想法是將最后的平均數(shù)與 '長(zhǎng)期 '平均數(shù)進(jìn)行比較,但結(jié)果也有點(diǎn)讓人失望(見圖2)。

圖片

然后學(xué)習(xí)一下別人是怎么做的:https://www.iese./blog/change-point-detection/

這看起來正是我們尋找的,計(jì)算信號(hào)的標(biāo)準(zhǔn)差應(yīng)該能讓我們檢測(cè)到蚊子被擊殺了(見上面鏈接中的'Animation of change point detection via sliding window'部分)。

應(yīng)用于我們的設(shè)置,會(huì)得到以下結(jié)果(圖3)。

圖片

在程序中,我們計(jì)算了標(biāo)準(zhǔn)差的平方,我們可以看到,當(dāng)按下或釋放按鈕時(shí),它達(dá)到非常高的值(這是預(yù)期的,信號(hào)從0V到接近5V),但一旦這些階段被排除,我們就可以監(jiān)測(cè)這個(gè)標(biāo)準(zhǔn)差,并假設(shè)如果它達(dá)到一些高值,我們?cè)陔娐分杏幸粋€(gè)干擾,這一定就是一個(gè)蚊子被“擊殺”了(圖4)!

圖片

現(xiàn)在我們知道了如何判斷完成了“一次擊殺”,剩下的就簡(jiǎn)單了(播放聲音,增加分?jǐn)?shù))。

為了更準(zhǔn)確,我們又增加了一些東西:

  • 一個(gè)470uF的電容器(它本身提供了一些更多的噪音過濾,并在需要大電流時(shí)作為“充電寶”)
  • 我們有一個(gè)兩級(jí)平均機(jī)制(在代碼中可以看到,我們?cè)谠紶顟B(tài)下測(cè)量了5次A12腳的電壓,取其平均值,然后將這個(gè)平均值存儲(chǔ)在標(biāo)準(zhǔn)差計(jì)算的滑動(dòng)窗口中)。

第11步:在Digispark Pro上加載程序

這個(gè)比較簡(jiǎn)單,可以使用Arduino IDE對(duì)ATtiny進(jìn)行編程。

Wiki:http:///wiki/Digispark/tutorials/connectingpro

對(duì)代碼做一些解釋:

setup()函數(shù)中,我們初始化DFPlayer所需的串行通信,讀取電位計(jì)值以調(diào)整音量(在設(shè)置時(shí)只讀取一次,這意味著拍子需要關(guān)閉/打開電源來考慮到音量調(diào)整)。

對(duì)于計(jì)數(shù)器的重置,如果你想把分?jǐn)?shù)重置為零,你需要按下重置按鈕,打開拍子的電源,等待顯示屏顯示 '0'。

然后它就會(huì)讀取存儲(chǔ)在EEPROM中的分?jǐn)?shù)。

它設(shè)置顯示屏的亮度(否則它將保持關(guān)閉)。

loop()函數(shù)中,我們基本上是處理拍子功率的平均值process_average()和標(biāo)準(zhǔn)差的平方,它告訴我們是否有殺傷力process_std_dev()

相關(guān)代碼可以在文末下載。

第12步:更新Digispark micronucleus(可選)

Digispark micronucleus是負(fù)責(zé) '啟動(dòng) 'Digispark的一段代碼。

它檢查我們是否上傳了一個(gè)新的程序,如果沒有就啟動(dòng)已經(jīng)加載的程序。

問題是它需要等待6秒鐘,這個(gè)時(shí)間對(duì)于我們想要啟動(dòng)我們的武器來拍蚊子,就會(huì)顯得比較長(zhǎng)了。

不過,micronucleus有一些變種有不同的檢查機(jī)制。如果你按照這些說明更新micronucleus(使用 '推薦 '配置),拍子將在一兩秒后準(zhǔn)備好。

參考:https://github.com/ArminJo/micronucleus-firmware

在更新micronucleus固件后重新加載你的程序即可。

第13步:故障排除

希望你不需要讀這個(gè),

一些提示,以防萬(wàn)一......

1、工作不多......檢查電線和焊料;

2、如果電蚊拍自己重新啟動(dòng)(你聽到了啟動(dòng)的聲音,但沒有開/關(guān)),請(qǐng)給電池充電;

3、大約30秒后,電蚊拍就會(huì)自動(dòng)關(guān)閉。

  • 一些USB充電器電路有一個(gè)自動(dòng)待機(jī)模式(我的就是這種情況,使用的是芯片IP5306),如果消耗的電流低于一定量(IP5306為45mA),就會(huì)進(jìn)入待機(jī)模式。
  • 第一個(gè)可能的解決方法是定期按下拍子按鈕......比如每20秒。電路板(含IP5306)有一個(gè) '鑰匙 '功能,可以開啟或關(guān)閉電源,在電路板上標(biāo)有 'K'。上面建議的代碼中的watchdog()功能將保持電源正常工作。

4、如果拍子的檢測(cè)能力真的很差或經(jīng)常檢測(cè)錯(cuò)誤...那么可能要做一些代碼調(diào)整。

如果你想用USB端口來顯示一些變量,你必須修改代碼,以便使用DigiCDC庫(kù)并刪除SoftSerial(用于4位數(shù)顯示)。但更重要的是,當(dāng)這樣做時(shí),我們將從USB口而不是電池充電器口獲得電源,這就有很大的區(qū)別......VCC的質(zhì)量對(duì)我們計(jì)算的平均數(shù)和標(biāo)準(zhǔn)差有很大影響......

換句話說,在USB上連接時(shí)進(jìn)行的任何調(diào)整,在用電池運(yùn)行時(shí)可能會(huì)失效。

獲得一些小信息的方法是使用顯示器本身(即在按下復(fù)位按鈕時(shí)顯示最后的標(biāo)準(zhǔn)差)。

知道了這些,你就可以試著調(diào)整代碼中的以下數(shù)值,這些數(shù)值對(duì)我們的檢測(cè)有很大的影響。

單次讀取的樣本數(shù):

int samples=10;

平均滑動(dòng)窗口的大?。?/span>

int nbr_slot=15;
int value[16];  // array of (nbr_slot + 1)

標(biāo)準(zhǔn)差的閾值:

int threshold=110;
int monster_threshold=250;

第14步:繼續(xù)改進(jìn)電蚊拍,分享你的改進(jìn)方法

如果你找到了更加簡(jiǎn)單的改造電蚊拍的方法或者是設(shè)計(jì),歡迎分享出來!

原文鏈接:https://www./Ultimate-Mosquito-Swatter-Mod-for-Gamer-Add-Kill-C/

------------ END ------------


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多