手把手带你魔改一个带击杀音效的电蚊拍

电子工程世界 2022-07-03 07:30

▲ 更多精彩内容 请点击上方蓝字关注我们吧!


夏天来了,又到了蚊子嗡嗡嗡的季节。在这一点上,国内和海外并没有区别。

今天我们介绍的项目,就是魔改升级我们的武器——电蚊拍,让我们与蚊子的斗争更加有趣一些!

升级后的电蚊拍功能包括:

  • 添加电子装置来检测杀伤力
  • 增加一个4位数的计数器,统计“击杀数”
  • 支持USB充电
  • 增加“击杀声音”以获得更好的体验

▼ 点击查看效果

创作思路

作者的想法是,声音功能可以用DFPlayer模块很容易地在ATtiny上添加。

分数将会用一个4位7段的显示器来显示,它的板载TM1637只用两根线(ATtiny的两个IO引脚)就能驱动这个显示器。

因为这些电子模块是在5V下运行的,而电蚊拍通常是用2节1.5V的电池的,所以顺便用USB充电电池升级一下电蚊拍的电源部分。

换句话说,这次的“武器升级”都是用相对容易找到的现成的电子模块来改造的,唯一的 复杂一点的地方是在信号计算方面,这块是由ATtiny通过编程处理的。

在下面的教程分享中,假定大家都对Ardiuno和如何编程有一些了解,如果没有,可以先学习一下Arduino基础教程。

在开始之前还需要说明一个安全问题:

电蚊拍使用高电压(按下按钮时网状物上有几百伏的电压),即使电流很低,在连接电池时也要注意不要接触它或其内部电路。

注意:不要让小孩子玩这个!

材料

对于这个“终极”电蚊拍,我们需要准备以下材料:

  • 一个电蚊拍
  • Digispark pro (带有ATtiny,在网上很容易找到)
  • DFPlayer (DFRobot购买)
  • 电阻器:1Ω、1kΩ
  • 8Ω 扬声器
  • SD卡(一个小容量的卡即可,用来存储一些声音文件)
  • 锂离子充电电池:废旧电池
  • 电池充电器
  • 电位器(我用的是1MΩ的,这不是很重要,但高数值会限制通过电位器的电流消耗)
  • 带有TM1637的四位数LED显示屏(确保是4位数显示屏+TM1637,而不是只有4位数显示屏)
  • 电容:470μF
  • 开/关拨动开关
  • 按钮
  • 电线(重复使用旧的电话线或网线)

工具部分,我们需要用到电烙铁、一把热胶枪和一台3D打印机(一些创意来修改拍子的手柄......)

第1步:如何升级我们的电蚊拍?

如果你不关心它的工作方式,只是想要做“终极”电蚊拍,那可以跳过这个步骤。

解释电蚊拍如何工作的资源可以在互联网上找到。https://www.homemade-circuits.com/mosquito-swatter-bat-circuit/

它是振荡电路和一个将电压提升到数百伏的电路,再加上连接到拍子的金属网组成的。

首先遇到的问题是,找不到什么东西可以在这里挂上ATtiny(由于ATtiny的5伏限制,高压侧不能直接使用)。

为了解决这个问题,第二个想法是测量电流消耗。

当金属网上发生电弧,蚊子被电杀时,一定有一些能量消耗,应该可以通过ATtiny读取。

测量这个消耗的最好方法是测一下电流消耗,而测量电流的最简单方法是测量电阻上的电压,这一点ATtiny可以做到。

因此,计数蚊子的方法是在电池和电蚊拍电路之间插入一个小电阻,并监测这个电阻上的电压。

除此之外,我们使用已经制作好的电子模块(每个功能都有一个:声音、显示、充电器等),所以综合来说,这是一个相对比较简单的电子项目了。

第2步:准备电路



主要组件有:

  • ATtiny (Digispark pro)
  • DFPlayer
  • USB充电器和电池
  • 显示器
  • 重置按钮
  • 开/关开关
  • 用于调节音量的电位器
  • 两个电阻和一个电容

