산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

제스처 제어 잠금

구성품 및 소모품

SparkFun APDS-9960
× 1
Arduino UNO
× 1
RGB 확산 공통 음극
× 1
Adafruit Standard LCD - 파란색 바탕에 16x2 흰색
× 1
저항 4.75k 옴
× 2
점퍼 와이어(일반)
× 1
저항 1k 옴
× 1

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

*APDS-9960 센서는 Arduino Nano 또는 Mega 2560(내 테스트에서)에서 작동하지 않습니다.

이 프로젝트는 만들고 사용하기 쉽습니다. 이 프로젝트에서 모든 종류의 서보 또는 래칭 메커니즘을 자유롭게 사용하십시오. 이것은 제스처 기반 잠금을 위한 시작 플랫폼을 의미합니다. 건물로!

자료

Amazon.com에서 대부분의 부품을, Sparkfun에서 APDS-9960 센서를 얻었습니다. 다른 보드는 이상한 이유로 작동하지 않기 때문에 지금까지는 Arduino Uno 또는 Micro 3.3v만 사용할 수 있습니다.

어셈블리

그림과 같이 LCD를 부착합니다. 10k 전위차계가 없으면 대조에서 GND로 가는 1k 저항을 사용하십시오. APDS-9960 센서는 Arduino Uno를 사용하는 경우 이동해야 하므로 SCL 및 SDA를 가져와서 4.7k 저항에 연결한 다음 4.7k 저항을 3.3v로 가져와 하이로 끌어옵니다. 그런 다음 그에 따라 A4 및 A5에 연결합니다(회로도 참조). Arduino는 DC 전원 배럴이 연결된 9v 배터리로 작동할 수 있습니다.

인클로저

나는 간단한 판지 상자를 사용하고 구성 요소가 들어갈 위치와 일치하도록 구멍을 자릅니다. 이 모든 것을 perfboard 조각에 납땜할 수 있지만 저는 그냥 브레드보드에 남겨두고 점퍼 와이어를 구성 요소에 연결했습니다. 완성하고 나니 이런 모습이었습니다.

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • Arduino 코드
  • Arduino 코드C/C++
    /* 하드웨어 연결:중요:APDS-9960은 3.3V만 수용할 수 있습니다! Arduino 핀 APDS-9960 보드 기능 3.3V VCC 전원 GND GND 접지 A4 SDA I2C 데이터 A5 SCL I2C 클록 2 INT InterruptResources:Wire.h 및 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_t 근접 데이터 =0;int red_led =A1;int green_led =A2;int pageNum =0; //LCD "페이지"String secret[PINSIZE] ={"UP","DOWN","UP","UP","RIGHT","LEFT"}; //여기에 비밀번호를 입력합니다. 대문자여야 합니다. "UP", "DOWN", "LEFT" 또는 "RIGHT"일 수 있습니다. String currentGesture ="";int numRight =0;SparkFun_APDS9960 apds =SparkFun_APDS9960(); // 초기화 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("긴 제스처입니다."); 직렬.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("근접 센서가 실행 중입니다.")); } else { Serial.println(F("센서 초기화 중에 문제가 발생했습니다!")); } // APDS-9960 제스처 센서 엔진 실행 시작 if ( apds.enableGestureSensor(true) ) { Serial.println(F("제스처 센서가 현재 실행 중입니다.")); } else { Serial.println(F("제스처 센서 초기화 중 문제가 발생했습니다!")); } }void 루프() { 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){ 경우 0:LCDClear(); lcd.print("잠금-get"); lcd.setCursor(0,1); lcd.print("3인치 떨어져 있습니다."); 깜박임 레드(); LCDClear(); 부서지다; 사례 1:numRight =0; lcd.print("코드를 입력하세요..."); lcd.setCursor(0,0); for(int x=0; x0;x--){ LCDClear(); lcd.print("닫기:"); lcd.setCursor(0,1); lcd.print(x); lcd.setCursor(1,1); lcd.print("초..."); 지연(1000);}LCCClear();lcd.print("닫기");}

    회로도


    제조공정

    1. 잠금
    2. 콤비네이션 잠금장치
    3. 갈증 경보 식물 알람
    4. 이탈리아어 단어 시계
    5. 4x3 키패드용 핀 3개
    6. Sigfox kWh 미터
    7. 블루투스 온도 모니터
    8. 컴패니언 IC
    9. Arduino용 절연 아날로그 입력
    10. 반응 시간 측정