제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
|
적외선 센서를 사용하여 눈의 움직임을 감지하고 LED를 제어했습니다.
NeoPixel LED 아이볼
NeoPixel LED 테이프를 사용합니다. LED는 68개입니다.
LED는 양면테이프로 볼에 고정하고 다음과 같은 순서로 배선합니다.
눈 움직임 추적
도식
센서
시선 추적을 위해 두 개의 센서 QTR - 1A를 사용했습니다. QTR - 1A를 플라스틱 시트 위에 눈 너비 정도의 거리에 놓습니다.
센서 부분과 마이크로 컨트롤러 부분은 각각 클립으로 안경에 고정되었습니다.
그림>
Arduino 코드
홍채가 하나의 센서에 접근하면 반사광이 감소하고 센서 값이 증가합니다. 반대로 홍채가 멀어지면 반사광이 증가하고 포토 리플렉터의 센서 값이 감소합니다.
LED 안구 동공의 좌우 움직임은 하나의 센서 값의 증감을 감지하고 제어합니다.
깜박이면 두 센서 값이 모두 감소하므로 두 센서 값이 동시에 감소하면 LED 안구의 눈꺼풀이 내려갑니다.
#include #include #define NUM_SENSORS 2 // 사용된 센서 수#define NUM_SAMPLES_PER_SENSOR 10 // 평균화#define EMITTER_PIN QTR_NO_EMITTER_PIN int iniSensorVL;#define PIN A3Adafruit_NeoPixel led =Adafruit_NeoPixel(68, PIN, NEO_GRB + NEO_KHZ800);int blackNum =24;int pupilNum =12;uint32_t color;int 밝기 =40;byte eyeColor;int LR =7;부울 뚜껑 =cnt =0;//검은 눈 L&R animationint blackLED[15][24] ={{12,32,35,55,68,68,68,68,68,68,68,68,68,68,68, 68,68,68,68,68,68,68,68,68}, {12,13,31,36,54,55,68,68,68,68,68,68,68,68,68, 68,68,68,68,68,68,68,68,68}, {11,13,14,30,37,53,54,56,68,68,68,68,68,68,68, 68,68,68,68,68,68,68,68,68}, {10,11,14,15,29,38,52,53,56,57,68,68,68,68,68, 68,68,68,68,68,68,68,68,68}, { 9,10,11,12,15,16,28,33,34,39,51,52,55,56,57, 58,68,68,68,68,68,68,68,68}, { 0, 8, 9,10,11,12,13,16,17,27,32,35,40,50,51, 54,55,56,57,58,59,67,68,68}, { 0, 1, 7, 8, 9,10,13,14,17,18, 26,31,36,41,49,50,53,54,57,58,59,60,66,67}, { 1, 2, 6, 7, 8, 9,14,15,18,19, 25,30,37,42,48,49,52,53,58,59,60,61,65,66}, { 2, 3, 5, 6, 7, 8,15,16,19,20, 24,29,38,43,47,48,51,52,59,60,61,62,64,65}, { 3, 4, 5, 6, 7,16,17,20,21,23, 28,39,44,46,47,50,51,60,61,62,63,64,68,68}, { 4, 5, 6,17,18,21,22,27,40,45, 46,49,50,61,62,63,68,68,68,68,68,68,68,68}, { 4, 5,18,19,26,41,48,49,62,68, 68,68,68,68,68,68,68,68,68,68,68,68,68,68}, { 4,19,20,25,42,47,48,63,68,68, 68,68,68,68,68,68,68,68,68,68,68,68,68,68}, {20,21,24,43,46,47,68,68,68,68, 68,68,68,68,68,68,68,68,68,68,68,68,68,68}, {21,23,44,46,68,68,68,68,68,68, 68,68,68,68,68,68,68,68,68,68,68,68,68,68}};//동공 L&R 애니메이션int 동공LED[15][12] ={{33,34,68 ,68,68,68,68,68,68,68,68,68}, {32,33,34,35,68,68,68,68,68,68,68,68}, {12,31 ,32,33,34,35,36,55,68,68,68,68}, {12,13,30,31,32,33,34,35,36,37,54,55}, {13 ,14,29,30,31,32,35,36,37,38,53,54}, {14,15,28,29,30,31,36,37,38,39,52,53}, {15,16,27,28,29,30,37,38,39,40,51,52}, {16,17,26,27,28,29,38,39,40,41,50,51 }, {17,18,25,26,27,28,39,40,41,42,49,50}, {18,19,24,25,26,27,40,41,42,43,48,49 }, {19,20,23,24,25,26,41,42,43,44,47,48}, {20,21,22,23,24,25,42,43,44,45,46 ,47}, {21,22,23,24,43,44,45,46,68,68,68,68}, {22,23,44,45,68,68,68,68,68,68 ,68,68}, {22,45,68,68,68,68,68,68,68,68,68,68}};//눈꺼풀 깜박임 애니메이션int 눈꺼풀 =0;int눈꺼풀Num[8] ={0, 4,8,16,24,34,44,56};눈꺼풀내장LED[56] ={64,65,66,67,58,59,60,61,56,57,62,63,49,50, 51,52,47,48,53,54,38,39,40,41,46,55,36,37,42,43,26,27,28,29,35,44,24,25,30, 31,15,16,17,18,34,45,23,32,13,14,19,20,6,7,8,9};QTRSensorsAnalog qtra((unsigned char[]) {0, 1}, NUM_SENSORS, NUM_SAMPLES_PER_SENSOR, EMITTER_PIN); unsigned int sensorValues[NUM_SENSORS];void 깜박임(int 눈꺼풀, int LR) { if (눈꺼풀 !=8){ //백랍 for(uint16_t i=0; i 0.985 &&rasioR <0.985){ //오른쪽 for(int i =LR; i <12; i++){ 깜박임(0, i); 지연(40); LR =나; } }else if(rasioL <0.985 &&rasioR> 0.985){ //left for(int i=LR; i>2; i--){ 깜박임(0, i); 지연(40); LR =나; } }else if(lid ==false &&rasioL <0.96 &&rasioR <0.96){ // 깜박임 닫기 for(int i =1; i <9; i++){ 깜박임(i, LR); 지연(40); 뚜껑 =사실; } }else if(lid ==true &&rasioL> 0.96 &&rasioR> 0.96){ // 깜박임 열기 for(int i =8; i> 0; i--){ 깜박임(i, LR); 지연(40); 뚜껑 =거짓; } }else if(lid ==false &&rasioL> 0.96 &&rasioR> 0.96) { //정상 //cnt++; //눈꺼풀 =0; if(LR <=7){ for(int i=LR; i<=7; i++){ 깜박임(0, i); 지연(40); LR =나; } }else { for(int i=LR; i>=7; i--){ 깜박임(0, i); 지연(40); LR =나; } } Serial.println("通常時"); } //초기값 새로고침 if (cnt> 10){ iniSensorValL =sensorValL; iniSensorValR =sensorValR; cnt =0; }}
작업
섹션>
제조공정
구성품 및 소모품 Arduino UNO × 1 ProtoCentral Electronics ProtoCentral VL53L0X 레이저 ToF 센서 브레이크아웃 × 1 앱 및 온라인 서비스 Arduino IDE 처리 이 프로젝트 정보 액체 수위 측정은 여러 산업 및 국내 응용 분야(탱크의 수위 측정)에서 일반적인 기술입니다. 이것은 일반적으로 액체에 담근 프로브를 사용하여 수행되고 이들 사이의 전도도를 측정합니다. 이 전도도는
구성품 및 소모품 적외선 방출기, 18° 805nm에서 1000nm 사이의 파장 × 1 포토다이오드 LPT80A 필요한 포토다이오드는 넓은 범위의 다이오드이며 두 개의 빨간색 신호(600nm)를 모두 수신할 수 있어야 합니다. 및 적외선 신호(940nm). × 1 5mm LED:빨간색 600nm 부근의 파장 × 1 저항 10k 옴 × 1 저항 330옴 × 2 DFRobot I2C 16x2 Arduino LCD 디스플레이 모듈 또는 값