我们最好先把它们摆放好,好确保它们能放进在手柄里,Digispark和DFPlayer可以靠近一点,根据它们在最终模块中的位置,给其他组件留出合适的电线长度(即USB充电器上有一个USB端口,需要可以用来充电)。

第3步:拆开电蚊拍


卸下电池,拆开拍子(应该只有几个螺丝)。

可以先看一下大概有多少空间留给我们来放附加的组件。

也可以顺便看看你的拍子是否与这个教程分享中使用的拍子一样。

需要注意的主要区别是拍子的推钮的 "位置"。在图中,它位于电池的+号和拍子的电路之间。如果是这样的话,就可以了(见照片)。

在某些拍子上,这个按钮位于地线-和电路之间。在这种情况下,下面修改和代码将不起作用。将会需要在硬件和软件方面进行一些调整。

第4步:魔改电蚊拍



在这个步骤中,我们:
  • 在为两个AAA电池设计的隔间里给电池腾出一些空间(并重新使用充电电池的电池接头)。

第5步:构建电路并焊接元件




根据所有元件的最终位置预先进行布局,估计一下各种线的长度,开始焊接。

在上一步中,为了清楚起见,没有画出地线和VCC(5V)线,但所有的地线都需要相互连接,所有的VCC都需要相互连接。

对于VCC,Digispark有3个标有5V的引脚,它们是连在一起的,可以用来重新分配给其他元件。不要使用Digispark的VIN(VIN是一个需要高于6V的电压输入,我们不使用它,而是使用电池充电器的5V输出)。

建议从Digispark开始:

  • 将Digispark焊接到DFPlayer上
  • 将Digispark焊接到显示屏、按钮和电位器上
  • 使用热缩管避免接触和短路(比如在Digispark和DFPlayer之间的电阻)

然后,继续进行电蚊拍电路、电池充电器、开关的连接:

  • 电池 -到充电器 电池 - 输入
  • 电池+到充电器 电池+输入
  • 电蚊拍电路上的1欧姆电阻+
  • 电蚊拍电路的+-上的电容器,注意电容器的极性!
  • Digispark的A12脚与按钮相连(按钮有两个接头,一个与电池+连接,A12与另一个连接)
  • 使用热缩管来避免接触和短路(在电容器/电阻上等)。

第6步:隔离显示屏与电蚊拍电路

在测试中发现会遇到显示问题——当蚊子碰到电蚊拍的网眼时,显示屏会关闭或者出错。

怀疑这是由于高电压变化产生的电子干扰影响了显示电路和连接。

修复方法很简单,在电路上贴一些胶带,铝箔(电磁屏蔽),再贴胶带。

当然,不要把铝箔直接放在电路上……

第7步:在SD卡上加载声音

DFPlayer播放的声音是存储在SD卡上的。

做法很简单,把卡装好,然后复制选择的声音:

  • 开机时播放的声音(“准备好进行下一场战斗”)
  • 一个 "怪物被杀 "的声音
  • 一个 "等级提升 "的声音
  • 一些在检测到击杀时随机播放的声音文件

DFPlayer将根据 "轨道编号 "播放声音。

