【项目介绍】:
在漫威电影宇宙之中,雷神索尔的标志性武器——雷神之锤,可以说是家喻户晓,备受粉丝们的喜爱,除了本身厚重而不失华丽的外形,全身材质为乌鲁神钢,锤头内部则由一颗衰败的恒星内核锻造而成,锤柄末端还安置一个环形特殊材质的皮带,具有非常高的魔法亲和性,而且使用中其由于内核的缘故,重量分配非常的讲究,打击力度极强加上炫目多彩的雷电特效,可谓是男人们的最爱;而为什么标题为遗憾的”雷神之锤“呢?因为我工作的原因(业余时间不足)没能把雷锤的外壳做出来,所以成了一把遗憾的”雷神之锤“。
【功能介绍】:
想做一个别人拿不走的雷锤啊,秘诀就在于这块电磁铁,当电磁铁通电的时候,雷锤就可以牢牢的吸在铁的东西上,断电雷锤就失去了磁性;为了控制电磁铁的通电和断电,我用了指纹识别和电容开关两个模块;整个手柄接入电容开关,只要用手去握雷锤手柄,电容开关就会闭合,电磁铁通电产生吸力,当我按上指纹识别传感器的时候,指纹解锁开关打开电路断开,就只有我可以拿起来的雷神之锤啦!
步骤1 设计思路
步骤2 锤体的制作
步骤3 电路的搭建
步骤4 外壳的制作(3D打印未能完成)
步骤5 组装
步骤6 运行效果
#include <DFRobot_ID809.h>
//加载ID809库文件,此库文件DFRobot官方网上有介绍、下载
#define FPSerial Serial1 //宏定义Serial1
const int LED = 11; //LED指示灯引脚
const int KJ = 9; //继电器引脚
const int TOUCH = 10; //触摸传感器引脚
const int WAKEUP =A0; //手指感应输出引脚
DFRobot_ID809 fingerprint; //实例化一个名为fingerprint对象
void setup(){
pinMode(LED,OUTPUT); //LED设置为输出模式
pinMode(KJ,OUTPUT); //继电器设置为输出模式
pinMode(TOUCH,INPUT); //触摸开关设置为输入模式,硬件上设有下拉电阻
pinMode(WAKEUP,INPUT); //手指感应输出:高电平有效
FPSerial.begin(115200); //初始化FPSerial
fingerprint.begin(FPSerial); //将FPSerial作为指纹模块的通讯串口
while(fingerprint.isConnected() == false){ //测试设备与主控是否能正常通讯,返回true or false
digitalWrite(LED,HIGH);
delay(100);
digitalWrite(LED,LOW);
delay(100);
}
digitalWrite(LED,LOW); //LED熄灭
digitalWrite(KJ,LOW); //继电器断电
}
uint8_t ret;
void loop(){
if(digitalRead(TOUCH)){ //当手柄检测到手
digitalWrite(KJ,HIGH); //继电器通电,电磁铁吸合
if(digitalRead(WAKEUP)){ //当指纹传感器检测到手
if((fingerprint.collectionFingerprint(/*timeout=*/10)) != ERR_ID809){//采集指纹图像,超过10S没按下手指则采集超时如果获取成功返回0,否则返回ERR_ID809
digitalWrite(LED,HIGH);
}else{
digitalWrite(LED,LOW);
}
ret = fingerprint.search(); //将采集到的指纹与指纹库中的所有指纹对比,成功返回指纹编号(1-80),失败返回0
if(ret == 1) //将采集到的指纹与指定编号指纹对比
digitalWrite(KJ,LOW); //断电器断电,电磁铁断开
while(digitalRead(TOUCH)); //等待手放开
}
}else{ //没检测到手时断电器断开
digitalWrite(KJ,LOW);
digitalWrite(LED,LOW);
}
}
最后再欣赏一段视频:
附件
【总结】:
1.电磁铁与锤柄之间要加一块垫木,用以隔离干扰电容开关
2.电容开关因为接入锤柄,其感应面积增大也就变的更灵敏,灵敏度过高的话你在周围一个细小的举动 都会触发电容开关,不同类型的电容开关其感应灵敏度不一样,经过我的测试我觉的TTP223电容开关比较稳定
白凡2021.09.09
666666大佬牛啤!