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

적외선 센서를 사용한 눈 움직임 추적

구성품 및 소모품

SparkFun Arduino Pro Mini 328 - 5V/16MHz
× 1
Pro Trinket/ItsyBitsy용 Adafruit LiIon/LiPoly 배낭 추가 기능
× 1
NeoPixel 스트립
× 1
QTR-1A 반사율 센서
× 1
3.7V LiPo 배터리
× 1

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

적외선 센서를 사용하여 눈의 움직임을 감지하고 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; }} 

작업


제조공정

  1. 제품 디자인에 천연 소재를 다시 사용하게 된 이유는 무엇입니까?
  2. 펄스광 센서
  3. Raspberry pi를 사용하는 TMP006 온도 센서 Python 라이브러리,
  4. Python 및 Raspberry Pi 온도 센서
  5. RPi가 있는 라인 추적 센서
  6. 동작 센서, 알람, Raspberry Pi의 HA에서 비디오 녹화
  7. 라즈베리 파이용 DIY 적외선 모션 센서 시스템
  8. Raspberry Pi를 사용한 모션 센서
  9. Leap Motion 레이저 탱크!
  10. 적외선 센서 온도 측정