所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开

#2022#智能钥匙挂钩

qyj133 qyj133 2022-03-08 11:12:38
projectImage

作者:白银蚁创空间会员强奕晨同学。

步骤1 步骤1
项目介绍

相信大家都有过出门忘带钥匙,自己被锁在外面的经历。还有就是在出门时,慌乱的寻找钥匙。该项目就是为了解决这两个令人烦恼的问题。

步骤2 步骤2
制作过程

1 问卷调查

制作表格对班级50名同学及家庭成员进行调查。

问题设置:1.您是否有过出门忘带钥匙的经历?有¨,无¨;2.您是否有过出门时找不到钥匙的经历?有¨,无¨(有过请在“有”后方框内打勾,无请在“无”后方框内打勾)

最终调查结果:问题1:选择“有”的是49个家庭,选择“无”的只有1个家庭;问题2:选择“有”的是42个家庭,选择“无”的只有8个家庭。有过忘带钥匙经历的比例高达98%,有出门慌忙寻找钥匙的占比也由84%。

2 资料查询

通过互联网搜索引擎查询,各类购物平台相关关键词查询,发现已经有类似提醒器的产品。已有的产品能够实现当人体靠近时做出语音提示,但是无论你是要出门,还是刚回来,该产品都是相同的语音提示。

3设备及其作用

设备:Arduino Uno主控板、超声波测距传感器、挂钩式按钮、红色LED灯、语音播报模块、喇叭、9V锂电池、船型开关、杜邦线。

工具及材料:3D打印机及耗材、烙铁、螺丝、焊锡丝、胶枪、热缩管、剪刀等。

设备作用:

超声波测距传感器:通过距离检测前方是否有人通过。

挂钩式按钮:通过改造,使其作为数字输入设备,可以通过其状态,判断钥匙是否在挂钩上挂好。

喇叭:播报语音。

语音播报模块:存储预先制作好的音频文件,接收主控信号,让喇叭播报不同音频文件。

LED灯:光信号提示。

4 音频制作

根据需要使用“逗哥”网络平台,使用合适的声音,将文字转换成音频文件,并将音频文件保存于语音模块中。

projectImage

5电路设计与连接

根据电路设计(如图),连接实际电路。

projectImage

6 程序编写与说明

当超声波测距传感器监测到的距离小于某值后,Arduino主控根据程序,判断有人经过。此时,如果挂钩式按钮处于弹起状态,Arduino主控判断挂钩上无钥匙,主人是刚刚进门,所以Arduino主控控制语音播报模块播报“欢迎回家,请将钥匙挂在挂钩上。”如果挂钩式按钮处于向下状态,Arduino主控判断挂钩上有钥匙,主人是要出门,所以Arduino主控控制语音播报模块播报“出门请拿好钥匙,带好口罩。”

在程序初始化中,建立全局变量“距离”,用来存储超声波测到的距离,并将D11和D12管脚设置为高电平(这两个管脚的低电平可以出发语音模块播报不同的音频文件)。建立“stop函数”,该函数中D3管脚实时监测语音播报模块的“busy”管脚,及当语音模块被D11和D12管脚低电平触发后,在没有播报完成时,需要一直等待至播报结束后,重新将D11和D12管脚设置为高电平,停止播报。在“stop函数”中还是用A2管脚控制LED灯的亮灭(播报开始时亮,播报结束后灭)。主程序中,超声波测距传感器将测得的距离赋值给变量“距离”,同时使用A1管脚监测挂钩式按钮状态,当“距离”小于80cm,同时挂钩按压(有钥匙),这时设置D12管脚为高电平,再调用“stop函数”;当“距离”小于80cm,同时挂钩抬起(无钥匙),这时设置D12管脚为高电平,再调用“stop函数”。

projectImage

7 3D建模

根据项目需求设计该作品外壳,使该作品更加具有产品属性,方便使用。

projectImage

项目制作过程图片

projectImage
projectImage
步骤3 步骤3
作品演示

作品成品照片:

projectImage

介绍和演示视频:

步骤4 步骤4
总结

由于该作品使用的主控是Arduino UNO,还有超声波测距传感器,所以整体体积较大,不够美观,所以后期可以进行如下改造:

(1)使用更小的单片机替代Arduino UNO;

(2)使用人体红外传感器代替超声波测距传感器;

(3)自己设计挂钩式按钮;

(4)设置充电口和数据线接口(可修改音频)。

(5)使用PCB代替杜邦线连接。

步骤5 步骤5
资源

编程使用mixly完成

Makelog作者原创文章,未经授权禁止转载。
4
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
|
[[c.comment_content]]