根据观察,发现文件不是根据它们的名字来排序的,而是根据它们在卡上的inode号来排序的(在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

如果你从一张新成型的卡开始,轨道号/inode的顺序将是声音文件的复制顺序(即复制在卡上的第一个文件就是1号)。

在下面的代码中,文件/音轨的选择是通过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

你可以自行修改这部分,让动作sound_type和播放的音频之间匹配上。

音频可以到文末打包下载。

第8步:打印一个新的握柄

如果电蚊拍和上面的一样,可以直接打印这个的手柄设计。

如果不一样,可能需要自己设计一个。

不过,有些拍子的手柄很大,然后里面几乎什么都没有,也可以直接装上附加电路。记得我们仍然需要为显示屏和扬声器找一个位置。

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

第9步:组装起来




这边用热胶枪将零件固定在它们的最终位置。

扬声器也是直接粘在拍子上的。

第10步:蚊子在哪里?

再次重申,如果你不关心它的工作方式,只是想得到你的“终极”电蚊拍的玩家,你可以跳过这一步......或者之后再来看。

一旦我们把所有的元件都焊接在一起,如果在ATtiny上加载一个简单的程序,只做一个模拟读取(A12),然后看一下原始数据:

原始数据看起来非常嘈杂,我们无法知道在图上什么地方/什么时候有蚊子(或其他东西,我没有等蚊子打我的球拍来调试代码 :) 它自己撞到了电蚊拍的网眼上(见图1)。

平均数是清理部分噪音的好方法,我的想法是将最后的平均数与 "长期 "平均数进行比较,但结果也有点让人失望(见图2)。

然后学习一下别人是怎么做的:https://www.iese.fraunhofer.de/blog/change-point-detection/

这看起来正是我们寻找的,计算信号的标准差应该能让我们检测到蚊子被击杀了(见上面链接中的“Animation of change point detection via sliding window”部分)。

应用于我们的设置,会得到以下结果(图3)。

在程序中,我们计算了标准差的平方,我们可以看到,当按下或释放按钮时,它达到非常高的值(这是预期的,信号从0V到接近5V),但一旦这些阶段被排除,我们就可以监测这个标准差,并假设如果它达到一些高值,我们在电路中有一个干扰,这一定就是一个蚊子被“击杀”了(图4)!

现在我们知道了如何判断完成了“一次击杀”,剩下的就简单了(播放声音,增加分数)。

为了更准确,我们又增加了一些东西:

  • 一个470uF的电容器(它本身提供了一些更多的噪音过滤,并在需要大电流时作为“充电宝”);
  • 我们有一个两级平均机制(在代码中可以看到,我们在原始状态下测量了5次A12脚的电压,取其平均值,然后将这个平均值存储在标准差计算的滑动窗口中)。

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

这个比较简单,可以使用Arduino IDE对ATtiny进行编程。

Wiki:http://digistump.com/wiki/Digispark/tutorials/connectingpro

对代码做一些解释:

setup()函数中,我们初始化DFPlayer所需的串行通信,读取电位计值以调整音量(在设置时只读取一次,这意味着拍子需要关闭/打开电源来考虑到音量调整)。

对于计数器的重置,如果你想把分数重置为零,你需要按下重置按钮,打开拍子的电源,等待显示屏显示 "0"。

然后它就会读取存储在EEPROM中的分数。

它设置显示屏的亮度(否则它将保持关闭)。

loop()函数中,我们基本上是处理拍子功率的平均值process_average()和标准差的平方,它告诉我们是否有杀伤力process_std_dev()

相关代码可以在文末下载。

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

Digispark micronucleus是负责 "启动 "Digispark的一段代码。

它检查我们是否上传了一个新的程序,如果没有就启动已经加载的程序。

问题是它需要等待6秒钟,这个时间对于我们想要启动我们的武器来拍蚊子,就会显得比较长了。

不过,micronucleus有一些变种有不同的检查机制。如果你按照这些说明更新micronucleus(使用 "推荐 "配置),拍子将在一两秒后准备好。

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

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

第13步:故障排除

希望你不需要读这个,

一些提示,以防万一......

1、工作不多......检查电线和焊料;

2、如果电蚊拍自己重新启动(你听到了启动的声音,但没有开/关),请给电池充电;

3、大约30秒后,电蚊拍就会自动关闭。

  • 一些USB充电器电路有一个自动待机模式(我的就是这种情况,使用的是芯片IP5306),如果消耗的电流低于一定量(IP5306为45mA),就会进入待机模式。
  • 第一个可能的解决方法是定期按下拍子按钮......比如每20秒。电路板(含IP5306)有一个 "钥匙 "功能,可以开启或关闭电源,在电路板上标有 "K"。上面建议的代码中的watchdog()功能将保持电源正常工作。

4、如果拍子的检测能力真的很差或经常检测错误...那么可能要做一些代码调整。

如果你想用USB端口来显示一些变量,你必须修改代码,以便使用DigiCDC库并删除SoftSerial(用于4位数显示)。但更重要的是,当这样做时,我们将从USB口而不是电池充电器口获得电源,这就有很大的区别......VCC的质量对我们计算的平均数和标准差有很大影响......

换句话说,在USB上连接时进行的任何调整,在用电池运行时可能会失效。

获得一些小信息的方法是使用显示器本身(即在按下复位按钮时显示最后的标准差)。

知道了这些,你就可以试着调整代码中的以下数值,这些数值对我们的检测有很大的影响。

单次读取的样本数:

int samples=10;

平均滑动窗口的大小:

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

标准差的阈值:

int threshold=110;
int monster_threshold=250;

第14步:继续改进电蚊拍,分享你的改进方法

如果你找到了更加简单的改造电蚊拍的方法或者是设计,欢迎分享出来!

作者:lmu34

来源:DF创客社区

原文地址:www.instructables.com/Ultimate-Mosquito-Swatter-Mod-for-Gamer-Add-Kill-C

推荐阅读

拆一辆十万元的比亚迪“元”,看看里面都有哪些元器件
揭秘三星 3纳米 GAA 技术
苹果5G芯片研发失败
一年提价两次:台积电代工明年再涨约6%

添加微信回复“进群”

拉你进技术交流群!

国产芯|汽车电子|物联网|新能源|电源|工业|嵌入式…..  

众号内回复您想搜索的任意内容,如问题关键字、技术名词、bug代码等,就能轻松获得与之相关的专业技术内容反馈。快去试试吧!


如果您想经常看到我们的文章,可以进入我们的主页,点击屏幕右上角「三个小点」,点击「设为星标」。

欢迎扫码关注

电子工程世界 关注EEWORLD电子工程世界,即时参与讨论电子工程世界最火话题,抢先知晓电子工程业界资讯。
评论
  • 一、VSM的基本原理震动样品磁强计(Vibrating Sample Magnetometer,简称VSM)是一种灵敏且高效的磁性测量仪器。其基本工作原理是利用震动样品在探测线圈中引起的变化磁场来产生感应电压,这个感应电压与样品的磁矩成正比。因此,通过测量这个感应电压,我们就能够精确地确定样品的磁矩。在VSM中,被测量的样品通常被固定在一个震动头上,并以一定的频率和振幅震动。这种震动在探测线圈中引起了变化的磁通量,从而产生了一个交流电信号。这个信号的幅度和样品的磁矩有着直接的关系。因此,通过仔细
    锦正茂科技 2025-02-28 13:30 100浏览
  • 更多生命体征指标风靡的背后都只有一个原因:更多人将健康排在人生第一顺位!“AGEs,也就是晚期糖基化终末产物,英文名Advanced Glycation End-products,是存在于我们体内的一种代谢产物” 艾迈斯欧司朗亚太区健康监测高级市场经理王亚琴说道,“相信业内的朋友都会有关注,最近该指标的热度很高,它可以用来评估人的生活方式是否健康。”据悉,AGEs是可穿戴健康监测领域的一个“萌新”指标,近来备受关注。如果站在学术角度来理解它,那么AGEs是在非酶促条件下,蛋白质、氨基酸
    艾迈斯欧司朗 2025-02-27 14:50 400浏览
  • 请移步 gitee 仓库 https://gitee.com/Newcapec_cn/LiteOS-M_V5.0.2-Release_STM32F103_CubeMX/blob/main/Docs/%E5%9F%BA%E4%BA%8ESTM32F103RCT6%E7%A7%BB%E6%A4%8DLiteOS-M-V5.0.2-Release.md基于STM32F103RCT6移植LiteOS-M-V5.0.2-Release下载源码kernel_liteos_m: OpenHarmon
    逮到一只程序猿 2025-02-27 08:56 198浏览
  • 应用趋势与客户需求,AI PC的未来展望随着人工智能(AI)技术的日益成熟,AI PC(人工智能个人电脑)逐渐成为消费者和企业工作中的重要工具。这类产品集成了最新的AI处理器,如NPU、CPU和GPU,并具备许多智能化功能,为用户带来更高效且直观的操作体验。AI PC的目标是提升工作和日常生活的效率,通过深度学习与自然语言处理等技术,实现更流畅的多任务处理、实时翻译、语音助手、图像生成等功能,满足现代用户对生产力和娱乐的双重需求。随着各行各业对数字转型需求的增长,AI PC也开始在各个领域中显示
    百佳泰测试实验室 2025-02-27 14:08 255浏览
  • Matter 协议,原名 CHIP(Connected Home over IP),是由苹果、谷歌、亚马逊和三星等科技巨头联合ZigBee联盟(现连接标准联盟CSA)共同推出的一套基于IP协议的智能家居连接标准,旨在打破智能家居设备之间的 “语言障碍”,实现真正的互联互通。然而,目标与现实之间总有落差,前期阶段的Matter 协议由于设备支持类型有限、设备生态协同滞后以及设备通信协议割裂等原因,并未能彻底消除智能家居中的“设备孤岛”现象,但随着2025年的到来,这些现象都将得到完美的解决。近期,
    华普微HOPERF 2025-02-27 10:32 216浏览
  •           近日受某专业机构邀请,参加了官方举办的《广东省科技创新条例》宣讲会。在与会之前,作为一名技术工作者一直认为技术的法例都是保密和侵权方面的,而潜意识中感觉法律有束缚创新工作的进行可能。通过一个上午学习新法,对广东省的科技创新有了新的认识。广东是改革的前沿阵地,是科技创新的沃土,企业是创新的主要个体。《广东省科技创新条例》是广东省为促进科技创新、推动高质量发展而制定的地方性法规,主要内容包括: 总则:明确立法目
    广州铁金刚 2025-02-28 10:14 103浏览
  • 在物联网领域中,无线射频技术作为设备间通信的核心手段,已深度渗透工业自动化、智慧城市及智能家居等多元场景。然而,随着物联网设备接入规模的不断扩大,如何降低运维成本,提升通信数据的传输速度和响应时间,实现更广泛、更稳定的覆盖已成为当前亟待解决的系统性难题。SoC无线收发模块-RFM25A12在此背景下,华普微创新推出了一款高性能、远距离与高性价比的Sub-GHz无线SoC收发模块RFM25A12,旨在提升射频性能以满足行业中日益增长与复杂的设备互联需求。值得一提的是,RFM25A12还支持Wi-S
    华普微HOPERF 2025-02-28 09:06 145浏览
  • 在2024年的科技征程中,具身智能的发展已成为全球关注的焦点。从实验室到现实应用,这一领域正以前所未有的速度推进,改写着人类与机器的互动边界。这一年,我们见证了具身智能技术的突破与变革,它不仅落地各行各业,带来新的机遇,更在深刻影响着我们的生活方式和思维方式。随着相关技术的飞速发展,具身智能不再仅仅是一个技术概念,更像是一把神奇的钥匙。身后的众多行业,无论愿意与否,都像是被卷入一场伟大变革浪潮中的船只,注定要被这股汹涌的力量重塑航向。01为什么是具身智能?为什么在中国?最近,中国具身智能行业的进
    艾迈斯欧司朗 2025-02-28 15:45 222浏览
  • RGB灯光无法同步?细致的动态光效设定反而成为产品客诉来源!随着科技的进步和消费者需求变化,电脑接口设备单一功能性已无法满足市场需求,因此在产品上增加「动态光效」的形式便应运而生,藉此吸引消费者目光。这种RGB灯光效果,不仅能增强电脑周边产品的视觉吸引力,还能为用户提供个性化的体验,展现独特自我风格。如今,笔记本电脑、键盘、鼠标、鼠标垫、耳机、显示器等多种电脑接口设备多数已配备动态光效。这些设备的灯光效果会随着音乐节奏、游戏情节或使用者的设置而变化。想象一个画面,当一名游戏玩家,按下电源开关,整
    百佳泰测试实验室 2025-02-27 14:15 138浏览
  • 构建巨量的驾驶场景时,测试ADAS和AD系统面临着巨大挑战,如传统的实验设计(Design of Experiments, DoE)方法难以有效覆盖识别驾驶边缘场景案例,但这些边缘案例恰恰是进一步提升自动驾驶系统性能的关键。一、传统解决方案:静态DoE标准的DoE方案旨在系统性地探索场景的参数空间,从而确保能够实现完全的测试覆盖范围。但在边缘案例,比如暴露在潜在安全风险的场景或是ADAS系统性能极限场景时,DoE方案通常会失效,让我们看一些常见的DoE方案:1、网格搜索法(Grid)实现原理:将
    康谋 2025-02-27 10:00 253浏览
  • 美国加州CEC能效跟DOE能效有什么区别?CEC/DOE是什么关系?美国加州CEC能效跟DOE能效有什么区别?CEC/DOE是什么关系?‌美国加州CEC能效认证与美国DOE能效认证在多个方面存在显著差异‌。认证范围和适用地区‌CEC能效认证‌:仅适用于在加利福尼亚州销售的电器产品。CEC认证的范围包括制冷设备、房间空调、中央空调、便携式空调、加热器、热水器、游泳池加热器、卫浴配件、光源、应急灯具、交通信号模块、灯具、洗碗机、洗衣机、干衣机、烹饪器具、电机和压缩机、变压器、外置电源、消费类电子设备
    张工nx808593 2025-02-27 18:04 120浏览
  •         近日,广电计量在聚焦离子束(FIB)领域编写的专业著作《聚焦离子束:失效分析》正式出版,填补了国内聚焦离子束领域实践性专业书籍的空白,为该领域的技术发展与知识传播提供了重要助力。         随着芯片技术不断发展,芯片的集成度越来越高,结构也日益复杂。这使得传统的失效分析方法面临巨大挑战。FIB技术的出现,为芯片失效分析带来了新的解决方案。它能够在纳米尺度上对芯片进行精确加工和分析。当芯
    广电计量 2025-02-28 09:15 116浏览
  • 1,微软下载免费Visual Studio Code2,安装C/C++插件,如果无法直接点击下载, 可以选择手动install from VSIX:ms-vscode.cpptools-1.23.6@win32-x64.vsix3,安装C/C++编译器MniGW (MinGW在 Windows 环境下提供类似于 Unix/Linux 环境下的开发工具,使开发者能够轻松地在 Windows 上编写和编译 C、C++ 等程序.)4,C/C++插件扩展设置中添加Include Path 5,
    黎查 2025-02-28 14:39 141浏览
  • 振动样品磁强计是一种用于测量材料磁性的精密仪器,广泛应用于科研、工业检测等领域。然而,其测量准确度会受到多种因素的影响,下面我们将逐一分析这些因素。一、温度因素温度是影响振动样品磁强计测量准确度的重要因素之一。随着温度的变化,材料的磁性也会发生变化,从而影响测量结果的准确性。因此,在进行磁性测量时,应确保恒温环境,以减少温度波动对测量结果的影响。二、样品制备样品的制备过程同样会影响振动样品磁强计的测量准确度。样品的形状、尺寸和表面处理等因素都会对测量结果产生影响。为了确保测量准确度,应严格按照规
    锦正茂科技 2025-02-28 14:05 134浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