亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

手势控制锁

组件和用品

SparkFun APDS-9960
× 1
Arduino UNO
× 1
RGB 扩散共阴极
× 1
Adafruit 标准 LCD - 16x2 蓝底白字
× 1
电阻 4.75k ohm
× 2
跳线(通用)
× 1
电阻 1k ohm
× 1

应用和在线服务

Arduino IDE

关于这个项目

*APDS-9960 传感器不适用于 Arduino Nano 或 Mega 2560(在我的测试中)。

这个项目很容易制作和使用。随意在这个项目中使用任何类型的伺服或锁定机制。这旨在成为基于手势的锁定的起始平台。上楼!

材料

我的大部分零件来自 Amazon.com,APDS-9960 传感器来自 Sparkfun。到目前为止,您只能使用 Arduino Uno 或 Micro 3.3v,因为任何其他板都因某些奇怪的原因而无法工作。

组装

如图所示安装 LCD。如果您没有 10k 电位器,请使用从对比度到 GND 的 1k 电阻器。如果使用 Arduino Uno,APDS-9960 传感器将需要移动,所以我所做的是将 SCL 和 SDA 连接到 4.7k 电阻器,然后通过将 4.7k 电阻器连接到 3.3v 将它们拉高。然后将它们相应地连接到 A4 和 A5(参见示意图)。 Arduino 可以使用带有直流电源桶的 9v 电池供电。

外壳

我使用了一个简单的纸板箱,并在上面切孔以匹配组件所在的位置。您可以将所有这些都焊接到一块穿孔板上,但我只是将其留在面包板上并将跳线连接到组件上。做完之后就是这个样子。

代码

  • Arduino 代码
Arduino 代码C/C++
/* 硬件连接:重要:APDS-9960 只能接受 3.3V! Arduino Pin APDS-9960 Board Function 3.3V VCC Power GND GND Ground A4 SDA I2C Data A5 SCL I2C Clock 2 INT InterruptResources:Include Wire.h and SparkFun_APDS-9960.h*/#include #include #include #include #define PINSIZE 6 #define SERVOPIN 9//你的密码是多少个手势// Pins#define APDS9960_INT 2 // 需要是中断 pinLiquidCrystal lcd( 12,11,6,5,4,3);伺服舵机;uint8_tproximity_data =0;int red_led =A1;int green_led =A2;int pageNum =0; //LCD "page"String secret[PINSIZE] ={"UP","DOWN","UP","UP","RIGHT","LEFT"}; //密码在这里。必须是大写的。可以是“UP”、“DOWN”、“LEFT”或“RIGHT”String currentGesture ="";int numRight =0;SparkFun_APDS9960 apds =SparkFun_APDS9960(); //Init APDS-9960 libraryint isr_flag =0;void setup() { // 设置中断引脚为输入 pinMode(APDS9960_INT, INPUT);lcd.begin(16,2);servo.attach(SERVOPIN);servo.write( 0);伺服.分离(); // 初始化串口Serial.begin(9600); Serial.print("您的密码是"); Serial.print(PINSIZE); Serial.println("手势长。"); Serial.println(); Serial.println(F("----------------")); Serial.println(F("APDS-9960 锁")); Serial.println(F("----------------")); // 初始化中断服务程序 attachInterrupt(0, interruptRoutine, FALLING); // 初始化 APDS-9960(配置 I2C 和初始值) if ( apds.init() ) { Serial.println(F("APDS-9960 初始化完成")); } else { Serial.println(F("APDS-9960 初始化期间出现问题!")); } if ( !apds.setProximityGain(PGAIN_1X) ) { Serial.println(F("尝试设置 PGAIN 出错")); } if ( apds.enableProximitySensor(false) ) { Serial.println(F("Proximity sensor is now running")); } else { Serial.println(F("传感器初始化过程中出现问题!")); } // 开始运行 APDS-9960 手势传感器引擎 if ( apds.enableGestureSensor(true) ) { Serial.println(F("Gesture sensor is now running")); } else { Serial.println(F("手势传感器初始化过程中出现问题!")); } }void loop() { if(pageNum==0){ if (!apds.readProximity(proximity_data)) { Serial.println("读取邻近值时出错"); } else { Serial.println(proximity_data); if((proximity_data>=40) &&(pageNum==0)){ pageNum=1;延迟(2000); } } } switch(pageNum){ case 0:LCDClear(); lcd.print("锁定-获取"); lcd.setCursor(0,1); lcd.print("3 英寸远。");闪烁红色(); LCD清除();休息;情况 1:numRight =0; lcd.print("请输入密码..."); lcd.setCursor(0,0); for(int x=0; x0;x--){ LCDClear(); lcd.print("结束:"); lcd.setCursor(0,1);液晶。打印(x); lcd.setCursor(1,1); lcd.print("秒..."); delay(1000);}LCDClear();lcd.print("Closing");}

示意图


制造工艺

  1. 组合锁
  2. 干渴警报植物警报
  3. 意大利字时钟
  4. 4x3 键盘只有三个引脚
  5. Sigfox kWh Meter
  6. 蓝牙温度监视器
  7. 伴侣 IC
  8. USB MIDI 适配器
  9. Arduino 的隔离模拟输入
  10. RGB 32-Band Audio Spectrum Visualizer
  11. 测量你的反应时间