【看见未来】遗憾的”雷神之锤“
2020-07-261058
AI 快速预览详细
本文介绍了如何制作一个只有特定用户才能拿起的雷神之锤。项目使用了DFRobot Beetle控制器、指纹识别模块、电容开关和电磁铁等组件。通过手柄上的电容开关检测手的存在,再通过指纹识别验证身份,从而控制电磁铁的通断电。最终效果是只有特定用户才能拿起雷神之锤。项目难度适中,适合STEM教育场景下的创意实践。
【项目介绍】:
在漫威电影宇宙之中,雷神索尔的标志性武器——雷神之锤,可以说是家喻户晓,备受粉丝们的喜爱,除了本身厚重而不失华丽的外形,全身材质为乌鲁神钢,锤头内部则由一颗衰败的恒星内核锻造而成,锤柄末端还安置一个环形特殊材质的皮带,具有非常高的魔法亲和性,而且使用中其由于内核的缘故,重量分配非常的讲究,打击力度极强加上炫目多彩的雷电特效,可谓是男人们的最爱;而为什么标题为遗憾的”雷神之锤“呢?因为我工作的原因(业余时间不足)没能把雷锤的外壳做出来,所以成了一把遗憾的”雷神之锤“。
【功能介绍】:
想做一个别人拿不走的雷锤啊,秘诀就在于这块电磁铁,当电磁铁通电的时候,雷锤就可以牢牢的吸在铁的东西上,断电雷锤就失去了磁性;为了控制电磁铁的通电和断电,我用了指纹识别和电容开关两个模块;整个手柄接入电容开关,只要用手去握雷锤手柄,电容开关就会闭合,电磁铁通电产生吸力,当我按上指纹识别传感器的时候,指纹解锁开关打开电路断开,就只有我可以拿起来的雷神之锤啦!
步骤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);
}
}
附件




