제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 |
|
*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="코드">
/* 하드웨어 연결:중요: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; x 0;x--){ LCDClear(); lcd.print("닫기:"); lcd.setCursor(0,1); lcd.print(x); lcd.setCursor(1,1); lcd.print("초..."); 지연(1000);}LCCClear();lcd.print("닫기");}
제조공정
구성품 및 소모품 Arduino Nano R3 × 1 연산 증폭기 IC TL061 × 1 저항 10k 옴 × 2 저항 1M 옴 × 1 세라믹 디스크 커패시터, 39pF × 1 소형 1-2W 트래픽의 2차 코일 × 1 필요한 도구 및 기계 납땜 인두(일반) 앱 및 온라인 서비스 Arduino IDE 이 프로젝트 정보 지진계는 지진을 감지하고 강도
구성품 및 소모품 Arduino UNO × 1 Adafruit Standard LCD - 파란색 바탕에 16x2 흰색 × 1 SparkFun 푸시버튼 스위치 12mm × 4 저항 10k 옴 × 4 저항 221옴 음, 220옴... × 2 단일 회전 전위차계 - 100,000옴 × 1 부저 × 1 브레드보드(일반) × 1 점퍼 와이어(일반) × 1